"Seeding" Multiplayer Games?
I am not implementing this on any project in particular, I am just curious. In torrents, the more "seeders" you have than "leechers," the faster the download is. I realize that torrents and multiplayer games are totally different concepts entirely, but could you have something for multiplayer games where instead of one central server serving all the clients, several users would "seed" and there systems would be re-purposed (temporarily, maybe for 30 minutes or so) into servers? How would the seeds communicate to each other?
essentially, your talking about a near perfect, peer-peer system.
Is it possible:
Short Answer: Sure, anythings possible
Long Answer: Difficult, but it can be done.
First off, the reason why torrents work, is because it sends different segments of the file to the client, from different hosts, with different speeds.
The problem with doing this in a game, is how do you keep everything in sync?, and why do you want to switch hosts?, most multiplayer games with a peer-peer setup simply evaluate the host with the lowest ping time to all the peers, and select them as host. for some games, If they drop, the game kicks everyone, but for others, instead all the remaining peers stop, and reselect a new host, and then resume(like CoD's system).
their are a couple reasons why multiple hosts would be a good thing, perhaps one peer has a higher ping to another peer, but he's not host, however, he's got a faster ping to the host(and potentially, theoretically, this connection to this peer->peer->host is faster than original peer->host, for whatever reason), it might be useful to create a sub-host, to route traffic through, to the master host.
In effect, you still need a master host, to validate all actions against, perhaps sub-hosts could respond to the client with useful data, but submit that data to the master host to validate/correct if necessary.
at the end of the day, syncing is your enemy, and handling that with several hosts is difficult, you need to select someone to say "yes" or "no" to actions from clients, and the problem arises when one host will say "yes", but another might say "no", because by the time it receives the data, it'd be considered an invalid move.
Is it possible:
Short Answer: Sure, anythings possible
Long Answer: Difficult, but it can be done.
First off, the reason why torrents work, is because it sends different segments of the file to the client, from different hosts, with different speeds.
The problem with doing this in a game, is how do you keep everything in sync?, and why do you want to switch hosts?, most multiplayer games with a peer-peer setup simply evaluate the host with the lowest ping time to all the peers, and select them as host. for some games, If they drop, the game kicks everyone, but for others, instead all the remaining peers stop, and reselect a new host, and then resume(like CoD's system).
their are a couple reasons why multiple hosts would be a good thing, perhaps one peer has a higher ping to another peer, but he's not host, however, he's got a faster ping to the host(and potentially, theoretically, this connection to this peer->peer->host is faster than original peer->host, for whatever reason), it might be useful to create a sub-host, to route traffic through, to the master host.
In effect, you still need a master host, to validate all actions against, perhaps sub-hosts could respond to the client with useful data, but submit that data to the master host to validate/correct if necessary.
at the end of the day, syncing is your enemy, and handling that with several hosts is difficult, you need to select someone to say "yes" or "no" to actions from clients, and the problem arises when one host will say "yes", but another might say "no", because by the time it receives the data, it'd be considered an invalid move.
We have this discussion every year on this forum, and in the end, nobody has shipped a successful game that actually does it that way.
Isn't Day Z partly peer to peer based? One obvious issue with the torrent comparison is that torrents most likely don't care about latency and in a "graph" of peers the total usable bandwidth is actually higher than with a central host, while the same doesn't hold at all for latency. Well actually it sort of does since the latency via multiple peers is generally "higher" which is not what you want at all.
The difference between torrents and multiplayer games is that in the case of a torrent, the data doesn't change, so the seed data can be passed around as quick or slow as it likes. A multi-player game by definition is being affected by its players, so the game state is constantly changing. There's just no simple way for that game state to be passed around in a peer to peer fashion that is either timely or accurate.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement