Thor’s Last Stand

Play the In-Browser Version

Download the Standalone Version

Thor’s Last Stand is a game that I worked on for my game development class at MSU during the Fall 2009 semester.  For this assignment we had 4 weeks to design and implement a game from scratch.  With this project our group and myself especially decided to be very very ambitious.  This was the first time I had done any complex reactionary AI or any multi-tiered AI, and considering our incredibly short deadline, I look back at this project as one of my finer moments in game development.

What I worked on for this project:

  • Created a 3-tiered AI system from scratch with no previous AI experience
  • Wrote the animation script for all units
  • Created the unit PhysX ragdolls
  • Designed the unit/squad architecture to be extensible and straightforward
  • Worked within a very short 4 week timeline

So to give you some background, the theme that Professor Winn gave the class was “Weather”, and our group decided to do something a little outside the box.  I have had an interest in Norse mythology for a long time now and suggested a few ideas involving Thor wielding weather as a weapon.  We ultimately agreed that this would not only be very fun to work on, but be very different from the games of the other groups and be very challenging.

This was another occasion where I was grouped with very talented people who let me be very independent and focus on my AI design and coding.  Below is a few UML diagrams of the classes I developed and some example code.

Sample UML class diagrams: (Unit/Squad UML Diagram) (State UML Diagram)

Sample Code: (PassClosestUnitFunction) (MoveUnitTowardsFunction)

Needless to say this was a lot of coding.  Right from the beginning I knew that I had to do this the right way or I would never get anything done.  Everything uses regular C++ naming standards (they never taught us C# standards) and (hopefully) very descriptive function names and comments.  I had just recently read a very good book on AI that did a really good job of making things simple to understand without failing to provide examples and without obscuring important details, and so was able to approach the huge task from a good design perspective while churning out tons of code.

This project was a lot of work.  I was able to produce over 2000 lines of code, design all the communications between the entities and the 25 classes, code the animation scripts for the units, and create all the ragdoll and unit prefabs in only 4 weeks.  Unfortunately, between my senior design class for computer science having a beta deadline on the same day as the game was due and actually being physically required to sleep (still working on fixing that one :) ), we did run out of time.  I wish I had had more time to playtest the bugs out of the AI and get the infinite wave system into the game.

Having said that, I still feel like Thor’s Last Stand is a great game and that it is tons of fun to play.  From it’s art style and music to it’s grandiose spells, it feels you are wielding the power of the God of Storms himself.

If you want to play the game, please click one of the links above for the in-browser or standalone application.  Please comment on the game by sending an email to

Comments are closed.