JaggedSac said: P2P multiplayer's most limiting factor is upload bandwidth. The basic idea of the Donnybrook is three things. 1. Is to generate an interest set. An interest set is a set of players that the player is interested in an will recieve updates from. A player is determined to be interesting using the sum of three parameters and a threshold. The threee parameters are aim, proximity, and recent interaction. Interest sets are useful because players will only send updates to those who are interested in them and will only recieve updates from players that they are interested in. 2. A guidance update is sent and recieved once every second to and from those who are uninterested in each other. This guidance is an estimation of what the player will be doing over the next second based on physics, previous actions, etc. In certain circumstances, an uninterested player might still be in the player's field of view. Only recieving an update every second will result in a player appearing to skip around, current techniques(dead reckoning, etc) can only extrapolate a couple hundred milliseconds. To resolve this issue, doppelgangers are used. Doppelgangers are a basic AI that use the guidance information to emulate the player's actions over the second without information. This is smoother and is often unnoticeable due to the player not being in the interest set. 3. Message forwarding. This technique offers a method for players with insufficient upload bandwidth to use other players with extra bandwidth to forward updates. Instead of the player sending updates to all other players, the player sends a single update to a forwarder, who then sends the update. A set of valid forwarders are determined based on available bandwidth and a specified threshold. The use of forwarders also reduces the number of bytes necessary for headers due to consolidation of updates by the forwarders. |
This sounds really interesting....particularly the message forwarding bit. I have terrible upload speeds, but it is the best I can get in my area (about 25Mbps Down/<1up).
Be interesting to see if/when this is actually used.