Apple の Game Center を使って iOS のゲームアプリを設計すれば、ゲームスコアやアチーブメントをサーバーへ送信し、プレイヤーのスコアを元にランキングを表示することが出来ます。
今回から4回に分けて、iTunes Connect の設定や Swift のスコア送信の実装を、説明していきたいと思います。
- iTunes Connect: Game Center の Leaderboard を設定する
- Swift: Game Center の Leaderboard へスコアを送信する
- iTunes Connect: Game Center の Achievement を設定する
- Swift: Game Center へ Achievement を送信する
今回は iTunes Connect で Game Center の Leaderboard の設定を行います。
※この説明は Xcode で アプリが開発されていること、iTunes Connect で新規 iOS App の作成までは完了していることを前提としています。
手順の概要
Leaderboard を追加する手順は以下の通りとなります。
各手順の詳しい内容に関しては、次項で説明したいと思います。
- Leaderboardセットの作成
- Leaderboard の追加
- シングル Leaderboard を 選択する
- シングル Leaderboard -> Leaderboardの参照名 を入力
- シングル Leaderboard -> Leaderboard ID を入力
- シングル Leaderboard -> スコアのフォーマットタイプ を選択
- シングル Leaderboard -> スコア送信タイプ を選択
- シングル Leaderboard -> 並べ替えの順序 を選択
- シングル Leaderboard -> スコアの範囲(オプション) を入力
- Leaderboard のローカリゼーション
- 言語を追加 -> 言語 を選択
- 言語を追加 -> 名前 を入力
- 言語を追加 -> スコアのフォーマット を選択
- 言語を追加 -> スコアのフォーマットサフィックス を入力
- 言語を追加 -> スコアのフォーマットサフィックス(複数) を入力
- 言語を追加 -> 画像(オプション)で ファイルを選択 をクリック
- 言語を追加 -> Save をクリック
- Leaderboardを編集 -> Save をクリック
Game Center の Leaderboard を設定する
ここからは SQN クエストモードのハイスコアの設定画面を例に説明していきたいと思います。
上から順に設定していくと Game Center での Leaderboard の設定は完了します。(Leaderboardセット の作成は内容が重複するため割愛させていただきます)
Leaderboard の追加
- iTunes Connect -> マイ App -> アプリを選択 -> Game Center をクリック
- Leaderboard の追加 をクリックし、アプリに Leaderboard を追加します
- シングルLeaderboard の 選択する をクリック
- シングルLeaderboard -> Leaderboardの参照名 を入力
この値は iTunes Connect 上で Leaderboard の識別に使用します。
命名規則にルールはありませんので、分かりやすい名称にすればいいかと思います。例)sqn.quest.highScore (アプリ名.ゲームモード.スコア名)
- シングルLeaderboard -> Leaderboard ID を入力
この値はアプリのコーディングで参照する値となります。
命名規則にルールはありませんので、分かりやすい名称にすればいいかと思います。例)sqn.quest.highScore (Leaderboard の参照名と同じ)
- シングルLeaderboard -> スコアのフォーマットタイプ を選択
各フォーマットタイプの意味は次の通りです。- Integer: 整数値
- Fixed Point – To 1 Decimal: 小数点第一位の値
- Fixed Point – To 2 Decimal: 小数点第二位の値
- Fixed Point – To 3 Decimal: 小数点第三位の値
- Elapsed Time – To the Minute: 経過時刻(分)
- Elapsed Time – To the Second: 経過時刻(秒)
- Elapsed Time – To the Hundred of a Second: 経過時刻(100倍された秒)※
- Money – Whole Numbers: 金額(整数値)
- Money – To 2 Decimals: 金額(小数第二位の値)
※Elapsed Time – To the Hundred of a Second のサンプル
例)111 の場合 -> 0:00:01.11
例)2222 の場合 -> 0:00:22.22
例)33333 の場合 -> 0:05:33.33 - シングルLeaderboard -> スコア送信タイプ を選択
各スコア送信タイプの意味は次の通りです。- ベストスコア: ベストスコアが送信される
- 最新スコア: 最新スコアが送信される
- シングルLeaderboard -> 並べ替えの順序 を選択
- 昇順: スコア(値)が小さい順に並べ替えられる
- 降順: スコア(値)が大きい順に並べ替えられる
参考までに、高得点を競う場合は「降順」、より早いタイムを競う場合は「昇順」となります。
- シングルLeaderboard -> スコアの範囲(オプション) を入力
スコアの範囲を定義します。この範囲を超えるスコアは Leaderboard に反映されませんので、余裕をもって定義すればいいかと思います。ゲームの仕様上、マイナスのスコアが発生しないのであれば、最小値を 0 とすることで、サーバーの負荷が少なくなるため、スコアの反映までの時間にいい影響が出ると思います。
Leaderboard のローカリゼーション
- Leaderboard のローカリゼーション -> 言語を追加 をクリック
- 言語を追加 -> 言語 を選択
- 言語を追加 -> 名前 を入力
Game Center に表示される Leaderboard 名です。
- 言語を追加 -> スコアのフォーマット を選択
- Integer (100,000,122): カンマ区切り
- Integer (100.000.122): ドット区切り
- 言語を追加 -> スコアのフォーマットサフィックス を入力
表示スコアの末尾に表示する単位(point、$、秒など) - 言語を追加 -> スコアのフォーマットサフィックス(複数) を入力
表示スコアの末尾に表示する単位(複数形) - 言語を追加 -> 画像(オプション)で ファイルを選択 をクリック
512x512px または 1024x1024px の .jpg .png ファイルのアップロードが可能です。
- 言語を追加 -> Save をクリック
- Leaderboardを編集 -> Save をクリック
Game Center の変更内容の保存
- Game Center -> Done をクリック
以上の工程を作成したい Leaderboard 分繰り返すことで、複数の Leaderboard を設定することが可能です。
まとめ
Leaderboard のスコアは点数だけではなく、タイムやアプリ内のユニークな数値に対しても有効です。
次回は Game Center の Leaderboard へスコアを送信する Swift コードを説明したいと思います。
本投稿のサンプルで使用している iOS ゲームアプリ SQN では Game Center の Leaderboard を使って、ハイスコアとタイムを送信しています。
SQN は完全無料ですので、よかったらダウンロードして遊んでみてください。
↓SQN のダウンロードはこちらから
SQN はユニバーサルアプリなので、すべての iOS デバイス(※) でお楽しみいただけます。
※iOS 8.0 以降がインストールされているデバイスが対象となります。
この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。