我对在一台设备上支持多个游戏中心用户的问题感到困惑。
特别是,我对于如何在具有整体持续性进展的游戏中如何做到这一点感到困惑,比如冒险游戏或填字游戏。
也就是说,我认为有两种游戏。在一个,你开始游戏,直到你死,然后游戏结束。使用Game Center多用户模型,这种游戏似乎很容易处理。当一个新的游戏中心玩家登录时,我可以加载他们的游戏中心统计数据,然后他们可以玩游戏,我会相应地调整他们的成就/分数。唯一的特例是,如果游戏中心玩家A正在玩游戏,游戏进入后台并且游戏中心玩家B登录,然后游戏到达前景会发生什么?在这种情况下,似乎很容易结束正在进行的游戏并且说'#34;抱歉,您切换了游戏中心用户。你需要开始一个新游戏。"
但另一种游戏是持续存在的整体进步,通常是自动进行的。例如,假设我有一个有100个谜题的填字游戏。假设玩家A完成了8个谜题并且正在完成第9个谜题,然后游戏中心玩家改变为玩家B.假设玩家A已经赢得了解决5个谜题"成就。现在玩家B已经登录了应该发生什么?
对#34;右边"这样做的方式(上面似乎是苹果公司的文件暗示的那个)是游戏应该为每个游戏中心玩家保持一个完整的保存状态。因此,当玩家B登录时,玩家A的状态应该自动保存到侧面并且谜题应该清除,因此玩家B可以从头开始对其进行操作。即使这样,当玩家A在新设备上安装游戏时,仍会出现问题。新安装的游戏将完成零谜题,但玩家A的游戏中心用户已经拥有了解决的5个谜题"成就。那么我们应该重置玩家A的成就吗?我们是否应该以某种方式自动填充拼图答案,让玩家A的游戏与他的成就保持一致?
在我看来,Game Center模型并没有考虑到这种总体持续进步。 (事实上,如果一个游戏的拥有签到系统来管理多个玩家的状态,那么在我看来,处理多个游戏时甚至会变得更加复杂游戏中心玩家,因为需要有一种方法来匹配游戏中心玩家和游戏登录玩家,并且据我所知,游戏必须提供一些匹配的界面才能使其发挥作用。)
无论如何,这是我对一个穷人的版本"如何处理这个问题;也就是说,如何使用具有全局持久状态的正常单人游戏(再次,像填字游戏),并使其工作"足够好"与游戏中心:
(1)游戏不会尝试同步"游戏中心的游戏统计数据。例如,如果您在一台设备上解决了9个谜题,然后在另一台设备上安装游戏并使用相同的游戏中心用户登录,则即使您的游戏中心播放器仍然具有以下功能,新游戏仍将解决零谜题"解决了5个谜题"成就。
(2)如果你再继续完成5个谜题,没有任何改变,因为你已经获得了这个成就。但是当你完成25个谜题(或者下一个成就等级)时,你将获得新的成就。
(3)假设你(玩家A)已完成9个谜题,然后你退出游戏中心,其他人(玩家B)登录同一个设备。在这种情况下,我们会加载玩家B的成就,让我们假设玩家B目前在游戏中没有成就。在富人的版本中,我认为我们应该重置谜题以匹配玩家B的成就。但在穷人的版本中,我们只是立即(并默默地)更新玩家B的成就以匹配游戏状态。因此,玩家B将立即获得“解决5个谜题”#34;成就(尽管是玩家A"赢得"它)。
这个穷人版本的底线是:
(a)如果两个或更多玩家在单个设备上登记和退出游戏中心,那么登录玩家当时取得成就的任何人都将获得该成就。此外,在登录时间内,玩家的成就会赶上"如果状态较高,则与游戏状态一致。所以它就像所有玩家一起进步" - 任何其他参赛者都会继承任何一名球员的成就。
(b)如果你在新设备上卸载/重新安装或安装,你就从头开始谜题,但你的成就保持在他们所处的高点,一旦你开始超过这些数字,成就就会增加到跟上你。
因此,总而言之,在我看来,任何具有全球持续进步的游戏(冒险游戏,填字游戏)都会面临多个游戏中心玩家的这些问题。在我看来,有两条路可走:正确的道路和穷人的道路。正确的方式似乎很复杂。例如,冒险游戏必须向用户询问类似的事情,"我看到您刚刚与其他游戏中心玩家B签约。您是否想继续游戏并将所有进一步的进展与玩家B,或者你想重置游戏,以便玩家B可以从头开始?"然后它必须准备好为任何数量的游戏中心用户保存完整的状态(库存,地图等)。
穷人的解决方案似乎不太理想,但对于现有的游戏来说,只是想要"游戏中心支持而不是自杀,这似乎是一个合理的替代方案,因为"正常"用例不是让多个Game Center玩家在单个设备上不断登录和退出。
所以我的问题是:
(a)我对这种情况的分析是否正确?
(b)穷人的解决方案是否已经概述了可行的解决方案?它是常用的吗?
答案 0 :(得分:0)
我知道这是一个很老的问题,但几天前我也有同样的问题。我在http://www.mindthecube.com/blog/2012/04/handling-game-center-with-ios-multitasking上发现了一篇关于完全相同主题的好文章。
它实际上说“穷人的解决方案”是许多知名游戏中使用的公认解决方案。