スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Game Centerの仕様ってこんなのだったのか

overview_rejoice20100915.jpg

Game Centerのヘビーユーザーにも関わらず、中身がよくわかっていなかったので、AppleがiOSデベロッパー向けに提供しているガイドブックを読んでみました。Game kitプログラミングガイドという資料で、なんと日本語で用意されています。

以下はユーザー視点で、ざざっと内容をまとめたもの




AppleがGame Kitフレームワークで用意している3つの機能の一つがGame Center。その他にPeer to Peer Connectivity(ローカル対戦)、In-Game Voice(ボイスチャット)の機能がある。

Game Centerの主な機能には次のようなものがある

- Leaderboard
成績表。リーダーボードの項目や、順位付けに使用されるスコアの計算の仕方、カテゴリ等はApp毎にデベロッパーが設定できる。Appからゲームセンターのスコアを読み込むことも可能

- Achievement
アチーブメントの説明、アチーブメントで獲得できるポイント、アチーブメントのアイコン等はApp毎にカスタマイズができる。

ー マルチプレイヤー
オンライン対戦機能。ゲームセンターから参加者のリストだけを入手し独自のサーバーを利用してオンライン対戦を提供することも可能。サーバーを用意せずゲームセンターだけでオンライン対戦を利用することもできる。

マルチプレイヤーでは、上級者と下級者別に参加者を選んだり、ステージ別に参加者を募集することもできる。

- ピアツーピアネットワーク
マルチプレイヤーにおいて、参加者間でデーターや音声情報をやり取りすることが可能になる。複数の音声チャンネルを用意すれば、チーム内だけで聞こえるボイスチャットなども可能。ボイスチャットはwifiにのみ対応。


Game Centerに登録すると各プレイヤーは一意のプレイヤー識別子が割り当てられる。プレイヤーが自己の名前等を変更しても、この識別子は変更されない。

アプリがGame Centerから入手可能なプレイヤーの情報は以下のとおり
- プレイヤーの識別子
- プレイヤー名(Apple IDの登録名ではなくGame Centerに登録したニックネーム)
- 特定のプレイヤーが現在プレイしているプレイヤーの友達か否か
- 現在プレイしているプレイヤーの友達の識別子
- 現在プレイしているプレイヤーが未成年か否か


Leaderboard関連:

Leaderboardで使用されるスコアは64ビットの整数値。符号付きだとするとスコアの最大値は9,223,372,036,854,775,807になる。スコアを昇順で並べるか降順で並べるか、表示単位をどうするかはApp毎に設定できる。Leaderboardにはカテゴリを25個まで作成することができる。これを利用して難易度別、コース別のLeaderboardを用意することができる。他のLeaderboardのスコアを結合して、総合的なLeaderboardを作成することも可能。ネットワークに問題があって、スコア送信が上手くいかなかった場合、スコアを後日再送信することも可能(但しアプリケーションでその様にプログラムする必要がある)。

Leaderboardに送られているデータは、スコアを獲得したプレイヤー、スコアを獲得した日時、Leaderboardのカテゴリ、獲得したスコアに対応するプロパティ(不明)。従って現在の仕様では地域別のLeaderboardを実装することはGame Centerでは不可能。

Leaderboardのスコアをアプリが取得することも可能。現在のトップ10位のスコアとプレイヤー名、オンライン対戦中のプレイヤーのスコア等を入手することも可能。


アチーブメント関連:

各アチーブメントの説明は二通り用意されている。一つは達成前に、もう一つは達成後に使用される。アチーブメント達成時に獲得できるポイントは1項目あたり最大100ポイント、全合計は1000ポイントまで。アチーブメントが達成された時の画像はApp側でカスタマイズ可能。アチーブメントはプレイヤーから隠しておくことも可能。この場合達成状況を報告することで、表示されるようになる。表示されているアチーブメントの数と、合計が合わない場合、この隠しアチーブメントが設定されていると思われる。

AppはGame Centerにアチーブメントを達成状況を表した0.0-100.0%の値で報告する。アチーブメントで報告された値が、以前の値より高い場合、Game Center上の値は新しい値に更新される。アチーブメントの達成状況が下がることはない。アチーブメントが達成された時にネットワークにつながっていなかった場合は、アプリ側で後でGame centerに再送信することも可能(但しアプリケーションでその様にプログラムする必要がある)。

アプリ側でアチーブメントをリセットすることも可能。これにより、そのGameのGame Center内の達成状況はすべて削除される。


オンライン対戦関連:

マルチプレイヤーは同じアプリケーション間でのみ実行できる。異なるアプリケーション(フリー版と有料版)間でマッチメークすることはできない。独自のサーバーを利用しない場合、対戦可能な人数は最大4(iOS 4.2の場合)。別途サーバーを用意した場合は最大16人までの対戦が可能。途中参加や途中脱退なども可能。

プレイヤーグループを設定して、上級者と下級者をグループ分けしたり、対戦のステージ別にプレイヤーを選ぶことも可能。プレイヤーの属性を設定して、属性ごとにプレイヤーを選択することもできる。たとえば、ロールプレイングゲームで、アーチャーを対戦相手に指定するといったようなことも出来る。ただし同じ属性のプレイヤーが対戦に参加することはできない(アーチャー対アーチャーは不可)。






読んでみて意外に思ったのが、リーダーボード用のスコアとアチーブメントの送信。電車の中でプレイしていて、ネットワークが通じなく、ハイスコアやアチーブメントが送信されなかったというケースは結構あると思います。実はプログラミングガイドでは、この点についてちゃんと注意書きがあり、送信エラーの際は別途アプリ側で処理するように指摘していました。仕様上は後日アプリを起動した時に、再送信することも可能になっています。

これまで、Game Centerの仕様上の不具合だと思っていましたが、実際はApp側の実装不足(多分そこまで手が回らない)だったということになるようです。

また、個人的にGame Centerに欲しい機能の一つに地域別のLeaderboardがあるのですが、これは現状では不可能のようですね。Game Centerの仕様が変わらない限り無理です。

オンライン対戦機能では、これまで見たこともないような仕様も用意されていました。ただ、本格的なネットワーク対戦機能を利用するには、やはり独自サーバーが必要なようです。逆にシンプルな対戦なら、比較的容易に実装できそうな感じ。この場合は、対戦に参加しているiPhoneその物がサーバーの役割を果たしたり、完全なP2Pでネットワークを組んだりして対応しています。

Game Kitプログラミングガイドは以下のリンクから誰でもダウンロード可能です。もし興味があれば、どうぞ。

Game Kitプログラミングガイド.pdf



スポンサーサイト

250位だーヾ(@⌒ー⌒@)ノ



そろそろ厳しくなってきた

300位だーヾ(@⌒ー⌒@)ノ



もうすぐ35000ポイントだお

だけどーーー、僕には…

思わず目を疑うような美人からGame Centerの友人リクエストが届いた。

メッセージには…

「一緒に将棋をうてる人を探してます。」



そして今、私の頭の中ではこの曲が延々と流れ続けてる…




ごめん、将棋できないんだお。


あああああああああああああ





あああーああ、あああーああ、ああああ 遠ざかる



500位突破ヾ(@⌒ー⌒@)ノ



30,000点ももうすぐだー
最新記事
カテゴリ
Game関連タグ

育成 ソーシャル ニュース アクション シューティング パズル 

検索フォーム
最新コメント
カウンター
RSSリンクの表示
iPhone Game関連リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。