The course introduces the development fundamentals of Video Games, and other interactive applications. The core of the course is devoted to the presentation of technologies (algorithms, data structures, techniques) most commonly adopted by modern 2D/3D video games. We will first introduce core concepts from Computer Graphics such as vectors and transformations, parametric and implicit representations (lines, circles), and rasterization. We then discuss how to organize the scene objects within a scene graph, how to discretize physics to represent object motion and collisions, and introduce particle systems. We will present the use of artificial intelligence for the creation of automatic game behavior, and the use of spatial sound. We will discuss textured meshes to represent 2D/3D geometry, and techniques for mesh animations like skinning and blendshapes. The final part of the course will cover the fundamentals of sampling and aliasing, and techniques for image compression and filtering. The lectures will cover the theory, while labs and homeworks review these concepts with practical experience in Unity/C#.
| Coursework | Weight (out of 100%) | Tentative Topic | Tentative Timeline |
|---|---|---|---|
| 10x Labs (1h) | 10x1% | Various Topics | Completion mark at the end of lab |
| Homework 1 (individual) | 15% | Platformer (2D) | Due at the end of week 4 |
| Homework 2 (individual) | 15% | Procedurals and AI | Due at the end of week 8 |
| Homework 3 (group of 3) | 30% | Game (2D/3D) | Due during the exam period |
| Midterm (in-class) | 15% | Theory + Practice | Week 7 |
| Final (in-class) | 15% | Theory + Practice | Week 12 |
- Lab, homeworks and projects are to in C# and Unity
- Your assignments should not be publicly posted (on github, bickbucket, etc..), please use private repositories. You can get unlimited private repositories by subscribing to the Student Developer Pack.
- Code and ideas obtained from elsewhere and used as part of an assignment must be documented in the README.md
| Required: | Game Engine Architecture (Second Edition) |
|---|---|
| Jason Gregory -- AK Peters / CRC Press | |
| ISBN 1466560010 | |
| Optional: | Fundamentals of Computer Graphics (Fourth Edition) |
| Peter Shirley and Steve Marschner -- A.K. Peters | |
| ISBN 1482229390 | |
| Optional: | Mathematics for 3D Game Programming and Computer Graphics (Third Edition) |
| Eric Lengyel -- Cengage Learning | |
| ISBN 1435458869 |