Data management for a dynamic networked open world.

I would like to discuss the pitfalls and solutions related to significant data transfers in network games.

The goal is to establish a dynamic open-world game, where a large amount of data will need to be transferred to modify the prefabs, textures, etc. of the game.

Too broad.

This is tantamount to asking „How to make a dynamic open world multiplayer game?“. This doesn’t even narrow down the type of game. Requirements are very much dependent on the type of game, its scope, how many players, what „dynamic“ means, whether there is user generated content and if so, what it is, and so much more.

The goal was to discuss broadly (Compression, streaming, CDN, protocol, buffer …).

But if I had to focus this on my current project, it would be for instances of 5/15 players, using JSON to save the transforms of gameObjects as well as their states, in a multi-scene setup, with direct data transfer for the current scene and asynchronous for neighboring scenes.

The idea is to transfer a maximum amount of data from the map at initialization during startup, and then only what is necessary.

For this, I mainly need to know the protocols or technologies, with their advantages and disadvantages, in order to determine my needs more accurately.

This way, I can adapt my project accordingly. For instance, if I have X players modifying the state of the same scene or different scenes, with X kb/mb of data, knowing if there are any limitations to avoid latency or related problems.

In essence, I will adapt my project to the possibilities :slight_smile:

Still too broad I’m afraid. :wink:
But at least one thing is for sure: you want to transfer the MINIMUM amount of data that allows you to replicate the state on the other end. Json would be a bad choice because it adds syntactical overhead, unless compressed.

You are aware of Netcode and other networking libraries? They already solve a lot of these basic issues, like synching transforms.