Official course description:
Full info last published 25/10-19

Game Programming

Course info
Language:
English
ECTS points:
7.5
Course code:
KGGAPRO1KU
Offered to guest students:
yes
Offered as a single subject:
yes
Price (single subject):
10625 DKK (incl. vat)
Programme
Level:
MSc. Master
Programme:
Master of Science in Information Technology (Games)
Staff
Course manager
Assistant Professor
Teacher
PhD student
Teaching Assistant
Teaching Assistant (TA)
Teaching Assistant
Teaching Assistant (TA)
Course semester
Semester
Efterår 2019
Start
26 August 2019
End
31 January 2020
Abbreviation
20192
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.
  • Create game engine modules with high cohesion and low coupling.
  • Optimize performance bottlenecks on both the CPU and GPU.
  • Generalize about the structure of, and similarities and differences between, modern 3D game engines.
  • Implementing basic components of a game engine.
  • Describe why system programming languages, such as C++, is needed in the games industry.
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
During the semester the students must hand-in and have approved 4 exercises, which covers some of the important topics of the course. 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.

Course literature

Game Engine Architecture, 3rd edition (CRC press), by Jason Gregory

Ordinary exam
Exam type:
D: Submission of written work with following oral, external (7-trinsskala)
Exam variation:
D2G: Submission of written work for groups with following oral exam supplemented by the work submitted.
Exam description:

The final submission consists of a software (source code and binaries) including a report about the project. 

The exam project should be created in groups of maximum 3 people.

The total duration of the oral exam is 20 minutes per examinee.

Form of group exam: Mixed exam 1