Skip to content

v0.1.3

Latest

Choose a tag to compare

@mococa mococa released this 08 Jun 04:42
· 17 commits to main since this release

0.1.3

Added

  • StateMachine (core) — fixed-capacity, zero-GC finite state machine over
    many entities. SoA columns, numeric states with per-state binary schemas,
    cumulative per-state handlers (add), change/enter/exit lifecycle, a
    change event channel, and binary serialize/restore for snapshotting.
    Depends only on SlotStore/EventSystem/SimpleRNG/BinaryCodec. (a0b2e7a, e7f0a0e)
  • GameLoop interval schedulingloop.every(n).ticks | seconds | milliseconds(cb),
    a tick-anchored, zero-GC scheduler with clearSchedule/clearSchedules;
    schedules survive stop() and rebase on start(). (e6b19b1, ed50522)
  • SlotMap / SlotStore (core) — zero-GC O(1) dense slot allocator and
    id-keyed store with packed iteration. (3f559af)
  • SlewClock + Timeline (core) — composable clock/timeline primitives;
    client-side prediction rebuilt on top of them. (c91e4ea)
  • Dynamic lighting (renderer) — point/spot lights with GPU interpolation,
    feathered spot cones, and Reinhard tonemapping. (3f559af, 5c7992d)

Changed

  • Netcode interpolation — smoother peer interpolation under jitter; honor
    per-component on-change sync rate in snapshot deltas; hold last-known state
    instead of bridging across large snapshot gaps (removes rubberbanding). (c31da41, 937d997, 7b4403d)
  • Netcode internals — compose core primitives instead of inlining them;
    moved snapshot interpolation into client-side strategies. (84e52c4, 6e6a5d8)
  • Parallelized package build scripts. (bb2389b)

Fixed

  • Write entity components before emitting the client spawn, so clients never
    observe a spawn with unset component state. (000ff04)

Full Changelog: v0.1.2...v0.1.3