Hi, my name is Brion. I develop computer games and also scripting assets for the Unity Asset Store under the name Clockworks Games. There is a lot to learn about Unity and Oculus development. I find that the documentation, although good, is often incomplete and I need to experiment to fill in the gaps or to solve a problem.
In this blog I will document what I learn in the hopes that it will help other game developers. I will start with a series on achieving good VR performance using Unity. I have been working on a VR game called Sharkferno. I had optimized performance a while ago to achieve a solid 90 fps with no judder. However, after a number of improvements to the game, performance has suffered. I am going to take a fresh look at what it takes to achieve 90 fps in Unity, using development tools from Unity and Oculus.
What is good performance? For judder-free VR, the goal will be:
- 90 frames per second (the standard for the original Rift, even though other headsets require less).
- Less than 11 ms / frame CPU time — needed for 90 fps.
- Less than 11 ms / frame GPU time.
- 50-100 draw calls / frame, as recommended by Oculus.
- 1-2 million triangles or vertices / frame
In the next blog I will show how to set up a sample environment obtained from the Unity Asset Store that I use in Sharkferno. The blog after that explains how to set up the tools you will need and make some baseline measurements, showing that performance improvements are needed. After that will be a series of blogs describing experiments that attempt to improve performance.