EECE 478: Game Project


Game Proposal: September 29th
Demo Day: December 2nd?
Reports Due: December 2nd?

Project:

Your project will be to design and develop a 3D computer game from scratch using OpenGL. It will need to be interactive, three-dimensional, have some sort of challenging goal or goals, and be fun to play. Originality is encouraged, but not required.

The goal of this project is to give you a practical experience to ground your understanding of computer graphics. To that end, you are expected to engage in substantial, project-directed research about techniques and tools that will allow you to create a full, end-to-end graphical application that depends on a realtime 3D graphical engine. By the end of the project you should be able to confidently create 3D user interfaces to many different non-game computer applications and be able to integrate 3D interaction into those interfaces.

Requirements:

The game will need to depend substantially on the three-dimensional structure of the environment. This is not to say that there will need to be a 3D world as such, just that the three-dimensional nature of the environment must have direct consequences on game play. In addition, the following must  be integrated into the graphics engine and demonstrated in the game play:
In order to develop your game, you can use any resources that you can find on the Web or through other sources for any aspect of the source code.  You may not use an existing game as a project framework and modify it for your own purposes. If you use a scene graph library then you must clearly identify the rendering capabilities of the library and what aspects of the game rendering you implemented yourself. In order to receive credit for an advanced feature, you must demonstrate that it was not available in the library you used. In general, the larger your team, the more advanced funtionality you will need to demonstrate to impress the judges.

You will be required to document the sources and licenses for any software or models you incorporate into your game and demonstrate that they are compatible with the terms of use you plan to apply to your own source code.

You may develop your game on either Windows or Linux, as long as you use OpenGL for your rendering engine. For the demos we will use host machines equivalent to those in MCLD 303 in terms of processor power, memory and graphics hardware. You may provide any optional input device (e.g. game controller) that you are able to easily interface to the demo machines in MCLD 303.

Advanced Features

In addition to the basic functionality described above, you will be required to implement some of the advanced  techniques described below:

Resources

The game project resources page contains pointers to a wide variety of sources of information about designing and developing games, software and models that can be used to build games, and stories from the game development trenches.

Project Outline

The first part of the game development process is to decide a type of game, a style of play, and the general parameters of game play. We are requesting a one page summary of your plans, including some indication of which of the above advanced techniques you plan to incorporate into your game. This outline is due Sep. 29th at 5pm by email to leei@ece.ubc.ca. It will not be marked, but will simply serve as a guide to allow us to provide you with feedback on the difficulties you may face and specific resources you may find useful.

Evaluation

The project will be graded based on three components, the game demo (50%), a group project report (25%), and the individual contributions to a web-based project development log (25%). Together they will constitute 50% of your course grade (in essence, this is your final exam and term paper). The demo will be judged by Dr. Iverson,  the course TAs, and (hopefully) representatives from industry. The parameters for the demo day will be determined later, but expect to have no more than 5 minutes for a specific, scripted demo. The judges will play with the games for some time afterwards.

The project reports will be general engineering reports. You will definitely benefit by keeping a detailed, individual project notebook as well as a group notebook. They will not only help in the ongoing development of the game, but will be invaluable in preparting your final reports.