NITH 2010-2011 / Emner / Programmeringsemner (PG,IPG) / PG591 Programming Game Engines  

PG591 Programming Game Engines

Code
PG591

Subject
Programming Game Engines

ECTS (European Credit Transfer System)
10.00

Course leader
Tomas Sandnes

External examiner
Kjetil Svarstad

Date of approval
30/09/2009

Aim
Game development takes place within the frames of game engines. In PG591 the students learn how an engine is composed, and they will further develop their C++ knowledge to the level necessary to build an engine in C++.

Prerequisites
Good basic skills in C++ programming are required, e.g. through the course PG330 Programming in C++, or the equivalent.

Competence objectives

The students learn how a game engine is built. At completion of the course they will

· be able to program their own log systems;

· know Design Patterns, which are often used in the game industry such as Singleton;

· know various memory management/garbage collection models for C++;

· know function pointers, callback functions and functors, and what contexts they are used in;

· know how to build a kernel/game loop and be able to program their own, based on STL lists and objects with polymorphy/heritage;

· be able to program timing systems with an accuracy down to a millisecond level or lower, using 3rd party libraries;

· know "event-driven" and "state snapshot" based input models, as well their benefits and disadvantages, and be able to implement them in their own game engine;

· know methods for serialisation of (game)data;

· know client-server and peer-to-peer communication over TCP/IP (TCP and UDP), and be able to implement a client-server solution as part of their own game engine;

· know 2D graphics systems and how they themselves should program the necessary connection between game engine and 3rd party's 2D system;

· know various 3rd party apis/systems for rendering 3D graphics;

· know 3rd party apis/systems for handling sound, and know the theory of how they themselves can implement positional audio;

The topics will be recurrent throughout the semester in exercises and assignments.

Structure
The course is taught as 12 lectures of 2 hours each and 12 teacher-led exercises of 3 hours each. The exercises are not compulsory, but to achieve the competence goals the students are expected to complete the exercises through self-study.

Assessment is through a portfolio containing 2 group assignments and an individual final exam. The portfolio is assessed as one unit.

Curriculum

The lectures and aids necessary to complete the exercises; this material is made available to the students throughout the course.

Grading system
Bokstavkarakter / Letter grade

Diploma supplement text
The students have gained knowledge of the models behind games and game engines and how these are used to develop specific games. They have also practiced skills through development tasks using such models, comprising exercises and assignments in memory management, error handling, timing, networking, input and output.




Vurdering / Assessment

Percentual weighting (%):
100

Type of assessment:
Mappevurdering m/muntlig prøve (se emnesiden) / Folder assessment w/oral test

Help:


Duration:


Semester:
Vår / Spring