Computer Games Laboratory (IN7106, IN710615)

Time, Place

Mo. 14:15 - ca. 15:45, room 02.13.010

(Only on days with milestone submissions, see detailed schedule below)

SupervisionN. Thuerey, S. Wiewel

Mandatory kick-off meeting: April 3rd in room 01.10.011 at 14:15 hrs. (For sign-up details, please carefully read the registration section below!)

Begin Laboratory: Monday, April 23., 2018


Main wiki:

This course is open only to master students in Informatik: Games Engineering. The module comprises lectures, programming exercises, and student presentations

Final pres.The final presentation of results will take place during the demo day (exact day tba).
PrerequisitesBachelor Informatik: Games Engineering

Short Summary

Nach der Teilnahme am Modul sind die Studenten in der Lage gezielt visuelle Effekte zu analysieren und diese mithilfe von Shadern für Spiele und andere Applikationen zu erstellen. Die erlernten Technologien umfassen Beleuchtung, Bildeffekte, Compute und fortgeschrittene Technologien wie Tessellation. Die Studenten können Shader optimieren und Gelerntes auch auf Bereiche außerhalb des Games Engineering anwenden. Sie erhalten einen tiefen Einblick in die Funktionsweisen und den Aufbau moderner Renderer und verstehen die Einordnung verschiedener Shader in die Graphics Pipeline.

Inhalt anhand von aktuellen Beispielen wird den Studenten die plattformübergreifende Entwicklung von Shadern für Games und andere, Computergrafik fokussierte, Anwendungen erläutert. Als Entwicklungsumgebung kommen Unity3D, Unreal Engine oder Visual Studio zum Einsatz. Spezieller Fokus liegt hier auf:

  • Aufbau von Shadern: Vertex, Fragment, Geometry und Surface Shader
  • Verschiedene Beleuchtungsmodelle
  • Physically Based Rendering, BRDFs
  • Optimierung, Performance Analyse, Tools
  • Rendering, Graphic APIs
  • Post-Processing, Image Effects
  • Compute Shader
  • Tessellation
  • Stylized Shading
  • Volume Rendering


This is a practical course which involves a hands-on approach with neither traditional lectures nor exercises. Instead, we will meet ca. once every two weeks to discuss technical issues and to track progress via milestones. Students can utilize available game engines, yet we will make sure that a considerable own programming effort will be invested. While development will take place on PCs, students are free to choose the target platform of their final game. 

At the end of the course, all results will be presented to the public. 


  • Good programming skills (course projects are written in C++ or C#).
  • Students should have passed successfully the Realtime CG lecture and practical.
  • This practical is open for students of Informatics: Games Engineering only.


Regardless the content of the game, the development process must adhere to the guidelines proposed below. Students are encouraged to design a game that has strong links to one of the areas of specialization in the curriculum of the Master program Informatik: Games Engineering.     

Students chose their favorite area of specialization and contact the corresponding adminstrator (see list below) to propose and discuss the intended game. Teams from different areas can also join to create an even more complex game. 


All students have to sign up for the Computer Games Laboratory and attend the mandatory lectures. It is not possible to join later on during the semester. Note - this practical course does not use the regular TUM informatics matching system you might know from other seminars and practicals.

In order to register for this course, send a short email to nils.thuerey(at) with your name. This email needs to be sent before the kick-off meeting. If you already have a team, please also indicate this in the email.

Next, make sure to attend the kick-off meeting. It takes please before the semester starts because of the tight milestone schedule for this course. Note that you should not sign up for this course until you're sure you will participate. If you drop out, this can cause significant problems for your other team members.


The following table gives an overview of all in class meetings during the semester. On all none mentioned weeks there is no class.

lecture / milestonedateteam presentationto publish on the wiki
(due sunday before presentation)
Lecture: kick-off3. April Form groups, register groups by Apr. 16 via email to
Lecture: softskills and prototyping23. April Groups formed and registered.

1. Milestone: Game idea pitch
30. AprilGame ideaReport: Game idea proposal
Slides: Game idea

7. May Critiques (wiki) 
2. Milestone: Prototype14. MayPrototypeReport: Prototype
Slides: Prototype
Wiki: mutual critiques
3. Milestone: Interim Demo4. JuneInterim resultsReport: Interim results
Slides: Interim results
Lecture: Playtesting
4. Milestone: Alpha release
25. JuneAlpha versionReport: Alpha release
Slides: Alpha release
5. Playtesting2. JulyPlaytesting resultsReport: Playtesting results
Slides: Playtesting results
6. Final Release9. JulyFinal releaseReport: Final documentation
Slides: Final
Compiled final game version
Demo Day live presentation Live Demo