Repository navigation
Conversation
editor/relay ports psnl_server's default relay to C++: PSNL frames, redux's SIO1 protobuf wire, rooms by scene hash with slots 1..10, Event ack/dedupe/fan-out, ObjectState/AppData relay, Ping/Pong, a 30 Hz snapshot byte-identical to psnl's, and an unsolicited HelloAck on every room change so player counts stay current. Play boots 1-10 consoles (2 link directly unless Use the Relay is on), starts console k only after the relay accepted connection k, lays them out in a grid, and the output popup gains a Network view of routed packets.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Play boots 1 to 10 consoles. With 3 or more (or 2 with "Use the Relay") each Redux connects as an SIO1 client to a relay in the editor, a C++ port of
psnl_server's default relay: slots 1..10 per scene hash, Event ack and fan-out,ObjectState/AppData, Ping/Pong and 30 Hz snapshots byte-equal to psnl'sRoom.build_snapshot. Console k starts once the relay accepted connection k, so relay slot k is console k.The Game view shows a grid with each console's slot, and the Play output popup gets a Network tab listing routed packets by console and type, with Pause.
Tests:
testRelay*ineditor_tests(CRC, framing, Redux's protobuf wire, rooms, snapshots checked against psnl's Python),relayviewcheck.pywith 4 fake consoles in CI, andrelayplaycheck.pywhere 3 real Redux reach Connected as slots 1, 2 and 3 (needs Redux, so it runs by hand).