Kursöversikt

Course-PM

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

Revised January 20th, 2019

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++.

 


Schedule:

The schedule of the course is accessible from TimeEdit: link (Länkar till en externa sida.)Länkar till en externa sida..

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

Contact details:

Examiner: Marco Fratarcangeli (Länkar till en externa sida.)Länkar till en externa sida., email: marcof@chalmers.se 

Teaching Assistant: Mads Rønnow (Länkar till en externa sida.)Länkar till en externa sida., email: ronnow@chalmers.se  

Student Representatives (randomly selected):
Axel Andersson, email: anaxel@student.chalmers.se  
Budi Sugianto Jap, email: budisugiantoj@gmail.com  
Robin Lilius Lundmark, email: lurobin@student.chalmers.se  
Laszlo Sall Vesselenyi, email: metaomega@gmail.com  

The role of student representatives. (Länkar till en externa sida.)Länkar till en externa sida.

Course evaluations at Chalmers (Länkar till en externa sida.)Länkar till en externa sida.

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. (Länkar till en externa sida.)Länkar till en externa sida.
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 (Länkar till en externa sida.)Länkar till en externa sida.
[optional] This material covers the basics and some advanced topics in physics-based animation.

Marco Fratarcangeli, Huamin Wang, and Yin Yang. 2018. Parallel iterative solvers for real-time elastic deformations. In SIGGRAPH Asia 2018 Courses (SA '18). ACM, New York, NY, USA, Article 14, 45 pages. available online (Länkar till en externa sida.)Länkar till en externa sida.
[optional] This material describes different approaches to the animation of complex physical phenomena, like the deformation of elastic objects.

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 - 20 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 up till a maximum of 5 points according to the number of tasks performed and the quality of the code.

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. An list of games for inspiration can be found here (Länkar till en externa sida.)Länkar till en externa sida.. 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 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. (Länkar till en externa sida.)Länkar till en externa sida.

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: 60 - 70 points

grade 4: 71 - 90 points

grade 5: 91 - 100 points 


Summary of changes since the course was given last

The course changed according to the students’ feedback given last academic year. The main changes can be summarized as follows:

  • during the theoretical lectures, we provide examples on how such concepts are applied to modern game engines 
  • there are more lectures, addressing knowledge gaps and practical examples, such as the introduction to c++ and the lecture about particle systems.
  • the code for the practical lab has been revised and extended. A new lab (spatial data structures) has been introduced.

Links to the syllabus:

TDA572  (Länkar till en externa sida.)Länkar till en externa sida.Chalmers (Länkar till en externa sida.)Länkar till en externa sida. (Länkar till en externa sida.)Länkar till en externa sida.

DIT455 Göteborg Universitet (Länkar till en externa sida.)Länkar till en externa sida.

Kurssammanfattning:

Datum Information Sista inlämningsdatum