The inspiration was largely the scene from The Matrix where Morpheus is talking Neo through evading agents while attempting to escape his office building.

What it does

There are two players: Player 1, who plays in VR, and Player 2, who plays on a desktop or mobile device.

Player 1 is the "inside operative", physically infiltrating a secure location while evading security, disabling alarms, etc.

Player 2 is like the person you would typically see sitting in a surveillance van in the movies, with access to a bank of monitors which receive closed-circuit security camera feeds, and with a computer they use to hack systems inside the secure facility.

The gameplay requires constant verbal communication and cooperation between both players, with Player 1 discovering clues to puzzles in the virtual world, and feeding them back to Player 2 who then uses that information to hack security systems, data-mine hacked databases (using key word searches, etc), etc, while Player 2 also warns Player 1 of impending threats, approaching security guards, traps, etc.

How I built it

Using Unity and the SteamVR plugin to support HTC Vive. All code was written in C#.

Challenges I ran into

Getting physical hand interaction with the world to work properly.

Accomplishments that I'm proud of

The unique WalkAbout locomotion system which the VR player may optionally use to move around the environment.

What I learned

A lot about the physics of hand-interaction in VR.

What's next for The Sleeper Initiative

Richer environments, more elaborate puzzles, and additional episodes with new locations and an expanding storyline.

Milestone 2 Update

Finally finished a system to allow proper visualization of the VR player's body (well, the trackable parts of it, anyway) on the non-VR player's side. Now just need some art assets to represent the VR player's head and arms. The environment is almost done, and multiplayer should be testable soon!

Final Update

It was a hard slog with very little sleep, but this barebones version of The Sleeper Initiative is finally ready and surprisingly rich!


You will need two players to play this game -- one using a Vive, and another on a PC networked to the Vive PC (you can run both on the same machine, but there's a trick to that but performance can be a real issue). Fire up the Vive instance and click the LAN host button, or else click Enable Matchmaker and then create a match.

On the non-VR PC, run the game and after the VR player has hosted a game/created a match, click LAN Client, or if playing over the internet, click Enable Match Maker and select Find Internet Match, and join the match with the name your buddy gave to the match/room. NOTE: If you are playing as the non-VR player but are on a VR-enabled computer, you will probably need to hold down the left shift key as you click to join the match, and keep it held down until you're all the way in the game. This forces the game into non-VR mode. Otherwise it will detect VR and try to run you in VR instead and it won't quite work.

If it's your first time playing, all the non-VR player really needs to do is tap the "Mission Briefing" button and then follow along. For the VR player, the left control pad will translate you around the world at a comfortable speed, which you can control by how far from the center you touch your thumb while pressing the pad. The right hand holds your multi-tool which is both a hacking device and a flashlight. The in-game tutorial explains most of the functions on it, but you may also use the grip buttons to engage the WalkAbout system which is another alternative way to locomote in the world if you have a large enough space to suit it. For more information on how WalkAbout works, see our video here:

That's about it, have fun!

Known Issues

  • Not everything is tracked and synced over the network at the moment, so non-mission critical objects may be being held or manipulated by the VR player that the non-VR player can't see.

  • If either player fails the game (well, pretty much only the VR player can cause a failure condition), the game won't restart gracefully. You'll just have to quit out and restart at the moment. Sorry. It's complicated. :-)

  • The VR player always has to host the game for now, and if the client connection is dropped, the non-VR player can come back in, but they won't have all the data, etc, that was previously unlocked, so you may have to have the VR player backtrack a little if that happens.

  • If playing as non-VR player on a VR-enabled computer, be sure to hold down the left shift key when joining the match and keep it held down until you're fully in the game. This forces it to bypass initializing VR, which will otherwise mess things up.

Built With

Share this project:


posted an update

Just fixed a strange bug where the hand controllers would start to drift and behave strangely. It was caused by a rigidbody interpolation setting which is apparently buggy in Unity when applied to kinematic rigidbodies. Switched to extrapolation and all is well again.

Log in or sign up for Devpost to join the conversation.