So now I’ve gotten halfway done with the Cliff Level again, and playing through it, I’m liking it quite a bit. Every few minutes you’re doing something different from scrambling up unstable handholds to trying to outrun boulders to avoiding an environment as it falls apart around you. In contrast the last version had a lot of climbing, followed by more climbing and even though the little climbing animation is cute, it’s not enough to support an entire level of play. So I’m very happy with it already.
I haven’t gotten the scripting started for the level yet, since I want to lay the whole thing out first, but I have made a ton of notes on how it’ll work. It’s a lot of timers and triggers, and it should be reasonable and natural. What I worry about is sequence breaking. Hypothetically if a player were to get through an area without triggering a script, then the level will start to fail. Each script is dependent on the last one to have happened for it to work. So, even when I’m done scripting I have to go back in an play defense by setting up extra switches to make sure that my stuff happens in the right order no matter what.
I’ve also been thinking ahead to later levels and planned out traps. Stuff that moves and things that are damaging at certain points of their existence. Since each screen will only have a few of them, I should be able to reuse the scripts for a bunch of levels. If I had more foresight, I would have made them part of the engine and I would if I had more time. Maybe after IGF.
The traps are going to be tied in with the difficulty setting, and I will have a function for how they deal damage. Basically, on Easy or Normal, they just deal damage to you and stun you like an enemy attack. Granted, they may still knock you out of a move and kill you, but it won’t kill you outright. Hard and Perfect mode though, the traps will all be lethal. That’s why it’s called Hard or Perfect mode.
I was having an idea about the Checkpoint System recently, especially after deciding that traps are going to be a common feature in the later stages. The Checkpoint isn’t nearly forgiving enough, especially when there are so many things that kill you so hard. So I was thinking of changing it to something better. One of the problems is that the current system uses way points. So when you get to one, that’s where you restart when you stop being alive. However, you conceivably could respawn someplace precarious and die again then respawn and die, again, like some kind of karmic reincarnation hell. I’m thinking that if the player is running or standing when they go to another screen it’s clearly safe enough to be considered a checkpoint. Fall into that same screen, and it doesn’t count. Lose all your lives and it’s back to the beginning of the chapter though. That seems fair. I’ll add that when I finish the cliffs.
– Early on in the project I had an idea that I wanted there to be a random level option for the game. I had read about NetHack and thought that it would be cool to have randomly generated levels, providing endless play. At the time I couldn’t wrap my head around the algorithms and just figured that well polished and designed levels would be better, and I still do. Now it seems that Spelunky has beaten me to it, which is discouraging on the one hand, but at least now I know it’s possible.
So yesterday I sat and figured out a method for generating random, yet winnable levels using the Thief Engine. The part I was stuck on was figuring out how to make sure that the critical path would eventually lead to the exit. The breakthrough came when I realized I had it backwards, the exit was at the end of the path. In other words, don’t try to connect them, just run a path for as long as you want and make it as random as you want and stick the exit at the end when you’re done.
With that, I think that if I had a large table, I could run a random path generator by going a random amount in a random direction and updating the cells that it crosses. With that done I would use some kind of voodoo to place the rectangles. I’m not sure how the voodoo would work yet though, as I only worked out the method, not the mathematic madness.
However, this isn’t something that I would put into the IGF build. It’s way too late for new kinds of content and features, but it’s a very real possibility for the XBI version if it turns out not to suck. Doubly so considering that it would use about zero extra resources other than programmer time.
– The XBI version, or as I think in my head the Game of the Year Edition (it’s good to have goals) I would like the following in it:
Speed Run (Story Game w/ Story Scripting off)
The Dungeon Mode of course being the random levels. I may also call it “ThiefHack” if I’m feeling cheeky that day. It won’t be in the IGF version and probably neither will the Boss Rush.