Dive into Mobile VR/AR Games

SS 2015
Campus (B.Sc), Campus (M.Sc), Results
Course Dates:
PreMeeting 24.03.2015 14:00 118
TechIntro 31.03.2015 14:00 118
KickOff 14.04.2015 14:00 118
1. Milestone Meeting 21.05.2015 14:00 118
2. Milestone Meeting 18.06.2015 14:00 118
3. Milestone Meeting 16.07.2015 14:00 118
Final Software Release 31.07.2015 23:59
Final Presentations 24.09.2015 14:00 118

This practical course is offered for the Bachelor and Master students. In this practical course, students will implement a virtual reality (VR) / augmented reality (AR) game/application. We are targeting mobile devices running iOS to develop Oculus Rift like applications for the recent mobile mounting hardware from durovis Dive (Check this video out).

The applications will vary between single and multi-player mobile games. During the development process, the participants will work in teams. Each team will be developing a complete game/application scenario, taking care of different regarding the graphics, tracking, game logic, content creation etc. Within each team, each student can focus on a smaller problem, therefore, students in each team have to ensure that their parts fit into the whole framework of the game. Accordingly, the intercommunication between the group members is of a very high priority in order to define precise interfaces and common data structures.

As a part of the learning the process, the students will learn to organize themselves and define their milestones in a time frame. They also will be dealing with new technologies and different frameworks and SDKs. Depending on the game scenario of the team, students will learn to implement a different specific part of a VR or AR 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 ES. This includes different effects like complex materials and post processing effects.

    At the beginning of the course, a sample template which supports the 3D stereoscopic rendering will be provided for a quick start.

  • Tracking:

    A main part of the games/applications will be tracking the user position in the VR/AR space. This will mainly be done using different visual trackers. The students need to deal with different concepts of the marker or features tracking systems. A ready to use visual tracking framework will be provided in advance for the students to develop their application based on it.

  • Game Logic and Interaction:

    A main part of the game will include different ways for the interaction within the space. 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. Students will find a way to for interaction with the models and objects in the scene or different players around.

  • Content Creation:

    Students will have to create the game world, other objects etc. 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. Also, the usage of existing (free!) meshes, textures, sounds etc. if allowed.

    Every group can propose its favorite game concept and themes, based on the general scenarios we provide at the beginning.

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. Further ideas will also be discussed for each group separately.

  • 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 or the mobile phonw we provide. It has to be usable on our lab machines.

  • 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 short 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.
  • [Preferred] OpenGL ES: Students have to acquire some basic OpenGL ES 2.0+ knowledge.
  • [Preferred] basic knowledge in iOS programming.

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