Course Overview
The course is an introduction to the
techniques for designing and building computer games and real time
graphics-oriented simulations. The topics include 3D game engine architecture,
design and implementation; simulation, modeling, and object control; character
behavior and behavior-based animation; human computer interaction, event driven
simulations.
Course Objectives
Prerequisites
Texts
Topics Overview
Detailed Syllabus and Class Notes
Final Grade
Programming Assignments
Course Software
Software and Online References
Course Objectives
- Explore the principal issues in designing graphics oriented computer simulations and computer games.
- Become familiar with current game/simulation engine design approaches
and available tools ( collision detection libraries, rendering speed up
tools)
- Develop technical skills in scene management; terrain generation,
modeling and rendering; collision detection and collision processing.
- Become familiar with the issues in real-time rendering
- Explore advanced computer graphics topics (including lighting and texturing techniques, low level, physics-based, and behavior-based animation, animation of articulated objects, skinning).
- Become acquainted with developing VR systems. Explore stereoscopic view synthesis, viewer tracking, action synchronization and data consistency.
- Learn about event driven simulations and AI methods used in gaming.
Prerequisites
-
CS 482 and either CS 437 or CS 537.
-
Good programming skills in C/C++ are essential! As a rule we will not
discuss programming in class.
-
Knowledge of linear algebra, calculus, and physics.
Syllabus (it will
be updated as the course progresses)
Texts:
Required
Other reference books
- Andrew Rollings, Ernest Adams, On Game Design, New Riders Publishing,
2003, ISBN 1-5927-3001-9.
- Allen Watt, Fabio Policarpo, 3D Games, Real-time Rendering and Software
Technology, ACM Press (Addison-Wesley), 2001, ISBN 0201-61921-0. (Strongly
recommended to buy.) 3D Games, Animation and Advanced Real-time
Rendering, Addison-Wesley, 2003, ISBN 0-201-78706-7.
- Mark DeLoura, Game Programming Gems, Charles River Media, 2000, ISBN
1-58450-049-2.
- David H. Eberly, 3D game engine design, Morgan Kaufmann, 2001, ISBN
1-55860-593-2.
- Woo, Neider, Davis, OpenGL Programming Guide (2nd Ed. or 3rd ed),
Addison Wesley,
fly.srk.fer.hr/~unreal/theredbook/
- This is the HTML, public domain version of the book by Neider, Davis and
Woo. It is an earlier version, but it is very useful for programming examples
and as a reference for OpenGL APIs. Wherever you see aux in a
function, replace it with
glut. For example, auxMainLoop();
becomes glutMainLoop;
Current Research Papers: To be selected by the instructor.
Topics
We will concentrate on the graphics components of simulation/game engines.
- Introduction to simulation/game architectures, situation awareness
tools.
- Principles of simulation, event driven simulation, character controllers.
- Scene management: scene graphs, culling and visibility, bounding volume
hierarchies, level of detail, off-screen rendering, paging
- Lighting and texturing techniques, light maps, dynamic lighting, static lighting (radiosity),
shading languages.
- Collision detection and collision processing.
- Terrain generation and modeling.
- Motion control and animation. Character animation, skeletons and skinning.
- The AI engine, path finding, navigation, behavior.
- Virtual reality and immersive environments.
- Speedup and optimization techniques.
Student evaluation
The students will be asked to present and implement current research papers
introducing important techniques. There will be three semester projects and on
final project.
- Project 1: Core scene graph-based engine. Must support:
- Loading of 3D models (at least two formats) : 3ds, md2/3, ma, flt
- Smooth and efficient animation (use quaternions)
- Basic lighting and texture mapping
- View-frustum culling
- Project 2
: Engine Extensions
- Portal culling
- Collision detection and processing
- Terrain
- Final project design and design documents
- Final project
Grading
Programming modules (Projects) and reports (two during the semester) 40%.
Final project design and design documents 15%.
Final project 45%.
| Software and Online Resources |