Game Engine Syllabus
Game Engine Syllabus
Objective This course provides students with an introduction to the theory and practice of video game programming. Students will participate in individual hands-on lab exercises, and also work together like a real game development team to design and build their own functional game using an existing game engine (e.g. XNA). Real-time programming and the game loop, human interface devices, 3D rendering, collision detection, skeletal animation, rigid body dynamics, game object models, event-driven programming, game scripting languages. Introductory Computer Science (Data Structures and Algorithms) Introductory C++ Programming 2 hrs/week 2 hrs/week Jason Gregory. Game Engine Architecture. AK Peters. ISBN 978-1-56881-413-1. Final grade is based upon the students score on individual labs and assigned problems, the midterm and final exams, and the grades earned on a multi-lab team-based project. Individual Labs and Assigned Problems Midterm Exam Final Exam Team Project: Individual Contribution Team Project: Overall Project Grade TOTAL POSSIBLE 20% 20% 20% 20% 20% 100%
Concepts
Grading
Syllabus, Semester 1
Week 2 Tools of the Trade - Version control and Subversion - Microsoft Visual Studio tips and tricks - Profiling tools - Memory leak / corruption detection - Other tools Reading:
- Course text: 2.1 2.5
Week 3 3D Math for Games - Points, vectors and Cartesian coordinates - Vector operations, dot and cross product - 2D and 3D matrices, homogeneous coordinates - Hierarchical coordinate frames, change of basis - Introduction to quaternions - Comparison of rotational representations Reading:
- Course text: 4.1 4.5 - 3D math problems
Assignment: Week 4 Time and the Game Loop - The rendering loop - The game loop - Game loop architectural styles - Abstract timelines - Measuring and dealing with time Reading:
- Course text: 7.1 7.5
Week 5 Human Interface Devices - Types of human interface devices - Interfacing with a HID - Handling various types of inputs, outputs
- 2 -
Syllabus, Semester 1
Reading:
Week 6 Introduction to 3D Rendering - Triangle meshes and tessellation - Coordinate spaces and rendering transformations - Lighting, color and texturing basics - The virtual camera and projection Reading:
- Course text: 10.1
Week 7 Fundamentals of Character Animation - Types of character animation - Skeletons and poses - Clips and the local time line - Skinning Reading:
- Course text: 11.1 11.5
MIDTERM EXAM during lab hours Week 9 Collision Detection - Collision detection basics - Sphere vs sphere - Axis-aligned bounding boxes - Other collision primitives - Optimization: Broad phase, narrow phase, spatial subdivision Reading:
- Course text: 12.3.1 12.3.4, 12.3.5.1 12.3.5.4
Week 10 Introduction to Rigid Body Dynamics - Is physics fun? - Point mass linear dynamics - Numerical integration - Survey of collision/physics middleware: ODE, PhysX, Havok
- 3 -
Syllabus, Semester 1
Reading:
- Course text: 12.1, 12.2, 12.4.1 12.4.4
Week 11 Introduction to Game Object Models - What is a game object model? - World editors - Distinction between offline and runtime object models - Spawners - Basics of game object updating and engine system integration Reading:
- Course text: 13, 14.1, 14.2.1.1 14.2.1.2, 14.3, 14.6.1 14.6.3
Week 12 The Resource Manager - File system APIs for game engines - Asynchronous file I/O - Survey of tools and the asset pipeline - Resource management basics Reading:
- Course text: 6.1, 6.2.1, 6.2.2 (except 6.2.2.7)
Week 13 Events and Scripting - Events and message passing - Scripting languages - High-level game flow Reading:
- Course text: 14.7, 14.8, 14.9
Week 14 Game Audio - Audio codecs and clip playback - Audio rendering technologies: Dolby DTS, 5.1 surround, etc. - 3D audio concepts - Audio data management: banks, cues, etc. - Overview of Microsoft XACT tool and runtime API Reading:
- Microsoft XACT manuals (online)
Week 15 Wrap-Up - Overflow topics as necessary - Getting into the game industry resumes, interviews, demos - Life in the game industry Exam Week Final Exam and Team Game Project Due
- 4 -
Concepts
Grading
Syllabus, Semester 2
Week 2 3D Math for Games - Review: Vectors, Matrices, Quaternions - Spheres - Lines, line segments and rays - Planes - Splines Reading: Lab: 3D Math Problems
- Work problems, see typical applications, practice - Create project by copying template - Create simple bouncing ball (Ogre head) in 1D
Week 3 More 3D Math for Games - Integer and IEEE floating-point formats - Hardware-accelerated vector math with SIMD - Random number generation Reading: Lab:
- Course text: 3.2.1, 4.7 4.8
Week 4 Software Engineering for Games - C++ best practices - Data, code and memory - Errors, exceptions and assertions
- 6 -
Syllabus, Semester 2
Reading: Lab:
- Course text: 3.1, 3.2.2 3.2.5, 3.3 - RECOMMENDED: Lakos: Ch. 0; Ch. 5 sections 5.1 5.3, 5.7
Week 5 More Software Engineering for Games - Memory allocation and management - Container data structures - Strings and hashed string ids Reading:
- Course text: 5.2 5.4
Lab:
Week 6 The Graphics Pipeline - Review: Triangle meshes, materials, texturing, transformation, lighting basics - Pipelining concepts - The rendering pipeline
Tools stage Asset conditioning stage Application stage: Visibility determination and primitive submission Geometry processing and rasterization stages: GPU architecture
Week 7 Rendering Engine Architecture - Optimization: the driver of rendering engine architecture - Primitive submission and render state management - Sorting, alpha blending and Z pre-pass - Visibility determination and scene graphs - Rendering engine architecture - Visual effects: Particles, overlays, decals, post processing - Graphical tools for debugging and development Reading: Lab:
- Course text: 10.2.6 10.2.7, 10.3 10.5, 9.1 9.8
Team Project
- Teams work on engine and game play systems in parallel
- 7 -
Syllabus, Semester 2
Reading: Lab:
- Review prior weeks readings
MIDTERM EXAM during lab hours Week 9 Animation System Architecture - Review of character animation fundamentals - Blending: LERP and additive - Procedural animation, IK and other forms of post-processing - Compression techniques - Animation system architecture and pipeline - Interfaces between game characters and animation - Animation state machines and layering Reading:
- Course text: 11.6 11.12 - Ogre Manual (online): Section 8 - RECOMMENDED: Junker: Chapter 9
Lab:
Team Project
- Teams work on engine and game play systems in parallel
Week 10 Advanced Collision Detection - Review: Collision detection basics - Fast-moving bodies and the bullet-through-paper problem - The Gilbert-Johnson-Keerthi (GJK) algorithm - The AABB prune and sweep algorithm - Ray and sphere casting Reading: Lab:
- Course text: 12.3.5.5 12.3.5.7, 12.3.6, 12.3.7
Team Project
Week 11 Advanced Rigid Body Dynamics - Review of point mass linear dynamics, numerical integration - Angular dynamics, moment of inertia - Collision response - Constraints and ragdolls - Typical physics/collision system architectures - API case studies in one or more of: Havok, PhysX, ODE - Integrating physics into your game Reading: Lab:
- Course text: 12.4.5 12.4.9, 12.5
Team Project
- Teams work on engine and game play systems in parallel
Week 12 Gameplay Foundation Systems - Components of the gameplay foundation layer - Runtime object model architectures
- 8 -
Syllabus, Semester 2
- Memory management and file I/O for level loading - Streaming game worlds - Memory management for dynamic objects Reading: Lab:
- Course text: 14.2.1.1 14.2.1.2 (review), 14.2.1.3 14.2.1.6, 14.2.2, 14.4, 6.2.2.7
Team Project
Week 13 Engine Subsystem Integration - Review: The game loop, time in games - Updating a multi-object simulation in real time - Integrating rendering, physics and animation into the game loop - Multiprocessor game loops Reading: Lab:
- Course text: 7.1 7.5 (review), 7.6, 14.6.1 14.6.3 (review), 14.6.4
Team Project
- Teams work on engine and game play systems in parallel
Week 14 Elective Topics - Multiplayer networking - Advanced lighting and rendering effects - Terrain systems - Advanced audio - Intro to player mechanics and game cameras - AI foundations: path finding; traversal; perception Reading: Lab:
- TBD
Team Project
- Teams work on engine and game play systems in parallel
Week 15 Wrap-Up - Overflow topics as necessary - Final exam review Lab: Team Project
- Teams perform final integration and add finishing touches - Code freeze one day prior to Gold Master
- 9 -