3

私には、Apple が GameCenter の実装を少し急いでいたように見えます。多分私は何かを見落としています。

アプリ内購入を提供するゲームを作成する場合 (たとえば、追加のマップやアドオンを販売したい場合)、GKMatchRequest を使用して同じマップ (複数) を共有するプレイヤーを一致させる方法はありますか? つまり、アプリ内購入が重複していますが、まったく同じではありません。

あるいは、レース ゲームで車を売りたいと思うかもしれません。すべての車ではなく、一部の車を共有しているプレイヤーと対戦するにはどうすればよいでしょうか? GKMatchRequest の playerGroup プロパティは、ユーザーが同じグループに属している場合にのみ比較されるため、できないと思います。

したがって、あるユーザーがマップ A とマップ B を購入し、別のユーザーがマップ B とマップ C を購入した場合、マップ B を一緒にプレイすることはできますが、それらを一致させる方法はありません。もちろん、ユーザーがプレイしたいマップを指定する必要があるように、インターフェースを実装することもできます。ただし、アプリ内購入がどちらかまたは両方の質問ではなく、ゲーム内で組み合わされる可能性がある他のシナリオがあります (たとえば、バトル ゲームでさまざまな種類の兵士を購入し、兵士の一部を共有するプレイヤーと対戦できる場合)。タイプ... ゲーム自体で、プレイヤーが共有しないタイプを除外するロジックを実装できます)。

誰でもうまくいく解決策を考えることができますか?

4

3 に答える 3

1

地図の場合、最初にユーザーに地図を選択させる必要があると思います。それ以外の場合、2 人のプレイヤーをマッチさせ、マップ B、C、および E を共有しているとします。次に、どのマップでプレイするかについて彼らが同意する方法が必要です。プレイヤー 1 はマップ B をプレイするつもりで、プレイヤー 2 はマップ E をプレイしたかったのかもしれません。たとえそれらがサブセットを共有していたとしても、今度はマッチング プロセスで実行できたはずの作業を実行する必要があります。

車の場合、なぜこのように選手を比較したいのかを尋ねる必要があると思います。単純に公平性が欠けている場合 (つまり、強力な車を持っている人と初心者を比較しない場合) は、車の最高速度に基づいて「レベル」を作成できます。さまざまな車のセットを持つ人々を一致させることになるかもしれませんが、均等に一致させることができます。

最後に、プレーヤーが絶対に一致するものを必要とする場合は、前の提案を使用して最善を尽くします。そうでない場合は、「ねえ、一致する車がありません。購入したい」というメッセージをポップアップ表示します。これで一緒に遊べるでしょ?」今すぐ購入するか、別のプレーヤーを探すことを申し出てください。この方法でいくらかの売上を上げることができます。


PS 説教で申し訳ありませんが、Apple が中途半端な仕事をしたと言うのは公平ではありません。Game Center は、何百万人ものユーザーにスケールアップする必要があるシステムであり、マッチを多かれ少なかれ瞬時に見つけたいと考えています。サブセットを重複させて一致させようとすると、システムがかなり複雑になります。また、そのような設計のコストを高く評価しているとは思いません。

必要なことを正確に行うことができないのは残念ですが、欠点が無能によるものであると仮定するのは悪い態度です.

于 2010-10-08T16:24:35.920 に答える
0

「Game Kit Programming Guide > Multiplayer > Player Groups」では、「通常、ゲームは独自のユーザー インターフェイスを表示して、プレーヤー グループ番号の計算に使用されるパラメーターをプレーヤーが選択できるようにする必要があります」と述べています。彼らはあなたが必要とするこの種の制限を許可するつもりはなかったと思います.

