gubebra
gubebra2w ago

Bandwidth usage analysis

I wanted to analyze my application's bandwidth usage more thoroughly to see if I'm sending unnecessary data or how I can optimize my application's data usage as a whole. I've put the Nomcore modules into the Unity profiler, but I only have the general amount of data sent without any further details. It would also be useful to know the best practices for optimizing internet bandwidth, I didn't find this in Nomcore's documentation.
4 Replies
kapa.ai
kapa.ai2w ago
Hi @gubebra. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave: ---------------------- Normcore is designed to be as bandwidth and CPU efficient as possible. For instance, Normcore model updates are not more expensive than RPCs, they are designed to be as bandwidth and CPU efficient as possible source (https://normcore.io/documentation/room/common-questions#are-model-change-events-more-expensive-than-rpcs). Normcore also uses WebRTC which implements congestion control. This means that Normcore can automatically adjust the rate at which updates are sent to the server to utilize the maximum bandwidth available while still keeping updates smooth for users with poor connections source (https://normcore.io/documentation/architecture/transport#webrtc-implements-congestion-control). In terms of optimizing data usage, one of the ways Normcore does this is through delta updates. The datastore keeps track of all changes that have been applied by the local client. Periodically, Room will instruct the datastore to serialize all the outstanding changes to send in an update to the server. This ensures that only the smallest amount of data needs to be serialized and transmitted to the server source (https://normcore.io/documentation/room/datastore#delta-updates). However, if you're looking for more detailed analysis of your application's bandwidth usage, you might need to use additional tools or services that specialize in network profiling and bandwidth analysis. Unity's built-in profiler might not provide the level of detail you're looking for when it comes to network traffic. As for best practices, it's generally a good idea to minimize the amount of data you're sending over the network. This could mean optimizing your data structures, using compression, or being mindful of the frequency at which you're sending updates. If you have more specific questions or need further assistance, you can join Normcore's Discord (https://normcore.io/discord) and ask the community or the developers directly. They might be able to provide more specific advice or point you to resources that aren't covered in the documentation. ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
kapa.ai
kapa.ai2w ago
<@599054560270483456> kapa.ai is still learning and improving, please let us know how it did by reacting below
maxweisel
maxweisel2w ago
we’re working on a guide now to post to the site! should be up in a few weeks
gubebra
gubebra2w ago
That's great to hear thanks!
More Posts
Allow RealtimeView.realtime and RealtimeView.viewUUID to be set from the editor inside prefabsWe have a use case where we want to be able to dynamically spawn a normcore room from a prefab. UnfoRealtime.Destroy On owned realtime prefabs.Can I destroy a RealtimePrefab by calling Realtime.Destroy even if someone else is an owner? Or do IHow can I distort the mic audio in RealtimeAvatarVoice to be higher or lower pitch?Is it possible to distort the mic audio from RealtimeAvatarVoice so the player is heard with a squeaAre there any best practices for syncing a large number of variables in one script?For instance if we have a large script with many bools floats, integers etc and they all need to be First player isn't synced to other players, while other players are visible to the first playerNo idea why this started happening - didn't change any code from what I can tell, but now whenever aReadStream was expecting to read a Null type from the stream, but was asked to read a Model typeI started getting this error in my game when I started disconnecting from it by closing the app. My Show the property path for RealtimeSet delta update errorsSometimes I'll get an error from normcore like `RealtimeSet received delta update for non-existent kHow can I disconnect another player from the gameI need to disconnect a player with another player. Can I do that?Delayed room updatesWe were in the process of testing our game with roughly 18 people per room, and we noticed that dataServer MirroringFor spectator sidecars, if you go beyond the x-large server bandwidth, the only option is to stream