Does an inactive RealtimeComponent utilize bandwidth?
In our game, we have an object with multiple states. To simplify things, we have each of those states represented by different child objects that we can activate/deactivate depending on the desired configuration. The configuration is decided upon the object's instantiation and doesn't change throughout its life.
However, each of these configurations use RealtimeComponents. As I was debugging some things today, I noticed that the RealtimeComponents on the deactivated configurations (therefore gameObject.isActiveInHierarchy == false) were still having their models initialized and created, despite them being completely unused.
This leads me to think that these unused RealtimeComponents are still using up bandwidth and are creating entries in the Datastore. Is this accurate? If we removed the unused realtime components (such as by splitting the different configurations into different prefabs), would it reduce our bandwidth usage, packets received, and possibly increase game performance/stability?
4 Replies
Hi @beeeen. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
----------------------
Based on the provided knowledge sources, it's not explicitly stated whether inactive RealtimeComponents utilize bandwidth. However, it's mentioned that RealtimeComponents are responsible for keeping a specific part of your scene in sync, and they do this by updating the corresponding RealtimeModel instance in the datastore when the game object changes, and vice versa.
If the RealtimeComponents on the deactivated configurations are still having their models initialized and created, it suggests that they might still be communicating with the datastore, which could potentially utilize bandwidth.
However, whether this would significantly impact your bandwidth usage, packets received, or game performance/stability is not clear from the provided sources. It would likely depend on the specifics of your game and how many of these unused RealtimeComponents there are.
If you're concerned about potential inefficiencies, it might be worth considering your suggestion of splitting the different configurations into different prefabs, so that only the necessary RealtimeComponents are instantiated for each configuration.
For more detailed information or advice tailored to your specific situation, you might want to consult the Normcore documentation (https://normcore.io/documentation) or reach out to their support.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------
<@690217885540417680> kapa.ai is still learning and improving, please let us know how it did by reacting below
serialisation of inactive components still occur so not any different normcore wise
you could save resources by splitting off components that are not used
There’s no benefit to disabling components. Normcore only serializes when values change. If you’re not changing the values, nothing goes out. They’re not eating up bandwidth by sitting idle even when enabled.