A Halloween VR Game

Halloween is a big mood. So is virtual reality. As a young student trying to navigate myself in the world of games, I thought that now would be a wonderful time to make a Halloween themed game in virtual reality (I ended up finishing the game on Oct 31st!).

So much of virtual reality’s appeal consists of movement and immersion, and I think that’s why first person shooters are currently the dominant genre in VR games. There’s a lot of pleasure in scanning the room for enemies, aiming, pulling a trigger, and shooting. I’ve been wanting to make a shooter game for a while, and as a Knight Lab fellow, I already had some art assets with which I could build my game.

Some models created in the Knight Lab

Google Blocks is an VR environment where you can build 3D models. It makes for good mock-ups, but it’s also really cool to just make cute things (Check out the gallery). The simplicity of the models lend well to virtual reality: low-poly models with limited color palettes means that the game engine can render scenes quickly and maintain the high frame rate that’s necessary for immersion in VR. I made a couple of assets: a haunted house as a focal scenery, a ghost and jack-o-lantern as enemy models, and trees to navigate around the scene.

After that, I imported the models into my game engine of choice: Unity. There are a ton of helpful tutorials and useful SDKs that allow games built in Unity to be integrated to virtual reality. I used SteamVR and VRTK: both incredibly useful resources with a ton of video tutorials that helped me figure this out (shout-out to MIT; you’re doing wonderful things!). To get started with VRTK, I would highly recommend their Youtube channel- this was the first video I watched to integrate the camera with the player headset.

So many good videos to watch on their channel

I especially leaned on their survival shooter video, which takes Unity’s survival shooter tutorial and changes it into a VR format. This game was made for the Vive. I maintained the format of the right controller trigger being used for shooting and the right trackpad being used for teleportation (sorry, left-handed people). The finished* product is here. A couple of changes that I made: instead of using raycasts, the gun instantiates bullet objects that collide with the enemies. It seemed like enemies needed a shootable mesh in order to be affected by the raycasts, and I didn’t want to alter the models’ meshes from Google Blocks. Additionally, the player has no health, and you cannot lose in my game.

when the ghosts come out to fIGHT you

Some improvements that could be made: the player can teleport outside of the play area, so I need to restrict their possible teleportation locations. There should be an instruction canvas when you first start. There should be a counter for shooting enemies. Right now, I like having enemies float about after they’re shot, but I might have them be destroyed instead.

Overall, this process took me about 5 weeks. If I make another shooter game, part of me thinks I could finish it in 3 days. I’m really enjoying learning more about virtual reality and game development, and I’m glad that my work study job pays me to make things like this.

(Also, big shout-out to my manager who built my game and was the one who uploaded it to itch).


*I realize now that coding projects, just like art projects, are never really “finished.” You just get to a point where you’re satisfied enough with the results (and too tired to continue working on it) that you stop working.