Official course description:

Full info last published 24/01-23
Course info
Language:
English
ECTS points:
7.5
Course code:
KGGAPRO1KU
Participants max:
60
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
Part-time Lecturer
Course Academic Responsible
Associate Professor, Head of study programme
Course semester
Semester
Efterår 2022
Start
29 August 2022
End
31 January 2023
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.
Learning activities

14 weeks of teaching consisting of lectures, exercises and supervision

Students are responsible for attending weekly lectures and then working in their groups independently, yet supervised, on their course project.

Mandatory activities

The students must hand-in four assignments during the semester. The assignments cover important topics in game programming, and are designed to prepare the student for the development of the course project.

Finally, the mandatory activities are an opportunity for the student to receive feedback on their work, and for the teacher to detect and address major weaknesses in the class.

All mandatory activities must be approved before the last class, hand-in deadlines are found in LearnIt. 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.

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
Game Engine Architecture, 3rd edition (CRC press), by Jason Gregory

Student Activity Budget
Estimated distribution of learning activities for the typical student
  • Preparation for lectures and exercises: 17%
  • Lectures: 14%
  • Exercises: 14%
  • Assignments: 20%
  • Project work, supervision included: 25%
  • Exam with preparation: 10%
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.
Exam submission description:
The final submission consists of a software (source code and binaries) including a report about the project.

Group submission:
Group
  • Groups of 2-3 people.
Exam duration per student for the oral exam:
20 minutes
Group exam form:
Mixed exam 1 : Individual and joint student presentation followed by an individual and a group dialogue. The students make a joint presentation followed by a group dialogue. Subsequently the students are having individual examination with presentation and / or dialogue with the supervisor and external examiner 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 submission:
Group
Exam duration per student for the oral exam:
20 minutes
Group exam form:
Mixed exam 1 : Individual and joint student presentation followed by an individual and a group dialogue. The students make a joint presentation followed by a group dialogue. Subsequently the students are having individual examination with presentation and / or dialogue with the supervisor and external examiner while the rest of the group is outside the room.

Time and date