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

问题描述 投票:5回答:1

我读过https://developer.apple.com/library/archive/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的成就,让我们假设玩家B目前在游戏中没有成就。在富人的版本中,我认为我们应该重置谜题以匹配玩家B的成就。但在穷人的版本中,我们只是立即(并默默地)更新玩家B的成就以匹配游戏状态。所以玩家B会立即获得“解决5个谜题”的成就(即使是“赢得”它的玩家A)。

这个穷人版本的底线是:

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

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

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

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

所以我的问题是:

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

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

ios game-center multi-user
1个回答
0
投票

我知道这是一个很老的问题,但几天前我也有同样的问题。我在http://www.mindthecube.com/blog/2012/04/handling-game-center-with-ios-multitasking上找到了一篇关于完全相同主题的好文章。

它实际上说“穷人的解决方案”是许多知名游戏中使用的公认解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.