Official course description, subject to change:
Preliminary info last published 21/08-20

Game Programming

Course info
Language:
English
ECTS points:
7.5
Course code:
KGGAPRO1KU
Participants max:
40
Offered to guest students:
yes
Offered to exchange students:
-
Offered as a single subject:
yes
Price (single subject):
10625 DKK (incl. vat)
Programme
Level:
MSc. Master
Programme:
MSc in Games
Staff
Course semester
Semester
Efterår 2021
Start
30 August 2021
End
31 December 2021
Exam
Exam type
ordinær
Internal/External
ekstern censur
Grade Scale
7-trinsskala
Exam Language
GB
Abstract
This course teaches fundamental techniques for using C++ efficiently to implement 2D and 3D games.
Description

Students learn the basics of game programming using both 2D and 3D graphics. They learn to integrate a physics engine and how game loops and time steps work.

After the course students are familiar with component architectures and other game programming patterns.

This course covers the following topics:

  • Understanding the design and architecture of existing game engines
  • Design and implementation of game engine components
  • Efficient programming in C++
  • Best practices for game programming from software engineering and system architecture

Formal prerequisites
The essential skills and requirements are:
  • Good programming ability, since the course will involve several programming exercises and a final projects.
  • Basic mathematics understanding. Geometry, matrix algebra, etc.
Intended learning outcomes

After the course, the student should be able to:

  • Design and implement components for a modern game engine using best practices of software engineering.
  • Manage resources and memory in C++ efficiently.
  • Integrate game engine modules with high cohesion and low coupling.
  • Optimize memory access and identify performance bottlenecks on the CPU
  • Generalize about the structure of, and similarities and differences between, modern 3D game engines.
  • List, describe, use and modify basic components of a game engine.
  • Describe why system programming languages, such as C++, is needed in the games industry.
  • Describe the tradeoffs involved in setting up a game loop and the initialization order of engine subsystems.
  • Explain foundational aspects of game-engine technology, such as graphic rendering, game physics, player input, and system architecture.
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.