Official course description, subject to change:

Basic info last published 9/04-24
Course info
Language:
English
ECTS points:
7.5
Course code:
KGHIPGP1KU
Participants max:
40
Offered to guest students:
yes
Offered to exchange students:
yes
Offered as a single subject:
yes
Price for EU/EEA citizens (Single Subject):
10625 DKK
Programme
Level:
MSc. Master
Programme:
MSc in Games
Staff
Course manager
Associate Professor
Teacher
Part-time Lecturer
Teacher
Part-time Lecturer
Course semester
Semester
Efterår 2024
Start
26 August 2024
End
24 January 2025
Exam
Abstract

Students attending this course will study how to design game code that is scalable and takes into account hardware and software resources.

Description

This course will approach some of the algorithms and ideas that are at the core of the development of modern game engines and expand on technical subjects that were seen in the course "Game Programming".

The student will learn the inner workings of game engines both from a technical and algorithmic perspective and learn how to write high-performance scalable code.
The course will include topics such as:

  • Entity-component systems
  • Game development tools
  • Profiling and optimisation
  • Multi-processing
  • Hardware acceleration and SIMD
  • Data-oriented design
  • Physics simulation for games
  • Data-oriented design case study

Programming is an essential part of the course and the main engine adopted in the course will be Unity for the practical activities and the examples. However, the concepts and principles covered are applicable to any engine and the students are free to choose another technology to work with if they wish, as long as it supports the learning activities.

Formal prerequisites

The essential skills and requirements are:

  • Good programming skill, since the course will propose programming exercises and will require a final project.
  • Knowledge of basic data structures, e.g. linked lists and dictionaries.
  • Foundational understanding of 3D mathematics, discrete mathematics and linear algebra.

Optimally the student has completed the course "Game Programming".


Intended learning outcomes

After the course, the student should be able to:

  • Use profiling tools to measure code performance
  • Implement systems covered during the course in the context of a game engine
  • Analyse, implement and explain algorithms covered in the course
  • Evaluate code design patterns and critically assess their application in different development contexts
  • Analyse and implement code refactoring to optimise scalability and performance
  • Describe the interplay between code structure and hardware architecture and their impact on performance
  • Critically evaluate systems, based on their performance characteristics, and be able to implement or suggest strategies for improvements
Ordinary exam
Exam type:
D: Submission of written work with following oral, External (7-point scale)
Exam variation:
D2G: Submission for groups with following oral exam supplemented by the submission. Shared responsibility for the report.