beeeen
NNormal
•Created by beeeen on 8/15/2024 in #🤝ask-a-question
What is the best way to sync object references across clients?
I want to be able to synchronize a reference to a game object accross clients?
Currently, the way I'm doing it is by creating a unique identifier string in a custom RealtimeComponent that syncs across clients. Then, when we need to reference that game object, we can reference that string, search for it on all clients, and get the game object reference.
However, this feels a little clunky. I have to assign this custom component to each object that I want to reference.
Is there a better way? I thought about using the viewUUID in realtimeView but it is null for realtimeViews that were instantiated in a prefab.
Any ideas?
7 replies
NNormal
•Created by beeeen on 7/15/2024 in #🤝ask-a-question
How to optimize normcore?
We're looking to reduce the amount of bandwidth that we use. What are some good practices to reduce the amount of bandwidth being used? What are some good practices to reduce the cost of normcore for our use case?
16 replies
NNormal
•Created by beeeen on 6/3/2024 in #💭feature-request
Custom update rate for far away models
We have a large scene that has many RealtimeTransforms throughout it, including avatars. We would love to have all models update less frequently if the player if further away from them.
For example, if Ann is on one side of the scene while Bob is on the other, their avatars shouldn't update for each other at all until they get closer. In addition, they shouldn't be streaming each other's audio because they wouldn't be able to hear each other.
You can get around this by sectioning off the scene into smaller rooms but then you increase you room hours and thus increase the cost of Normcore. Not ideal.
6 replies
NNormal
•Created by beeeen on 6/3/2024 in #🤝ask-a-question
RealtimeAvatarVoice not creating AudioOutput component for remote clients sometimes
29 replies
NNormal
•Created by beeeen on 5/28/2024 in #🤝ask-a-question
In-editor references disappear
We find that if we reference a prefab in the editor (such as dragging & dropping it into a public gameobject field), everything will work fine UNLESS the prefab is in the Normal/Resouces folder. In that case, there's a possiblity that the reference will be "broken" or dissapear. This happens to us frequently. Even the RealtimeAvatarManager script which requires a reference to the LocalAvatarPrefab will possibly lose this reference if changes are made to the prefab.
Any ideas on what's going on here and how to fix it?
6 replies
NNormal
•Created by beeeen on 5/6/2024 in #🤝ask-a-question
Is it better to have more variables per RealtimeComponent?
Say that I have 5 variables that I want to sync using a RealtimeComponent. Is it better to use 1 RealtimeComponent for all 5 of these variables or is it better to use 5 RealtimeComponents, each with 1 variable? Does it matter?
My reasoning here is that every RealtimeComponent requires some overhead to create an id and an entry in the datastore. Therefore, if you have many variables that you have to sync, then it would make sense that having one RealtimeComponent to handle all those variables would reduce the overhead.
8 replies
NNormal
•Created by beeeen on 5/6/2024 in #🤝ask-a-question
Does consolidating RealtimeComponents to have only one RealtimeView reduce bandwidth?
For example, if I have a prefab with a root game object and a child game object. For some reason, as I was creating this prefab, I decided that it needed a realtime view on the root object for some realtime components and it also needed a realtime view on the child object for some other realtime components. If I were to move all of the components from the child object to the parent object, reducing the amount of realtime views to one, would that reduce bandwidth usage?
In my understanding of realtime views, they provided two functionalities: and id to associate realtime components across clients and ownership. In theory, if we were to reduce the number of realtime views (say, by consolidating realtime components to one realtime view), then that would decrease some entries in the datastore and thus decrease the amount of bandwidth. However, I'm not sure. Is my understanding/reasoning flawed?
6 replies
NNormal
•Created by beeeen on 5/6/2024 in #🤝ask-a-question
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?
7 replies