582662 Game Engine Architecture (ohtk 25.8.2011)

Principal theme Prerequisite knowledge Approaches the learning objectives Reaches the learning objectives Deepens the learning objectives
  • C++ techniques relevant for implementation of game engines
  • C++ programming skills
  • explain the merits and drawbacks of C++ as an implementation language for a game engine
     
  • explain C++ data structures relevant for game engines
  • write game engine components using STL data structures and algorithms
  • design and effectively implement a non-trivial class hierarchy and  templates in C++
  • use C++ metaprogramming tools to optimize and reuse game engine components
  • Architecture of large-scale C++ programs (such as game engines)
  • general programming skills
  • explain the problems of large-scale applications (more than 100 000 lines of code), especially  in a games context
  • explain the goals and use the tools for modular component design in C++
  • explain the general idioms and patterns needed for large-scale game programs (e.g., forward class declarations, handle-body idiom, Singleton, Factory, smart pointers, reference-counting)
  • implement independent  components for  large-scale  modular applications, e.g., well-structured game engines
  • design and implement a specific truly modular game component (e.g., graphics engine, physics engine, audio system, resource streaming, network component, etc.)
  • Run-time game engine architecture
  • 3D graphics for background and motivation 
  • general programming skills
  • explain  the main tasks of a 3D game engine
  • explain the layered structure and the layers of a game engine
  • explain the need and use of third-party components for a game engine
  • explain the low-level APIs needed for a game engine
  • explain the special requirements and needed solutions for game initialization (start up)
  • explain the implementation of  the main update and rendering loop of a game engine
  • implement a main game loop
  • explain cooperative tasking as used for game logic implementation
  • design and implement custom tools for game multitasking
  • Events and message passing in game engines
  • general programming skills
  • explain the event-based nature of a computer game
  • explain the need for a special event system for a game engine
  • explain the basic patterns relevant for a game event system: Observer, Command, and Typed Message
  • implement a custom Typed Message event system for a game engine
  • Scripting languages in games
  • general programming skills
  • explain the use and benefits of scripting languages for game production
     
  • describe the principal examples of scripting languages for game programs / game engines
  • read and write simple scripting code samples (e.g., Lua)
  • implement all or parts of the game logic using a scripting language
  • implement a custom scripting manager for a game engine

 

30.10.2011 - 16:36 Juha Vihavainen
05.03.2011 - 15:47 Juha Vihavainen