Web Site Builder

Virtual Reality Game Development

Course overview

Course Summary

Duration: 12 weeks, 84 hours

Project will be written after course completion

Hands-on training to becoming a professional VR game developer with Unity by creating your own immersive experiences.


Dive into VR and create a portfolio of immersive games

Welcome to the world’s most comprehensive course on VR game development, where you will learn and master the foundations of C#, Unity and VR by building practical projects. Whether your goal is to make VR games for fun, do a startup in this exciting field, or become a professional Unity development (+160k a year on senior roles), this course contains everything you need to reach your goals.

Learning goals

  • Locomotion techniques
  • Gaze-based interaction
  • Cabin/vehicle experience
  • User interface design in VR
  • Working with 360 images and 360 video
  • Motion sickness avoidance, based on current research
  • 3D game mechanics and physics
  • Room Scale Experiences with SteamVR
  • Level design
  • Performance and industry best practices for mobile and desktop VR

Platforms covered in the course

  1. Oculus Rift
  2. HTC Vive (2 Room-Scale experiences will be included)
  3. Samsung Gear
  4. Google Cardboard (Android and iOS)
  5. Google Daydream will be added later

Completed modules

By enrolling in the course you’ll get instant access to the modules below. The rest of the course is in the making – new lessons are added regularly!

1. Unity Basics – Learn Unity and C# by Building a Multi-Level 3D Platformer

This module aimed at those with no prior Unity or C# experience. We introduce the Unity Editor and the basics of Object-Oriented Programming. Through out the module we build a fully-functional Mario-style game with different screens and levels.

Learning goals:

  • Unity Editor basics
  • Transforms and game objects
  • Unity Scripting in C#
  • Object-Oriented Programming
  • Multi-level functionality
  • Canvas UI
  • Importing external assets from Blender

2. VR Platform Experience and Platform Setup

In this module we create a VR experience that consists of a platform that flies to different destinations. We make this project run in all the platforms and cover some performance basics.

Learning goals:

  • VR flying platform experience
  • C# arrays
  • Basic setup in all platforms: Cardboard (Android and iOS), Gear VR, Oculus, HTC Vive (OpenVR)
  • Performance and light baking basics

3. VR Forest Experience sample insect

In this module we create a VR experience where a peaceful night in the forest is interrupted an insect. We use the VR Standard Assets from Unity to create a reticle for gaze-based interaction.

Learning goals:

  • VR Standard Assets overview
  • Reticles and VR Eye Raycaster
  • Randomization of trees scale and rotation
  • Skyboxes
  • Particle effects
  • Creation of the mosquito game

4. Creating VR Experiences with 360 Photos

In this module we cover the creation of a VR experience using 360 photos. We start from the ground-up, covering what 360 photos are, how they are stored and what we need to do in order to prepare them for Unity. This module includes also a discussion around UI in virtual reality. By the end of this module, you’ll have built a 360 photo experience that can be easily re-purposed for any kind of application. You will also end up with reusable UI components you can drop into any Unity project.

Learning goals:

  • Working with 360 photos in Unity
  • UI in VR: the importance of Spatial UI
  • Diegetic vs non-diegetic UI
  • Gaze interactions: clicking and hovering
  • Building reusable UI components

5. Interactive VR Quiz with 360 Video

In this module we build an interactive quiz that uses 360-degree video to create an immersive environment. Questions and their correct answers are loaded from the cloud, so that the content of the quiz can be modified even after the game is built. 360-degree videos are covered assuming no prior experience with them. This game uses elements developed in previous modules such as spatial UI panels and buttons for gaze-based interactions.

Learning goals:

  • Working with 360 video in Unity
  • Interactive quiz in VR with gaze-based interaction
  • Loading data from the web
  • Introduction to Coroutines

6. Space Invaders VR

In this module we build a complete space invaders game in VR, where you have to defend your city from an alien attach in a post-apocalyptic world. To start the game the player needs to shoot at a graffiti wall. After that, enemy formations will appear in the sky and the player has to shoot them down. The score is shown in a graffiti wall. Dead aliens will fall to the ground and accumulate in piles of junk. This game runs in all VR platforms.

Learning goals:

  • Building a space invaders game from scratch
  • Gun / tool positioning in VR
  • In-game HUD
  • Game state machine to manage the game flow
  • Object pooling technique

7. Exploration Game with Fixed Teleportation

In this module we build a game where the player can move around in a VR environment using fixed teleportation. The player can hop onto moving platforms and has to avoid enemies. Through out this module, students will build a complete fixed teleportation system that can be dropped into any Unity project.

Learning goals:

  • Types of teleportation in VR
  • Implementing a teleportation system with pods that activate on player proximity
  • Creating an exploration game with enemies to avoid
  • C# and Unity concepts: lists, finding objects, managers, invoking methods at an interval
  • Linear interpolation and easing functions

8. Puzzle Game

In this module we cover the creation of a puzzle game where the player has to drag and position pieces in their correct location. When the puzzle is successfully completed, a giant pyramid emerges from the ground. This module includes intermediate C# concepts such as Delegates and Events.

Learning goals:

  • Creating a full puzzle game in VR
  • Reusable component to drag and position elements in VR using the reticle
  • Intermediate C# concepts: Delegates and Events
  • Using Events to notify game objects
  • Working with local and global coordinates