Pilot SpaceGame against Rendezvous v1 #21

Open
opened 2026-07-15 10:04:31 +02:00 by Kyuubi · 3 comments
Owner

Parent: #1
Depends on: #14, #19, #20
Related consumer work: Kyuubi/SpaceGame#3

Outcome

Prove Rendezvous is genuinely reusable by integrating its released contracts/SDK with SpaceGame's LiteNetLib transport migration.

Scope

  • Keep SpaceGame code changes and commits in its own tracker/repository; this issue owns Rendezvous-side compatibility and evidence.
  • Validate host publish/heartbeat, browser query, join authorization, gameplay-socket presence, direct connect, ticket acceptance, disconnect, reconnect, and typed fallback.
  • Confirm SpaceGame's authoritative protocol, durable player identity, capacity checks, and gameplay traffic remain game-owned.
  • Exercise local host, remote client, and Linux dedicated server configurations.
  • Capture any generic SDK improvement in Rendezvous rather than copying it into SpaceGame.

Acceptance criteria

  • Linked SpaceGame work references the released Rendezvous package/server versions.
  • A real two-game-process plus Rendezvous run completes authenticated direct traffic.
  • Incompatible, stale, rejected, timeout, and configured fallback paths are exercised.
  • No Rendezvous ID or LiteNetLib peer ID becomes canonical SpaceGame player/entity identity.
  • Rendezvous carries no SpaceGame gameplay payload after connection.
  • Deployment/configuration and measured results are documented.
  • Generic defects are fixed and regression-tested in Rendezvous before the pilot passes.
Parent: #1 Depends on: #14, #19, #20 Related consumer work: https://git.finalfactory.de/Kyuubi/SpaceGame/issues/3 ## Outcome Prove Rendezvous is genuinely reusable by integrating its released contracts/SDK with SpaceGame's LiteNetLib transport migration. ## Scope - Keep SpaceGame code changes and commits in its own tracker/repository; this issue owns Rendezvous-side compatibility and evidence. - Validate host publish/heartbeat, browser query, join authorization, gameplay-socket presence, direct connect, ticket acceptance, disconnect, reconnect, and typed fallback. - Confirm SpaceGame's authoritative protocol, durable player identity, capacity checks, and gameplay traffic remain game-owned. - Exercise local host, remote client, and Linux dedicated server configurations. - Capture any generic SDK improvement in Rendezvous rather than copying it into SpaceGame. ## Acceptance criteria - Linked SpaceGame work references the released Rendezvous package/server versions. - A real two-game-process plus Rendezvous run completes authenticated direct traffic. - Incompatible, stale, rejected, timeout, and configured fallback paths are exercised. - No Rendezvous ID or LiteNetLib peer ID becomes canonical SpaceGame player/entity identity. - Rendezvous carries no SpaceGame gameplay payload after connection. - Deployment/configuration and measured results are documented. - Generic defects are fixed and regression-tested in Rendezvous before the pilot passes.
Kyuubi added reference codex/issue-21-spacegame-pilot 2026-07-16 18:26:29 +02:00
Kyuubi self-assigned this 2026-07-16 18:26:29 +02:00
Author
Owner

Starting the SpaceGame pilot from the verified Rendezvous stack at 7fb8505. I will keep consumer changes on the linked SpaceGame #3 branch/repository, fix only generic seams in Rendezvous, and attach real two-process/direct/failure/dedicated evidence here.

Starting the SpaceGame pilot from the verified Rendezvous stack at `7fb8505`. I will keep consumer changes on the linked SpaceGame #3 branch/repository, fix only generic seams in Rendezvous, and attach real two-process/direct/failure/dedicated evidence here.
Author
Owner

SpaceGame checkpoint evidence is now pushed in Rendezvous commit ebb5eb6; the linked consumer implementation is Kyuubi/SpaceGame@86424eb.

Proven and regression-protected:

  • protocol-2 smoke tenant compatibility and bounded mode metadata
  • caller-owned LiteNetLib socket with three game-owned QoS channels
  • host publish/lease, browse, authorized join, host presence, typed direct traversal, outcome reporting, game admission, direct input/snapshot, and deregistration
  • separate player/entity/listing/join-attempt/peer identities
  • zero SpaceGame gameplay payloads through Rendezvous
  • incompatible protocol, stale presence, traversal timeout, invalid admission, replay/expiry, capacity, duplicate player, identity/sequence/rate rejection
  • hardened private signing-key file permissions and deterministic consumer secret erasure
  • Debug and Release builds plus 297/297 Rendezvous tests in each configuration
  • consumer Debug and Release builds plus 29/29 tests in each configuration
  • formatter, shellcheck, clean candidate-package restore, two-process harness, and adversarial review

The evidence is intentionally checkpoint-pass-with-open-gates, not a completed pilot. #21 remains open for:

  1. public Gitea restore of immutable Client/Contracts 1.0.0 (registrations still HTTP 404);
  2. actual Godot host/client process integration;
  3. a real configured dedicated fallback connection;
  4. disconnect followed by fresh authenticated reconnect;
  5. remote client + Linux dedicated host, including shutdown/drain;
  6. representative external NAT canaries;
  7. the pre-existing SpaceGame ImGui native Linux runtime dependency blocker.

