It’s been a pretty long day in front of the machine today, going on 15 hours or so in Unity3D working on my Super Space Troopers indie video game. Saturdays are great for really being able to get stuff done. I find that unless I’m putting in a good 8+ hours in a day that I’m really not getting into the full game development mode. You know, that point you reach where things just start flowing into source code before your brain really even has a chance to process what it is that you’re doing…. but it works nonetheless.
Today I managed to get quite a bit done; more than I expected really. So I’m a tiny bit ahead of schedule, putting me that much closer to reaching my goal of having a game to put on the PlayStation Network. While most of what I did was actually code cleanup, it had to get done at some point so better now than later. Here’s a few of the things I was able to complete throughout the day.
I completely rewrote and replaced the Player’s health and associated scripts in Unity3D. They were some of the first bits of source code that I wrote when I first took up this challenge and therefore weren’t very well written or documented. They’re in much better shape now and can more easily be ported into other aspects of the game. The next thing I did was change the way that enemy weapons worked. They now send details through the SendMessageUpwards function and send an array of details (now that I know how) that can be used. Things such as weapon damage, enemy type that fired it, what the weapon should do on impact, etc.
After that I moved onto something completely different. Checkpoints. The unexpected, but in hindsight completely obvious, consequence of sending the player back to the checkpoint is that any enemy that the player has destroyed (and using the Destroy function in Unity) is no longer available easily in the game. So I had to make changes so that they’d be disabled as apposed to Destroyed. Also, their animation sequences needed to be reset upon the player spawning at the checkpoint. And since I apply a script to each enemy where their speed matches the player’s speed, by source code, I needed to reset them to their original positions upon the player reaching a checkpoint. I also had to do the same thing with many components of the environment as well, including my seamless sand dune meshes. Of course if the player reaches a checkpoint and then dies, they shouldn’t get to keep the points they’ve earned, should they? Or the stats for destroying enemies since reaching the last checkpoint either. Now those details are stored upon reaching the checkpoint and reverted back to if the player dies before the next checkpoint is reached.
All in all a very productive Saturday! I’m now in a good position to start finishing up the enemy sequences and animation and get the 1st level of the game done visually. Music and sound will come much later.