@series-inc/rundot-syncplay 5.25.0-beta.11 → 5.25.0-beta.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,7 @@ import { type SyncplaySecretCommand } from './secret-protocol.js';
8
8
  * export the COMPLETE confirmed-input log from tick 0 ({@link SyncplayMatchLog}
9
9
  * via `DeterministicAuthorityRoom.matchLog()`). Re-simulating that log through
10
10
  * the game's deterministic session is THE anti-cheat for deterministic systems
11
- * (Quantum doctrine; Rune's server re-execution): a client cannot forge a
11
+ * with server re-execution: a client cannot forge a
12
12
  * score without forging inputs the server itself ordered. This is strictly
13
13
  * stronger than `verifyScoredReplay`, which trusts a CLIENT-exported
14
14
  * ReplayFile — a fully self-consistent fabricated replay passes that; a match
@@ -63,8 +63,8 @@ export interface NetworkedSyncplayClientOptions<State, Input, Checkpoint = unkno
63
63
  * Wall-clock pacing + clock-drift correction (G1), consumed by
64
64
  * {@link NetworkedSyncplayClient.pumpPaced}. The step-counted `pump()` path
65
65
  * ignores all of this, so step-driven tests and existing callers are
66
- * unaffected. Rates are per-tick error corrections in the Quantum
67
- * TimeCorrectionRate / GGPO frames-behind family: the client measures RTT via
66
+ * unaffected. Rates are per-tick corrections toward the authority frontier:
67
+ * the client measures RTT via
68
68
  * `time-sync-ping/pong`, estimates the authority frontier, and nudges its
69
69
  * local timescale inside [minTimescale, maxTimescale] so it neither stalls at
70
70
  * the prediction cap (fast clock / short path) nor starves into permanent
@@ -77,7 +77,7 @@ export interface NetworkedSyncplayClientOptions<State, Input, Checkpoint = unkno
77
77
  * latency for inputs that arrive before the authority's deadline (fewer
78
78
  * substitutions of THIS client's input, shallower rollbacks for peers).
79
79
  * With `maxTicks > minTicks` the delay auto-tunes from measured RTT
80
- * (ping-adaptive, Quantum InputDelayMin/Max analog) — RTT measurement
80
+ * (ping-adaptive delay range) — RTT measurement
81
81
  * requires driving `pumpPaced`. Defaults to a static 0 (today's behavior).
82
82
  */
83
83
  readonly inputDelay?: NetworkedSyncplayClientInputDelayOptions;
@@ -105,7 +105,7 @@ export interface NetworkedSyncplayClientPacingOptions {
105
105
  readonly pingIntervalMs?: number;
106
106
  /** Safety lead (ticks) kept over the input-arrival deadline. Default 2. */
107
107
  readonly targetLeadTicks?: number;
108
- /** Timescale clamp. Defaults 0.9 / 1.1 (±10%, imperceptible per Quantum/GGPO practice). */
108
+ /** Timescale clamp. Defaults 0.9 / 1.1 (±10%, designed to remain imperceptible during normal play). */
109
109
  readonly minTimescale?: number;
110
110
  readonly maxTimescale?: number;
111
111
  /** Timescale correction gain per tick of frame-advantage error. Default 0.02. */
@@ -55,7 +55,7 @@ export function createDeterministicR3fRenderAdapter(config) {
55
55
  // Render-side only (plain floats, never fed back into sim state): when a
56
56
  // rollback re-emits an already-rendered frame with a different pose, the
57
57
  // rendered transform blends mispredicted -> corrected over errorCorrectionMs
58
- // instead of snapping (Quantum "Error Prediction" analog).
58
+ // instead of snapping (rollback error-correction smoothing).
59
59
  function createRenderErrorSmoother(options) {
60
60
  const windowMs = options.errorCorrectionMs ?? 120;
61
61
  const snapThreshold = options.snapThreshold ?? 1e-6;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@series-inc/rundot-syncplay",
3
- "version": "5.25.0-beta.11",
3
+ "version": "5.25.0-beta.13",
4
4
  "description": "Kinetix orchestration, rollback, replay, late-join, and deterministic networking for RUN.game",
5
5
  "repository": {
6
6
  "type": "git",
@@ -51,8 +51,10 @@
51
51
  "test": "npm run test:core",
52
52
  "test:core": "tsx --test tests/canonical.test.ts tests/runtime-session.test.ts tests/kinetix-runtime-session.test.ts tests/runtime-support.test.ts tests/runtime-guards.test.ts tests/r3f-render-adapter.test.ts tests/snapshot-cost.test.ts tests/sdkSession.test.ts tests/input-authority.test.ts tests/session-wire.test.ts tests/session-snapshot.test.ts tests/authority-room.test.ts tests/networked-client-snapshot.test.ts tests/runner.test.ts tests/testing.test.ts tests/browser-session.test.ts tests/secret-config.test.ts tests/secret-protocol.test.ts tests/secret-authority.test.ts tests/secret-client.test.ts tests/late-join-checksum.test.ts tests/replay-scoring.test.ts tests/bot-backfill.test.ts tests/latency-simulation.test.ts tests/time-sync.test.ts tests/match-log.test.ts tests/spectator.test.ts tests/synctest.test.ts tests/instant-replay.test.ts tests/session-promotion.test.ts tests/physics3d-broadphase-stats.test.ts tests/entrypoints.test.ts tests/export-surface.test.ts tests/test-manifest.test.ts tests/coarse-region.test.ts tests/input-codec.test.ts tests/platformer-content.test.ts tests/command-ingress.test.ts tests/session-reconfigure.test.ts tests/prediction-mode.test.ts tests/ephemeral-channel.test.ts tests/runner-surface.test.ts tests/runner-harness.test.ts tests/effects-adapter-bounds.test.ts tests/simulated-match-secrets.test.ts tests/run-glue-surface.test.mjs",
53
53
  "test:soak": "tsx --test tests/runtime-soak.test.ts",
54
- "test:extended": "tsx --test tests/animation.test.ts tests/asset-cooking.test.ts tests/backend-proof-checksum-vectors.test.ts tests/bot-documents.test.ts tests/bot-primitives.test.ts tests/collider-cooking.test.ts tests/collision.test.ts tests/command-timeline.test.ts tests/config-bundle.test.ts tests/cosmetic-physics3d.test.ts tests/deterministic-primitives.test.ts tests/ecs-lite.test.ts tests/effects-adapter.test.ts tests/engine-runtime.test.ts tests/errors.test.ts tests/events.test.ts tests/input-button.test.ts tests/load-128-players.test.ts tests/math.test.ts tests/movement.test.ts tests/movement3d.test.ts tests/multiclient-authority.test.ts tests/navigation.test.ts tests/noise.test.ts tests/physics-cert.test.ts tests/physics2d.test.ts tests/physics3d-ccd.test.ts tests/physics3d-coverage.test.ts tests/physics3d-destruction-cert.test.ts tests/physics3d-heightfield.test.ts tests/physics3d-hull.test.ts tests/physics3d-joints.test.ts tests/physics3d-kinematic-mesh.test.ts tests/physics3d-mass.test.ts tests/physics3d-materials.test.ts tests/physics3d-mesh-onesided.test.ts tests/physics3d-query-index.test.ts tests/physics3d-recipes.test.ts tests/physics3d-rotation-convention.test.ts tests/physics3d-shared.test.ts tests/physics3d-sleeping-manifold-reuse.test.ts tests/physics3d-solver.test.ts tests/physics3d-stacking.test.ts tests/physics3d-toi.test.ts tests/physics3d-vehicle.test.ts tests/physics3d-voxel.test.ts tests/physics3d-world-edit.test.ts tests/physics3d.test.ts tests/random.test.ts tests/rollback-history.test.ts tests/schema-artifacts.test.ts tests/schema-codegen.test.ts tests/schema-dsl-binary.test.ts tests/schema.test.ts tests/signals.test.ts tests/sparse-set.test.ts tests/static-checker.test.ts tests/system-lifecycle.test.ts tests/wire-canonical-sentinels.test.ts tests/ws-frame.test.ts",
54
+ "test:extended": "tsx --test tests/animation.test.ts tests/asset-cooking.test.ts tests/backend-proof-checksum-vectors.test.ts tests/bot-documents.test.ts tests/bot-primitives.test.ts tests/collider-cooking.test.ts tests/collision.test.ts tests/command-timeline.test.ts tests/config-bundle.test.ts tests/cosmetic-physics3d.test.ts tests/deterministic-primitives.test.ts tests/ecs-lite.test.ts tests/effects-adapter.test.ts tests/engine-runtime.test.ts tests/errors.test.ts tests/events.test.ts tests/input-button.test.ts tests/load-128-players.test.ts tests/math.test.ts tests/movement.test.ts tests/movement3d.test.ts tests/multiclient-authority.test.ts tests/navigation.test.ts tests/noise.test.ts tests/physics-cert.test.ts tests/physics2d.test.ts tests/physics3d-ccd.test.ts tests/physics3d-coverage.test.ts tests/physics3d-destruction-cert.test.ts tests/physics3d-heightfield.test.ts tests/physics3d-hull.test.ts tests/physics3d-joints.test.ts tests/physics3d-kinematic-mesh.test.ts tests/physics3d-mass.test.ts tests/physics3d-materials.test.ts tests/physics3d-mesh-onesided.test.ts tests/physics3d-query-index.test.ts tests/physics3d-recipes.test.ts tests/physics3d-rotation-convention.test.ts tests/physics3d-shared.test.ts tests/physics3d-sleeping-manifold-reuse.test.ts tests/physics3d-solver.test.ts tests/physics3d-stacking.test.ts tests/physics3d-toi.test.ts tests/physics3d-vehicle.test.ts tests/physics3d-voxel.test.ts tests/physics3d-world-edit.test.ts tests/physics3d.test.ts tests/physics-vector-generator.test.ts tests/random.test.ts tests/rollback-history.test.ts tests/schema-artifacts.test.ts tests/schema-codegen.test.ts tests/schema-dsl-binary.test.ts tests/schema.test.ts tests/signals.test.ts tests/sparse-set.test.ts tests/static-checker.test.ts tests/system-lifecycle.test.ts tests/wire-canonical-sentinels.test.ts tests/ws-frame.test.ts",
55
55
  "test:ci": "npm run build && npm run test:core",
56
+ "generate:physics-vectors": "node scripts/gen-physics-vectors.mjs",
57
+ "test:physics-vectors": "node --import tsx/esm --test tests/physics-vector-generator.test.ts",
56
58
  "pack:dry-run": "npm pack --dry-run"
57
59
  },
58
60
  "license": "SEE LICENSE IN LICENSE.md",
@@ -66,7 +68,7 @@
66
68
  ],
67
69
  "dependencies": {
68
70
  "@series-inc/rundot-game-sdk": "5.25.0-beta.3",
69
- "@series-inc/rundot-kinetix": "0.1.0-beta.13"
71
+ "@series-inc/rundot-kinetix": "0.1.0-beta.15"
70
72
  },
71
73
  "devDependencies": {
72
74
  "@dimforge/rapier2d-compat": "0.19.3",