What Went Right
Teamwork. This was clearly the number one cited area students talked about when describing the success of their games. They realized that they could not have completed their projects on their own in the time given without splitting up tasks and meeting frequently. An important point that our industry partners would like to see in new CS graduates is in fact the ability to work with and communicate clearly with others. CS students frequently fall in a more stereotypical model of the programmer who works alone and only communicates when absolutely necessary. Socially, students seemed to enjoy the support structure of the team environment.
Deadlines. Overall, students were satisfied (some very surprised) at how much they were able to accomplish in such a short period of time. Many students were taking three or four other classes at the same time. Consequently, a majority of the teams frequently pulled all-nighters to get the milestones fulfilled.
Technologies. CS students typically do not have experience utilizing different programming language APIs in a single program. CS-type programming projects usually fall along the lines of: “using Java, implement a program that reads a file of integers, stores them in a binary tree, and then prints out the number of steps to reach each integer in the tree.” Consequently, this project proved to be an opportunity to combine OpenGL, OpenAL, Lua, and other interfaces into a program that they invented themselves. As a result, students felt very good about successfully designing, implementing, debugging, and finally enjoying their games as they saw the various elements come together.
Student Gameplay Screen
Game architecture. Since the UML class diagram (described above) had to be created before any programming started, the teams were able to conceptually understand what was expected of them before partitioning specific programming tasks. This resulted in relatively simple and straight-forward designs—and made implementation and debugging easier. This modular approach also enabled students to understand that if given more time, they would have the opportunity to replace these modules with more sophisticated versions (i.e. physics, AI, collisions, memory manager, etc).