Developing a Low Budget Virtual Reality System for Gaming
Semester: |
SS 2014 |
Type: |
Practical |
Lecturer: |
|
Credits: |
Find a list of current courses on the Teaching page.
Type |
Date |
Room |
---|---|---|
1. Milestone | Fr. 02.05.2014 15:00 Uhr | E3 118 |
2. Milestone | Mi. 18.06.2014 15:00 Uhr | E3 118 |
3. Milestone | Fr. 18.07.2014 15:00 Uhr | E3 118 |
Final Presentation | Mi. 06.08.2014 14:00 Uhr | E3 118 |
Final Release Deadline | So. 03.08.2014 23:59 Uhr |
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 ). In addition to existing, ready to use hardware, the goal of this practical course is to extend the off-the-shelf hardware to enhance the immersion by building additional input devices or by tracking the user with additional hardware (e.g. vision based head tracking, kinect based tracking of arms and hands etc.). The game will be a single-player game for the PC platform. Participants will work in 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.
Previous results
- Some projects from previous semesters (with different topics) can be seen here: our YouTube channel.
Requirements:
- Good C++ programming experience
- Knowledge of OpenGL 3.2 or later
- Knowledge of Computer Graphics on the level of the lecture "Basic Techniques of Computer Graphics"