场景:新手引导
玩家第一次进入游戏,引导完成一系列操作。
约束
- 中型手游,DAU约10万
- 引导步骤切换流畅
- 引导进度需持久化,支持断点续传
选型
方案一
客户端本地存储进度
优点:
- 无服务端损耗
劣势:
- 更改设备丢失进度
方案二
客户端存储操作层面的进度,同步引导关键节点到服务端
优点:
- 轻量存储进度到服务端,减少更换设备或者断线导致影响游戏进度带来的影响。
劣势:
- 更换设备丢失部分进度
方案三
服务端存储引导节点
优点:
- 绝大部分引导进度不会丢失
劣势:
- 需要新增字段,如果引导步骤不断增加,玩家数据增长
选型
选方案二
理由:用户频繁更换设备可能性较低,服务端存关键节点,保证部分进度不丢失。
批改
方案一中的描述不准确,应该将“客户端本地存储进度”改为“客户端本地存储local storage”
方案二:优点中补充弱联网支持,网络信号不好,也可本地引导。
新知:系统设计不是追求绝对“强一致性”,而是关键业务做权衡。