project record / nrftwemu
nrftwEMU
No Rest for the Wicked backend emulator for account, world, and save services; Photon gameplay is in prqEMU.
overview
nrftwEMU implements the game's account and world routes, invite operations, persistent state, and /SaveData. Its parser validates GUIDs, base64 fields, and request limits; storage keeps save bytes opaque, checks world ownership, and persists character entries. Separate Photon code covers region and UDP transport contracts. The runtime can resolve a configured prqEMU address and rewrite only the Quantum GameServer UDP endpoint, leaving Realtime and backend destinations alone. A game-issued save/reload and complete playable session remain unverified.
in the repository
- Account, gatekeeper, queue, and world routes
- World creation, sharing, invites, and ownership checks
- Opaque SaveData entries with size limits and restart persistence
- Photon region, Init, ping, server-time, and GameServer contracts
- Configured prqEMU address with port-scoped GameServer routing
current work
The SaveData contract test covers owner world writes, per-account character saves, rejected non-owner world writes, malformed requests, four-character input, and persistence after reload. Photon tests cover region probes, Init, ping, server time, and GameServer packets; routing tests limit address rewriting to the configured GameServer UDP port. In-game save/reload and a complete session remain unverified.
change history
- · nrftwEMU · developmentSaveData route persistence contract
REF efe65e5A focused /SaveData route probe returned HTTP 200, and a fresh backend-state load recovered the test world and character bytes. Game-issued save/reload remains unverified.
- · nrftwEMU · researchMaster UDP Init response path
REF f66f96dThe current source matches the VerifyConnect acknowledgment, parses the first reliable channel-0 Init, and sends an idempotent response. Compile-time contract cases cover parsing and response framing; no post-change client run confirms progress into Quantum.
- · nrftwEMU · developmentMaster UDP transport boundary
REF 2e92b7fThe 2026-09-29 PC1 run reached reliable Init, which that build did not dispatch. Current source now contains an Init response path, but no post-change PC1 run confirms client acceptance.