Mini Circle Wars post mortem

Posted by
April 29th, 2013 5:47 am

This Ludum Dare has been a triumf for me personally, being the first time I’ve participated in a game jam. I never would have guessed how much is possible in less than 48 hours when you put your mind to it, and the community is fantastic. I will definitely make time for something like this again in the future.

I ended doing a small game called Mini Circle Wars.

Theme: Minimalism
I didn’t like the theme initally. It didn’t really spark my imagination and it seemed like a carte blanche to just do anything minimal and simple. But I quickly got an idea and started working on a minimal RTS with circles battling each other. So the gameplay is simple (build circle towers), the graphics is simple (circles in a handful of solid colors), only three sounds, and one game mode. I think it fits the theme well.

It’s sort of like a Tower Defense in survival mode where you are attacked from all sides until your base is destroyed. I like how you need to spread out your towers to extend the area you can build on, yet you need to keep towers close to each other to protect them. Balancing the game turned out to be hard. I think I spent three hours going back and forth between “this game is too simple” to “this game is too hard”. I still don’t think the balance is quite right, so I might fix that up in a post compo release.

Other than that, I think it turned out quite well. I especially like how you can zoom in and out and watch your creation getting attacked. Of course I can think of a lot of features that could be added in a future version, like more game modes, several difficulty levels, mission based instead of survival mode, more upgrade types, more interactive environment (like mining resource from circle rocks instead of just harvesting them out of thin air), and so on.

Picking Java and IntelliJ was a no-brainer for me, since I’m pretty fluent in Java (having used it since 2002 for various projects), and IntelliJ is so much nicer than Eclipse for general development. It’s not necesarily the best prototyping environment (I’m considering learning Lua for that purpose), but developing in Java is pretty fast if you now the language and your tools. Libgdx is also a really great framework that supports plenty of platforms. The only other tools I used was Aseprite for … well, mixing colors, and bfxr for the three ingame sounds. That’s it! And the GWT-version of the game is compiled in Eclipse since I never have gotten that to work in IntelliJ with libgdx :)

I’m actually quite happy with my code quality. It’s nice and clean and I can still find my way through it the day after. Not so sure about the overall architecture, since it’s neither MWC or anything else I know. It kinda just evolved dynamically while I made the game. It might need some refactoring if the project is to be extended.

I’m not nearly as happy with my rendering code, since it’s a mix of libgdx’s SpriteBatch and ShapeRenderer. One for text and one for interface and circles. They don’t mix that well since you have to end the SpriteBatch before issuing shapes with the ShapeRenderer and vice versa. I assume the ShapeRenderer is really meant for debugging mainly and not actual ingame graphics. But hey, it works :)

Some of my basic helper classes resemble stuff I’ve made earlier, so I’ll most likely create a small library from them for future use. Just basic stuff like Timer, Animation, and asset loading classes that fits my workflow.

What went right

  • I made a game. Succes! 😀
  • Tools and frameworks just worked. I’m glad I didn’t try to learn a new framework during the compo.
  • I like the sounds in the game, they fit well. Should have made some more.
  • Good code quality I think. The architecture might need some refactoring.

What went wrong

  • I would have liked to spend more time on the visual part of the game, but didn’t really have time for it.
  • Working past midnight on Saturday was a mistake. I didn’t really make much progress in the last 2-3 hours before sleep and was quite tired the next day.
  • I underestimated the process of balancing the game.
  • I spent entirely too much time thinking about pathfinding until I realised that the game AI didn’t really need it after all.

That’s all I can think of now. I’ve uploaded a timelapse video here:


Leave a Reply

You must be logged in to post a comment.

[cache: storing page]