简述:
新手接触游戏不久,想讨论下常见的游戏存储和游戏后端设计一般是什么形式的。像是如果是“通关”类的游戏一般在存档点将游戏进度存储起来就行。这种类型对后端设计比较低的
假如模拟经营的类的游戏,是否每一个动作都是对应一个接口以保证游戏数据的安全性呢如果这样网络请求的开销可能相对较大!按照以往设计应用app的思路这个是没什么问题的 但是对于游戏来说感觉并非是常见的做法
举例场景:
假如说一个农场类的经营游戏,从商店购买一个种子,放入背包,在果园将这颗种子种下,浇水一次3分钟之后产出果实,收获后将果实放入背包
那么数据的存储过程应该是:
1.1 获取商店数据(请求后端api)
1.2 获取用户数据主要是货币信息(请求后端api)
2.1 提交商品 ID 执行购买操作(请求后端api)=》返回购买结果
2.2 获取背包信息(请求后端api)
3.1 提交物品 ID 执行种植操作(请求后端api)=》后端创建一条种植记录
3.2 提交种植记录 ID 执行浇水操作(请求后端api)=》后端标记浇水信息
4.1 根据后端返回的种植记录信息确认收获时间
4.2 提交种植记录ID执行收获操作(请求后端api)=》后端将收获的物品自动放入背包
如上所述简单的一个操作就有6个接口请求这肯定不现实
换成存档的形式我的设想是这样
A 游戏初始化阶段
获取游戏配置(请求后端api并缓存)
商店数据(请求后端api并缓存)
存档数据(请求后端api并缓存)
B 操作阶段
1.1 获取用户信息(请求后端api)
1.2 打开商店(读取缓存)
2.1 执行购买根据商店信息创建一个物品放入背包数据(js缓存)
3.1 打开背包(读取缓存)
4.1 根据背包物品执行种植创建一个种植记录(js缓存)
4.2 针对种植记录执行浇水操作(js缓存)
4.3 读取游戏配置缓存确认收获时间
4.3 根据种植记录执行收获操作并放入背包(js缓存)
上述操作时根据操作的重要性,在关闭游戏时和固定间隔时间提交数据到后端存档
在缓存和提交存档时做一些加密处理防止数据异常
希望有兴趣的大佬介绍下常见是怎么做的 感谢!