[Unity] - Looking for advice on optimizing an environment for a multiplayer VR game

greentooth
Offline / Send Message
TheGabmeister greentooth
I'm currently doing some research on 3D asset guidelines for a multiplayer "Escape the Room" type of VR game using Unity with 4-6 players. The target device is an Oculus Quest. Most of my previous experience with 3D modeling involves only single-player experiences, so I'm wondering if there are special considerations and "gotcha's" that I need to consider when creating an environment for a multiplayer VR game.

I've gathered the basic mobile VR optimization guidelines such as baking all lighting, avoiding real-time shadows, using Mobile instead of Standard shader, using LODs, combining meshes and textures, etc.

My initial guess is that a multiplayer game has a CPU overhead since the device is syncing information and updating the location of the other players. That means I should pay more attention to reducing CPU performance costs of the assets I plan to create right?

Replies

  • RyanB
    Offline / Send Message
    RyanB Polycount Sponsor
    -You are going to be in the 100 draw call range so plan accordingly.
    -The hotter the device runs, the shorter the battery life.  Just hitting your target framerate is the minimum.  If you want the game to last more than five minutes you need to reduce the heat to a minimum.  Often that means reduced shader complexity.
    -Overdraw is a killer.  If you plan on having lots of vfx, you need to use techniques that avoid lots of overlapping particles. 
    -Take a serious look at DOTS.  There are already projects for the Quest on github using DOTS.
    -If you code sloppy then your heap size will be huge and garbage collection will cause frequent hiccups in your framerate
    -Profile on device!
    -You can look at things in strange ways in VR, like twisting your head while leaning down.  You can often look at things in a way that makes models seem too flat or with an incorrect volume.  Look at it in VR before you consider it done.  Things like particle billboards or sprites can fall apart when the play views them from a weird angle.

  • TheGabmeister
    Offline / Send Message
    TheGabmeister greentooth
    RyanB said:
    -Take a serious look at DOTS.  There are already projects for the Quest on github using DOTS.
    Thanks! This is something I've heard but haven't done some research. Will definitely check it out.
  • snake85027
    Offline / Send Message
    snake85027 polycounter lvl 13
    I have a question. How are you profiling your scenes? I was able to export the apk to the quest, play the game in the quest. I am using the usbc connection to the computer. I found my ipaddress. Within Unity i went to analysis profiler and changed it from editor and put my IP address in there. Ran the game and hit record in the profiler. But I feel like the readings that I am getting back are not accurate. So my questions is. What profiler are you using and did you have simliar issues with bad readings? or maybe i just dont know what im doing...thats probably it.
  • TheGabmeister
    Offline / Send Message
    TheGabmeister greentooth
    Yeah, sometimes I'm not confident with the numbers the Unity profiler is displaying. What I usually do is to get a quick overview of the performance using OVR Metric tool. After that, I use Unity profiler to make sure to build the app single-thread to get a better picture.

    Other optimization guidelines can be found here:
Sign In or Register to comment.