feat: playable arcade — rooms, identity, client, deployment

Round length is now bounded: the multiplier follows a hyperbolic curve
diverging at 60s, replacing an exponential one where a 275x crash point
produced a two-and-a-half minute round.

Fixes seed reveal, which silently failed every round because pgx cannot
encode a fixed-size byte array as bytea.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
drjones
2026-08-05 15:34:52 +00:00
parent 41c1bb2fdf
commit 2a2a1db8de
17 changed files with 2885 additions and 25 deletions

View File

@@ -26,6 +26,19 @@ services:
timeout: 3s
retries: 20
arcade:
build: .
environment:
ARCADE_DSN: postgres://arcade:arcade_dev@postgres:5432/arcade
ARCADE_ADDR: ":8080"
# Development funding. Leave unset in any real deployment.
ARCADE_DEV_FAUCET: "${ARCADE_DEV_FAUCET:-0}"
ports: ["8080:8080"]
depends_on:
postgres: { condition: service_healthy }
redis: { condition: service_healthy }
restart: unless-stopped
volumes:
pgdata:
redisdata: