Atomic Creep Spawner post-mortem 3 | ♥ 1

Now it’s time to talk a little bit more about ACS and how the dev went…

…Here comes the traditional… Post-Mortem!

Technical stuff, the engine

If you’re into that kind of thing, you can grab the game source code.

I quickly knew I wanted to make something “Gauntlet-style” for this Ludum Dare. Basically, the top-down engine is pretty much the same as a platform engine without the gravity.

I already made many platform engines with the sacred “KiSS” principle in mind (Keep It Simple & Short). I use a common “Entity” class for all the things in the game which can move or interact. This simple class manages movements, gravity and collisions.

Power tip : to make a simple collision engine and avoid most commons problems, here is a magic trick. Resolve all X movements and recals, THEN and only then, resolve all Y movements and recals. You will see, it’s pure magic, you won’t have anymore problems with diagonals movements and this kind of things. Check the update() method in my Entity class in the source.

So the engine was done pretty quickly. I implemented a basic crowd collisions system to make sure entities could push other entities. There again, magic trick : resolve crowd collisions and recals, THEN the X wall collisions/recals and THEN the Y wall collisions/recals. This will unsure that wall collisions always prevail. Keep it simple.


The game was too ambitious here. To make it properly and balanced would have required another 12-24h I think. I made a few mistakes:

  • the Chest should cost 10 pts and give 5 pts when picked up and not 10pts to install / 10 back when picked up,
  • the Ghosts should have twice more health,
  • the game really lacks a basic fixed turret (shooter) to add a little bit of tower defense gameplay to the mix.

The Chests were clearly the major flaw here: easy to use and abuse.

Music & sounds

At first, I prepared a Wolfram tones soundtrack. But someone pointed me at the rules of their website: “you are not allowed to use it“. Too bad.

I searched for alternatives and found an amazing Python script called Autotracker (with another variation here which uses triangle waves for the main instrument). The name says it all: random chiptune-like music generator. I host the script here as it is damn hard to find online. The results are quite repetitive, but it helps greatly when you need a complete music track quickly (“quickly” as in “10 minutes”, including downloading).

The rest was almost entirely made using the amazing LabChirp, plus few things with Sfxr.

What now?

During the Ludum Dare, I thought to myself that simply watching the hero rampaging a dungeon was fun. Spawning mobs is cool too, but the passive hack & slash gameplay proved to be interesting.

Therefore, I might try to make a Progress Quest like game using the same engine: just watch your hero crawling a dungeon picking loots. The player would just have to make choices like opening inventory to switch weapons, drink potions, ..etc. Again, something like Progress Quest, but with visuals :)

Leave a Reply

Your email address will not be published.

  1. Hell Pé: « 

    That graphical Progress Quest idea looks interesting.

    PQ was one of the first video games to actually make me think about how videogames (in this case, RPGs) are made. Nowadays, when people are enthralled by social games where you can only click-to-wait, pay-to-not-wait and play-forever-to-eventually-win, I still think about PQ and what it taught me about that strange feeling of accomplishment you can have by merely watching a slowly-filling progress bar, eternally.

    By the way, Atomic Creep Spawner is great. Congratulations !

    January 12, 2013 at 14:57
  2. Diego F. Goberna: « 

    Amazing, juicy, thanks for the post mortem!

    December 23, 2012 at 13:13
  3. Lucien Boudy: « 

    I encounter the same issue for the music… I’ve tried wolfram tones and autotracker, maybe january ( could suit you, it takes more time to produce music but it’s fun and can be good.

    Good idea for the Progress Quest, I wait to see it!

    December 21, 2012 at 14:07