DM842: Computer Game Programming (10 ECTS)

STADS: 15019701

Master's level course

Teaching period
The course is offered in the autumn semester.

Teacher responsible
Rolf Fagerberg, Professor, Ph.d.
Tlf.: 6550 2382 Email:

Additional teachers
Marco Chiarandini, Lektor,
Tlf.: 6550 4031 Email:

Group Type Day Time Classroom Weeks Comment
H1 TE Monday 16-18 IMADA semi 36-41,43-51
H1 TE Wednesday 08-10 IMADA semi 36-41,46-47,50-51
H1 TE Wednesday 08-10 U168 43-45,48-49
Show entire timetable
Show personal time table for this course.

Ubegrænset deltagerantal.


Academic preconditions:
 Students taking the course are expected to:
  • Have knowledge of methods for the design, correctness analysis, and time analysis of algorithms, corresponding to the contents of the course DM507 Algorithms and Data Structures, and have knowledge of matrices corresponding to the contents of the course DM535 Discrete Methods for Computer Science.
  • Be able to use these methods with precision, level of abstraction and mathematical maturity corresponding to a Bachelor's degree in Computer Science.

Course introduction
  • To give the participants knowledge of the principles and methods from mathematics and computer science underlying 3D graphics as used in computer games.
  • To give the participants knowledge of the methods from AI underlying movements and actions of computer controlled objects and characters in computer games.
  • To give the participants knowledge of the principles and methods from mathematics, physics, and computer science underlying physics simulation and collision detection in computer games.
The course builds on the knowledge acquired in the courses DM550 Introduction to Programming and DM507 Algorithms and Data Structures, and gives an academic basis for further specialized study activities in the subject.

In relation to the competence profile of the degree it is the explicit focus of the course to:
  • Give knowledge and understanding of a collection of specialized models and methods developed within Computer Science based on research on highest international level, as well as of models and methods aimed at applications in other subject areas.
  • Give skills to describe, analyze and solve computational problems by using the methods learnt, to analyze pros and cons of different methods in Computer Science, as well as to develop new variants of the methods learnt where the problem at hands requires this.
  • Give the competence to plan and execute scientific projects on a high technical level.

Expected learning outcome
The learning objectives of the course is that the student demonstrates the ability to:
  • Explain the techniques from the curriculum in clear and precise language.
  • Implement the techniques from the curriculum in example programs. 
  • Describe the implementation work in a precise language and in a structured way.
Subject overview
The following main topics are contained in the course:
  • The graphics pipeline, rendering, the mathematics of 3D computer graphics (including homogeneous coordinates, transformations, projection, quaternions), clipping, culling, lighting, shading, texturing, polygonal techniques, level-of-detail.
  • Steering, path-finding, coordinated movement, rulebased AI, finite state machines, fuzzy logic, goal-driven behaviour, strategic decision making, board games AI.
  • Linear and angular forces and momenta, rigid body motion, collision detection (including intersection tests, bounding volumes, bounding volume hierarchies, spatial partitioning and collision culling) and collision response.
    Meddeles ved kursets start.

This course uses e-learn (blackboard).

Prerequisites for participating in the exam
  1. Project. Internal marking, Passed/fail. (15019712).
Assessment and marking:
  1. Oral exam. External marking, 7-mark scale. No exam aids allowed. A closer description of the exam rules will be posted under 'Course Information. (10 ECTS). (15019702).
Expected working hours
The teaching method is based on three phase model.
Intro phase: 60 hours

Educational activities
Programming projectsEducational form
In the intro phase, the students receive thoroughly prepared exposition of the sometimes complex subject area. In the study phase, students gain academic, personal and social experiences that consolidate and further develop their scientific proficiency. Focus is on immersion, understanding, and development of collaborative skills.

This course is taught in Danish or English, depending on the lecturer. However, if international students participate, the teaching language will always be English.

Course enrollment
See deadline of enrolment.

Tuition fees for single courses
See fees for single courses.