There are a notable amount of the application level protocol that belongs in a lower level implementation. The heartbeat, the initial synchronization, the magic number management, sequence number, and disconnect timeout are all to establish a unreliable but ordered connection, something Laminar and other reliable UDP implementations already support. This should exist at the backroll-transport layer. A good amount of this is already established in amethyst/laminar#290, and this change be considered a step towards implementing backroll-transport's connection model in Laminar.
[ ] Create a wrapper around Peer for ordered unreliable sends. OrderedPeer?
[ ] Add a way to notify the main game of incoming connections.
[ ] Alter Peer to notify either end of a network interruption.
[ ] Move "Synchronizing, Running, Interrupted, Disconnected" state machine to the transport layer.
There are a notable amount of the application level protocol that belongs in a lower level implementation. The heartbeat, the initial synchronization, the magic number management, sequence number, and disconnect timeout are all to establish a unreliable but ordered connection, something Laminar and other reliable UDP implementations already support. This should exist at the
backroll-transport
layer. A good amount of this is already established in amethyst/laminar#290, and this change be considered a step towards implementing backroll-transport's connection model in Laminar.Peer
for ordered unreliable sends.OrderedPeer
?Peer
to notify either end of a network interruption.OrderedPeer