I considered calling this post a postmortem… but I believe my LD entry My Little Robo is pretty successful for a first timer so “postmortem” would sound too pessimistic. Hence “after action report” – sounds way more upbeat, doesn’t it? Later I will also prepare a sort of “pre compo checklist” based around my experiences.
What went wrong?
- Integrating physics engine with cocos2d-x html5 – I was foolish enough to assume that if I would need physics engine I would figure out how to use it as I go along. How difficult could it be? It turns out that engines are not that difficult, but oh the documentation. It might not references the same API version as yours. It might not be written with Javascript in mind. It might turn out some stuff is not mentioned at all (like the namespaces). Figuring it all out I wasted several hours I could have used for other things.
- Javascript can make you cry – I am used to programming in C++ and encountering certain bugs like a mistaken variable name, or a lost comma in class definition at runtime was a bit nerve wrecking, especially combined with cryptic error messages.
- No sounds or music – I really hoped I will have time to make some music and sounds for the game, but because of physics engine integration problem I did not have time to do that.
- Physics instability – getting real time physics simulations to be stable can be difficult, especially when using physics to create gameplay – again something I could have done better if I did not waste time setting up the engine.
- Submission – Screenshots? I need my own place to host the zip file? Oh shit. I’ve got a shared server but I couldn’t find an option to upload anything to it, dropbox for some reason couldn’t finish uploads because my bloody ISP was apparently doing some late night infrastructure repairs. After a while I remembered that my wordpress blog allows uploading a zip file and used that, but that was about 5 minutes before the deadline.
What went right?
- Picking an innovative and extendable game idea – I’ve spent about 2 hours considering various ideas before I settled on the minimalistic robot. Compared to other options it was a bit more ambitious and risky, but the risks totally payed off. Judging by the comments, LD crowd likes innovation even if it is not perfectly executed and being praised for an original idea feels awesome. Also LD judging can be considered a “free focus group”. And it showed me that, yes, my idea is worthy of a longer game. Which is exactly what I plan to do now – have I picked a simpler idea or made a demake expanding would be more problematic.
- Using a web based platform – Javascript might be a bit difficult to get used to, but making a web based game was the right choice. Judging other entries I’ve quickly noticed that I am always relieved to see the web option. Also this should make it easier to publish the improved game later on.
- Javascript – While Javascript is irritating at times, it allows for quick iterations, debugging tools are nice and Javascript platform forces open source code. This last thing was a life saver, since it allowed me to dive in and debug inside the engine and to get to the bottom of the issues faster.
- Detailed running TODO list – this is a technique I’ve developed long time ago for dealing with having to code fast under a lot of stress and fatigue. I first write down the features, then break them down into essential implementation steps. If during development I get any idea of extra check that I should make, or another place in code where something should be changed – I add this to the list. It all works like a charm – frees up the short term memory, prevents forgetting important details and crossing out stuff that’s done is a great morale boost.
- Source control – a pretty obvious thing. More than once I was really grateful I took those few extra seconds to setup mercurial before starting coding. Also frequent checkins should be practiced – you never know when your tired brain will fsck something up.
- Precooking – cooking a lot of food before the compo that can be later reheated. It turned out to be a really good idea, eating a proper tasty lunch or dinner is a great morale and energy booster when you are programming for 8 hours straight. I should have secured stash of some healthy snacks too.
- Taking part – this was overall the best idea of all. Even though my submission was not as polished as I would like it to be, still many people enjoyed it and I very much needed such a confidence booster.