Authoritative matrix: docs/integration/spacegame-pilot.md and docs/evidence/consumers/spacegame.json.

SpaceGame checkpoint evidence is now pushed in Rendezvous commit `ebb5eb6`; the linked consumer implementation is `Kyuubi/SpaceGame@86424eb`. Proven and regression-protected: - protocol-2 smoke tenant compatibility and bounded `mode` metadata - caller-owned LiteNetLib socket with three game-owned QoS channels - host publish/lease, browse, authorized join, host presence, typed direct traversal, outcome reporting, game admission, direct input/snapshot, and deregistration - separate player/entity/listing/join-attempt/peer identities - zero SpaceGame gameplay payloads through Rendezvous - incompatible protocol, stale presence, traversal timeout, invalid admission, replay/expiry, capacity, duplicate player, identity/sequence/rate rejection - hardened private signing-key file permissions and deterministic consumer secret erasure - Debug and Release builds plus 297/297 Rendezvous tests in each configuration - consumer Debug and Release builds plus 29/29 tests in each configuration - formatter, shellcheck, clean candidate-package restore, two-process harness, and adversarial review The evidence is intentionally `checkpoint-pass-with-open-gates`, not a completed pilot. #21 remains open for: 1. public Gitea restore of immutable Client/Contracts 1.0.0 (registrations still HTTP 404); 2. actual Godot host/client process integration; 3. a real configured dedicated fallback connection; 4. disconnect followed by fresh authenticated reconnect; 5. remote client + Linux dedicated host, including shutdown/drain; 6. representative external NAT canaries; 7. the pre-existing SpaceGame ImGui native Linux runtime dependency blocker. Authoritative matrix: `docs/integration/spacegame-pilot.md` and `docs/evidence/consumers/spacegame.json`.
Author
Owner

Checkpoint pushed as 9e863eb on codex/issue-21-spacegame-pilot (consumer implementation f3f5bc29810c362656cd7143bec1ddc2cfaf9f22).

Verified:

  • Clean, current-checkout Godot source runs for reconnect and dedicated-fallback paths.
  • Fresh optimized Linux export; source dirty=false; engine SHA-256 26b1b5d076b78c02f1476dab78e183218a6aa30c8e614653eac11a0dd198456a; PCK SHA-256 b5e3d3bcd9c3f16d4de898e42c5bf1890922715a8df7ddf7c7bff49871498e4f.
  • Caller-owned LiteNetLib gameplay transport with admission, frame-definition/spawn lifecycle, lease renewal, disconnect cleanup, stable-player reconnect, and typed PunchTimedOut → dedicated-fallback transition.
  • Hardened isolated Linux container direct and remote-client fallback runs.
  • Failure matrix covers incompatible protocol, invalid signature, dead/wrong mediator, and absent host presence.
  • Rendezvous Debug and Release builds plus full suites pass: 297/297 in each configuration.
  • Live hardened Compose deployment smoke passes HTTP liveness/readiness and authenticated UDP mediation/direct traffic.
  • Runtime container posture: non-root 1000:1000, read-only, all capabilities dropped, no-new-privileges, memory and PID limits.

Issue remains open for its two external acceptance gates:

  1. restore the public package feed and prove clean external restore;
  2. run a representative external NAT/CGNAT pilot rather than treating a private bridge as equivalent.

The broader SpaceGame production gates (ENet replacement, 64/128 capacity profiles, SIGTERM/drain/save) remain tracked in SpaceGame #3 and are not being misreported as Rendezvous #21 completion.

Checkpoint pushed as `9e863eb` on `codex/issue-21-spacegame-pilot` (consumer implementation `f3f5bc29810c362656cd7143bec1ddc2cfaf9f22`). Verified: - Clean, current-checkout Godot source runs for reconnect and dedicated-fallback paths. - Fresh optimized Linux export; source dirty=false; engine SHA-256 `26b1b5d076b78c02f1476dab78e183218a6aa30c8e614653eac11a0dd198456a`; PCK SHA-256 `b5e3d3bcd9c3f16d4de898e42c5bf1890922715a8df7ddf7c7bff49871498e4f`. - Caller-owned LiteNetLib gameplay transport with admission, frame-definition/spawn lifecycle, lease renewal, disconnect cleanup, stable-player reconnect, and typed PunchTimedOut → dedicated-fallback transition. - Hardened isolated Linux container direct and remote-client fallback runs. - Failure matrix covers incompatible protocol, invalid signature, dead/wrong mediator, and absent host presence. - Rendezvous Debug and Release builds plus full suites pass: 297/297 in each configuration. - Live hardened Compose deployment smoke passes HTTP liveness/readiness and authenticated UDP mediation/direct traffic. - Runtime container posture: non-root 1000:1000, read-only, all capabilities dropped, no-new-privileges, memory and PID limits. Issue remains open for its two external acceptance gates: 1. restore the public package feed and prove clean external restore; 2. run a representative external NAT/CGNAT pilot rather than treating a private bridge as equivalent. The broader SpaceGame production gates (ENet replacement, 64/128 capacity profiles, SIGTERM/drain/save) remain tracked in SpaceGame #3 and are not being misreported as Rendezvous #21 completion.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: HeiKyu/Rendezvous#21