Idea/Concept: Stream map data on join
Posted: Wed Apr 22, 2015 1:22 pm
This is a fairly simple proposal for a fairly simple problem ... but with a possible complex implementation. I certainly don't expect this idea to be implemented as is. There could be many things I haven't thought of etc. It is also possible that the devs have much better ideas in the backlog. ![Smile :)](./images/smilies/icon_e_smile.gif)
Purpose:
Reduce or completely eliminate the "pause-and-download" period that occurs when players join a game.
Basic concept:
- Stream the game world from the peers to the joiner, starting at the player's "starting position".
- Allow the joiner to play whilst the game world is still streaming in.
Details:
The joiner's world/mapview starts at the player's position and expands outward - much like how the map is generated - except that the data is gotten from the other players rather than from the seed data.
The status of the world is expanded one squared unit at a time while relying on the other nodes to ensure that events affecting "edge" squares are applied. This would be similar to how the world expands when exploring.
When fully synced, resume normal "fully-simulated" processes.
![Smile :)](./images/smilies/icon_e_smile.gif)
Purpose:
Reduce or completely eliminate the "pause-and-download" period that occurs when players join a game.
Basic concept:
- Stream the game world from the peers to the joiner, starting at the player's "starting position".
- Allow the joiner to play whilst the game world is still streaming in.
Details:
The joiner's world/mapview starts at the player's position and expands outward - much like how the map is generated - except that the data is gotten from the other players rather than from the seed data.
The status of the world is expanded one squared unit at a time while relying on the other nodes to ensure that events affecting "edge" squares are applied. This would be similar to how the world expands when exploring.
When fully synced, resume normal "fully-simulated" processes.