你猜「不要把灯泡放进口中」这句警告是怎么来的?
OK,说正经的。
1、减少意外,免责
玩家所擅长的领域千差万别,不是每一个人都知道「写入磁盘时掉电可能会对数据乃至磁盘本身产生重大危害」——偏偏玩游戏的过程中存档又是一个非常频繁的操作。设备坏了事小,心血没了事大啊。
加上提示以后,如果真的因为关机丢失了存档,也可以很大程度上规避责任,避免和玩家扯皮。
2、丢失存档的技术细节
其实现代游戏,如果处理方式合适的话,丢失存档的概率可以做到非常低。存档的逻辑可以用伪代码这样表示:
功能:存档()
步骤1. 将当前需要保存的数据全部整理出来,转换为一串纯数据data
步骤2. 打开存档文件
步骤3. 写入存档数据data
步骤4. 关闭文件
这一连串功能中,如果执行步骤4时关闭电源,大概率会丢失存档。
步骤2~3时关闭电源,有可能丢失存档,概率大小取决于存档大小,以及主机写文件的速度。
所以如果这块代码写的合适,存档容量不特别大,丢失存档的概率并不高。因关闭电源而丢失存档可以看成是巧合。
但是,不排除某些游戏这部分代码可能不太讲究,有三种可能:
- 某些游戏存档很大,写入时间比较长。
- 某些游戏在写新档案之前,为了减少占用先把旧存档删除。我估计比较古老的游戏机会有这个问题。
- 把上面的步骤1写到了步骤2、3之间,无谓增加了写入时间,增大了出错的概率。
按理来说,现代游戏机的架构与电脑类似,硬盘容量、内存容量是比较宽裕的,丢失存档的问题已经很不明显了。
最后,还有一个次要原因:存取存档的过程中玩家往往什么事儿也不能做,那就让闲着没事儿的玩家看看这句苦口婆心的忠告呗——就跟现在的游戏往往会在loading界面放一些游戏tip或剧情背景让玩家不那么无聊一样。