Skip to content

core v0.10.0

Latest

Choose a tag to compare

@AEastwood AEastwood released this 17 Oct 14:51
· 30 commits to main since this release

Sync traces for comparing two games after a test, and remote-motion fixes from the first real two-PC test (Mafia DE 0.13.0: car copies never rolled under their own physics, sprinting copies fell up to 3 m behind). A minor release with no breaking changes. The wire protocol stays at 7.

  • core/trace.h: one trace file per session, next to the main log (logs\trace\<log name>-<date>-<time>.trace).
    • The newest 20 files are kept, up to 1.5 GiB each.
    • Each line is "<t> <TYPE> <fields>" on the QueryPerformanceCounter clock.
    • Output is buffered (written twice a second) and thread-safe.
    • Every main log line is copied in while a trace is open.
  • core/log.h: the last five runs' logs are kept. New log::Dir() and log::BaseName().
  • LocomotionController:
    • The maximum speed multiplier is now 1.8 (was 1.5).
    • When even the top multiplier can't reach the wanted speed, the shortfall is made up with small nudges along the walk, so a copy whose AI sprint is slower than a player's keeps up.
    • A slow gait is learned faster.
    • Commands report the wanted speed, the measured speed and the carried part.
  • VehicleController:
    • Every command carries a wanted velocity for the copy, so a game whose position setter stops the body can give it back after each correction.
    • A pinned copy gets its physics back after 5, 10, 20 and then 40 s.
    • Reports why a copy was pinned, pin and retry counts, speeds and the rotation error.
  • Tests: new core_trace test; net_motion now covers a slow AI sprint, a teleport that stops the body (with the velocity given back) and pin retries.

Changes: CHANGELOG.md.