Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice

Discussion Data management for a dynamic networked open world.

Discussion in 'Multiplayer' started by bplc, Jan 17, 2024.

  1. bplc

    bplc

    Joined:
    Mar 10, 2022
    Posts:
    113
    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.
     
  2. CodeSmile

    CodeSmile

    Joined:
    Apr 10, 2014
    Posts:
    6,528
    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.
     
  3. bplc

    bplc

    Joined:
    Mar 10, 2022
    Posts:
    113
    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 :)
     
  4. CodeSmile

    CodeSmile

    Joined:
    Apr 10, 2014
    Posts:
    6,528
    Still too broad I'm afraid. ;)
    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.