Summary
With 40 commits and 4 new contributors, this is probably the most numerous release so far! With multiple fixes and quality of life updates, there are some major updates too:
- Input delay, courtesy of @TheYellowArchitect
- Refactor to start using HistoryBuffers, which unlocks future improvements, contributed by @DustieDog
- Mutations ( experimental )
- RewindableActions ( experimental )
Overall, netfox is getting better tools for synchronizing not just game state, but game events in the form of mutations and rewindable actions. This is happening in parallel to a refactoring initiative, to let us build better features easier in the future. With the addition of vest, test coverage is also slowly increasing, so we can be more confident in future changes.
What's Changed
- chore: Warn on invalid NetworkTime.start() calls by @elementbound in #367
- chore: Remove MultiplayerSpawner from examples by @rcorre in #370
- fix(example): More responsive firing by @krazyjakee in #366
- chore: Setup tests with vest by @elementbound in #371
- feat: Track fired tick for NetworkWeapon by @elementbound in #376
- chore: Log rollback stage and range by @elementbound in #377
- fix: Send state ack's to sender instead of authority by @elementbound in #378
- fix(ci): Fix contributor list formatting by @elementbound in #379
- chore: Implement tickrate handshake by @elementbound in #380
- fix: Recover clock from pauses and stalls by @Riordan-DC in #381
- doc: Netfox Sharp by @DustieDog in #384
- feat: Add display_tick and history_start getters by @elementbound in #388
- fix: Record state if mutated by @elementbound in #389
- feat: Expose last known input and state ticks by @elementbound in #390
- fix: Add missing editor check in RollbackSynchronizer._ready by @elementbound in #391
- chore: Iterable sets by @elementbound in #392
- fix: Add logger tags in _ready by @elementbound in #395
- Added Input delay (no custom serialization, no static typing) by @TheYellowArchitect in #276
- Refactored input batching and input submission by @TheYellowArchitect in #307
- refactor: Store state and inputs in HistoryBuffers as PropertySnapshots by @DustieDog in #399
- doc: Press kit by @elementbound in #408
- fix: Failing PropertySnapshot tests by @elementbound in #409
- doc: Made with netfox page by @elementbound in #410
- fix: Missing dependency for site build by @elementbound in #411
- doc: Contributors page by @elementbound in #412
- chore: Fix banner in README on dark mode by @elementbound in #413
- refactor: Use get_property_list() to check property presence by @elementbound in #415
- chore: PropertyEntry tests by @elementbound in #416
- fix: _HistoryBuffer snapshot return by @DustieDog in #418
- fix: Don't tile if embedded in editor by @albertok in #419
- chore: Upgrade to vest v0.22.15 by @elementbound in #426
- refactor: History encoder by @elementbound in #425
- revert: History encoder (#425) by @elementbound in #429
- refactor: Statically typed almost everything by @gk98s in #420
- feat: Rewindable Actions by @elementbound in #394
- fix: Unregister log tags on game exit by @elementbound in #434
- docs: Mark Mutations experimental by @elementbound in #435
- chore: Add UIDs by @DustieDog in #436
- chore: Check UIDs by @elementbound in #439
New Contributors
- @rcorre made their first contribution in #370
- @Riordan-DC made their first contribution in #381
- @DustieDog made their first contribution in #384
- @gk98s made their first contribution in #420
Full Changelog: v1.19.1...1.25.3