High-Performance Game Programming
Course info
Programme
Staff
Course semester
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
- Debugging and profiling
- Multi-processing
- Hardware acceleration and SIMD
- Data-oriented design
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 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
Learning activities
Students will be offered weekly lectures and will be working in groups on their course project.
Mandatory activities
There is no mandatory activity
The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt.
Course literature
Online documentation, research papers and course slides will be the reading materials for the class.
Student Activity Budget
Estimated distribution of learning activities for the typical student- Preparation for lectures and exercises: 25%
- Lectures: 25%
- Exercises: 10%
- Project work, supervision included: 20%
- Exam with preparation: 20%
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.
The exam will be in groups of 2-3 students. Each group need to submit a report and the source code of their project. At the exam the group will have a joint presentation followed by an individual dialogue of 20 minutes pr. student.
Group
- 2-3
20 minutes
Mixed exam 2 : Joint student presentation followed by an individual dialogue. The group makes their presentations together and afterwards the students participate in the dialogue individually while the rest of the group is outside the room.
reexam
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.
Group
- 2-3 students
Mixed exam 2 : Joint student presentation followed by an individual dialogue. The group makes their presentations together and afterwards the students participate in the dialogue individually while the rest of the group is outside the room.
Time and date
Ordinary Exam - submission Wed, 20 Dec 2023, 08:00 - 14:00Ordinary Exam Thu, 11 Jan 2024, 09:00 - 21:00
Ordinary Exam Fri, 12 Jan 2024, 09:00 - 21:00