首页 文章

在持久游戏中处理多个iOS Game Center用户

提问于
浏览
5

我看过http://developer.apple.com/library/ios/#DOCUMENTATION/NetworkingInternet/Conceptual/GameKit_Guide/Achievements/Achievements.html#//apple_ref/doc/uid/TP40008304-CH7-SW13 .

我对在单个设备上支持多个游戏中心用户的问题感到困惑 .

特别是,我很困惑如何在一个具有整体持久性进展的游戏中做到这一点,比如冒险游戏或填字游戏 .

也就是说,我认为有两种游戏 . 在一个,你开始游戏,直到你死,然后游戏结束 . 使用Game Center多用户模型,这种游戏似乎很容易处理 . 当一个新的游戏中心玩家登录时,我可以加载他们的游戏中心统计数据,然后他们可以玩游戏,我会相应地调整他们的成就/分数 . 唯一的特例是,如果游戏中心玩家A正在玩游戏,游戏进入后台并且游戏中心玩家B登录,然后游戏到达前景会发生什么?在这种情况下,似乎很容易结束正在进行的游戏并说“对不起,你切换了游戏中心的用户 . 你需要开始一个新的游戏 . ”

但是另一种类型的游戏是持续存在的,通常是自动的游戏 . 例如,假设我有一个有100个谜题的填字游戏 . 假设玩家A完成了8个谜题并且正在完成第9个谜题,然后游戏中心玩家改变为玩家B.假设玩家A已经获得了“解决了5个谜题”的成就 . 现在玩家B已经登录会发生什么?

采用“正确”方式做到这一点(上面似乎是苹果公司文件暗示的那个)是游戏应该为每个游戏中心玩家保持一个完整的保存状态 . 因此,当玩家B登录时,玩家A的状态应该自动保存到侧面并且谜题应该清除,因此玩家B可以从头开始对其进行操作 . 即使这样,当玩家A在新设备上安装游戏时仍会出现问题 . 新安装的游戏将完成零谜题,但玩家A的游戏中心用户已经拥有“解决了5个谜题”的成就 . 那么我们应该重置玩家A的成就吗?我们是否应该以某种方式自动填充拼图答案,让玩家A的游戏与他的成就保持一致?

在我看来,Game Center模型并没有考虑到这种总体持续进步 . (事实上,如果游戏有自己的登录系统来管理多个玩家的状态,在我看来,处理多个游戏中心玩家变得更加复杂,因为需要有一种方法来匹配游戏将玩家集中到游戏登录玩家,据我所知,游戏必须提供一些匹配的界面才能使其发挥作用 . )

无论如何,这是我对如何处理这个问题的“穷人的版本”的看法;也就是说,如何使用具有全局持久状态的正常单人游戏(再次,像填字游戏),并使其与游戏中心“足够好”工作:

(1)游戏不会尝试将游戏“同步”到您的游戏中心统计数据 . 例如,如果您在一台设备上解决了9个谜题,然后在另一台设备上安装游戏并使用相同的游戏中心用户登录,则即使您的游戏中心播放器仍然具有以下功能,新游戏仍将解决零谜题“解决了5个谜题”的成就 .

(2)如果你再继续完成5个谜题,没有任何改变,因为你已经获得了这个成就 . 但是当你完成25个谜题(或者下一个成就等级)时,你将获得新的成就 .

(3)假设你(玩家A)已完成9个谜题然后你退出游戏中心而其他人(玩家B)登录同一个设备 . 在这种情况下,我们会加载玩家B 's achievements and let' s,假设玩家B目前在游戏中没有成就 . 在富人的版本中,我认为我们应该重置谜题以匹配玩家B 's achievements. But in the poor man' s版本我们只是立即(并默默地)更新玩家B的成就以匹配游戏状态 . 所以玩家B会立即获得"Solved 5 puzzles"成就(尽管它是玩家A的"earned") .

这个穷人版本的底线是:

(a)如果两个或多个玩家在一个设备上登录和退出游戏中心,那么登录玩家当时取得成就的任何人都将获得该成就 . 如果状态更高,那么在登录时间,玩家的成就将“赶上”游戏的状态 . 所以就像所有球员一样“共同进步” - 任何其他参赛选手都会继承任何一名球员的成就 .

(b)如果你在新设备上卸载/重新安装或安装,你就从头开始谜题,但你的成就保持在他们所处的高点,一旦你开始超过这些数字,成就会增加以跟上您 .

因此,总而言之,在我看来,任何具有全球持续进步的游戏(冒险游戏,填字游戏)都会面临多个游戏中心玩家的这些问题 . 在我看来,有两条路可走:正确的方式和穷人的方式 . 正确的方式似乎很复杂 . 例如,一个冒险游戏将不得不问用户类似的事情,“我看到你刚刚与一个不同的游戏中心玩家B签约 . 你想继续游戏并将所有进一步的进展与玩家B联系起来,或者做你想重置游戏,这样玩家B可以从头开始吗?“然后它必须准备好为任何数量的游戏中心用户保存完整状态(库存, Map 等) .

这个穷人的解决方案似乎不太理想,但对于现有的游戏来说,只是想在不杀死自己的情况下“坚持”游戏中心的支持,这似乎是一个合理的选择,因为“正常”的用例不是拥有多个游戏中心玩家不断在单个设备上登录和退出 .

所以我的问题是:

(a)我对这种情况的分析是否正确?

(b)穷人的解决方案是否已经概述了一个可行的解决方案?它是常用的吗?

1 回答

相关问题