By Timothy Bewick, Joshua Catt, Chad Edwards, Roy Lye, Jonathan Rickard, Vaughan Sanders, and Eli Sutherland
As part of the Media Design School's (Auckland, New Zealand) diploma of Interactive Gaming, our class was required to undertake a group project, demonstrating the programming skills we had acquired during the previous six months in the course. The course is designed to take students fresh from high school and intensely train them to become game programmers. The project was to last eight weeks, and we were to follow a strict schedule and hit specified milestones.
We were warned on the very first day of the course that it was an intense learning environment. This included 24 hours per week of contact learning, with an additional16 hours required outside of scheduled class time -- 40 hours per week, minimum.
Our team of seven students, with no prior programming experience worth mentioning, developed a game called Happy Traps.
The focus of the course was comprehensive training in C++. This was by no means a glossy, high-level review of theory, but a detailed (sometimes head ache inducing) low-level practical approach. Console, STL, data structures, OOA, OOD, OOP, and Windows GDI were all covered at length, with countless game-based assignments throughout.
Mathematics was also a core component. Tutors took a bottom-up approach, and provided practical applications and game-based examples for vectors, matrices, quaternions, affine transformations, analytical trigonometry, analytical geometry, collision detection, and response. All of this was reinforced with several game-based assignments.
Finally, we moved into 3D graphics programming. DirectX was the API we were exposed to. All the knowledge we had accumulated came together in this segment when we were given the opportunity to write our own 3D game from scratch -- no middleware and no external libraries (apart from DirectX). This was a truly amazing time, and the discussion among the students was typically in the vein of, "Wow! We're really doing it. We're making 3D games!"
A concurrent class called "Industry Trends and Practises" brought us up to speed on what the game industry wants from graduates. Here we also studied game development history and formal practices, including source control, game design, social and ethical issues, project management, risk analysis, development paradigms, and roles and responsibilities.
You would think that upon the first day of pre-production, ideas would be flowing from every team member, desperately trying to convince the group that their idea was the best. You would think, but this was not the case!
After some rigorous cajoling from our tutors, two prominent concepts for a game surfaced. One was a 3D toy car racer, and the other was based on Bomberman (by Hudson Soft, 1983), with some points of differences. After much arguing, arm-wrestling, shouting, and brawling, we decided that the Bomberman-influenced title would be more fun and could feature cartoon-like violence, inspired by Happy Tree Friends (Mondo Media, 2000) ... and psychotic penguins, who were contaminated with radioactive isotopes.
The team envisioned a game that would be frantic and keep the player moving as much as possible. The game should allow up to four players, either human players or AI players, to face off in a death match-style arena on the same computer.
The team faced several constraints. Most notably, we had no artists. Second, the development timeframe was a mere two weeks for preproduction and six weeks for production; in short, not much time at all!
With these goal and constraints identified, we came up with a high concept for the game: "Happy Traps is a high speed action, strategy game, similar in style to Hudson Soft's Bomberman, but with an added strategy that gives the player an indirect way of harming his or her opponents. The player assumes the role of a cute but aggressive radioactive penguin that attempts to crush his opponents with blocks of ice that can be set in motion by laying spring traps."
Our tutors, who assumed the role of producers during production, gave us the green light, and so began the pre-production phase. This involved creating a thorough game design document, followed by a technical design document. Along with class diagrams, the technical design document detailed the deliverable milestones and the project management schedule with each team member's tasks. Once the two documents were complete, we began production.