I spent yesterday working away, answering email and generally trying to steer a great big project ship with neither oars, rudders or a combination thereof towards something that could be considered the end. For my part I’ve debugged the bejeezus out of the castle level and have like 4 traps left to install, none of them tricky. I mean, once you’ve synched up spikes to they trigger in a wave, it puts stupid things like wall bladed in perspective.
What managed to eat most of my time yesterday was a bug I discovered. Basically If the player is hurt and they fall down, they stay in the Hurt Behaviour until they hit the ground, regardless of whether or not they should be doing something else, like flailing about as the ground rushes up to bid you adieu.
In trying to fix that, I first made it worse. Since it was a trap that was doing it (a ceiling mounted circular saw in this case) I tried modifying the code so that once you fell a certain distance you would fall instead of act all hurt. Traps only work if the player isn’t hurt though, so once being hurt is turned off, traps can, and will do damage again. The grisly outcome of that was that the blade would grab the character and push him upwards into itself, while dragging him across the ceiling. It was, graphic, in a cartoon kind of way. So that didn’t work.
The solution I eventually figured out was adding something into the physics algorithm, so that once a certain distance has been had, the player is falling instead. Thankfully this amount is well outside the area when the trap probably was in the first place.
– Having had some quality time with the traps I’ve discovered a couple of things. First of all, Hard mode is, well, really fuggin’s hard. A single misstep when traps are involved is enough to make for a really short trip. I get killed and they’re my traps. Having a thought about it, Perfect Mode is going to be tough, really tough.
Hard is providing a great way to test the level though. If I can beat a level on Hard, then the regular folks should be able to do it on Easy or Normal, provided they don’t fall of of things.
The other thing is that they need sound, or at least I need sound for them. In other types of games with traps from Crazy Eddie’s Giant Video Game Trap and Crate Emporium I get by via aural (oh, don’t be a perv) cues. I listen for the rhythm of the puzzle and go accordingly. Playing on mute makes them harder. Then again, if I can beat them on Hard, with instant death failures, and muted, it may mean the game is almost playable.
– Which brings me to the titles. I’ve been building some front end stuff so the menus and stuff look like they’re in a book. To that end I’ve worked out how to do a dynamic page turn with art on it. Basically, the previous incarnation of the page turn (other than being on every screen – which killed pacing and was stupid) had blank pages and art would appear as if by magic at the end of the animation.
If I use an Image Buffer, it isn’t a problem. An image buffer is basically a blank scrap of screen. The other kind is a screen buffer. Basically, a screen buffer draws things on the screen. An image buffer draws things on an image, that I can call something or do stuff with. The screen capture functions use this principal to take screen shots.
I can also make them different sizes, which is how the page turn is going to jive. In effect, I can make an image that is smaller than the screen and draw things on it. I can then overlay that particular image on top of the page turning animation. With a couple of tricks, I’m confident I can get them lined up and it’ll look like the art is on the pages as they turn, and the art on the next page is there to. I think that will be, um, awesome. Provided I can get it working of course.
-Finally, if one were to go here:
they could see what The Prison is going to look like eventually. Now imagine that the fire is animated and the pink stuff (which is a mask by the way and would be ignored by the engine I think) is a window into other great looking stuff. I think it’s great. Check it out and send love.