Virtual Reality. You’ve heard about it by now. It’s pretty much everywhere and it’s here to stay. We at ISL are not immune to the hype either, and we wanted to see what it was all about. So we rolled up our sleeves and, as we always do, made something…something that would both challenge us and expand our prowess into the VR universe.

The Concept

The idea was simple: cornhole, in Virtual Reality, with multiplayer support (we firmly believe the future of VR is a shared, synchronous experience).

We decided to use the  HTC Vive because of its room-scale capabilities and its motion controllers. At the time, the Oculus Rift hadn’t released its version of motion controllers (we thought that the room-scale capability gave the Vive an edge anyway).

We also decided on using the Unreal Engine for the development of the software that would power the game itself. In the past, we’ve used Unity, but we wanted to try our hand at Unreal because we felt it would yield better-looking results and also would have more robust multiplayer support.

The game itself is simple and user-friendly. A player presses a button on the motion controller to grab a bag, and then releases the button to toss it. Points work just like they do in that lame “real-life” version: one point on the board, three points in the hole. If you knock a bag in the hole (or off the board), it still counts!

The Game Modes

The game is split into two modes: Party mode and Online 1 vs 1.

Party mode is a simple local multiplayer mode, where a group of friends can share one headset and pass it around as each player’s turn comes up. The players can adjust how many players are in the group (up to 4 players), how many bean bags per player, and the difficulty level (the distance to the platform).

Online 1 vs 1 was the most challenging from a technical point of view. You can read more about the development of this feature in our engineering blog This mode allows a player to connect to another player via a local network or over the internet. Online 1 vs 1 requires two VR headsets.

The Process

All the assets for the game were created in-house. All models were designed using blender, a free python-based 3D modeling software. We then moved onto Substance Painter for texturing and imported those files into Unreal Engine, where we finally added the collision meshes. Collision meshes are simplified versions of the 3D models that define where a body starts and ends so that when objects collide with them it is easier for the engine to compute.

For our 3D models, we were going for a very simple aesthetic, emphasizing the texturing over a complex model structure.

The End

We had a blast creating this open source, VR game and learned a lot along the way. Everyone in the office has played it at least once and loves it.

We’re releasing it for free as a downloadable game for windows, for anyone and everyone to enjoy, and will also make the Unreal Project available for people to examine and expand upon!

If you’re interested in getting into VR, we encourage you to visit the microsite, take a look at the finished game, download the project files, and take a stab at expanding it.  See what you can do with it, maybe add some crazy fireworks? Set it up in space? Put a T-Rex in it? Go nuts!