Architecture. Some teams said they would stick to more of a C++ object-oriented design approach. It turned out that C-style coding fit in more directly with OpenGL and that the object-orientation approach took more contemplation during the design-stage. It was pointed out that a careful C++ design would be beneficial due to its inheritance and composition features and speed up later development stages. A few groups did indeed take this approach for this reason.
Technical Aspects. There were a lot of technical aspects that teams would address—the gamut was large. One team, for example, discovered they were drawing the entire world instead of just the viewable world, resulting in rendering slow-downs. Another team had some ideas on how to improve the game’s AI. Other teams wanted to redesign their game engines to be constant-rate driven rather than message-driven so that they would run at similar rates regardless of processor speed.
Requirements and planning. All the teams agreed that Cal Poly Pomona’s 2D/3D computer graphics course should be made a prerequisite for this course. Also, a source code control system should be set up so that students can more easily manage their development. Another improvement might be to allow students to present their games on their own laptops and not be required to run on the Software Engineering Laboratory’s computers.
Time. The biggest time-related issue is that students underestimate the amount of time and effort to complete a task. Like many elements comprising a 3D game, one change can affect other things in the design—even if it was designed in a textbook object-oriented C++ fashion from the onset.
The Team Celebrates!
Students had a very challenging yet rewarding time in this class. Most had a lot of experience playing games but did not have a solid foundation of game complexity or construction. Many students informed me that they spent more than twice the amount of time in this class than they would have imagined. The excitement surrounding the design and construction of a team’s game of choice continually motivated students.
Our industry partners (i.e., developers in the greater Los Angeles area) have been advising us that students need to be gaining experience working with others and on larger-scale projects. In response, we have introduced 56 students to this environment and approach. Before the end of the term, a couple students successfully landed jobs in game development companies.
Due to the positive outcome of this course, I am currently developing a game engine design course that will serve as a prerequisite for the course described here. The game engine course will be offered Winter 2007. A revised version of the course described here will be offered in Spring 2007.