Creating a Tower Defense Game


It’s been awhile since I last blogged about my game development adventures.

I actually made lots of progress on IdleHeroes but it had just too much to blog about. Moving on, I’ve started a new project – a tower defense game!

I’ve always been a fan of TD games. I still remember my first TD game and how fun it was. It had always been my dream to create a TD game.


A dream

My first TD game was made in VisualStudio back in 2010. When I first learned how to type in code and still struggling with fundamentals, I attempted a simple text-based TD game. It had no graphics and didn’t really have anything. I re-enacted what it resembled in photoshop:



TD Game 1 (2010)

The second TD game I made was with FlashDevelop and Flixel, sometime during the development of Introvert in 2012 while I was still studying.

swtd ui.png

TD Game 2 (2012)

It was however, short lived. I ran into bugs and the game crashed non-stop. Frustrated at the programming aspect, I gave up.

Years later, I returned to Flixel sometime in 2014. I was tasked to make a TD game for a friend. He convinced me that I didn’t need much programming – he just wanted the art. I did however, code various features – pathfinding, tower placement, upgrading, enemy waves, shooting and killing. It went surprisingly well.

My art quality had also shot up since I first started Flash game development, combined with my new WACOM tablet. This TD was simple and wasn’t my personal project so the moment it was completed, I didn’t bother. It was a one-week project kind of thing and I just wasn’t ready to take up the challenge of making a full TD.


TD Game 3 (2014)

It is now November 2015. Picking up Unity earlier this year, I developed IdleHeroes. It features some of my best art to date, but I have now put it aside because it spiralled out of control. Now I want to try a shot at making a very simple TD game. Nothing complex, but something simple and fun.

I have learned a lot from trying to make a game overcomplicated and necessarily complex. It really bogs down the game and it gets very tiring. In fact I think I get overambitious easily. I just love making games so much that I form too big an ideal of what I want it to be, so I have to focus at a really small scale, then work on improving it once I have established the basics. And this simple development is the style I will use to develop the game.


This is also the first time I am writing a detailed scope covering what this game will have and will not have. I have 3 scopes:

  • Tiny Scope – at bare minimum, this game is playable (1 month development time)
  • Medium Scope – add some of my unique ideas (2 months+ ?)
  • Impossible Scope – adds all my crazy ideas (??? months)

This is more to keep myself in check so things don’t go out of hand. I can get really crazy when it comes to developing a game I really like that and working alone means I must be careful not to bite off more than what I chew.

So onto the development…

Now that I am more experienced and my skills have improved with better art and programming, hopefully I will meet with better success as well.

This is the game after 1.5 (2).gif

First attempt at top-down walk animation went pretty well

It doesn’t look like much to some, but honestly to me, it is fantastic progress. People often look at all the cool games out there and don’t realize how difficult it is to make a game. I have every function of a basic TD prototype working, and that is very important. From the enemies being able o be shot at when in range, to the turrets’ upgrading when you get gold…those are really important.

It actually felt like I took a long time, but only 36 hours had passed since the start.

And it has been a long time since I did something super exciting. I was really excited working on everything!

I had to restart from scratch because I had no knowledge of TD programming in Unity. It was like IdleHeroes all over again, reading tutorials and learning.

Here’s a closer look at the game so far. Mostly placeholder graphics are in place. I can’t wait to draw the official map!


The enemies are hiding from my screenshot

The game at this stage contains:

  • 1 Tower Type that can shoot and kill enemies
  • 1 Creep Type that can spawn in waves
  • Lives system
  • Gold
  • Towers can be upgraded and sold
  • You can select a tower and the panel displays its stats and stats update when upgraded

These are all the fundamental basics of a TD game and it was a priority to get these done because I wanted to gauge how long this game would take me to code, and also I wanted to get a feel of how difficult it is.

Needless to say, it all went very well. And now that the basics are done, I can move on to the fun part of adding more tower types and variety to the game. In fact, I already begun working on some graphics!

Take a look!


A lot of people don’t understand how difficult it is to make a game. It involves a lot of things and not just the common ‘programming’, ‘art’ and ‘design elements’.

It’s about making all of them work well together to create a  game that is:

  • Fun
  • Looks fantastic
  • Run smoothly

All of the games I made lack one or the other. I’m just more of an artist than a programmer or designer and it’s challenging to make a game alone and handle everything from art to programming. They are two opposite ends of a spectrum. I really wanted to get a job so I can work in a team that is capable of creating a game with all those 3 key elements above.

Oh and apparently, my game wasn’t the only thing crashing xD


Unity crashes a lot too!

I can’t wait to see how this game will look like in 1 week! Although I don’t really set a deadline for my personal projects, I don’t like it when things drag too long. I really want this game published and the key to that is making something that is simple yet fun.


Leave a Reply

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

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

Facebook photo

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

Connecting to %s