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