Minimal Annihilation Postmortem

Posted by (twitter: @kerrichal)
May 16th, 2013 1:58 pm

Minimalism is not easy, with just 48h feels like anything you could do should be minimalistic by nature. I usually waste half a day at least to get a good idea but this time the idea come up quite early, a simplified strategy game. It is one of my favourite genres and I thought it would be funny to do. And it was very fun indeed :)

Link to Minimal Annihilation


The concept


The inspiration came from many places, a quick list:

  • Shadez: A game I played long time ago that consisted in building units using a cooldown system to the enemy. It had no building and the view was a lateral scroll.
  • Starcraft and Dune 2: I wanted the player to feel like in Starcraft, and many elements of the game are borrowed from the Blizzard game. Resource gathering, building, unit training.
  • 8-bit Starcraft video: A fake video that appeared some time ago in youtube, I really loved it. A pity we never had this one 30 years ago.
  • And even more inspiration from my childhood, like the Dr Who droids for the drones, the Turrican armor for the soldiers and the Starcom set of toys for the rest on units.

What went right

The idea

I have never played an strategy game with these game mechanics, and there was the risk that the game wasn’t funny after all or that the game mechanics didn’t work when put together. The task of setting up unit behaviour, movement, etc for this game take a long time, almost a day and a half without knowing if the idea would work, but at the end the feeling was what I expected

The graphic style

I’m not a graphician and I feel I’m not good at it. In my last Ludum Dare I spent many time doing graphics, and for this game I needed all the time to program a proper RTS. Thanks to the theme I could go for black & white graphics, they ended looking very “Apple like”. Another good decision was to scale them by 3X, allowing me to draw all the graphics using pixel art style. I’m not so bad at pixel art because I spent many hours as a kid playing with Deluxe Paint on Amiga, for fun and for some freeware games. The UI ended being quite good and big at the end, and the minimap works, although nobody has noticed it I think.



For the scope of the game I needed a language I am comfortable with, and again I decided Flash/AS3 would be the best to code the game fast. I still want to try to use Unity3D for Ludum Dare, but it will be in another occasion. And I wanted to use Flash to publish the game in a web browser.


Very little time left to submit the entry, I’m very tired. I take a look at my todo list and I read “particles”. I thought “Yeah, they would be cool when a unit dies, but I have no time for almost anything”. And then I coded the most minimalistic particle loop I could imagine, I just needed the particles to move, to detect the ground and to die.

And they were done using just five lines of code, these ones:

x += dx;
y += dy;

dy += 0.015;

if (y >= Game.GROUND_Y) dy = -dy*0.7;


Fool of me, I only used them when a unit dies. I could have used them to indicate that the droids are mining or when a unit is firing, but my mind was running out of fuel as I said.

It has sound!

Yes, it is my first entry with sound. I lack any musician abilities, but I have seen other people using tools like Autotracker to generate the sound and I decided to try to include some sound in the game this time. I had also downloaded a synthesizer tool to add some sound effects but at the end I only used one sfx for the clicking.

What went wrong

No right click

I was very happy on day one, the controls could be like in Starcraft: left click for select, right click for action, excellent. But then I remembered I wanted to distribute it via web, and Flash only allows the right click on AIR applications, (facepalm). I had to spent time patching all the code to make the left click behave in a different way depending on the different situations and it turned out to be quite difficult. The result, sometimes after you have done something with a drone and click on another unit, the drones move to that unit, losing the last action, usually mining minerals.

Nasty animation engine

At some point I had to deal with the unit animations, and the solution I implemented was quite basic, there was not much time to do a proper animation system from scratch. The result is that any new unit required to copy&paste several lines to load the graphics and create the images for both factions. The most tedious and boring task to do while developing the game is this one for sure.


One of the trickiest parts to implement. The AI is not very clever, at least knows how to get resources and to build everything. It can be a challenge to the player, but when the player knows how to win I think it is easy to win. Basically how it works is calculating its status and the oponent status and then acting based on its needs. Pretty basic but it does the work.


Lack of time

This is quite normal after all, milestones suck. I had a lot of things I wanted to add, like a proper tutorial, more sound effects, more builds, more types of units, add a repair option. The unit balancing is was iterated many times but still need a lot of tuning, I am glad (and surprised) that several people has asked for a final version of the game. I can do that, should be easier with plenty of time available :)


My scope for the game was too big, event a minimalistic scale and I had a hard time trying to implement everything I had in mind. But at the end I managed to get a full mini game, and I think that most RTS fan will find it very enjoyable. For next Ludum I hope to do something simpler, this way I will have time to focus in the sound or in doing something with Unity. But anyway I am very happy for having implemented a mini-Starcraft in 48h!

2 Responses to “Minimal Annihilation Postmortem”

  1. goerp says:

    Actually, only having the one mouse button in the end I think was a good thing for the game.
    It took some getting used to, but after that it was sooo easy.
    Just click, thats all.

  2. Zener says:

    True, I didn’t had time to try it. Big thanks!

Leave a Reply

You must be logged in to post a comment.

[cache: storing page]