3

在我看来,Apple 有点急于实施 GameCenter。也许我忽略了一些东西。

如果你创建一个游戏,你想提供应用内购买(比如你想出售额外的地图或附加组件),有没有办法使用 GKMatchRequest 匹配共享相同地图(复数)的玩家?即其应用内购买重叠,但不完全相同。

或者,也许您想在赛车游戏中出售汽车。您如何匹配共享部分汽车而不是全部汽车的玩家?我认为您不能,因为 GKMatchRequest 中的 playerGroup 属性仅在用户属于同一组时进行比较。

因此,如果一个用户购买了地图 A 和地图 B,而另一个用户购买了地图 B 和地图 C,则无法匹配他们,尽管他们可以一起玩地图 B。当然,您可以实现您的界面,以便用户必须指定他们想要在哪个地图上玩。但在其他情况下,应用内购买可能不是一个非此即彼的问题,但可能会在游戏中结合使用(例如,如果您可以在战斗游戏中购买不同类型的士兵,然后匹配共享部分士兵的玩家)类型...然后您可以在游戏本身中实现逻辑以排除玩家不共享的那些类型)。

谁能想到一个可行的解决方案?

4

3 回答 3

1

在地图的情况下,我认为您需要先让用户选择地图。否则,假设您匹配两个玩家并且他们有共同的地图 B、C 和 E。现在你需要一种方法让他们就玩什么地图达成一致。也许玩家 1 打算玩地图 B,而玩家 2 想要地图 E。即使他们共享一个子集,现在您必须完成匹配过程中可能完成的工作。

在汽车方面,我认为您需要问为什么要以这种方式比较球员。如果只是出于公平考虑(因此您不会将拥有强大汽车的人与新手匹配),那么您可以根据最高汽车速度创建一个“级别”。也许你会给人配不同的车,但他们可以势均力敌。

最后,如果玩家绝对需要匹配的东西,尽量使用之前的建议,如果没有,弹出消息说,“嘿,你没有匹配的车,想买这个可以一起玩吗?” 提议立即购买或寻找其他玩家。你可以通过这种方式进行一些销售。


PS 很抱歉说教,但说苹果做了一半是不公平的。Game Center 是一个必须扩展到数百万用户的系统,这些用户或多或少想要立即找到匹配项。尝试通过重叠子集进行匹配会大大增加系统的复杂性,而且我认为您不会意识到这种设计的成本。

不能完全满足您的需求,这很糟糕,但是假设缺点是由于无能造成的,这是一种糟糕的态度。

于 2010-10-08T16:24:35.920 回答
0

这是同时支持应用内购买和游戏中心的另一个困境(请在评论中回复)。

假设我的游戏包含十个独立拼图包的应用内购买,我的游戏还包含使用 Game Center 的免费多人模式。在任何时候,单个 iOS 设备都会登录一个 iTunes 商店帐户,该帐户用于确定我的应用程序的所有应用内购买的状态。如果用户在单个设备上注销其 iTunes 商店帐户,而新用户在同一设备上登录其 iTunes 商店帐户(使用设置应用程序中的“商店”选项卡),则应用内购买的状态为我的应用程序将为新登录的 iTunes 商店用户更新。完美的!现在如果我的应用使用 Game Center 来允许不同的用户使用同一个应用会发生什么?突然之间,您似乎为一个应用程序拥有两种不同类型的用户帐户。Game Center 一个帐户,iTunes 商店一个帐户,对吗?例如,如果 user1 使用 Game Center 登录我的应用程序并购买了三个拼图包,那么这些拼图包将计入设备上当前登录的任何 iTunes 帐户。如果user1退出Game Center,而user2登录Game Center,那么当前登录的iTunes账号是不是不变,也就是说user2可以访问用户1购买的拼图包?这是否也意味着 user2 可以在 user1 使用的同一 iTunes 帐户下购买额外的拼图包?如果user1退出Game Center,而user2登录Game Center,那么当前登录的iTunes账号是不是不变,也就是说user2可以访问用户1购买的拼图包?这是否也意味着 user2 可以在 user1 使用的同一 iTunes 帐户下购买额外的拼图包?如果user1退出Game Center,而user2登录Game Center,那么当前登录的iTunes账号是不是不变,也就是说user2可以访问用户1购买的拼图包?这是否也意味着 user2 可以在 user1 使用的同一 iTunes 帐户下购买额外的拼图包?

更糟糕的是,如果我想在完成购买的拼图包的基础上创建 Game Center 成就怎么办?突然之间,不同的 Game Center 用户会收到他们没有解决的拼图包的成就,因为他们共享相同的拼图包状态,对吧?

于 2010-10-25T18:17:03.037 回答
0

在“Game Kit Programming Guide > Multiplayer > Player Groups”中,他们声明“通常情况下,您的游戏应该呈现自己的用户界面,以允许玩家选择用于计算玩家组数的参数。” 我猜他们不打算允许你需要这种限制。

我只能看到四个选项:

  1. 使用地图的“演示版”(即,如果用户购买了地图 A,它将允许他在 A 上“主持”一场比赛,无论客人玩家是否购买了 A)。如果你的游戏也可以单人玩,它可能会被用作某种形式的广告给客人。
  2. 创建自己的服务器。这是邪恶且晦涩的,但我想您可以通过这种方式制定任何类型的匹配规则。
  3. “拒绝”一个没有购买地图的玩家(从未测试过,但我想这会让被拒绝的玩家不愉快)。
  4. 创建“地图组”。以汽车为例(适用于摩托车),可能有 100cc 组、250cc 组等。人们可以通过“A”(100cc)与购买“B”(也是100cc)的玩家竞争。有了地图,可以是“水地图”、“冬季地图”等等。这将为购买增加价值并使我们的事情变得容易。但我想这也需要一些 UI 编码。

考虑到最多只有 4 名玩家,我认为 Apple 没有准备 Game Center 来托管复杂的游戏。也许它就像 OpenGLES:很棒的工具,但你必须是一个超级铁杆开发者才能制作像虚幻引擎的 Epic Citadel 一样酷的东西(遗憾的是,巴西的 App Store 上没有)。

于 2011-02-24T06:00:49.153 回答