下载 App
《元素兄弟》开发日志05
#聚光灯gamejam开发者日志 给《元素兄弟》加入重置进度时,遇到了一个与云存档直接相关的问题:玩家明确选择从头开始,本地进度变成零;云端还留着旧的高进度,如果继续单纯按进度高低比较,下次同步就可能把刚刚清掉的成长恢复回来。这个入口牵涉到存档比较、持久化和异步同步,不能只清空一个本地键值。
平时保存,先保证本地有最新进度
现在进度变化会先写入浏览器本地存档,在TapTap运行环境中另存设备文件,再进行云端同步。拉取云档失败时继续使用本地进度,连接恢复后再尝试同步。
普通冲突会按完整存档的成长顺序比较,包括章节通关、威胁等级、勋章、最佳波次及永久成长等。剩余货币不能单独代表进度:一个玩家刚花掉精粹完成培养,余额变少,实际成长却提高了。比较结果确定后选择完整的一份,替换前保留本地备份,避免把两个存档的奖励简单拼接。
较高的云档还需要等到安全的大厅状态再应用,并在应用前重新比较最新本地进度,防止下载期间又产生了新的成长。
主动重置,需要一个新的存档代次
V21为主动重置记录新的存档代次。比较时先看代次,再比较同一代次内的成长。这样既保留普通同步“选进度高的一份”的规则,也能表达玩家主动从头开始的意图。
执行重置前,会先把完整的新档作为重置检查点持久化。写入失败就保留现有进度;写入成功后再更新内存、主存档和同步状态。启动时也检查这个记录,防止主存档损坏后又回退到旧版本备份。

图1:V21开发验证,浏览器844×390横屏视口。确认框列出清除范围,默认保留进度;勾选前确认按钮禁用。截图验证没有执行真实存档的最终清空。
确认框说明了具体影响:章节、解锁、培养、精粹、委托、成就和历史记录会重置;当前远征结束且不结算,新手引导重新开始。音量、操作与性能设置保留。按钮和勾选区在手机横屏视口里完整可见,避免玩家读不到后果就误点。
同步正在进行时,重置也要有确定结果
如果云档还在下载,重置前发出的下载结果不能再覆盖新档;如果旧档正在上传,重置后的进度需要继续排队,等上传间隔满足后同步。当前云上传保留至少61秒的间隔,本地保存不必等它完成。
相关回归覆盖了离线重置后重启、重连后替换旧云档、多个旧云槽、下载期间重置、上传期间重置,以及重置检查点写入失败。这些案例与教程、性能和动效检查合计44项,现有验证记录全部通过。
这里的云接口和设备文件异常使用模拟环境验证,浏览器检查验证了确认框的布局与操作状态。双设备、同账号的真实TapTap云同步还需要继续用手机测试。保存范围目前是跨局成长和结算数据,当前战斗的断点续玩仍未加入;这也是存档说明里需要明确写出来的范围。






