You are on page 1of 9

Game Engine Architecture Semester 1

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 student’s 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

Prerequisite Lecture Lab Textbook

Grading

Types of human interface devices .1 – 1.Vector operations.The game loop .Overview of the technologies that comprise a typical 3D game Reading: . Semester 1 Game Engine Architecture Semester 1 Course Outline Week 1 – Introduction .What is a game? .Introduction to quaternions .Microsoft Visual Studio tips and tricks . vectors and Cartesian coordinates . dot and cross product .Interfacing with a HID .5 Week 5 – Human Interface Devices .2D and 3D matrices.Profiling tools .5 Week 3 – 3D Math for Games .Handling various types of inputs.Course overview .2 Week 2 – Tools of the Trade .2 - .Game Engine Architecture Syllabus. change of basis .1 – 4.Hierarchical coordinate frames.Comparison of rotational representations Reading: .Course text: 1.1 – 2.The rendering loop .Measuring and dealing with time Reading: .Game loop architectural styles .Course text: 7.Structure of a typical game development team .Abstract timelines .1 – 7.5 .Course text: 2.Points.Course text: 4. outputs .Version control and Subversion .Memory leak / corruption detection . homogeneous coordinates .Other tools Reading: .3D math problems Assignment: Week 4 – Time and the Game Loop .

1 – 8. 12.Sphere vs sphere .The virtual camera and projection Reading: .Survey of collision/physics middleware: ODE. sequences and gestures Control remapping Context-sensitive controls . narrow phase.Is physics fun? .1 Week 7 – Fundamentals of Character Animation .Course text: 10. spatial subdivision Reading: .Course text: 11.3.Skinning Reading: .Collision detection basics .Midterm review and preparation Reading: Lab: .Lighting.Optimization: Broad phase.1 – 11. Havok .4.1 – 12.Numerical integration .6 Reading: Week 6 – Introduction to 3D Rendering . Semester 1 - Game engine HID systems Dead zone Detecting button-up and button-down Chords.4 Week 10 – Introduction to Rigid Body Dynamics .1 – 12.5 Lab: Team Project .Clips and the local time line .3 - .3.Teams work on engine and game play systems in parallel Week 8 – MIDTERM EXAM .Course text: 8. PhysX.Game Engine Architecture Syllabus.Triangle meshes and tessellation .Types of character animation .Point mass linear dynamics . color and texturing basics .Other collision primitives .Axis-aligned bounding boxes .3.Skeletons and poses .Review prior weeks’ readings MIDTERM EXAM during lab hours Week 9 – Collision Detection .Coordinate spaces and rendering transformations .5.3.Course text: 12.5.

Resource management basics Reading: . 6. 14.Life in the game industry Exam Week – Final Exam and Team Game Project Due .4. demos . 5.Scripting languages .2. Semester 1 Reading: .Game Engine Architecture Syllabus.6. 14.3D audio concepts . .Asynchronous file I/O . 14.2.High-level game flow Reading: .9 Week 14 – Game Audio .4.3.2.1 – 12.1. 14.8.1.1. interviews. . 12.What is a game object model? .1.World editors .2.1 – 14.4 - .Course text: 6.Course text: 13. cues. 14.6. 14.2 (except 6.7) Week 13 – Events and Scripting .Distinction between offline and runtime object models .1 – 14.2.Audio codecs and clip playback .Overflow topics as necessary .2.3 Week 12 – The Resource Manager .Microsoft XACT manuals (online) Week 15 – Wrap-Up .4 Week 11 – Introduction to Game Object Models .Spawners .1.Getting into the game industry – resumes.Overview of Microsoft XACT tool and runtime API Reading: . 12.1. etc. etc.Basics of game object updating and engine system integration Reading: .1 surround.Audio rendering technologies: Dolby DTS.Survey of tools and the asset pipeline .Course text: 14.Course text: 12.Audio data management: banks.2.File system APIs for game engines .2.7.Events and message passing . 6.

physics and game world models. Final grade is based upon the student’s score on individual labs and assigned problems. Engine subsystems including rendering. Large-scale C++ software architecture in a games context. collision.Game Engine Architecture Semester 2 Objective This course provides students with an in-depth exploration of 3D game engine architecture. and also work together like a real game development team to design and build their own functional game engine by designing and implementing engine subsystems and integrating 3rd party components. Game Engine Architecture: Semester 1 (or equivalent) 2 hrs/week 2 hrs/week Jason Gregory. investigate the subsystems typically found in a real production game engine. ISBN 978-1-56881-413-1. audio. Game Engine Architecture. Students will participate in individual hands-on lab exercises. AK Peters. 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 Prerequisite Lecture Lab Textbook Grading . the midterm and final exams. and the grades earned on a multi-lab team-based project. and explore how the differences between game genres can affect engine design. survey some engine architectures from actual shipping games. Tools pipelines for modern games. Students will learn state-of-the-art software architecture principles in the context of game engine design.

