Post-Mortem: A platform game done in three weeks
December 19, 2012
This is how I did a platform game in three weeks that reached more than 150 000 game sessions within the first two weeks.
How/Why I started
One evening I played around with Tiled – a great open source map editor. I wrote some classes in Monkey to load, handle & render those maps (You can find the source here). I played around with some Turrican sprites. When I played my demo game I just had the idea to do a small platform game for iOS and Android and I came up with Sophia’s World. The complete game for iOS and Android was done in three weeks.
I’m very bad at design and graphics. But I had those lovely graphics from a good friend of mine and found it a good idea to use them. I asked him if he could add some animation to some of the sprites and I think he did an amazing job. I also added some nice platform tiles from Kenney.
The coding part was very easy. I did a few platform games in the past (although i haven’t done one for years), but at least I know where to start and how to do it. Thanks to Monkey I were able to run it on various platforms without any additional work. I think the first level with the first enemy, the player sprite, the map and collision was done in one day – then I added additional things from time to time when I had an idea during I designed the levels (for example the mushroom, the bat and the falling blocks).
Of course I had to fix some bugs from time to time. I worked with various collision layers that I can check against each other but this caused some problems later on. I then added some Interfaces so special objects could be notified when various events are occurring. I hardwired this directly in the collision-layer-code so it felt a little bit hacky because I mixed up two separate solutions (data-driven collision-layer-system with object orientated notify-system).
The level design
Tiled is such a great tool. I’ve tried out lots of level editor tools in the past and never found one I REALLY liked. I love Tiled because it’s very easy to handle but because of the customizable properties, vectors- and Rect-Zones it’s very powerful. Also it’s open source, so if I ever need a special feature I can easily add it. I exported that data to JSON, cause this was an easy way to load the data into my monkey application. I now even use it for GUI-Stuff. For all my new apps/games I build the gui stuff and requesters with Tiled, export it as JSON and load it in into my application.
For the level design itself I first started to analyze various parts of well-known platformers like Mario Brothers or Giana Sisters. The levedesign was the part that took most of the time. At the current version there are 24 stages, but I will add more soon.
I decided to only scroll horizontal, although it would have been easy for me to add an 8-way-scrolling-routine. But I decided to go for right-to-left-levels because I want to keep things simple. The graphic style and everything is targeted for kids and although I love huge jump’n'run games where you can explore each level I don’t want to add this complexity to that game.
The audio & music
The complete sound effects and music was done in about two days. I think I could have put a little bit more effort into the sound effects (and I will probably do) but I was very happy how the music turned out (Listen to it: The Night | The Day).
I think I will add some more levels because a lot of players liked it and already asked for more. And I want to improve the “Get-Ready”-Screen (it was added in a hurry before I submitted the game to the app stores). I will replace it, so the player has some sort of progress map and can select each level he reached before directly.
The weird thing about this little project is, that it was my first project that reached more success across Android than iOS. Within the first two weeks it was played more than 150 000 times. This is huge for me. Remember: No marketing. No PR. I just submitted it to Google Play and iTunes and hoped for the best. I will prepare ports for the Amazon App Store and for Windows Phone. I have zero experience with these platforms so I’m very interested how they compare.