Advanced Game Development (Viborg)





Offered by

ICT Engineering




IT-GMD1 and additional knowledge of design patterns from IT-SWE1 and IT-AJP1 or similar ccourses.

Main purpose

The purpose of this course is to enable the student to develop games and interactive experiences in a structured and maintainable manner. The course is rooted in the software development aspect of game development, focusing on code architecture, design patterns, complexity, algorithms and data structures that are commonly used.
Through weekly exercises and a project, the course covers various topics, which will provide the student with the qualifications needed to develop larger interactive experiences with a maintainable codebase.


After successfully completing the course, the student will have gained knowledge about:
  • Useful alterations to common design patterns
  • Chosen design patterns that are common in game development
  • How a game engine is structured and implemented
  • Asymptotic notation for running time and space requirements
  • different linear data structures (sets, maps, lists and stacks)
  • Different algorithm types and templates
  • Different sorting and searching algorithms



After successfully completing the course, the student will have acquired skills in:
  • Utilizing design patterns when developing games
  • Reusing and modularizing code
  • Being able to analyze time and space complexity of an algorithm
  • Choosing the appropriate data structure for a problem
  • being able to design and implement algorithms in an object-oriented language
  • Being able to design and implement data structures in an object-oriented language



After successfully completing the course, the student will have acquired competencies in developing large maintainable applications. The student will be able to take the roles of developer and software architect in multidisciplinary game development teams. The student will also be able to analyze and improve algorithms and implementations.




Teaching methods and study activities

Theory lessons, practical exercises, and working in groups on a course assignment. The expected workload of the student is approximately 137.5 hours.
Participation of lecturer and students 
Initiated by the lecturer
35.5 hours -  26 %
  • Lessons, scheduled
  • Project guidance
  • Exams and tests
Participation of students
Initiated by the lecturer
50 hours - 36.5 %
  • Assignments, self-study
  • Project and group work
  • Homework and preparation for exams
  • Evaluation of the teaching
Participation of students
Initiated by students
50 hours - 36.5 %
  • Homework and preparation for exams
  • Self-study
  • Project work
  • Study groups
  • Literature search
Participation of lecturer and students 
initiated by students
2 hours -1 %
  •  Debate meetings
  • Study guidance


Robert Nystrom, 2014, Game Programming Patterns, ISBN: 0990582906
Thomas H. Cormen et al., Introduction to algorithms, 2nd ed., ISBN 0-262-03293-7
Christer Ericson, Real-Time Collision Detecion, Chapter 6, ISBN 1558607323
Excerpts and notes that will be made available online by the lecturer.


There are no permit criteria for attending examination.


Oral examination
Individual oral examination based upon a subject found by draw.
There is a 20 minutes preparation time and 20 minutes examination including grading. Expect 16 - to 18 minutes of examination and 2 to 4 minutes of grading,
All tools are allowed during preparation.
Internal examiner.
The course must be passed before 31st January for autumn and befores 31st of August for spring.

Grading criteria

Examination accounts for 100 % of final grade.

Additional information

The course must be passed before 31st of January for Autumn and before 31st of August for Spring.


Nicolai Brobak (NBRO)

Valid from

9/1/2020 12:00:00 AM

Course type

7. Viborg
Compulsory for the specialization AR/VR (Viborg)