I've been making good progress with my jumping game, with the core mechanic now mostly done (…although physics were harder than expected to set up).
The next steps will be to draw final art… and more importantly, balance the difficulty. That difficulty part is quite tricky, as a good level design should be able to avoid "impossible situations" where deaths are forced. How could we do that yet keep the game hard, and even make it get harder with time? I see two main approaches:
- Keep the levels procedurally generated, and do some clever coding to make level generation harder & harder without being unfair ;
- Use pre-made "level chunks" of various difficulties, that would be playtested by hand.
Solution 2 would be too time consuming & unexciting, not mentioning I'd need to playtest again from scratch if I decide to tweak physics constants… So yeah I'll stick with fully procedural levels. To quickly get something I can ship, I've wanted to avoid being too concerned about imperfect levels: a trick was to introduce an "oxygen management" mechanic. The way it helps with level design is that it lets players do (limited) air jumps, which means that even if there's a huge hole in the level it still leaves a chance to survive.
Now, for the ideal solution…
The main idea I've had for "100% solvable" level generation is to place an AI player below the screen, before rockets are even spawned, that "plays" exactly like the player would. It would randomly decide to swap sides & jump, the trick being that the AI also decides when it lands: When reaching one of the 3 "rocket lanes", he'd be able to trigger rocket generation. A rocket would then magically appear right where the AI is, so we're 100% sure that the game is playable :)
We could then adjust the difficulty in various ways:
- Especially in early phases of the game, filling voids with some additional rockets would help make things easy and the "AI path" not too obvious
- The AI could play with increasingly tight timing
- The rockets could be made shorter, or positioned so that there's little margin for error
I'm not sure how widespread this technique of using an AI is, but it may be fun to try. To be continued…