Add a frame synchronization mechanism so that Will game clients receive input events from the session server and process them in the same logical frame.
Network Input Sync Sequence:
[x] To Do: Client resets SessionCondition status. SessionMessageResponseSystem
Input events received per client: amethyst::input::InputSystem
Client sends input events to server: NetworkInputRequestSystem
[x] To Do: Client sends SessionMessageEvent::GameInputTick to server -- GameInputTickRequestSystem.
Server receives input events: NetListenerSystem,
[x] To Do: Server receives SessionMessageEvent::GameInputTick from all clients -- SessionMessageResponderSystem.
Server sends input events to all clients: NetworkInputResponderSystem
[x] To Do: Server sends SessionMessageEvent::GameInputTick to all clients -- SessionMessageResponderSystem.
[x] To Do: Client receives SessionMessageEvent::GameInputTick from server and sets SessionCondition::Ready -- SessionMessageResponseSystem.
Client responds to game input events from server: NetworkInputResponseSystem
Add a frame synchronization mechanism so that Will game clients receive input events from the session server and process them in the same logical frame.
Network Input Sync Sequence:
SessionCondition
status.SessionMessageResponseSystem
amethyst::input::InputSystem
NetworkInputRequestSystem
SessionMessageEvent::GameInputTick
to server --GameInputTickRequestSystem
.NetListenerSystem
,SessionMessageEvent::GameInputTick
from all clients --SessionMessageResponderSystem
.NetworkInputResponderSystem
SessionMessageEvent::GameInputTick
to all clients --SessionMessageResponderSystem
.SessionMessageEvent::GameInputTick
from server and setsSessionCondition::Ready
--SessionMessageResponseSystem
.NetworkInputResponseSystem