High-tech. VR is a trend which is not going to fade in the foreseeable future. As for the software, having accumulated some experience with several engines we opted for Unreal Engine. Its tutorials, low barrier to entry, plenty of content and a great marketplace just a small part of the features which Epic Games you for free.

Off we go!

We started pretty fast but the technological failure and narrow thinking easily let us down. Nobody knew what to do and how to do it. We had to learn everything from scratch. It happened not only with artists, animators, and programmers I’ve mentioned before, but also game designers, project managers, and producers. Achieving the desired results was a tough process but the best moments came when we were overcoming the difficulties.

Now, looking back at the work that’s been completed, I want to share some ideas on the building of the process and optimization workflows. They work for all Unreal Engine projects, not only for VR games. I don’t want to sound like Captain Obvious, but I am sure that we are not the last company who did things in a rush and had to learn a lot in a short amount of time.

When developing your first VR project, don’t forget that you are making a very demanding game where the slightest drop in the fps is torture for a player. You will struggle and fight for each mesh, particle or texture. In VR, your video card and processor are rendering pictures for both eyes.

This means you will need to forget about a beautiful open world with thousands of interactive objects with realistic physics. Your aim is 90 fps (60 fps for PS4) or 11 milliseconds.

Learn how to merge Actors. It is a subtle point, which always depends on the situation. You can find an ideal solution only by testing and comparing the results. Long story short: merge any time you see a drop in draw calls. But if there are problems with rendering, it will only make the situation worse, as there will be more polygons to draw. There is no sense in merging five objects if you see just one of them. But if these five objects are always shown together, it is better to merge them.

Turn on VR Instanced Stereo (Stereo Rendering) if you haven’t done it yet. Otherwise, each eye will be rendered separately. Stereo Rendering optimizes CPU but worsens GPU. You will win some draw calls, but it will cost you adding more instructions in materials.

Check if the resolution isn’t too large. Probably you made our mistake: we had to change the resolution from 2700×1600 px to 2160×1200 px (actual Oculus Rift resolution). It reduced GPU load keeping the graphics outstanding.

LOD. I can’t help mentioning it if though you might know it already. It is a powerful and indispensable tool. In some places, you will have to add special lightweight materials by changing from Translucent mode to Masked, from Masked to Opaque, etc. But it’s worth it.