This course provides an introduction to video game programming and computer graphics. The course material will cover game programming techniques and technologies, including rendering, data structures, memory management, real-time software development for games, start-to-finish video game design and implementation, project management, teamwork and team management. The course also covers modules on AI, human-computer interaction, and physical simulation in game worlds.
Students will learn to plan, manage and implement from scratch a video game over the course term. They will learn to apply theoretical knowledge in a practical, real-life setting and acquire hands-on problem solving skills. The skills learned are highly relevant in industries beyond the game industry. Efficient C++ implementation, software development of large-scale systems, version control, and teamwork are crucial skills that often fall short in classical lectures.
The course is interactive, including cross-play sessions where students play-test the games from other teams, milestone presentations where teams update the rest of the course on their development status and challenges faced, and individual team meetings with the tutors.
This course builds upon required BSc Informatik courses from the first three terms: Prinzipien Der Programmierung, Mathematic für Informatik 1, Mathematic für Informatik 2, Software Engineering, and Datenbanken und Informationssyteme.
You require these courses or an equivalent qualification in C++/object oriented programming languages, vector and matrix algebra, and a basic understanding of memory and algorithms, including graph and search algorithms. Please reach out to the instructor if in doubt.
Experience in game programming or computer graphics is not required as these concepts will be introduced. This course is complementary to the Visual Computing lecture; it is beneficial to take both but the order is not important.
The course is given in English but examinations can be performed in German on request. It can be taken as IdniErg and StructErg within the Informatik Kernfach and also in other programs through a simple application form (reach out).
There is not a single book or script but plenty of high-quality online resources:
Frequency | Weekday | Time | Format / Place | Period | |
---|---|---|---|---|---|
weekly | Fr | 08-12 | Unpublished | 08.10.-28.12.2024 | Vorlesung findet von 08:45 - 12:00 Uhr statt! |
one-time | Fr | 08-12 | Unpublished | 31.01.2025 |
Module | Course | Requirements | |
---|---|---|---|
39-Inf-WP-IS-x Informationssysteme (Schwerpunkt) | Einführende Veranstaltung Seminar o. Vorlesung | Student information | |
- | Graded examination | Student information | |
39-Inf-WP-MC-x Media Computing (Schwerpunkt) | Einführende Veranstaltung Seminar o. Vorlesung | Student information | |
- | Graded examination | Student information | |
39-Inf-WP-MTI-x Mensch-Technik-Interaktion (Schwerpunkt) | Einführende Veranstaltung Seminar o. Vorlesung | Student information | |
- | Graded examination | Student information |
The binding module descriptions contain further information, including specifications on the "types of assignments" students need to complete. In cases where a module description mentions more than one kind of assignment, the respective member of the teaching staff will decide which task(s) they assign the students.
This course is 10 cp module building around the video game programming project (5 cp) that is developed in four milestones with teams of 5-6 students. The project is accompanied by a lecture (2cp) that introduces the fundamentals of video game programming, and assignments and tutorials (2cp) that hone practical skills. The grade is formed by the project presentations and report as well as a written exam covering the lecture content (1cp).
The module is designed for students to complete all parts (lecture, assignments, exam, and project) in the same term. Lectures (3h/week from 9am-11am) and assignments are concentrated on the first three months of the term. The last month will be without lectures, focusing on the project, milestone presentations, and cross-play sessions.
Each team can choose the theme and specific technical features of the game project freely. Progress is guided by four milestone submissions that require the implementation of basic game elements at regular intervals.