Intro. to Game Engines - CSC205 - Fall'17
Course Objectives And Learning Outcomes
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 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 C# within the Unity game engine.
Textbooks
Recommended: |
Mathematics for 3D Game Programming and Computer Graphics (Third Edition) |
|
Eric Lengyel -- Cengage Learning |
|
ISBN-10 1435458869 |
Optional: |
Game Engine Architecture (Second Edition) |
|
Jason Gregory -- AK Peters / CRC Press |
|
ISBN 1466560017 |
Optional: |
Fundamentals of Computer Graphics (Fourth Edition) |
|
Peter Shirley and Steve Marschner -- A.K. Peters |
|
ISBN 1482229394 |
Grading
Coursework |
Weight |
Tentative Topic |
Tentative Timeline |
10x Labs (1h) |
10x1% |
Various Topics |
Completion mark at the end of lab |
Homework 1 (individual) |
10% |
Platformer (2D) |
Due at the end of week 4 |
Homework 2 (individual) |
10% |
AI and procedurals |
Due at the end of week 8 |
Homework 3 (group of 3) |
30% |
Game (2D/3D) |
Due during the exam period |
Midterm (in-class) |
10% |
|
Week 7 |
Final |
30% |
|
During the exam period |
- Lab, homeworks and projects are to be in C# and Unity
- This course includes 3 programming-based assignments (note hw3 is a group project)
- Your assignments should not be publicly posted (on github, bickbucket, etc..), please use private repositories
- Code and ideas obtained from elsewhere and used as part of an assignment must be documented in the README.md
- You can get unlimited private repositories by subscribing to the Student Developer Pack
- For courses which have final exams, students are strongly advised not to make final plans for travel or employment during the exam period since special arrangements will not be made for examinations that may conflict with such plans.