Skip to content

Releases: bdero/dashwire

dashwire_replication 0.2.1

Choose a tag to compare

@bdero bdero released this 16 Aug 21:11
  • 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.inputLeadTicks exposes the adaptive send-ahead lead, so a caller passing an explicit tick to sendInput can pace from it instead of stranding the buffer-depth control loop.

dashwire_replication 0.2.0

Choose a tag to compare

@bdero bdero released this 02 Aug 09:59
  • 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.sendInput with a redundant unreliable tail that self-heals dropped packets, ReplicationHost.consumeInput/Room.input for 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.inputTargetDepth tunes 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 onLeave sent on its closed connection.

dashwire_udp 0.1.0

Choose a tag to compare

@bdero bdero released this 28 Jul 16:35
  • UDP transport: sequencing with piggybacked ack bitfields, fragmentation over MTU, and a bounded reliable resend queue that disconnects on overflow.
  • Maps the reliable and unreliable channels onto a single socket.
  • UDP broadcast LAN discovery helper.

dashwire_replication 0.1.0

Choose a tag to compare

@bdero bdero released this 28 Jul 16:35
  • Replicated-property schema: Replica/rep<T>/rpc with 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), plus RoomStore snapshot/hydrate.
  • TransformReplica, a pose-carrying replica base for shared game schemas.

dashwire 0.1.0

Choose a tag to compare

@bdero bdero released this 28 Jul 16:35
  • Wire primitives: ByteWriter/ByteReader (little-endian, varints, f32, length-prefixed strings), 32-bit fnv1a32 name hash.
  • Transport abstraction: Channel/NetMessage/WireConnection, LoopbackConnection, WebSocket transport (native and web), and a latency/jitter/loss/duplication SimulatorConnection.
  • Session layer: versioned handshake with schema-hash slot and peer-id assignment, per-connection ByteBudget accounting.
  • NetClock server-tick sync and a fixed-timestep TickLoop.