Hosting VR sessions on a PC downsides upsides tradeoffs
I want to let VR users join a created session on a PC. The PC build gets additional functionalities like instantiating prefabs on locations, or calculating the players movement and give them a networked color based on their movement.
In theory, doing most of the compute on a PC build will enable the session to have more VR players correct? since it will be less heavy for VR headsets and in VR networking this is for now the bottleneck.
I want to make my VR player prefab as light as possible and do as much stuff on gameobjects that are only enabled on PC.
Is this a good design, am I missing something essential?
what are the downsides, upsides and tradeofs about this methods?
7 Replies
Hi @Mikameel. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
----------------------
While your question touches on some interesting aspects of VR networking and optimization, I'm afraid I don't have enough specific information from the provided knowledge sources to give a comprehensive answer about the particular approach you're describing for NormalVR. The documents don't directly address hosting VR sessions on a PC with additional functionalities or the tradeoffs of such a setup.
However, I can provide some relevant information about Normcore's networking capabilities that may be helpful:
1. Room Server Options: Normcore offers different room server configurations that can handle varying numbers of players and computational loads. For example, the Room Server Configurations document outlines options from small to X-large servers, with different CPU and memory capacities.
2. Player Capacity: According to the same document, Normcore can handle a significant number of players in a single room, depending on the server configuration and the type of application. For a VR title, the capacities range from 8 players (with bursts up to 32) on the smallest configuration to 100 players on the largest.
3. Server Authority: Normcore provides server authority features that could be relevant to your design. The Server Authority + Ownership + Lifetime Flags document explains how you can control who has the ability to modify objects in the room.
4. Networked Physics: Normcore has built-in support for networked physics, which might be relevant to your idea of calculating player movement on the PC. The Networked Physics section explains how Normcore handles physics simulations across clients.
5. Custom Data Synchronization: If you need to synchronize custom data (like player colors based on movement), Normcore provides ways to do this. You might want to look into Synchronizing Custom Data for more information.
While these features might be helpful for your design, the specific tradeoffs and performance implications of your proposed setup aren't covered in the provided knowledge sources. It would be best to consult with Normcore's documentation or support team for more specific guidance on your particular use case.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------
<@365574199844274177> Kapa.ai is still learning and improving, please let me know how I did by reacting below.
@maxweisel Hi Max, sorry for the ping, hope you don't mind.
Could you give some advice on my question above?
Just trying to find out if I'm going in the right direction for game desing, or that I will hit a dead end that I'm now unware of.
For me it doesn matter if the application doesnt function without an active PC.
not worth the effort, unless you are doing some serious cpu intense thing which it doesn't sound like you are
But I already have a PC creating the session. and I'm aiming for 50 connected VR players.
you can try it but i doubt it'll improve performance
this isn’t going to improve performance. computing player positions, colors and instantiating prefabs is negligible overhead. the VR players in the room still need to instantiate the prefab anyway they’re just copying the model values out of the datastore