Open Z2Up1UwcaYOyZq opened 3 years ago
Froox doesn't plan to use bittorrent protocol and instead develop yet another protocol. See message in discord.
https://ptb.discord.com/channels/402159838827905024/477711742001086505/788099106240724992
Own protocol would most likely allow better flow control so e.g. voice traffic can be prioritized.
Can you copy this message here?
I could only add that there's a card on mesh networking on the roadmap, the plan to replace SNS by GNS (which eliminates the requirement of running Steam) and the plan to decentralize the asset storage by utilizing IPFS (I guess the relevant issue would be #1754 in this case) or similar networks.
The linked message is this one:
What topic do you want to discuss?
Proposal about implementation of sharing assets with P2P (not about P2P voicechat or other things that need low latency)
Goal of discussion
To brainstorm ideas about P2P asset sharing, since there is none on github.
Discussion:
I'm open to your criticism and ideas
Base idea
My base proposal on how to deal with asset sharing is to use Bittorrent protocol by making magnet links for each individual thing, this way overlapping might happen and you are gonna save some bandwidth.
Current state:
Proposed state:
This way even if there are multiple servers with the same world/asset they can help each other distribute the traffic, or rely on other participants in the server, or even people who are not playing in that world but have fast internet and asset downloaded. This way host doesn't need to have good PC or internet, and network is still decentralised because everyone can distribute traffic if needed, just by leaving their computers overnight or by spining up a cheap seedbox.
Going a step further
Using Logix and bittorrent to save space and bandwidth by making a "library" of basic assets and then make players reuse them, by scaling/distorting/rotating/colorgrading. This library would be a list of magnet links and opt-in for users. The world download would be a file with logix scripts that build world[1], checking if there aren't files on your computer already. Also syncing avatars someone only changed colour in could be fast, or only downloading mesh when all PBRs are already on your computer.
[1] "a file with logix scripts that build worlds/avatars/props and everything else by either being packed with that data or just referening magnet links to those" could be the answer for #1803