Work problems.Survey of runtime engine subsystems .6 - .Splines Reading: Lab: 3D Math Problems .Spheres . line segments and rays .2 – 1. exceptions and assertions .7 Week 2 – 3D Math for Games .Errors.Course text: 3.1.1 – 4. see typical applications.Data. 4. Semester 2 Game Engine Architecture Semester 2 Course Outline Week 1 – Introduction .2.Course text: 4.Random number generation Reading: Lab: .C++ best practices .5 (review).Survey of tools and the asset pipeline Reading: .6 . 4.Engine differences between game genres . Paddles and Basic Gameplay Create simple box meshes for paddles Use Ogre’s OIS human input device API to move paddles Detect collisions with paddles and bounce ball End/reset game if ball misses one of the paddles Week 4 – Software Engineering for Games . Matrices.Game Engine Architecture Syllabus.7 – 4. code and memory . Quaternions .Lines.Create simple bouncing ball (Ogre head) in 1D Pongre 1: One-Dimensional Bouncing Ball Week 3 – More 3D Math for Games .What is a game engine? .Planes .Course overview .Integer and IEEE floating-point formats .Course text: 1.Hardware-accelerated vector math with SIMD .8 Pongre 2: Bouncing.Create project by copying template .Review: Vectors. practice .

texturing. 5.RECOMMENDED: Lakos: Ch. transformation.Add HUD. materials.8 Team Project . 9.Memory allocation and management .Game Engine Architecture Syllabus.3 – 10.Visual effects: Particles.1 – 5. 3. 5 sections 5.1 – 9.2 – 5.Teams work on engine and game play systems in parallel Week 8 – MIDTERM EXAM . lighting basics . Ch.The rendering pipeline Tools stage Asset conditioning stage Application stage: Visibility determination and primitive submission Geometry processing and rasterization stages: GPU architecture .Container data structures .3 .7 Pongre 3: Congratulations.Rendering engine architecture . scoring.Teams decide on game design.4 Lab: Pongre 4: Final Polish .2.1 (review).Review: Triangle meshes.Graphical tools for debugging and development Reading: Lab: . decals.Strings and hashed string ids Reading: . 0.Primitive submission and render state management . 10.2. 10.Course text: 10.Course text: 10.2.Polish your Pongre and make it kick some butt! Week 6 – The Graphics Pipeline .7. overlays.7 - .3.2.Optimization: the driver of rendering engine architecture .Pipelining concepts .2.Introduction to global illumination and programmable shaders Reading: .Sorting.5. It’s a Game! .Course text: 5.2.Midterm review and preparation .Course text: 3. 3.5 Lab: Team Project . and personalization of your choice Week 5 – More Software Engineering for Games . Semester 2 Reading: Lab: . alpha blending and Z pre-pass . write up minimal design docs Week 7 – Rendering Engine Architecture .2 – 3. post processing .1 – 10.5.Visibility determination and scene graphs .6 – 10.1.

Course text: 12. ODE . numerical integration . moment of inertia .Blending: LERP and additive .5 – 12.The AABB prune and sweep algorithm .Animation system architecture and pipeline .The Gilbert-Johnson-Keerthi (GJK) algorithm .Ogre Manual (online): Section 8 .4.9.8 - .Compression techniques .3.Components of the gameplay foundation layer . IK and other forms of post-processing .Runtime object model architectures .Game Engine Architecture Syllabus. 12.Review prior weeks’ readings MIDTERM EXAM during lab hours Week 9 – Animation System Architecture .Teams work on engine and game play systems in parallel Week 11 – Advanced Rigid Body Dynamics .3.Collision response .Review of character animation fundamentals .5.Ray and sphere casting Reading: Lab: . Semester 2 Reading: Lab: . 12. 12.6.Angular dynamics.Review: Collision detection basics .3.Fast-moving bodies and the bullet-through-paper problem .Teams work on engine and game play systems in parallel Week 10 – Advanced Collision Detection .Integrating physics into your game Reading: Lab: .Interfaces between game characters and animation .6 – 11.API case studies in one or more of: Havok.Review of point mass linear dynamics. PhysX.Animation state machines and layering Reading: .RECOMMENDED: Junker: Chapter 9 Lab: Team Project .7 Team Project .Teams work on engine and game play systems in parallel Week 12 – Gameplay Foundation Systems .12 .3.5 – 12.Procedural animation.4.Course text: 11.7.5 Team Project .Typical physics/collision system architectures .Course text: 12.Constraints and ragdolls .5.

Semester 2 .1 – 14.2. 14.Teams work on engine and game play systems in parallel Week 15 – Wrap-Up .7 Team Project .6.Teams work on engine and game play systems in parallel Week 14 – Elective Topics . 6.2 (review).Multiprocessor game loops Reading: Lab: .1 – 14.Course text: 14.Integrating rendering.Final exam review Lab: Team Project .Streaming game worlds .Terrain systems .Updating a multi-object simulation in real time . traversal.Game Engine Architecture Syllabus. 7.1. 14.5 (review).4 Team Project .6.2. time in games . perception Reading: Lab: .Advanced lighting and rendering effects .Memory management for dynamic objects Reading: Lab: .Review: The game loop.1.Teams perform final integration and add finishing touches .2.Teams work on engine and game play systems in parallel Week 13 – Engine Subsystem Integration . physics and animation into the game loop .6.6.3 – 14. 14.Overflow topics as necessary .AI foundations: path finding.2.2.9 - .Memory management and file I/O for level loading .1.3 (review).2.6.Intro to player mechanics and game cameras .1.4. 14. 14.2.2.1 – 7.Advanced audio .Code freeze one day prior to Gold Master Exam Week – Final Exam and Team Game Project Due .Course text: 7.TBD Team Project .Multiplayer networking .