dashwire_replication 0.2.1
dashwire_replication: ^0.2.1 copied to clipboard
Replicated state for dashwire. Property schema, snapshots, relevancy, spawning, RPCs, and rooms.
Changelog #
0.2.1 #
Replica.snapshotTick, the server tick of the newest snapshot that carried a replica's state. A predictor reconciling against replicated state pins it to this tick rather than to the input ack, which runs every tick while snapshots are budget-packed and can be deferred or dropped.ReplicationClient.inputLeadTicksexposes the adaptive send-ahead lead, so a caller passing an explicit tick tosendInputcan pace from it instead of stranding the buffer-depth control loop.
0.2.0 #
Predictor<I,S>, a generic client-side prediction engine with input-replay reconciliation (advance per tick, roll back to an authoritative state and replay the not-yet-applied inputs).LagCompensation<K,V>, a server-side per-tick history that rewinds tracked entities to the client-rendered tick (interpolated, capped) for lag-compensated hit resolution.ReplicationHost.priorityScale, a per-connection snapshot-priority multiplier (the distance-falloff generalization); the priority accumulator is now per connection so scaling stays starvation-fair.- Tick-indexed input commands,
ReplicationClient.sendInputwith a redundant unreliable tail that self-heals dropped packets,ReplicationHost.consumeInput/Room.inputfor authoritative per-tick consumption with hold-last on a miss, and server-driven send-ahead pacing from a per-connection buffer-depth ack. The substrate for client prediction and input-replay reconciliation. ReplicationClient.inputTargetDepthtunes the server-side input buffer depth the send-ahead lead converges to (2 default; 1 trades jitter headroom for a tick less input latency).- Fixed quantizing codec ids rendering differently under dart2js, which made a native host and a web client disagree on the schema hash and reject the join.
- Fixed a leave race where despawning the leaver's entity in a room's
onLeavesent on its closed connection.
0.1.0 #
- Replicated-property schema:
Replica/rep<T>/rpcwith write and read permission axes and per-field replication modes. - Sync pipeline: per-connection acked baselines with change-bit delta encoding, quantized codecs (varint, quantized float, vec3, smallest-three quaternion, bool-packing), and importance-versus-starvation priority packing against a byte budget.
- Spawn/despawn with a prefab registry, dormancy with auto-wake, and relevancy filters (always-relevant, per-connection, spatial grid, dependent edges).
- Ownership-checked RPCs with validation tripwires.
- Rooms with fixed tick and an isolate-per-room pool (
package:dashwire_replication/server.dart), plusRoomStoresnapshot/hydrate. TransformReplica, a pose-carrying replica base for shared game schemas.