University homepage Suomenkielinen versio puuttuu Inte på svenska In english
University of Helsinki Department of Computer Science
 

Department of Computer Science

582662. Game Engine Architecture, Spring 2013

General Info

Exam grades (8.4.2013).
 
List of received end-term projects (by 8.4.2013)
 
Course examination 27.2.2013.
 
The course teaches game engine programming techniques.
Lectures: Juha Vihavainen 16.01.-22.02.2013, We 14-16, Fri 12-14 C222
 
Exercise sessions 21.01. - 22.02.
 
The lectures are spoken in Finnish but that should not be a problem for foreign students wanting to take the course. All written lecture materials, exercises, and the exam are in English. The exercise groups use English as the working language (Zach Laster). Also, the course exam answers and project reports must be written in English.
 
Course requirements: basic C++ programming (e.g., as taught in the course Software Design C++) - or corresponding skills. Any earlier knowledge of 3D graphics and game programming are also beneficial as general background and motivation. You need not have passed any corresponding courses, but then you may have to do a bit more work.
 
Preliminary course outline
 
  • introduction to the essential C++ 2011 standard features
  • large-scale C++ programming techniques in a games context
  • game technology and game engine architecture
  • game engine software development techniques and tools

The course includes such topics as intermediate and advanced C++ programming techniques. The C++ part of the lectures continues from the course Software Design (C++). The material also covers cooperative multitasking for a game engine, events and message passing in games, and use of modularization, components, and scripting for game programming. These topics are further explored in the course projects.
 
The course includes an obligatory project, to be completed in the following teaching period IV. By default, the projects are done in groups (2 - 4) and involve immplementation of game engine components. The students may also propose their own projects if relevant and appropriate for the contents of this course. A high emphasis is placed on the quality of the software, testing, and documentation analysing the problem and its solution.
 
The course examination is on Wed, Feb 27, 2012, 16:00 (B123/A111), lasting 2 hours and 30 minutes. Please check the time and place just before the examination. The exercises give max 6 exam points. The obligatory course project gives max 16 points. The course examination (and later resit exams) gives 38 points. The exercises and the project are an essential part of the course and partly determine also the grading of resit exams.
 
Literature and source materials
 
  • Jason Gregory: Game Engine Architecture. CRC Press, 2009. (C++ software architecture; game development tools; Visual Studio; debugging; version management; engine subsystems; game world object models; multiplatform game engines; multiprocessor environments; tools pipelines, and the game assets. Home.)
  • Mike McShaffry, David Graham: Game Coding Complete (4th Ed.). Course Technology PTR, March 5, 2012. ("Insider" expertise, game architecture, Windows & DirextX, use of support libraries (physics), resource handling, coding tricks, message system, file directory organization.. Home)
  • Nicolai M. Josuttis: The C++ Standard Library - A Tutorial and Reference. 2nd Edition. Addison-Wesley, 2012.
  • Martin Reddy: API Design for C++. Morgan Kaufmann, 2011.
  • Michael Dickheiser, C++ for Game Programmers (2nd Ed.). Charles River Media, Oct, 2006. (C++ techniques, components, and program architecture from games point of view. Doesn't illustrate complete games but related components.)
  • Game Programming Gems 1 - 7. Home.
  • Herb Sutter & Andrei Alexandrescu: C++ Coding Standards: 101 Rules, Guidelines, and Best Practices. Addison-Wesley Professional (November 4, 2004). (Idioms and practices for successful C++ software. Home.)
  • Erich Gamma et al., Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Nov 1994. (The monumental book that changed all discussion about object-oriented programming and still remains the standard reference to OOP design patterns such as Singletons and object Factories.)
  • Bjarne Stroustrup: Programming: Principles and Practice Using C++. Addison-Wesley, 2008.
  • Bjarne Stroustrup: The C++ Programming Language. Special Edition. Addison-Wesley, 2000.
  • Andrei Alexandrescu, Modern C++ Design: Generic Porgramming and Design Patterns Applied. Addison Wesley, Feb 2001.
  • Scott Meyers, Effective C++ - 55 Specific Way to Improve Your Programs and Designs, (Third Edition). Addison-Wesley, 2005. Home
  • Gregory Junker, Pro Ogre 3D Programming. Apress, 2006.
  • John Lakos, Large-Scale C++ Software Design. Addison-Wesley Professional, July 1996. (How to decompose a large program into a number of smaller, more easily manageable components.)
  • Walker, Walker & Kajala: Making a Game Demo. Wordware, 2005. (3D modeling & engine programming, 3ds Max, Ka3D, Lua.)
  • Daniel Sanchez-Crespo Dalmau, Core Techniques and Algorithms in Game Programming. New Riders, Sep 2003.