1Hour1Game: Of Droids and Particles
One hour for making a game is definitely not enough at all for a polished result. However, I believe this is good practice for rapid prototyping / any kind of gamedev jams with very limited time. It helps identify problems with your framework, workflow, the tools you're using, your time estimation, et cetera. So I gave it a go, hopefully this could turn into a fairly regular exercise.
Arrow keys to move, Z to shoot
It really isn't much. This is what my very quick 'TODO' list looked like:
- twinstick shooter
- screen shake
- score attack
- enemies = black mass -> join to form stronger enemies
- you = ...?
I may have overestimated my time / myself quite a lot. This is what I actually got, and how long it took me to implement it, based on my timelapse recording:
- initialising the engine + 1 'level' (1 kind of tile repeating) (6 minutes)
- you / player = robot thing, 1 weapon, 1 bullet type (8 minutes graphics; 18 minutes for walking around, weapon bobbing, shooting bullets left and right)
- enemies = black mass, single type (16 minutes for particle graphics and not knowing my own libraries, chasing player; 5 minutes for dying and disappearing)
- and some 7 minutes for displaying the score and other miscellaneous stuff
Obviously missing a lot. Not on the first list but still needed – player health / death and sounds.
What did I learn?
I am bad at estimating what I can manage in one hour during the planning phase.
I should document my libraries thoroughly, possibly even run unit tests for all sorts of situations. This would've saved me quite a lot of time for implementing the enemy particles.
I should probably replace Photoshop. I am quite comfortable using it, I know the key shortcuts and the general location of all the tools I will ever need. But it is still a bit of an overkill and sometimes it slows me down. An automatic / one-click export to PNG would be handy.
TextMate doesn't have auto-completion for haxe code, but it has macros and other shortcuts, which I should be using a lot more. Importing libraries is somewhat of a useless routine – typing 'import sk.thenet.gamestd.bmp.BitmapData;' in most every file does not take long, but it is yet another thing I shouldn't even need to bother about. Maybe I should have some sort of auto-import based on what I use in my code? Also, it does have a 'build & run' command, I just need to set it up – this would eliminate the need for alt–tabbing to Terminal every time I need to recompile, only to see the error report and go back to TextMate.
Having a zero in my universal bitmap font is a good idea.