原始问题:
中的游戏套件编程指南中的iOS开发者库mentions客户端 - 服务器游戏的最大尺寸为16个玩家。
此限制是否也适用于P2P GKsessions?
这已经被问到了here(但是从不同的角度来看)。
更新了问题:连接超过4个对等体时,GKSession是否可靠?
注意:问题已根据response下面的saulobrito进行了更新。
参考:使用大量对等连接的应用的一个示例是Seedio。你会发现他们不使用GKSession,因为蓝牙不是连接选项(使用GKSession,你甚至不能选择蓝牙或Wi-Fi .. GKSession会为你做这件事。)查看他们FAQ提供了一些有趣的信息,说明他们为什么选择Wi-Fi而不是蓝牙。
答案 0 :(得分:3)
我可以向您保证,GKSession非常不稳定,您不应该相信这些文档。事实上,Apple最近决定完全删除文档。
我做了很多测试,我建议实际限制是4个连接设备(一个充当服务器和三个客户端)。当然,你做自己的测试场景会更好。
我也找不到任何允许超过4名玩家的游戏。我唯一知道的是苹果自己的德州扑克 - 允许8名玩家,但他们决定将其删除。
最后,但并非最不重要的是,游戏中心imposes a 4 player limit进行点对点游戏。
是的我正在开发一款应该支持10名玩家的游戏,但是在我们的测试中,当有超过4台设备时,它变得不稳定/无法使用。不稳定我的意思是:有时你找不到同伴,连接在不到一分钟内就会掉线。更糟糕的是,在尝试发送消息时,更新到iOS 6会带来一些奇怪的行为,例如冻结(没有错误,没有堆栈跟踪,没有任何内容)。其他奇怪的事情:当玩家失去联系时,所有其他玩家都会断开连接。
编辑:自那次回复以来做了很多测试,并有更多信息要分享:
使用iOS 6,我可以使用wi-fi或蓝牙可靠地播放9台设备。虽然存在一个很大的问题:你无法使用iOS 6将设备连接到使用iOS 5的设备,因为如果任何设备启用了wi-fi,你将面临无法解释的冻结 - 无堆栈跟踪的时间。您可以将iOS 6设置为应用程序的最低支持版本,或者您必须要求用户禁用其Wi-Fi并使用蓝牙。
答案 1 :(得分:3)
在iOS 6.0上,我可以确认GKSession允许至少6名玩家。我发现您必须确保在状态更改为已连接之前不要向对等方发送消息。
总的来说,我认为GKSession是一个非常简单的API。它将使用蓝牙或WiFi,这意味着您甚至不必考虑手机是否连接到WiFi网络。延迟很好而且很低(我测量的是4ms,不可靠,大约10ms,可靠的网络)。
我的主要注意事项是: