Course syllabus

Course-PM

TDA572 / DIT455  Game Engine Architecture  VT21 (7,5hp)

Revised January 12th, 2021

Department of Computer Science and Engineering

Course purpose

The course aims to provide the fundamentals of the major components making up a modern game engine for interactive computer graphics applications. Topics will focus on game engine technologies and architecture, including both the theory underlying the various subsystems, and the data structures and algorithms to implement them. Specifically, the contents of the course will include the engine structure (events, entities and components) and will cover some of the major subsystems. 

Requirements: computer graphics and c++.

game-engine.png


Schedule:

The schedule of the course is accessible from TimeEdit: link.

At the bottom of this page, there is a course summary with the plan including the lectures and deadlines.

Contact details:

Examiner: Marco Fratarcangeli, email: marcof@chalmers.se 

Teaching Assistant: Mads Rønnow, email: ronnow@chalmers.se  

Student Representatives (randomly selected): 

MPENM   aspris@student.chalmers.se      Marios Aspris
MPIDE   loryenger@outlook.com   Chenxu Guo
MPIDE   rasmus.tomasson@gmail.com       Rasmus Tomasson

The role of student representatives.

Course evaluations at Chalmers

Course literature

The material (slides and source code) provided during the lectures can be complemented with the following books. 

Bob Nystrom. 2014. Game Programming Patterns. Genever Benning; 1 edition. available for free online.
Some of the initial lectures are taken from this book.

Jason Gregory. 2014. Game Engine Architecture, Second Edition (2nd ed.). A. K. Peters, Ltd., Natick, MA, USA.
[optional] This is suggested to know more about the technical aspects of modern game engines. 

Matthias Müller, Jos Stam, Doug James, and Nils Thürey. 2008. Real time physics: class notes. In ACM SIGGRAPH 2008 classes (SIGGRAPH '08). ACM, New York, NY, USA, Article 88 , 90 pages. available online
[optional] This material covers the basics and some advanced topics in physics-based animation.

Course design

The aim of the course is to provide the basic building blocks of a modern game engine usable to make an interactive game. For this purpose, the course is divided in theoretical lectures explaining the main design patterns and techniques used in game engines, and practical labs where such concepts are implemented.

The code obtained by completing the exercises given in the practical labs, will form a simple game engine that the students will use to make their own game as a final project.

Given the technical nature of this course, the assessment is based on practical assignments. The evaluation is based on four deliverables.

1. Code of the Labs [0 - 15 points]

During the first weeks of the course, it will be assigned a practical lab which will be developed under the supervision of the lecturers. The code of the lab will have to be delivered within the following Monday (see course summary below). Each lab is graded according to the number of tasks performed and the quality of the code.

Lab 3: 5 points

Lab4: 5 points

Lab5: 5 points

2. Code of the Final Project [0 - 60 points]

At the end of the first month, a small game is chosen by each student for the individual project. The aim of the project is to develop a small game in the second month using and extending the engine developed during the first month. The specification of the game is decided by the students themselves and it must be approved by the examiner. The game must be complete, playable and well-polished. A list of games for inspiration can be found here. Note that, despite their age, these games are implemented sharing many of the same programming patterns of modern engines.

Each student shall have a different game. If a student chooses a game already picked by another student, an alternative choice will have to be proposed (first-come first-served policy).

Both the code and the executable must be delivered; the executable shall run on the teachers' computers (Windows 10). The code shall be compiled, linked and built using Microsoft Visual Studio 2017.

The deadline for the project and the report is on the last day of the exams' week (see course summary below). 

Assessment:

  • 0 – 40:  the game is playable; the code is structured in an understandable way
  • 41 – 50: the game implements most, if not all, the features of the original and it is polished;
    the game patterns are properly used and the code is well-designed
  • 51 – 60: the game extends the original arcade game with interesting additional features.

3. Report [0 - 10 points]

A written report explaining the game specification, the game logic, implementation design and choices.

It has to be ~10 pages long, possibly wrote using latex. It has to explains the specification of the game, how the code is organized and why, that is the design choices. It provides insights on the extension(s) which have been implemented.

Sample report with source.

4. Talks [0 - 10 points]

In the seventh and in the eleventh week of the course the students will talk in front of the teachers and their peers explaining their design choices, and providing  technological implementation details

Final grade:

grade 3: 55 - 65 points

grade 4: 66 - 80 points

grade 5: 81 - 95 points 

 

Links to the syllabus:

TDA572 Chalmers

DIT455 Göteborg Universitet

 

Additional resources:

Game Profiler

 

 

Course summary:

Date Details Due