|CS 4455 Game Design||Blair Macintyre||Fall 2012||Unity/C#||No||Code N/A|
This was the semester game design project for CS4455 - Game Design. It was built by a team of 3 students, including myself, where one student worked on the UI, one worked on one of the models and some of the ray casting/targetting, and I worked on pretty much everything. That's not to say that the other students were slackers, but rather I asked them all to allow me to sort of steamroll through. I had already built most of the models for the demo, an I had the basic structure of the game already coded as well.
In the end, the final unity project consisted of around 15,000 lines of C# code, about 90% of which I coded in the space of 2 weeks. Every actor in the game inherited from a master class that implemented the majority of the behavior and physics, with individual inheriting classes for each of the 6 different types of possible actors implementing what was unique to each. Every type of character had different motion, health, speed and combat profiles, and balancing each was fun. Each of 3 primary actors the player could control had a special attack (like flame thrower, web-snare or aoe rocket) as well as being able to summon up to 3 minions which were limited, mini-versions of themselves. Each could be used in 1st or 3rd person perspective, and the player could directly control any main or minion actor, as well as broadcast limited commands to all of the existing actors under his control, to give a squad-style flavor as well. The enemies were also drawn from the same 6 actors, and spawned from 3 locations on the map. Their AI wasn't too tricky, although I did code it to not be easily fooled into attacking throw-away actors.
The professor told me he was surprised we got everything we set out to do done. It was a pretty epic project, and turned out pretty well, although I have since put a lot of time into refactoring the AI and improving the ray casting/targeting, among other things. I've waited since I played my first non-console game in 1983 to have an environment to work in like Unity, so I relish the opportunity to fiddle with this game.