Tuesday, October 28, 2008

2 Week Notice

2 Weeks. 14 days to get finished, feature complete and get polished. That's it. I'm screwed.

Hmm, other people on the team may read this and hearing (?) the Producer say such a thing may make them think bad things or make them think that they work for Acclaim (ZING!).

Right, back to the point. I feel that we can finish and reach the (new) goals that we set as far as content is concerned. Over the weekend I fixed 2 system bugs and last night I opened up the Debug Mode for my Tester, so that may make polishing easier.

-For the Debug Mode, I realized that when I test I turn on a bunch of stuff in the code by uncommenting it. Obviously this doesn't work with a compiled version. So I put all of that stuff into a function I called "Debug()" because I'm clever that way and gave it a toggle by pressing the "D" key. So that should be helpful. I also put in a Wire Frame mode (like in ThiefEd) to help with collision debugging. So that's cool.

-For the bugs, my Tester discovered an Environment Bug which led me to run all over the game (in my new wire frame mode) looking for similar bugs and fixing them. Basically, if the top of a rectangle is flush with another, Zero will climb up onto the flush one. The climbing code sees if you are higher (even slightly) than the top of a box and then for collision. So if you hit the corner, Zero climbs up onto the bottom rectangle (and into the top rectangle) and then the collision routine of the top rectangle would tigger and throw him off of the stage and end his short, miserable life. So that's betterish now and I'll have to be more diligent in the future when building levels.

- I found a similar bug that is a System Bug over the weekend. Basically, when you jump just right into a corner, it kills you. Like, outright. As if the corner was filled with invisible spikes dripping with Hepatitis A,B,C and V. Turns out the Squishy Code was to blame. The Moving Rectangles (of which there are very few in the completed levels...odd) have the ability to squish you, so the system detects if you are touching a rectangle with your head - the roof, and with your feet - the ground. If both are, then it's bad luck to be you. The bug happened because it didn't specify the rectangles had to be moving. The Corner then triggered both, um, triggers, and killed like a member of the Family.

-Finally, another System Bug. When climbing a short box, the collision would get all confused and move the player. Turns out that the "Climbing" animation puts Zero down a little bit and sometimes into another rectangle. The collision would then trigger for that lower one and push you off to the side of that rectangle. So now I go ahead and skip some of the collisions if you are climbing. As a nice side effect, Zero can now climb out of water a little. I mean, you can now jump to a low platform on top of a Death Rectangle and climb it and still be okay. Previously, just touching the Death Rectangle at all would be lethal. This helps from a level building perspective.

-Right, on bugs. I see there being 3 kinds of "bugs." The first is a Environment Bug. These are flaws in the Level or the construction of the Level or Scripting. These are easy enough to fix once the problem is identified.
The Second are System Bugs. These are Logic Flaws in the Engine Code and are a Pain in the Ass. The main issue is that once these are fixed you have to Regression Test a bunch of stuff to make sure it still works. Earlier I would have gone through and deduced the Logic and tried to find the root cause. With 2 Weeks, Band-Aids work. Just as long as it works I don't care.
The Third are "Features" or Known Bugs. Like the black cloud around Zero. Yes, I can see that, no it's not a bug, no it won't be there in the Final Build.
Either way, I want the Tester to find as many of these as possible.

-I really shouldn't call what I'm finishing the Final Build, as the game as I want it will not be complete. The Final Build will have the full story and characters. For the time being I'll call the one we're working on the IGF Build. Yeah, that has a certain kind of charm to it.

No comments: