Game Development

Semester:
WS 2016
Type:
Practical
Lecturer:
Credits:
Contact:
trettner@cs.rwth-aachen.de
Course Dates:
Type
Date
Room
Kick-off Meeting October 18, 2016 118
Milestone I November 18, 2016 at 16:00 118
Milestone II December 16, 2016 at 16:00 118
Milestone III January 27, 2017 at 16:00 118
Final Presentation February 3, 2017 at 16:00 118
Video Submission February 17, 2017 at 16:00 (submit via git or upload and send link per mail)
Report Submission February 24, 2017 at 16:00 (submit via git or upload and send link per mail)

In this practical course, the students will implement a computer game with contemporary graphics and physics-enabled gameplay.

The game will be a 3D game for PC platform. Participants will work in small teams. Each team will be concentrating on either the graphics engine, the game logic and physics part, the content creation, or the precomputed global illumination. Although the students can focus on a smaller problem, they have to ensure that their parts fit into the whole framework of the game. Therefore, the intercommunication between the group members is of a very high priority in order to define precise interfaces and common data structures.

Basically, students will learn to organize themselves as part of a bigger project. Depending on the topic of the group, students will learn to implement a specific part of a game.

  • Graphics:

    For a high visual quality of the game, students will have to implement several shaders in the rendering pipeline that is based on OpenGL. This includes effects like complex materials (e.g. relief mapping) and post processing effects (e.g. glow, deferred lighting, motion blur, reflection). A strong focus will be placed upon physically based rendering. We are providing a framework with a convenient OpenGL interface and a very basic game architecture.

  • Game Logic and Physics:

    The game logic itself will be largely supported by a rigid body physics engine like the bullet physics engine. A major feature is the dynamic cutting (or slicing) of geometry in-game. The responsibilities of this group will be to implement the game logic, adapt and interface with the physics engine, and execute various geometry processing tasks.

  • Content Creation:

    Students will have to create the game world, define a level format, and - if reasonable - a basic level editor. Since this kind of modeling should be done on a very high abstraction level, single instances of geometry will have to be created with common tools like blender or 3dsmax. Furthermore, the group has to create the textures for the geometry, which can be done with tools like gimp or photoshop. Another important responsibility is to coordinate the information flow with the other groups, such that all required effects and materials are supported by the graphics engine and the game logic is able to read and process the level files.

  • Precomputed Global Illumination:

    Basically every bigger modern game uses some form of precomputed lighting. A good part of the perceived realism depends on a proper illumination. This group will use techniques like Precomputed Radiance Transfer and environment map probes to capture complex lighting situations in a pre-processing step and make this information available for the graphics team.

Requirements:

  • Good knowledge of C++ programming
  • Attended Basic Techniques in Computer Graphics
  • Preferred: Knowledge of OpenGL (especially the graphics groups)
  • Preferred: Attended Geometry Processing or Global Illumination and Image-based Rendering

Image sources: Mirror's Edge Catalyst, Metal Gear Rising - Revengeance, Besiege

Disclaimer Home Visual Computing institute RWTH Aachen University