vision summit 16 - tips and tricks for vr game development
TRANSCRIPT
Nomes
Rafael FerrariLead Developer@rafaelbferrariTips and Tricks for VR Game DevelopmentGabriela ThobiasUI/UX Designer@gabivthobias
We are from Manaus, Brazil!
But who are we?
Gear vr
unity
Problems during development
Start thinking in vr
General Tips
Tips for User Interface
Tips for Development
Conclusion
TRUST
General Tips
Unity 4SDK MobileUnity 5SDK Mobile for deep changesStarting on unity
Prototype! Prototype! Prototype!
Go Horse!
Look for FUN
FAIL FAST!
And NEVER, NEVER, AND NEVER use that code on final project. NEVER
Test a lot with different people
Immersion
immersion
Creative solutions for immersionDead secret
Audio
Audio helps immersionFrustration
Fear
Helps the gameplay
Can KILL the immersion
Color Transitionpay attention
VR is a 360 world People may not now
Tips for User interface
Pay Attention on cameras Locked huds
HUDs
Affects26
use resize on gaze forselectable objects
Give sense of selected object to the playersFeedbacks
Have a detailed flow
Detailed flow
This helps a lot the engineers30
legibility
Shadows and outlines make texts smootherReading in VR
Never use 100% black and 100% white.Ghosting
Information on players sight
Information should appear at the same direction player is looking at.Players move around
General Tips for Development
immersion
FPS ALWAYS CONSTANTLY
When you look around, usually, your vision have a excellent fps ;)
prefer performance rather than graphs
You can check the device and change your graphics configuration
//SystemInfo.deviceModel ->samsung SM - G925I//SystemInfo.graphicsDeviceName -> Mali-T760//SystemInfo.graphicsDeviceVendor -> ARM
if(SystemInfo.graphicsDeviceName.Contains("Mali")){ChangeSceneSetup();}
Different scenes
with different graphics
with different setups, right?
GPU / CPU Level Throttling
[DllImport("OculusPlugin")]private static extern void OVR_VrModeParms_SetCpuLevel(int cpuLevel); [DllImport("OculusPlugin")]private static extern void OVR_VrModeParms_SetGpuLevel(int gpuLevel); [DllImport("OculusPlugin")]private static extern void OVR_TW_SetMinimumVsyncs(OVRTimeWarpUtils.VsyncMode mode);
OVR_VrModeParms_SetCpuLevel(3); OVR_VrModeParms_SetGpuLevel(1); OVR_TW_SetMinimumVsyncs(OVRTimeWarpUtils.VsyncMode.VSYNC_60FPS);
Signing Builds for gear VR
Device id or imei
Abd devices
Assets/Plugins/Android/assets/.sig
Signing Builds for VR after APK is done
Add your sign file into Assets folder
steps
Delete meta-inf folder
jarsigner -keystore .keystore -signedjar .apk.apk jarsigner -keystore debug.keystore -signedjar FM_DEMO_VR_16032015_sign.apk FM_DEMO_VR_16032015.apk androiddebugkey
Debugging on Gear VR
Debug WiFi
ADB WiFi Connectionadb tcpip 5555adb connect :5555
ex:
adb connect 192.186.0.101:5555
ADB WiFi Unity Connection
I dont have WiFi!
Gear VR Develop Mode
Application Manager -> All -> GearVR Service -> Manage Storage and tap VR Service Version 7 times
The device is getting hot!
Optimization
Optimization start in the FIRST day.
If youre not optimizing for the games bottleneck then youre wasting timePhil Lira, Staff Eng.
Loading Time
Texture compression settings
Texture compression settingsIf the device doesnt support your texture compression, Unity will decompress all textures before splash
Disable autoconnect Profile if you are debugging loading time
DrawCall/SetPass
Unity 4Unity 5
Conclusion
ImmersionOptimization starts on the first dayAlways prototype and test a lotFeedback as much as you can
And you should test Finding Monsters Adventure VR and Rococo VR :)Conclusion
Finding Monsters Adventure VRtomorrow
Breakout 1 PM 1:45/2:15
Thank you!
Official partners:Hosted by:
Gabi ThobiasUI/UX [email protected]@gabivthobiasQuestions?Rafael FerrariLead [email protected]@rafaelbferrari