This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.
Unity VR optimisation hints and tips
Hi everyone, we are two developers working on 'Crystal Rift' - Jon Hibbins, who created the game originally and Nick Pittom, who joined the project two months ago.
The game is a dungeon crawler designed for VR, and currently that's the Oculus Rift, although we're looking at GearVR and other platforms. This presents challenges, as all VR games do, but we feel we've been able to make some great progress with the medium and are creating a game that really plays to it's strengths. The game will however also be available to play in 2D, so there are some challenges there to ensure we cater for that as well. However, with VR being our target, there are some unique challenges to the medium, which if you are considering going into VR you may have to overcome.
In future posts we'll delve into the many challenges of developing the specific aspects of the game, but for now we thought it would be great to share some simple hints and tips I have discovered regarding Unity Optimisation for VR, I know it’s a list and a bit bossy but I feel strongly that the combination of these tips will help any game run well in VR on Unity.
First up; develop for the lowest spec machine you want to target and optimise for that, developing on the state of the art scenario that you have custom built is not a machine people have, they have a couple of years old 670 or something, or maybe even and iMac or Gaming Laptop. VR is still very early and it makes good sense to allow as many people as possible to jump on board. It also makes sense to prepare for Mobile VR, such as GearVR, as you can provide faster better computers an upgrade via the Quality system.
For our own game, the culling system we have in place has been very effective at keeping performance high.
Heres a screen shot of what our map looks like without our aggressive occlusion method:
Here is what it looks like with it on:
As you can see we scrap the bits we can’t see before Unity's profiler even, this made a 10% improvement in render time alone. I’m sure we’ve missed some others, but that’s quite a list for now, if anyone has any other tips or comments on any of these please comment.
I hope you found at least 1 tip here that helps your game, and of course most of these tips are also good for non-VR games.