Jump to content
  • Advertisement

Tower Defence - Post Mortem




It's been a few days since I put my latest alpha of my entry for the Tower Defence challenge on itch.io and my project page:



I think I've covered the requirements for the challenge, and made the game a bit above just the requirements so it is a bit more fun to play and has some longevity.

The reason I entered this time is because I'd been watching the previous challenges with a little envy, and had been waiting for one that seemed simple enough (I think the last one I looked at had multiplayer and I knew that could be a bit of a bag of worms). My usual low level c++ / opengl approach would probably be overkill for a small / low timescale game, so I decided it would be a good opportunity for me to try out Unity engine, which a lot of people are using currently.

What went right

1. Using Unity

  • Rapid development, well suited for this type of small game.

2. Attempting to get as much of the challenge completed asap, then leaving further time for more features / polish.

  • I finished much of the base functionality in the first week, then spent time on and off in the next few weeks just making it better.
  • There are lots of advantages to getting something 'finished' up front, and this is a development model I am trying to move towards.
  • You can 'call time' at any time, and still have a functional product. Unforeseen events always seem to appear and limit the time you can spend on a project. This approach guarantees that even in this situation you will still have a 'product' rather than a half-done version of your 'glorious vision'.

3. Using the asset store, not building all the models myself, and using sites such as freesound for the sound, and creative commons music.

  • For small learning games such as this it didn't make sense for me to make the assets. I know it takes me 2/3 of the time to make artwork etc, and while I am improving at it, I am better at (and enjoy) programming more than making artwork.

4. Finding some good tutorials to learn Unity (then throwing out their approaches!).

  • There are some great tutorials out there (brackys for instance), and these are good for learning unity specific stuff, but in some cases I could instantly see better ways of doing things. I put this down to many tutorials being pitched at total beginners, who are happy to get anything on the screen. But e.g. using Unity editor to lay out levels just seemed ridiculous and limiting.


What went wrong

1. C# .

  • I hate it, absolute abomination of a language. I spent more time than should ever be necessary screaming at the damn thing, it makes visual basic look like Shakespeare. I could write a whole blog post just on the things about it that make me seethe, but yeah, if I could avoid ever having to use it again, that would be great.

