iOS4.1がリリースされ、GameCenterが正式に稼働となりました。
あんまり期待してなかったのですが、なんだかドキュメントを読んでいたら意外におもしろそうな感じ。
単純なスコアランキングから、条件達成、自動対戦マッチにフレンド機能と、自前サーバいらずな感じになりそう。
(どうせならアイテム課金の管理もAppleでやってくれたら完璧なのに・・・)
ちょうどスコア系のゲームをつくっていたので慣れない英語を必死に読みながら実装してみた。
・iTunesConnectにアプリケーションを登録する
登録必須です、スクリーンショットとか検索キーワードとか先に入れるの面倒ですが、後から変更出来ますのでとりあえず作っちゃいましょう。
登録したら、Manage GameCenterから、GameCenter Testingを有効にする。
Leaderboard(ハイスコア)とAchievements(条件達成)がセットアップ出来るので設定しておく。
・プロジェクトの設定
対象のプロジェクトにGameKitをLinkする。
GameKit/GameKit.h をインポートする。
ビルトプロパティの識別子をアプリケーションで設定したものと同じにする。(jp.co.hoge.application)
・稼働しているデバイスがGameCenterに対応しているか調べる
サンプルコードの isGameCenterAvailable に該当
・ユーザを認証する
サンプルコードの authenticateLocalPlayer に該当
ゲーム中にバックグラウンドでログアウトしたりする可能性があるので、GameCenterでの処理を行う前には必ず行う。
・スコアの登録
サンプルコードの reportScore に該当
・ランキングの表示
一般的なGameCenter用の表示と、カスタムでスコアだけ取得して自分で描画するパターンがある。
統合されたインターフェースで十分だったので、一般的な表示を使おうと思ったんだけど、cocos2dだとここがちょっと面倒に。
GKLeaderboardViewControllerDelegate を持つ UIViewController クラスを作成して、CCDIrector の openGLView に addSubview して解決。(超適当)
詳しくはココらへんを参照
とりあえずこんだけでランキングに登録、表示が可能になりました。
フレンドとかはGameCenter側で出来る話なので気にすることもなし。
オンラインマッチに関してはエイバースの中の人が詳しく紹介されてます。
あれ、その1で完結しちゃった。
Achievements触ってみてなんかあれば続きでも・・・