My Little Tower Defense

by

Let me present you My Little Tower Defense, the first title under CK7 Studios name (when it was just me). It was developed to participate in a mobile phone videogame contest, Mobigame 2009. I tried to do something attractive, simple and complete in every aspect, and with those features and some luck it was awarded with the first prize on “Varios” section. If you want to know more, please continue reading.

Waves of enemies by ground and air!!


Summary

Game features

  • Colorful and fun graphics to attract people and make them play.
  • Up to 9 types of adorable enemies in more than 80 waves to beat.
  • Up to 9 kinds of towers with different effects like ice, fire, traps, …
  • Everyone can play choosing on of the 3 different difficult levels.

Development challenges

  • Memory optimization and object pooling to avoid GC.
  • Texture optimization to render up to 80 sprites at the same time.
  • Mix of vectorial and pixel-art techniques to speed up art production.
  • Good planning to make a complete game on 2 months.

Here you can see a game video (sorry for the audio desync):

The good things

Simple design

With Mobile Wars lessons in mind, I knew that I had to make a really simple game designed for a small PDA display. I focused on the essential, enemies and towers, and keep them simple. That decision was great as it made the programmation easier and I could focus on other aspects of it like graphics, sound or game balance.

Good planning

Making a complete game requires to pay attention to a great number of small and time consuming details, more that you can ever imagine. Having this in mind from the very beginning was essential to be able to finish the game at the right time for the contest.

You will find these in your code!

Programming language: C#

This language mixes in a perfect way the high productivity of Java with the flexibility and power of C++. I know it’s not as fast and powerful as his old big brother, but if you need those features… Futhermore, at this time with XNA 4.0 power and its multiplatform features it’s even better. So if you haven’t used this language for game development, you must give it a chance!

Design patterns

One of my favourite software engineering topics, design patterns are almost essential on game development. You can use strategy for IA behaviours, pools and lightweights for memory optimization, singletons for managers, observers, factories… there are well kwnon solutions for most of the problems that a game developer could find, and its a real pleasure to use them.

A* like mob (lol)...

The bad things

Windows Mobile API for C#

The game was developed with C#, which was great, but Windows Mobile API for that language was not so great. No alpha-blending, no rotations, no layer or depth rendering… ¡nothing! So yes, the game was developed with GDI images moving on the screen… xD Thanks god they have fixed it and Windows Phone offers XNA Framework to develop videogames.

Art

Knowing how terrible pixel-art could be, I decided to go simple, so I downloaded Inkscape and made all the graphics with basic geometric shapes. It was good, but in the end I also had to work at pixel level to improve sprites quality, and it was a loose of time. I needed an artist!!

Inkscape towers ready to be modified pixel by pixel!!

Balance

The other thing I lost most of the time with, the balance of the game mechanics. I didn’t made any infrastructure to do it, so I had to change code every time, recompiling and trying again and again. I dont know yet any great way to do balancing, but at least in new projects I move numbers to XML from the begining to avoid recompilations.

Conclusions

In sum, with this project I confirmed what I had already knew, that making a game requires hard work and perseverance to complete it, and some decisiveness to avoid never ending changes.

I also confirmed that in a game there is always something that can be better, even the most simple feature can be improved, so its necessary to fix limits (milestones are good) and avoid losing time with small and uninportant things.

Technically, this project was the seed for the mobile games engine we are currently using on our projects. But I’ll talk more about this topic in the future.

Postmortem ends here!

Advertisements

Tags: , , ,

One Response to “My Little Tower Defense”

  1. Work in progress: My Little Tower Defense « CK7 Studio's Blog Says:

    […] suena el nombre? Efectivamente es una nueva versión del MLTD original para Windows Mobile. Entre sus novedades podemos contar el uso de gráficos 2D de alta calidad, […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: