CompSci 108
Fall 2010
The Software Studio

VOOGA

Video games are an increasingly important medium in terms of international use, cultural impact, and profitability. Arguably, video games have also driven many recent advances in computer hardware and are finally gaining acceptance within the academic community as an area worthy of study. And why not? Video games contain all of the basic elements taught in computer science and commercial game engines are becoming increasingly complex software systems. While the focus of this project is not to build commercial quality 3D video games, you will build 2D video games that represent all of the same basic concepts.

As a class, create a software system designed to ease the creation, development, deployment, and playing of arcade-style 2D video games, often called casual games. Video games have many common characteristics that can be shared as a common design framework so that creating a new game requires only creating things specific to it. Common aspects, e.g., models, scoreboards, timers, splash screens, levels, rules, interactions, etc., should be factored out into a reusable game engine that generally supports those games that have some continuous movement (by either the player or the enemies), some goals that allow the player to advance through a series of levels, and a separate goal which causes the game to end.

At a high level, this software system should

As a class of developers, you will need to rely heavily on each other's documentation in order to figure out how to use other team's projects that you may need to rely on.

In short, this course is trying to finish what JOGRE started, but for video games!