Developing Quacer

This was my VRJam 2015 Entry. See my entry, and a gameplay video here.

What is VRJam?

Entrants are given a month to create a VR experience or game for the GearVR.

What is Quacer?

My idea was to make a quadcopter game that provided a timed obstacle course. I felt this was a good choice because you won’t get motion sick from watching a flying quadcopter, and you can learn how to fly a real life quadcopter from playing a game. The name is from Quadcopter Racer.

Real life quadcopter racing from Porco 777 on Vimeo.

Development

Development Tools

  • Unity
  • Blender
  • Audacity

Framework

I made my own animation library and some simple scripts to track progress through the course.

Quadcopter Simulation

I researched how controllers for physical quadcopters worked and translated their code to work inside Unity with virtual motors attached to a rigidbody.

Sound

I made each motor emit sound which is frequency adjusted according to their speed. I started by recording the sound from a real mini-quadcopter, but it sounded horrible in game (like a possessed mosquito). The sound I went with is recorded from an electric toothbrush…which is a little better.

Live Coding

I did some live coding in google hangouts. It was good because it forced me to focus. Other developers liked my polygonal terrain generator so I released my code to them.

Modelling

Modeling in Blender went well. I’ve made a few models before, but each time I come back to blender it feels like I need to relearn the unique UI and shortcuts again.

Problems

Frame Rate

One big problem for mobile VR is lack of headtracking (they track head orientation but not position). Another big problem is frame rate. For a good experience you need over 60fps. Because the screen covers your field of view you are much more senstivie to slow frame rates, or variations in frame rates than on a normal screen. John Carmack helped bring attention to this after trying a few VRJam entries.

My head hurts from evaluating VR Jam entries that aren’t even close to 60 fps. – John Carmack

My visual style would theoretically make it easy to attain 60fps, but I was wrong - even with a low polycount, advanced shader effects disabled and batching it was hard to attain a solid 60fps. That is, until I upgraded my version of the Oculus SDK, which gave a big boost (but I’d still dip under 60 sometimes).

First Person

First person racing with quadcopters is a thing so I tried a first person mode but it’s very sickening to be moving around so quickly without feeling any vestibular feedback. I left it in for fun - you can toggle to first person mode if you have a strong stomach.

Submission

Submitting the application was confusing. It wasn’t clear what exactly had to be submitted and how to do it. Most of my last day was spent just trying to make a build that would compile, run on any GearVR and be accepted by their verification tool.

Drama!

There was some drama near the end of the competition - some people were being given extra time, and many entrants were annoyed many entries were judged on their videos rather than being judged on the experience in the GearVR itself.

Conclusion

I got a VRJam t-shirt and $50 Unity store credit, gained experience with VR and I had fun making the game.