I spent a good part of the weekend getting the scripting in the cliffs levels going and I about halfway. I’m finding the going to be tricky, mostly due to having to set up the scripting to be bulletproof and not having done gameplay scripting of this magnitude before. Case in point, I have a set piece involving a Raiders of the Lost Ark style boulder chase, except with a lot of terrain destruction and so on. I got the sequence working in about an hour, including the modification of the levels themselves. I then spent 2 hours getting the bloody thing working well enough to not be dicked with.
Basically, the player gets to a screen, triggers a scene and triggers the variables on the next screens to also do the chase sequence. However, weirdness then abounded. Basically, if you ran into the next screen and then right back, the boulder would then disappear like it was part of some crappy David Copperfield trick. So I went ahead and made a mod that said, “if the boulder thing is happening and you try that Vegas magic nonsense, death to you.” So that’s nice. But between that and resetting the variables like that, scripting is taking me longer than expected. But I should get going faster now that I have a consistent workflow established and working concepts to get it done. Also the fact that the rest of the game doesn’t have anything like the set pieces in the cliff level is nice.
The idea is that I’m going to go ahead and get the other set piece on the first half all done by this weekend, and hopefully before so I can get a build to my very, very patient tester. Who can play it and tell me it’s garbage and/or full of bugs. So it goes.
– I’ve also managed to fix some basic bugs in the collision system. Script wise what I’ve done is when I want something to go away, I change the height to zero. No height means no area and that should have meant no way to interact since you can’t overlap 2 collision rectangles when one of them has no area and, from a math perspective, doesn’t exist. At least, you would think so. Turns out you can though and if you hit a rectangle purged from the screen by a script the little character climbs up the nothing and then falls to something. Death. So that’s much better now since I told the engine explicitly to only do that if the rectangles has a height and, you know, exists. As I think of it, that probably also optimized it a little, so it only checks for collision with rectangles that are there now.
I did something like it with the catch rectangles too. Odd considering. I’d previously remarked how, hypothetically, the corner contains all of the unused rectangles of every type, like some kind of singularity that stops you, kills you, teleports you and you could hang from. Now it just works by ignoring the Death rects without dimension or catch rectangles that live at 0,0. Good day(s).