Hi, I’m investigating the best multiplayer solution for my project, and my projections are that Normcore public is fairly expensive compared to other solutions. A big part of that is the bandwidth costs and usage - my project is a networked VR app, and according to my tests I can expect somewhere around 6 kbps continuous per player squared. At $.10 per GB that’ll add up, especially with lots of players in the same room.
So, my understanding is that 6 kbps could be 4 transforms syncing at 60 frames per second. I don’t need 60 fps all the time - in fact, I could probably do with a max of 10 or 20 and some interpolation. Another solution could be putting user rigs to ‘sleep’ and having them send updates maybe once per second in certain situations. Does Normcore public give us any of these options? I couldn’t find it in the documentation.
Normcore defaults to 20hz and does the interpolation for you if you’re using RealtimeTransform. Our rigbody / transform synchronization will also only send updates if the values change. If your rigs aren’t moving, they’re not sending data.
We charge $0.10/gb for bandwidth which is what Google Cloud charges for bandwidth. It’s the same pricing you’d pay if you host your own multiplayer servers on Google Cloud.
I highly recommend trying out the Free plan, and then occasionally check your bandwidth use in the dashboard to see how much you’re actually using. Normcore’s serialization system is designed to be incredibly efficient and it will avoid synchronizing data that doesn’t change in most cases. I imagine you’ll find it’s much cheaper than you expect in practice.
Thanks for the info. So Normcore has no tools for me to control update rate? It’s stuck at 20 hz?
Normcore is competing with Photon, not Google Cloud or AWS - and Photon offers $.05 per GB.
Take a look at the datastoreFrameDuration: Datastore | Normcore.