Added boosts, second chance rebounds, visual and audio feedback, ability to shift to the opposite side of the track, improved the look of the stars and tweaked the procedural level generation.
So far I’m really liking how this plays. Even though the current difficulty is set higher than it was previously it still feels more “fair”. The rebounds really seem to help with that (those red lines that bounce you back when you fall). The addition of the shift mechanic, where you can teleport to the opposite side of the track, adds another player-choice element. With that in I’m pretty much geared up to start adding in scoring system, which will award bigger bonuses for well timed moves. I’ll have to play test it, of course, but I think that will add quite a bit to the fun factor. Maybe I’ll add in some obstacles as well (pauses to jot down another note… maybe exposed wires or vertical walls or… oh… where was I?)
Once that’s done then I suspect that I’ll be ready to start working on what I’m calling “level generation intents” (for now). More to come on that later, but the basic idea is to make the random level generation more structured and fun to play by adding a layer of “intents”, which acts sort of like AI for real-time level building. I know that sounds strange but I think that it could really work out pretty well. It’d be kind of like saying “build the race track solely around the shift mechanics for a while… now let the player rest… now build around the gravity flip mechanic… rest, now build some other idea…”. This is in stark contrast to the type of generation shown in the video above, which builds the same sort of rack tracks over and over with linear chances of adding interesting mechanics (flip/shift/boost) once in a while. The new way, the generator would basically choose intents at random and then stem off into the appropriate level generation sub routine to build patterns which meet the requirements of some particular intent. After a reasonable play period, generation would then switch to a different sort of generation sub routine and build patterns based on the requirements for that particular intent instead… lather, rinse, repeat until win or lose condition.
It’s a similar to the trick to one in which a developer pre-builds a bunch of level chunks for the level generator to just chose at random and throw into the game, only this new method is purely procedural. There are no pre-built chunks, only ideas behind patterns so that the generator can build random chunks on-the-fly. My hope is that this will give the player periods of patterns to play with (people love patterns), but also that it would remain transparent enough so that players don’t get that “hey! I’ve played this exact part before” feeling (because they have). That is something I’ve always despised about present day procedural level generation algorithms and absolutely must be avoided.
If you’re still reading this, congratulations! You must have both a logical and artistic mind. Otherwise, you would have lost interest.
Anyway, let’s just say that I’ve got some interesting stuff to work on in the near future and hopefully it’ll all make for real-time procedural level generation that’s actually fun to play. Don’t hold me to any of this though!!! Game development is a living art and this is purely conceptual at this point. Games change constantly throughout development and I may feel the need to curb this idea if it ends up going against one of my core requirements for this game, or if it doesn’t work as well as expected, or come up with something that works better, of if…. well, you get the idea. Please don’t get too attached to any of these ideas or features. They may evolve, be replaced, or even be omitted in the final game if I feel that the game is better without.
Less is often more – more is often more. Only one way to be sure: try it both ways!
(My new mantra…for now)