Developing a Virtual Reality Game

SS 2014
Campus , Results
Course Dates:
Team Assignment Meeting 17.03.2014 2pm E3 118
Tech Intro Meeting tbd E3 118
Kickoff Meeting 07.04.2014 2pm E3 118
Milestone Meeting 1 07.05.2014 2pm E3 118
Milestone Meeting 2 04.06.2014 2pm E3 118
Milestone Meeting 3 02.07.2014 2pm E3 118
Final Release Deadline 16.07.2014 <via git/eMail>
Final Presentation 06.08.2014 2pm E3 118

In this practical course, the students will implement a virtual reality (VR) game/application based on recent VR gaming hardware (e.g. the Oculus Rift head mounted display ). The game will be a single-player game for PC platform. Participants will work in small teams. Within each team, there will be subteams concentrating on the graphics, game logic, content creation etc. 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 VR application.

  • 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 template based on ACGL (Aachen Computer Graphics Library, a high level abstraction of OpenGL) will be provided for a quick start. As the application has to support 3D stereoscopic rendering the team has to take care that e.g. menus and HUDs are usable in 3D.

  • Game Logic:

    Depending on the game design the students will implement basic physics simulation, like collision and gravity. A third party physics library can be used for this. The movement of the first person game character has to be implemented. Students should also handle the event trigger, e.g. earn speed boost when hitting a bonus box.

  • Content Creation:

    Students will have to create the game world, other characters etc. This can be done by modeling with tools like Blender, but usage of existing (free!) meshes, textures, sounds etc. if allowed.

Every group can propose its favorite game concept and themes.

Software Engineering

The course will teach the participants how to develop a complex project using software engineering techniques.

  • Application Specification:

    In our scenario, the supervisors will provide a description for each part of the project. The students have to understand it and clarify any questions in the first stage of the project.

  • Software Design:

    The students have to create rough class diagrams that describe the data structures and the internal relationships of their application. The team has to organize itself and it has to set the responsibilities for the different components of the software. In this stage, any common interfaces and data structures with other students have to be defined.

  • Coding:

    Each group has to implement their specific topic. External libraries for physics or audio can be used, but the graphics programming has to be performed by the group itself apart from the tools we provide.

  • Testing:

    The students will have to test their application using the VR hardware we provide. It has to be usable on our lab machines.

  • Integration:

    At each milestone, components of each group member has to be integrated into the whole project.

  • Report and video:

    During the course, the students should make some notes on problems, difficulties and solutions which they have chosen. At the end of the course, they have to hand in a very small report including the mentioned aspects (less than one page per person, details will be discussed when the group size is determined). The group must also create a "trailer" video for there game, similar to the ones you can watch on our YouTube channel.


  • Students have to know C/C++ programming.
  • OpenGL: Students have to acquire some basic OpenGL 3.2+ knowledge, the lecture videos can help you with this. Note that learning the basics of computer graphics and OpenGL is done by most students at the beginning of this course, we will help you with this.

Previous results

  • Some projects from previous semesters (with different topics) can be seen here: our YouTube channel. Note that most students did not have prior CG or OpenGL knowledge!


Disclaimer Home Visual Computing institute RWTH Aachen University