2. Monodevelop

  • Yeah, see point 1. Pretty bad. I might have to see if I can get another editor working if I use Unity again. I hear VS code may be worth a go (I'm on Linux). Monodevelop seemed really keen to reformat my code in stupid ways I couldn't turn off, and kept trying to autocomplete words incorrectly (that I also couldn't turn off).


3. Lack of debugging support.

  • This may have been due to my setup, it might not be straightforward to get debugging working on Linux (I'm assuming with Unity it is possible to do step by step debugging?). This meant huge problems debugging anything but the simplest code (I had to resort to lots of Debug.Log statements).

4. Unity editor.

  • I'm not really a drag and drop sort of guy. I tried to avoid having half the game 'code' being a particular setup in the drag and drop editor. I'm not even sure how to backup that stuff, I'm sure if I'd have had a crash I could have lost the lot. Come to think of it, did I have to backup all the assets too? With all that .meta stuff? I don't know. At least with code you can zip it up small and keep lots of backups. There should be an option in the menu to save your entire project in a compressed form without all the bloated assets etc, just the stuff that is a pain to lose.

5. Unity build times.

  • I had massive problems with excessive build times taking hours when changing platform particularly, it kept baking lightmaps (or maybe something with shaders?) when as far as I knew I had tried to turn them off. Eventually more by luck than judgement, I found that deleting some skydome assets I had imported and deleting (rather than turning off) an extra light finally cured the problem. Far too little debugging info is given out by the build tool logs, to enable you to know WHY your builds are taking hours. Googling reveals I was not the only one with this problem. Don't just tell me 'baking lightmaps', tell me which light is causing this, which objects etc etc.


Overall I found the challenge very worthwhile. There are several of us working on it, and bouncing ideas around and spurring each other on works very well. Also a little hint of friendly competition is good too! :)

I managed to get fair basic grounding in Unity, and have a better idea of whether it would be worthwhile using in any future projects.. I may use it for a couple more small games, or evaluate some more current engines (Unreal, or perhaps something more code orientated).

Doing such small projects is also great for experiencing and practising the whole development cycle including release and marketing. This can give a much better perspective on how much time you should invest in different stages, and improve your ability to schedule / finish larger projects. It is something I would recommend to beginners through to advanced developers.


Recommended Comments

Congratulations on finishing your jam. So many get started, but don't quite cross the finish line. I think your "What went right - #2. Get the simple version complete first, polish later." was a super smart move and good advice for others. :)

And yeah, debugging Unity with visual studio in a windows environment is dirt simple. Breakpoints, watch windows, Callstacks, etc. It basically plugs right into Visual Studio so you get a fully functional IDE. 

- Eck

Share this comment

Link to comment

Congrats on making it to the end. :) You really stepped it up by making such a quality game in a short period of time.

Share this comment

Link to comment

@lawnjelly "Overall I found the challenge very worthwhile. There are several of us working on it, and bouncing ideas around and spurring each other on works very well. Also a little hint of friendly competition is good too! :)"  

Great point, I think this is something that has been motivating me along this whole time but been unnoticed by myself until you said it.  For sure, I don't think I'd find the same level of satisfaction in doing this challenge if, well really, if it was for the 5 of us all encouraging each-other along.  Out there in this world there will probably be us 5 who care what the others accomplished.  

I've got to head to sleep right away, but I'll be giving your TD a thorough play-through.

Share this comment

Link to comment

Ohhlalala!!! your done bro!  Kudos to all of you guyz ^ _ ^ y   | <3 Awoken post

Need to catch a plane... ( I'll try to finish challenge even on the field : - D )

Share this comment

Link to comment

Thanks guys. Am excited to see how you guys games are coming on and looking forward to the next challenge!

10 hours ago, Eck said:

I think your "What went right - #2. Get the simple version complete first, polish later." was a super smart move and good advice for others. :)

Definitely. Time management / scheduling a project is something I definitely want to do a post on (not that I'm usually any good at it!).

Share this comment

Link to comment

Wow, congrats on actually finishing it! I gave it a try, and it's awesome! I really like the assets and overall aesthetics, also sounds and tiny effects you put in the game make it even more fun :)

Share this comment

Link to comment

This game is great lawnjelly.  I got right into it.  I decided to have a go on hard, cus you know.. why not, and after a few lives lost I came up with a strategy that seemed to be going my way until stage 8.   The boss on Stage 8 was a very strong boss.  He was able to knock out a tower from half-way across the screen.  Lost the rest of my lives once I got to that stage.  

Great idea having the enemies attack the towers to disable them.  I found with the random levels I was hoping each time to get a level that was conducive to my strategy. 

Over all really great game, good visuals, animations, sound effects and music.  And the fact that you were new to Unity and pulled it off in such a short period of time is impressive, to me at least.

Well done, I'll be playing this one till I can beat it.

On another note, thank you again for all your contributions regarding game play for my TD game.  I think the game is a much better game now than what it would have been if not for your feedback.  Much appreciation.

Edited by Awoken

Share this comment

Link to comment
3 hours ago, Awoken said:

He was able to knock out a tower from half-way across the screen.

Yeah, that is actually the 1 and only majorish bug, that I never got round to fixing. The enemies store the ID of the tower they are attacking, and when an enemy destroys a tower, sometimes the IDs can get mucked up (as they get reused). It's a common referencing bug, but debugging in Unity without step by step debugging just made it such a nightmare I never bothered fixing it!

But the big boxer guys are really tough, they whack through your towers in no time.

3 hours ago, Awoken said:

On another note, thank you again for all your contributions regarding game play for my TD game.  I think the game is a much better game now than what it would have been if not for your feedback.  Much appreciation.

No problem, it can be really useful having an extra pair of eyes, especially because we get so involved with our own project we don't see the forest for the trees! :)

Share this comment

Link to comment

Great job! I am very interested in a blog post about what you hated about C# as I love your style of writing.

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
  • Advertisement
  • What is your GameDev Story?

    In 2019 we are celebrating 20 years of GameDev.net! Share your GameDev Story with us.

    (You must login to your GameDev.net account.)

  • Blog Entries

  • Similar Content

    • By horror_man
      Hello, I'm currently searching for additional talented and passionate members for our team that's creating a small horror game.
      About the game: The game would be a small sci-fi/post-apocalyptic survival horror 3D game with FPS (First person shooter) mechanics and an original setting and story based in a book (which I'm writing) scene, where a group of prisoners are left behind in an abandoned underground facility. It would play similar to Dead Space combined with Penumbra and SCP: Secret Laboratory, with the option of playing solo or multiplayer.
      Engine that'd be used to create the game: Unity
      About me: I'm a music composer with 4 years of experience and I'm fairly new in this game development world, and I'm currently leading the team that'd be creating this beautiful and horrifying game. I decided that making the book which I'm writing into a game would be really cool, and I got more motivated about doing so some time ago when I got a bunch of expensive Unity assets for a very low price. However, I researched about how to do things right in game development so I reduced the scope of it as much as I could so that's why this game is really based in a scene of the book and not the entire thing. Also I'm currently learning how to use Unity and learning how to program.
      Our team right now consists of: Me (Game Designer, Creator, Music Composer, Writer), 3 3D Modelers, 3 Game Programmers, 1 Sound Effect Designer, 1 Concept Artist, 1 3D Animator and 1 Community Manager.
      Who am I looking for: We are looking for a talented, passionate and experienced 3D Environment Modeler who is able to create high poly realistic tunnels, rooms, props, in other words, small closed environments and is able to also texture them with a sci-fi/horror vibe.
      Right now the game is in mid-early development and you can see more information about it and follow our progress in our game jolt page here: https://gamejolt.com/games/devilspunishment/391190 . We expect to finish some sort of prototype in 2-3 months from now.
      This is a contract rev-share position
      If you are interested in joining, contributing or have questions about the project then let's talk. You can message me in Discord: world_creator#9524
    • By jb-dev
      You might want to break this one just in case...
    • By jb-dev
      This is a picture of plants of the Anthurium genus, and particularly the kind you could find in a rainforest.
    • By jb-dev
      This is a screenshot of what jungle ferns will look like in the jungle level.
    • By feelnside
      Hi everyone, let me share with you my new casual game on Android.
      At this moment the game is in open beta, so it's still in progress but I suppose it's ready to show.
      Airplane Wars - IO based game.
      Everything is quite simple. You need to collect as many points as you can to be on the top. Area has a lot of energy balls. Collect them so that you get bigger and faster!
      You have 2 minutes to become the best one! There are 6 opponents to you. Just rush and collect points, explode enemies and be on the top.
      It's really easy to play. Just move your finger in any direction and the player will follow it.
      A little gameplay video on YouTUBE.
      Open beta is available on Google Play. Feel free to try it out if you are interested in it


Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!