跨平台互通让玩家「手机也能继续 PC 的局」,云存档让玩家「换了设备进度不丢」。这是联机游戏的「玩家资产随行」能力。本 PRD 是《在线联机原型全集》的扩展篇之六,聚焦账号体系、会话继承、云存档版本化与平台差异适配。
1. 目标与验证点
| 编号 | 验证能力 | 说明 |
|---|---|---|
| F1 | 账号体系 | 统一账号 + 多平台绑定(SSO/第三方) |
| F2 | 跨端会话 | 一个玩家跨设备加入/继承对局 |
| F3 | 云存档 | 存档版本化、冲突合并、恢复 |
| F4 | 平台差异 | 商店/内购/合规适配 |
| F5 | 数据安全 | 加密、隐私合规、防篡改 |
一句话目标:玩家资产(账号/段位/存档/购买)跨设备无缝,换平台不换身份。
2. 系统架构
flowchart TD
A["Player (PC/Mobile/Web)"] -->|SSO| B["Account Center"]
B --> C["Identity Store"]
C --> D["Platform Link Service"]
B --> E["Save Service"]
E --> F["Save Version Store"]
F --> G["Conflict Resolver"]
B --> H["Cross-platform Session Router"]
H --> I["Game Room"]
说明:
- Account Center:统一身份 + 各平台账号绑定
- Platform Link Service:管理玩家与 Steam/Apple/Google 等平台的映射
- Save Service:存档版本化上传/下载
- Session Router:跨端对局续接(如 PC 开房,手机续战)
3. 账号体系与平台绑定
3.1 统一账号模型
PlayerAccount (全局唯一 player_id)
├── 自有账号(邮箱/密码/手机)
├── 第三方绑定(Steam / Apple / Google / WeChat)
├── 设备指纹(游客 → 可升级为正式账号)
3.2 绑定与迁移
| 场景 | 流程 |
|---|---|
| 首次登录 | 第三方授权 → 建立账号 → 绑定 |
| 游客升级 | 设备账号 → 绑定邮箱/手机 → 转正式 |
| 换绑 | 解绑旧平台 → 绑定新平台(需验证) |
| 冲突 | 两账号绑同一第三方 → 人工/自助合并 |
关键约束:同一
player_id是跨平台数据的唯一锚点。所有段位、存档、购买都挂在player_id上,平台只是「登录入口」。
4. 跨端会话继承
4.1 三种继承模式
| 模式 | 场景 | 实现 |
|---|---|---|
| 状态同步 | 换设备继续同一局 | 存档状态在新端恢复 |
| 会话迁移 | 手机→PC 继续对局 | Session 路由转移 |
| 异步接力 | 回合制跨端接力 | 轮到该玩家时任意端操作 |
4.2 会话路由
// 玩家从 PC 切换到手机,把对局会话挂到新连接
func (r *SessionRouter) Migrate(playerID, fromConnID, toConnID string) error {
sess := r.sessionOf(playerID)
sess.SwitchConn(toConnID) // 旧连接降级为离线
r.publishState(sess, toConnID) // 全量状态推给新端
sess.SetResumePoint(sess.LatestTick)
return nil
}
体验原则:会话迁移对玩家透明——只看到「断了一下又接上了」,看不到底层连接切换。
5. 云存档版本化
5.1 版本化策略
每次上传生成新版本:
save_version = {player_id, slot, version, ts, hash, payload}
下载策略:
- 取最新版本
- 客户端本地有更高版本(离线游玩产生)→ 触发冲突合并
5.2 冲突合并
| 冲突类型 | 合并策略 |
|---|---|
| 进度类 | 取最高进度(经验/金币取大) |
| 覆盖类 | 提示玩家选一份 |
| 段位类 | 服务端为准(已结算) |
| 配置类 | 客户端本地优先 |
5.3 存档安全
✅ 存档加密(服务端密钥轮换)
✅ 校验 hash:防篡改、防回档刷奖励
✅ 备份:多副本 + 定期快照
⚠️ 回档审计:任何「恢复旧档」操作留日志
防刷心法:云存档最容易成为「回档刷奖励」的漏洞。核心防护是把服务端权威数据(段位、奖励、购买)与客户端进度数据(本地存档)分开——服务端数据永远以服务端为准,客户端存档只能恢复纯本地内容。
6. 平台差异适配
| 差异点 | 适配策略 |
|---|---|
| 商店/内购 | 各平台独立商品,绑定到统一账号资产 |
| 平台币 | 平台币不可跨平台直接转移,兑换为通用货币 |
| 社交 | 好友关系分平台 + 全局好友两层 |
| 合规 | GDPR/COPPA 等按平台地区执行 |
6.1 内购跨平台
购买行为:在各平台商店完成
资产归属:挂到 player_id 的统一资产表
跨端使用:PC 买的皮肤,手机也能用
原则:平台商店管「收钱」,统一账号管「资产」。资产归属 player_id,才能跨平台随行。
7. 接口与数据模型
| 模块 | 接口 | 描述 |
|---|---|---|
| Account | POST /account/link | 绑定第三方平台 |
| Account | POST /account/unlink | 解绑(需验证) |
| Session | POST /session/migrate | 跨端会话迁移 |
| Save | POST /save/upload | 上传存档(版本化) |
| Save | GET /save/latest?slot= | 下载最新存档 |
| Save | POST /save/merge | 冲突合并 |
| 表 | 字段 |
|---|---|
account | player_id、email、phone、password_hash、created_at |
platform_link | player_id、platform、platform_uid、linked_at |
cloud_save | player_id、slot、version、ts、hash、payload_blob |
asset_ledger | player_id、asset_id、source_platform、acquired_at |
8. 里程碑与验收
M1 账号体系 + 平台绑定(1 周)
✅ 第三方登录、绑定/解绑、游客升级
M2 跨端会话(1 周)
✅ PC↔手机会话迁移,玩家无感
M3 云存档 + 版本化(1 周)
✅ 上传/下载/冲突合并/回档审计
M4 平台差异 + 合规(1 周)
✅ 内购跨端可用,平台合规项落地
验收指标:跨端迁移成功率 99.9%(无会话丢失);云存档冲突解决后数据无丢失;回档刷奖励成功率为 0。
9. 相关原型衔接
- 复用#20 社交大厅的统一身份系统 → 升级为跨平台账号中心
- 与#30 平台大厅与游戏中心的 SSO 对接
- 与#39 跨平台对战互补:本篇管「身份与数据」,#39 管「对局兼容」
- 与#55 多宇宙桥接的跨服身份映射同源
扩展篇定位:跨平台互通是「玩家资产的随行能力」。它让账号、段位、存档、购买跟着人走——玩家可以随时换设备,但积累永远在。
延伸阅读
- 「在线联机原型全集」目录(60 个原型全景) — 原型全景索引
- 赛季与段位系统 — 段位跟着 player_id 走(扩展篇之五)
- 「在线联机原型全集」第三章:异步与平台化层(#21–#30) — SSO 与大厅相关
- [[products]] — 产品原型开发专题
- [[game]] — 游戏服务端实战
扩展篇全系列回顾:观战回放(被看见)→ 成就(被记住)→ AI 陪练(随时变强)→ 自定义房间(玩出花)→ 赛季段位(长期目标)→ 跨平台云存档(资产随行)。六篇共同补齐「玩法之外」的完整体验层。
扩展篇全系列速查
| 扩展篇 | 主题 | 一句话 |
|---|---|---|
| 之一 观战与回放 | 让对局被围观 | 每一局都可传播、可复盘 |
| 之二 成就与里程碑 | 让成长被记录 | 每一份努力都有进度条 |
| 之三 AI 陪练 | 让进步有人陪 | 随时能练、永远有人陪 |
| 之四 自定义房间 | 让玩法可定制 | 玩家把规则捏成自己的 |
| 之五 赛季与段位 | 让竞技有长期目标 | 每局爬升、每季回访 |
| 之六 跨平台与云存档 | 让资产随行 | 任何设备接着玩 |
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。