如果玩家既能在线上玩,又能离线玩,那么存储和获取玩家数据的最佳做法是什么



我正在尝试制作一款安卓游戏,我希望玩家可以通过电子邮件身份验证离线或在线游戏。如果在线,所有玩家的进度、硬币和购买都将保存在手机内存中的全局内存中,如果他通过电子邮件连接,价值将更新到帐户中,每次玩家购买东西时,价值都会存储在那里。但是,在用户在线玩并取得小进展,然后在另一部手机上离线玩并取得大进展或购买一些物品的情况下,如果用户选择使用该帐户联机,我如何保持较大的进展和物品,因为我希望该帐户设置服务器上存储的值,而手机上的内容将被服务器数据覆盖。当用户进入游戏时,我首先检查他是否断开了连接,如果断开了,我想再次设置这些值。避免此类情况的最佳程序是什么?

您所描述的需要一个相当复杂的后端服务器来维护所有这些信息。

你可以考虑看看英雄实验室的Nakama,看看它是否符合你的需求,或者你可以找到类似的东西。

顺便说一句,我与他们没有关系,这只是开源的,我一直在考虑将他们的技术用于我自己的游戏。

无论哪种方式,要实现您所描述的内容,都需要了解的不仅仅是最佳实践。

此外,为了回答您关于冲突解决的问题,通常您会维护所有交易的时间戳(余额已更改、项目已收集等(,并将时间戳与本地信息进行比较,以查看哪些数据更新。

您还可能添加一些自定义逻辑,以便以这种方式仅更新某些数据。一个例子是,当你有一个本地设备的余额高于在线帐户时;如果余额对玩家经济不重要,你可能只想保持较高的余额,而不是在线余额。

但你通常希望一切都是服务器权威的,以减少玩家破解余额的机会为例。

最新更新