Description
This is a graduate-level course covering the theory and practical application of 3D game engines. Upon completion of the course, you should:
- Understand the theory of key components of a game engine, such as physics, animation, rendering, and audio
- Gain experience using and extending several commercial game and physics engines, including Unreal Engine, Source, and PhysX
Instructors
- Jamie Snape, SN 336
- Dinesh Manocha, FB 250
Classes
Tuesday / Thursday, 11am-12:15pm, FB 008.
Office Hours
By appointment, SN 336.
Prerequisites
Comp 575 or Comp 770 (computer graphics), basic linear algebra, and experience programming in an object-oriented language (particularly C++) on the Microsoft Windows operating system. If you are unsure if you meet the prerequisites for the course, please speak to the instructors as soon as possible.
PDF version of the background survey
Text
There is no required course text. The following text and online documentation is recommended:
- David H. Eberly, "3D Game Engine Design," Second Edition, Morgan Kaufmann, 2006 (ISBN: 0122290631)
- NVIDIA Developer Zone
- Unreal Developer Network
- Valve Developer Community
A complete bibliography may be found here.
Assignments and Grading
There will be five programming assignments, each requiring around 10-15 hours of work on average. Assignments are due at the beginning of class on the due date. You may use, at your discretion, up to a total of five "late days" throughout the course to extend a deadline to 11am on the following day. Otherwise, late assignments will not be accepted, except for medical reasons.
There will a final programming project which may be completed individually or in groups of two. Each group will present the results of its project verbally in the final week of the course and submit a written report.
The course grade will be based on the final project (50%), assignments (40%), and class attendance and participation (10%). An incomplete grade will be given only in exceptional circumstances.
Software
The 3D game engines upon which this course will focus are available exclusively for the Microsoft Windows operating system, therefore you must have access to a computer capable of running Microsoft Windows XP Service Pack 2 or above. You should download and install Unreal Development Kit and Steam. Instructions for obtaining Source SDK through the Steam platform will be provided. You should also download and install PhysX System Software and the PhysX Binary SDK. Access to the PhysX Binary SDK currently requires free registration with NVIDIA.
Honor Code
Your full participation and observance of the honor code is expected throughout this course. If you have questions about your responsibility under the honor code, please bring them to the instructors. All assignments in this course are to be your own work, unless otherwise specifically provided. It is your responsibility if you have any doubt to confirm whether or not collaboration is permitted. Material presented in class, the course website, the recommended course text, and online documentation may be used in assignments without permission, but you must give proper attribution.
Syllabus and Calendar
A tentative list of topics to be covered in the course may be found here. A calendar for the course, including presentation slides from completed classes, may be found here.
Unreal Development Kit promotional video.