Official course description:
Full info last published 20/04-20

Algorithms in Games

Course info
ECTS points:
Course code:
Participants max:
Offered to guest students:
Offered to exchange students:
Offered as a single subject:
Price (single subject):
10625 DKK (incl. vat)
MSc. Master
MSc in Games
Course manager
Assistant Professor
Teaching Assistant
Teaching Assistant (TA)
Teaching Assistant
Teaching Assistant (TA)
Course semester
Forår 2020
27 January 2020
31 August 2020
Exam type
ekstern censur
Grade Scale
Exam Language
Students attending this course will be able to implement core algorithms and systems related to game development.

The course will approach algorithms that are core to the development of digital games as well as technical subjects that were only superficially addressed in the first semester course "Game Programming".

The course will build on the following main topics:
  • Foundational computational geometry algorithms 
  • Geometric transformations
  • Collision detection
  • 3D tracking and motion capture (for animation and spatial user interaction)
  • Character animation
In addition, the student will be supervised in the acquisition of specialized knowledge in a related area of their choice. Example topics include:
  • Rigid body dynamics
  • Animation blending
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, such as linked lists and dictionaries.
  • Foundational understanding of discrete mathematics, especially vector and matrix operations.

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

Intended learning outcomes

After the course, the student should be able to:

  • Implement space partitioning and basic geometric algorithms (changed from: Implement space partitioning and basic triangulation algorithms)
  • Explain how geometric transformations are used to place and move elements in a scene (unchanged)
  • Describe how space partitioning algorithms to optimize collision computations (changed from: Use space partitioning algorithms to optimize collision computations)
  • Describe how spatial user interaction techniques are used to select, manipulate and animate virtual objects (changed from: Implement basic spatial user interaction techniques to select, manipulate and animate virtual objects using motion controllers)
  • Program a basic character animation system (unchanged)
  • Analyze, implement and explain a topic of their choice. The topic must be related to the core content of the course (unchanged)
Learning activities

UPDATE 20 APRIL 2020: ILOs changed due to the COVID-19 situation. Contact the course manager with questions about the changed ILOs.

Foundational study in which text and online resources provide the background for in-depth programming assignments. Classes will also include supervised project work and introductions to advanced topics.

Besides traditional lectures the class will also include class-based discussions and small quizzes to make the students reflect about the topics.

Weekly exercises are not handed in but their solutions are published after one week. Assignments are handed in for peer-grade.

Both the assignments and the final project are solved individually.

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

Student Activity Budget
Estimated distribution of learning activities for the typical student
  • Preparation for lectures and exercises: 21%
  • Lectures: 13%
  • Exercises: 12%
  • Assignments: 18%
  • Project work, supervision included: 24%
  • Exam with preparation: 12%
Ordinary exam
Exam type:
D: Submission of written work with following oral, External (7-point scale)
Exam variation:
D22: Submission with following oral exam supplemented by the submission.
Exam submisson description:
Submission of an individual project including source code, binaries (if any) and a short report describing the implementation details and the theory used. The exam will cover both the curriculum as well a project.
Exam duration per student for the oral exam:
30 minutes

Time and date
Ordinary Exam - submission Wed, 13 May 2020, 08:00 - 14:00
Ordinary Exam Tue, 2 Jun 2020, 09:00 - 21:00
Reexam - submission Wed, 8 Jul 2020, 08:00 - 14:00
Reexam Tue, 11 Aug 2020, 09:00 - 21:00