flutter3d_net 0.7.0
flutter3d_net: ^0.7.0 copied to clipboard
Rollback netcode over `sim`: input frames per step, prediction, correction, and the transport behind an interface so a game never names WebRTC or a socket.
0.7.0 #
- The first publication. The 0.6.0 below was a number this package carried
inside the workspace; it never reached pub.dev. The whole shelf goes out on
one number so that one number names one tree, and
^0.7.0on anyflutter3d_*package resolves against every other.doc/boundary-0.7.0.mdlists the thirteen packages that begin at this release. - Two things the entry below leaves out, both here since the first commit.
diffRunstakes twoDigestTraces and a function per side that answers with the saved state at a step.DigestTrace.divergenceFromHexfinds the first checkpoint that disagrees from the hex digests a.f3drunalready carries, anddiffRunscompares the two JSON trees at that one step and returns aSnapshotDivergence: the step, a dotted path such asentities.7.health, and the two values. It replays nothing itself, because only a genre's own package knows how to step its simulation.WebSocketTransportis theNetTransportover the relay for a platform or a NAT that a WebRTC data channel did not get through. It is built onweb_socket_channeland not ondart:io, so the same class compiles for a browser, and while it is in use every game frame rides the relay. - The relay can be deployed from the package.
deploy/Dockerfilerunsbin/relay.darton port 8790 and is built from the repository root, since the package resolvesflutter3d_siminside the workspace.deploy/flutter3d-net-relay.serviceis a systemd unit for the same process. - No code changed since 0.6.0 was written beyond what the formatter did. The
floor on
flutter3d_simis^0.7.0.
0.6.0 #
net-01indoc/tooling-plan.md.NetSession: input frames per step, prediction by the last frame that arrived, rollback on a disagreeing confirmation, a dropped-correction count.NetTransportas the one interface a real network implements;LoopbackTransportwith a real fixed delay and seeded loss for tests that drive two sessions against each other rather than a mock that cannot lie about timing.net-02's relay (bin/relay.dart): rooms by a short code in the URL path, no accounts, signalling and a WebSocket fallback beside the WebRTC transport influtter3d_net_webrtc.- Plain Dart. Nothing here imports Flutter, and a relay process needs no SDK to run.