Jump to content
  • Advertisement

Tower Defence - Post Mortem

lawnjelly

1847 views

Background

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:

itch.jpg.de6e8815d16b78bcd5acb075087caba6.jpg

https://lawnjelly.itch.io/ramsbottom

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.

unity.jpg.d5c7ac0c0f7f4d3df3548178a79f2902.jpg

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).

monodevelop.thumb.jpg.2199848fd5acb95ea74b9d300a356a78.jpg

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.

Conclusion

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.



10 Comments


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
  • Blog Entries

  • Similar Content

    • By logicandchaos
      If you are making a clicker or hyper casual game and need to manipulate and display extremely large numbers then my asset might be just what you need. You can work with numbers upto 10^123 decimal places! It's on the asset store here: https://assetstore.unity.com/packages/tools/integration/largenumberclass-141445 

    • By zwolya
      Trade your way around the Bakersville Baking Convention in your quest to claim THE GOLDEN MUFFIN!
       
      CLICK on the different BOOTHS to see the muffins they have available, and what they are willing to TRADE them for. Make your INVENTORY match Chef Jacques’ as quickly as possible to claim THE GOLDEN MUFFIN!
       
      Read more and play for free at https://www.zwolya.com/the-golden-muffin
       
       

    • By zwolya
      Trade your way around the Bakersville Baking Convention in your quest to claim THE GOLDEN MUFFIN!
       
      CLICK on the different BOOTHS to see the muffins they have available, and what they are willing to TRADE them for. Make your INVENTORY match Chef Jacques’ as quickly as possible to claim THE GOLDEN MUFFIN!
       
      Read more and play for free at https://www.zwolya.com/the-golden-muffin

    • By joe123
      I'm a software engineer and i have entered game development field (Unity) for the last couple of months . I have made a couple of games on android using Unity that are only at concept stage now. And i mean by concept stage , that i'm focusing only currently on game play , not graphics and levels and anything else now. The games i have made are similar to (Color Switch) on mobile (The game has no levels , but gets harder with higher score or time). I'm making games with least resources now then decide which game i should focus on after getting feedback from users. I need guidance for the next steps that i should be doing. Like for example should i focus on one game and expand it ? Should i publish and market all of these games with their current state then get feedback with the best game then focus on it ? Should i use ASO (app store optimization) now  ....etc What i think i need is a game product manager , or an experienced indie game developer that can guide me what should i do for the next step. For anyone who has experienced a state similar to mine , can you share with us some knowledge about how to manage a game in means of marketing and everything else (not code related) ? To confirm my question , I'm not asking for example how to market my games , but i'm asking at which stage i should start marketing my games...etc I know answering this question could be big , but i need just some guide lines for now.
    • By Conny
      STEAM WISHLIST LINK || HAYFEVER WEBSITE
      RELEASE IN: First Quarter of 2020

      About Hayfever

      Help Thomas the allergic mailman gather all his lost letters! In Hayfever, the player takes control of Thomas; a young postman with a strong sense of pride in his work. There is just one tiny little issue; Thomas suffers from terrible (and we mean TERRIBLE) allergies.
      His allergies are so strong in fact, that when Thomas was delivering his daily mail, disaster struck. A massive sneeze sent Thomas flying, and in the process, he lost all his letters! Thomas’ boss Harvey is an ill-tempered little monster of a man. And it is up to the player to help Thomas avoid his wrath by collecting all his lost mail. Together with his friend Carlie, Thomas will venture on an epic journey that spans the entire year, taking him through each of the four seasons.
      It is up to the player to use his allergies to help him traverse the dangerous world, turning Thomas’ weaknesses into strengths! Different allergens have different effects on Thomas - radically changing how he interacts with the world.
      Regular pollen allows him to build up a big sneeze to propel himself through the air. Smog, on the other hand, makes him swell up like a balloon. Peanuts… Well, peanuts are a WHOLE other story.
      About the Development & the Team

      The game was mainly made by two people, Jonas Roininen and myself (Conny Nordlund. We've been teaming up with Kristoffer Engman (aka Knasibas) for music, Pablo Sorribes Bernhard for sound, and Filip Andersson for tools programming. We are currently at the home stretch with porting the game. We're sending it off to certification in two weeks (fingers crossed!)
      The game has been in development for little over two years. I've been working on the game at night after work and Jonas has been on it full time for about a year. The journey has been really tough but also extremely exciting!
      This has been our first game together. We have previous experience with game development but this was our first go at making something from the ground up together.. and actually finishing it. It all started with an extended game jam where we gave ourselves two weeks to finish something polished, worthy of actually pitching and showing off. Once we were done, we started showing the game at local places and quickly realized that kids loved the game.

      So to try and make a long story short. We worked our butts off and we ended up pitching the game everywhere we got the chance to. We also entered every competition we could find. One of these competitions, we ended up getting first price and was awarded a booth at Gamescom 2018. We later got third place in Big Indie Pitch and was a Semi Finalist at Tencent's Game Without Borders. After all of this commotion, we bumped into a new publisher called Zordix. They loved the game and are now bringing the game to consoles.
      If you have any questions about the game or the development, I'd be happy to answer. 
      Hope you check the game out, I'll post another topic when the game releases It will be on consoles at the same time as the PC release.
       
  • Advertisement
×

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!