次の 4 つのオプションしか表示されません。

  1. マップの「デモ バージョン」を使用します (つまり、ユーザーがマップ A を購入した場合、ゲスト プレイヤーが A を購入したかどうかに関係なく、A で試合を「ホスト」できます)。ゲームがシングル プレイヤーとしてもプレイできる場合は、ゲスト向けの何らかの広告として使用される可能性があります。
  2. 独自のサーバーを作成します。これは邪悪で曖昧ですが、この方法であらゆる種類のマッチング ルールを作成できると思います。
  3. マップを購入しなかったプレイヤーを「拒否」します (テストしたことはありませんが、拒否されたプレイヤーにとって不快になると思います)。
  4. 「マップのグループ」を作成します。自動車の例(オートバイに適応)を使用すると、100ccのグループ、250ccのグループなどがあります。人々は「A」(100cc)で、「B」(同じく100cc)を購入したプレイヤーと競うことができました。マップでは、「水域マップ」、「冬マップ」などがあります。これにより、購入に価値が追加され、物事が簡単になります。しかし、これにはいくつかの UI コーディングも必要になると思います。

プレイヤーの最大数が 4 人だけであることを考えると、Apple が複雑なゲームをホストするために Game Center を用意したとは思えません。たぶんそれは OpenGLES のようなものです: 素晴らしいツールですが、Unreal Engine の Epic Citadel (残念ながらブラジルの App Store では利用できません) のような超クールなものを作成するには、非常にハードコアな開発者でなければなりません。

于 2011-02-24T06:00:49.153 に答える
0

アプリ内購入と Game Center の両方をサポートするという別のジレンマがあります (コメントで返信してください)。

私のゲームには、10 個の個別のパズル パックのアプリ内購入が含まれており、私のゲームには、Game Center を使用する無料のマルチプレイヤー モードも含まれているとします。いつでも、1 つの iOS デバイスにログインしている iTunes Store アカウントがあり、このアカウントは、アプリのすべてのアプリ内購入のステータスを決定するために使用されます。ユーザーが 1 つのデバイスで iTunes Store アカウントからログアウトし、新しいユーザーが同じデバイスで (設定アプリケーションの [ストア] タブを使用して) 自分の iTunes Store アカウントにログインすると、アプリ内購入のステータス私のアプリは、新しくログインした iTunes ストア ユーザー用に更新されます。完全!アプリが Game Center を使用して、異なるユーザーが同じアプリを使用できるようにするとどうなりますか? 突然、1 つのアプリに対して 2 種類のユーザー アカウントを持っているように見えます。Game Center 用に 1 つのアカウントと、iTunes ストア用に 1 つのアカウントですよね?たとえば、user1 が Game Center を使用してアプリにログインし、パズル パックを 3 つ購入した場合、それらのパズル パックは、現在デバイスにログインしている iTunes アカウントに課金されます。user1 が Game Center からログアウトし、user2 が Game Center にログインした場合、現在ログインしている iTunes アカウントはそのままで、user2 は user1 が購入したパズル パックにアクセスできますか? これは、user1 が使用していたのと同じ iTunes アカウントで、user2 が追加のパズル パックを購入できるということでもありませんか? user1 が Game Center からログアウトし、user2 が Game Center にログインした場合、現在ログインしている iTunes アカウントはそのままで、user2 は user1 が購入したパズル パックにアクセスできますか? これは、user1 が使用していたのと同じ iTunes アカウントで、user2 が追加のパズル パックを購入できるということでもありませんか? user1 が Game Center からログアウトし、user2 が Game Center にログインした場合、現在ログインしている iTunes アカウントはそのままで、user2 は user1 が購入したパズル パックにアクセスできますか? これは、user1 が使用していたのと同じ iTunes アカウントで、user2 が追加のパズル パックを購入できるということでもありませんか?

さらに悪いことに、購入したパズル パックの完成に基づいて Game Center の実績を作成したい場合はどうすればよいでしょうか? 突然、別の Game Center ユーザーが、同じパズル パックの状態を共有しているため、解けなかったパズル パックの実績を受け取ることになりますよね?

于 2010-10-25T18:17:03.037 に答える