用途:在构建游戏服务器、WebSocket 连接、房间管理、游戏 tick 循环或基于 Elysia 的服务器权威架构时使用。触发词包括 game server、backend architecture、WebSocket、room management、game loop、tick system、server-authoritative、real-time、multiplayer backend、session management 等。
主要能力:覆盖服务器权威架构(客户端只发送意图,服务器校验并执行)、固定时间步的确定性游戏逻辑、房间生命周期(created→active→closing→closed)、类型化消息协议、事件驱动设计,以及通过 Redis 发布订阅实现多实例横向扩展。REST 用于持久化 CRUD,WebSocket 用于高频实时状态。
使用方式:先定义消息协议(templates/message-types.ts 中的可辨识联合类型),再以 boilerplate/server.ts 为入口启动(bun run boilerplate/server.ts),用 boilerplate/room-manager.ts 管理房间,用 boilerplate/game-loop.ts 配置固定时间步循环(默认 20 TPS,含速度倍率与溢出保护)。每个 tick 后计算状态增量并广播,通过 Redis 频道 game:broadcast 与 game:direct 跨实例通信,客户端每 30 秒 ping、90 秒无心跳则标记离线。
适用场景:多人实时游戏后端、房间制对局、需要回放/回滚/离线追帧的确定性模拟。
限制与前置:依赖 postgres-game-schema(持久化)与 redis-game-patterns(缓存、发布订阅、在线状态);需避免客户端权威、可变时间步、全局共享状态、tick 内同步写库、每 tick 广播全量状态、无溢出保护、消息类型与游戏逻辑紧耦合、房间无优雅关闭等反模式。具体安装与部署细节暂未提供。