Sott Implementation Server Snapshots
服务端最小实现 — 对局与快照
在 选定语言/框架 后由服务端组实现;逻辑与 服务端表结构 一致。
1. API 草案(REST 或 gRPC,二选一)
| 方法 | 路径 | 行为 |
|---|---|---|
| POST | /matches |
body: map_id, ruleset_version, players[] → 返回 match_id。 |
| POST | /matches/{id}/start |
state=running。 |
| PUT | /matches/{id}/snapshot |
body: logic_round, schema_version, state_blob;仅 Server 进程可调(内网 + mTLS)。 |
| GET | /matches/{id}/snapshot/latest |
断线重连拉取。 |
| POST | /matches/{id}/finish |
结算。 |
2. 与 UE 的衔接
- Dedicated Server 在
BeginPlay调POST /matches(或本地嵌入式 DB 则跳过 HTTP)。 - 每逻辑回合结束:
SerializeGameState→PUT .../snapshot。 - 客户端重连:
GET .../latest,反序列化前校验schema_version。
3. 最小测试脚本
- 用
curl创建空match→ 写入两行match_players→ 上传假state_blob(随机字节)→ 查询最新一条成功。
4. 后续扩展
match_events增量、回放下载、反作弊签名state_blob。