Rapid-fire Student Postmortem: Gamebuilder's QuantumS (U. of Illinois at Urbana-Champaign) [02.19.09]
- Kevin Dressel
QuantumS is stealth-based puzzle game created by a team of students from ACM Gamebuilders, a special interest group at the University of Illinois at Urbana-Champaign. Gamebuilders is composed of a n umber of small teams working on individual projects.
After choosing their projects at the beginning of the year, each team works on theirs independently until the end of the year when games are exhibited at Engineering Open House.
In quantumS, you play as a young boy who must use his time traveling power to evade guards, solve puzzles, and escape the ship he's trapped on. The game play revolves around recording your actions to the timeline, and teaming up with past versions of yourself, which repeat everything you did before traveling back in time.
We chose to use the XNA Framework by Microsoft so that we could put our game on the Xbox 360. XNA is an engine focused specifically on game development. It provided many tools and features that simplified the development process. This was especially useful because our game was more ambitious than most Gamebuilders projects in the past.
The project was started late spring of 2008 after a successful demonstration of our team members' first Gamebuilders projects, Frantic Elevator and Super Einstein, at the Engineering Open House. These two projects had worked closely together and the two teams decided to combine for the next year. The project team for quantumS consisted of five core software developers along with several other programmers, two graphic artists, and a composer.
What Went Right
1. Switching to SVN. In the early days of our developing QuantumS, we shared code by putting it onto a USB flash drive. We would pass it around to each team member and merge the code manually -- which was painfully time-consuming.
As our project grew in size, our team needed a better method. Switching to using SVN greatly simplified the task of sharing and merging code, and it significantly increased our team's productivity.
2. Scripting system. To tell our story, we needed complex scenes, so we wanted some sort of scripting ability. The system we came up with stored events in XML format, composed of actions that are executed once all the event's conditions are met.
Time travel made the system more complex than we anticipated. For example, some events should be reset when Timmy travels back in time, but some should only happen once. We solved the problem with two types of events: those affected by the timeline and those in "Timmy time."
3. Guard AI. Using A* path finding and a primitive state-based AI, we created guards that were able to sense and chase the player, without seeming too stupid or too persistent. The guard AI was one of the most complex pieces of our game, requiring editable waypoints, efficient ray casting to determine whether the guard could see Timmy, and appropriate behavior near closed doors and chests.
4. Level editor improvements. While both the level editor and scripting engine took a significant amount of development time upfront, as well as time throughout to provide bug-fixes, the added haste and effectiveness of generating new content especially during crunch time made it all worth it in the end.
Keeping our level editor as a standalone application had the added benefit of allowing different teams to work on both the content and the source code, without too much interference from one another. Being able to see our levels come to life in the editor also allowed us to bounce game play ideas back and forth, which helped add a richness and depth to our game that wasn't present in the early brainstorming stages.
5. Barriers broken. ACM Gamebuilders in the past has discouraged making games heavy on content because those games generally don't get finished. The typical Gamebuilders game is simple and arcade-like, but QuantumS has dialogue and cut scenes that tell a story, about 40 minutes of play time, as well as an ending. Those are all things that were previously unheard of in our club's projects. In addition, our finished level editor and scripting system were more robust than any project's before. QuantumS shows that undergrads actually can complete complex games.