The backend README, how to run and test it, what is easy to get wrong with the game loop and the shared data formats, and the deployment note. The web app was played against it in Chrome: a full game with a spectator, a reload, a restart mid-game, the replay and a game lost on time.
1.5 KiB
1.5 KiB
Quarkus backend: tasks
Work through the tasks in order; each ends with its tests passing and a commit. Tick a task when it is committed.
- 1. Spec: requirements, design and tasks.
- 2. Project and engine: Maven project in
apps/backend-quarkus(Quarkus 3.40, Java 25); the engine port with unit tests;scripts/record-engine-games.jsand the parity test (R2). - 3. Models, game loop and auth: the wire types and the shared
ObjectMapper;GameLoop,Scheduler,ManualScheduler;KeycloakTokenVerifierwith unit tests. - 4. Game logic:
GameStore,MatchMaker,GameClocks,GameSerialization,GameRecorder,GameManager,GameClockScheduler,LiveGames,PublicIds,CrashLog; the in-memory fakes and the ported unit tests. - 5. Storage: migrations and their runner,
PostgresGameHistoryRepository,GameHistoryService,ValkeyLiveGameStore,ValkeyCache; integration tests with Dev Services. - 6. WebSocket and HTTP:
RtmtServerwith unit tests,RtmtEndpoint, the HTTP resources,Backendwiring and startup, configuration;@QuarkusTests for the API and the WebSocket. - 7. Replace the Node backend: move the project to
apps/backend, Dockerfile,.dockerignore, compose, remove the Node sources; build the image. - 8. End to end and docs: the Chrome tests from
design.mdagainst the local stack;README.md,apps/backend/README.md,AGENTS.md,TODO.md.