Author Topic: I wanna melt the spikes - Procedural generation  (Read 2135 times)

patrickgh3

  • Spike Dodger
  • Posts: 169
  • stay optimistic! :D
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 41.0.2272.101 Chrome 41.0.2272.101
    • View Profile
    • Github
  • Playstyle: Keyboard
I wanna melt the spikes - Procedural generation
« on: March 30, 2015, 04:33:35 AM »
I've been kicking around these ideas in my head for quite a while, and I recently felt motivated to put together a working version, and for a few days work I think it turned out pretty nice. I also had fun making it. Note this is very WIP, just a kind of test / proof of concept.

About the approach I used: I thought a good goal would be to generate unique, random spike jumps, with their design being completely emergent rather than explicit (e.g. no part of any jump is hand-crafted). As a consequence of this, it's hard to regulate difficulty and possibility of the levels, in fact they're mostly impossible, so I thought to make the player have multiple hitpoints to compensate. So, basically you try to get as far as you can until you run out of hitpoints, and try to get a high score, based on how far you get. Ideally, every generated level feels fresh, and you often come across interesting jumps. And the better you are, the more difficult jumps and routes you can attempt to clear, losing as few hitpoints as possible in situations.

I also added another small layer over all this: instead of pure distance determining your score, each spike you touch (that costs you a hitpoint) has a numerical value, and your score is the total of all the spikes you touched during the round. Spikes get gradually more valuable as the level progresses, so you still want to get as far as you can. But now, you have to factor in which spikes are more valuable than others when planning your jumps, which I think is a nice strategy layer. It also fits well thematically, with the metals getting rarer as you explore further in the cave, and since you're a lavakid you kind of absorb them into yourself. I got a little carried away with graphics, but I'm happy to be able to show what I had in mind thematically.

I think there's potential with this kind of approach for procedurally generated I wanna levels. Right now I'm focusing on brainstorming ways to normalize the difficulty both between generated levels and within each level. This is difficult because the way I see it, completely emergent spike jumps are completely at odds with regulating difficulty. Also, there's potential with aligning blocks and spikes to the 16x16 grid, as well as minispikes, water, and other things; I'm keeping it simple to start out. Please share your thoughts about my work so far, and any ideas you've come up with about procedural generation! :)

Below are screenshots and download links for the game and source code. If you're interested, I encourage you to poke around in the code! It's not too well commented; feel free to add me on Skype - patrickgh3 if you want me to explain stuff or you wanna chat about any part of this project. I also encourage you to hack away on the project if you feel motivated to. Thanks for reading! :)

Download Link

(click to show/hide)
« Last Edit: February 15, 2016, 11:33:14 PM by patrickgh3 »

Sudnep

  • Global Moderator
  • Spike Dodger
  • Posts: 124
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 36.0 Firefox 36.0
    • View Profile
  • Playstyle: Keyboard
Re: I wanna melt the spikes - Procedural generation
« Reply #1 on: March 30, 2015, 09:43:53 AM »
Interesting idea, makes sense why you left the GMK in.