All right, this is going to be the last post-mortem post for “Girl with a Heart of”. This one will be primarily about technology: programming, tools, and builds.
Hot Spots:
There is probably a section of code in your game that just keeps throwing bugs at you. You keep fixing it over and over again. This means there is an underlying problem that you are not solving; instead, you are patching it. Sit down and figure out exactly what you want from that code, figure out how it should look/work ideally, and then rewrite it to make it so.
More generically: if you keep fixing the same thing over and over, you probably need to rethink it.
Unity Scenes:
I had a separate Unity scene for every level, but you could only start playing from the main menu scene. That meant I had to go through the main menu each time I wanted to play-test. Moreover, if I was working on another scene, I would have to switch to the main menu scene, play-test, and then switch back. This is too much overhead. Ideally, you should be able to drop into any place and time in your game.
More generically: make your play-test time as productive as possible.
Unity Components:
This one you’ll really grasp once you work with Unity for a while. Learn to love components! Figure out the minimum required behavior and put it in its own component.
Final Builds:
Find a good way to label your final builds. Make sure each build’s filename has the date you made it, platform, and version number. If you upload it somewhere (e.g. Desura), make a local copy of it, and name it appropriately: GWH_v0.2_Windows_Desura_5-17-11.zip
Builds for iOS and Android should take minimum amount of steps. I can’t even remember how many times I had to manually edit .plist file for iOS builds. Make a good copy of it and reuse it!
Create Tools:
If you find yourself doing something tedious, you probably need a tool. One of the best tools I wrote for GWH was the dialog parser. I decided exactly how I wanted my dialogs to look when I edit them (minimum meta-data and mostly dialog text), created a custom format to match, and then wrote a tool that parsed and loaded the dialog text file into the game.
Other useful tools: set certain texture import properties for all textures, teleport to anywhere/anytime in the game, edit various game data during runtime, make the avatar move faster, count words in a dialog file. A lot of these tools were easy to make, but they saved a lot of time.
I’ll try to post a lot more often to this blog, but my primary focus right now is to work on my new game: Alchemy College. You can follow its development right here.