A very porky post mortem.
After waking up to read the topic I went back to bed and thought about a few ideas in the small hours. “You only get one” – for some reason made me think of “24” or these cop shows where they have to get their man (or woman) in a certain time frame. There was an old ST game called “The Killing Cloud” by Konami that had a cool interrogation scene and I wanted to do something similar. So I borrowed another idea from an old (1988!!) ST game called Captain Blood which had a crude language interpreter.
What Went Right
It’s no secret that I particularly love doing silly sound FX and writing Music most of all for LD… which gets me thinking that maybe next time I’ll join a JAM group simply to do the music and FX. I’d decided to go for a Monty Python-esque graphic style and I’m actually quite pleased with how it turned out. I think I work faster this way than with pixel art, which I’m not very good at. (some of you people are mind-bogglingly good!)
I wanted a Python-meets-70s-UK-cop-show-The-Sweeney with plenty of silly phrases, (aka SHUT IT YOU SLAAAAG).
What Went Wrong
1. Don’t bite off more than you can chew
Implementing a language interpreter like Captain Blood turned out to be much more work than I anticipated! By the time I’d actually got it functional, I still needed to write the actual dialogs and knowledge for the suspects. There were originally meant to be 3 suspects and towards the deadline I was lucky to get the 2 finished! Sadly, the hints system conflicted with the actual results being said back to you which confused things rather than helping. I took out several words to make the game easier. There’s a ton of words that never got used! ;____; Also, I should’ve used 2 rows of icons like Captain Blood rather than the huge scroll-fest.

Captain Blood 1988 Language Interpreter

LD 28 Language Interpreter
2. Beware of Global Variables
Horrible errors started appearing and the laguage interpreter wouldn’t appear properly… but only when restarting or loading a new level. D: I hunted for hours to find the problem… turns out it was in a Global Static class where data was being loaded into a Dictionary that was constantly held in game memory… but wasn’t being wiped between levels. Don’t be led to believe that Application.LoadLevel(…) will magically reset everything! These classes persist… and there was no good reason to make it global in the first place!
3. Use the Right Tool for the Right Job
You’d think for a 2D game I would’ve used Unity’s new Sprite system? Nope, I couldn’t be bothered reading up on it, so the character is actually implemented as a skeleton with textures attached to quads in the skeleton heirarchy!
On the Saturday I got round to watching a video tutorial on the new Unity Sprite system… and WOW… it would have solved so many issues from the start. As usual, the Unity documentation is a little bit sparse, but the power in there is incredible. The “intro” to the game is done using the sprite system once I’d figured out how it worked.
You can play the game here: WHO ATE ALL THE PIES ???


