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
- allow game designers (i.e., people with minimal programming skills) to create, deploy, and advertise new video games
From this perspective, it is much like online "app" sites like iTunes, Valve, GameMaker, or even Scratch - allow users (i.e., people with no programming skills) to play, discuss, rate, and mod available games
From this perspective, it is much like online game portals like Shockwave.com, Orisinal, or the 2D games at Xbox Live
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!