开发日志05

10/2922 浏览综合
存取系统实现
本期进展:随着关卡数量的增多,游戏进度的存取系统也提上日程。我们目前采用的方案是通过Json的序列化/反序列化方法将一个存储数据的类保存到本地,鉴于游戏体量很小同时也是方便测试,目前并没有做加密功能,文件以txt形式存在。
存取通过SaveSystem模块来管理,SaveSystem是一个单例模块,外部使用时仅需要调用SaveLocalArchive和LoadLocalArchive两个带有回调函数为参数的函数即可方便地使用存取信息的功能,不用理解内部的逻辑,这在我们小组协作时也提供了一些便利。
此外,我还顺便添加了一个Editor文件,用于方便地进行Debug。
众所周知实际保存的数据和游戏运行时产生的数据是有一定区别的,为了方便外部理解,我在单例类的内部实现了一个SaveData类和SaveDataCache类相互转化的方法,这样外部仅需要操作一些更加易懂的数据即可(当然现在也没什么值得使用这个方法转译来存储的数据,只是提前构建了一下框架。)
问题与风险:在聚光灯开发比赛结束后,如果后续修改关卡顺序或者增删关卡结构,之前玩到一半的玩家更新游戏之后显然会因为加载了过时的存档而产生真正的Bug。因此在目前版本我在存储结构中增加了版本字段,到时候检测版本,写个什么从旧结构转译到新结构的方法应该就能避免版本问题。
下期计划:玩玩其他人做的游戏,交流一下(不是)
3