WWDC Quick Look 💓 By SwiftGGTeam
Reach new players with Game Center dashboard

Reach new players with Game Center dashboard

元の動画を見る

ハイライト

Game Center は、2022 年にフレンドの実績、リーダーボードのジャンプ、スコアの超過をダッシュ​​ボード アクティビティの新バージョンに統合します。すでにリーダーボードや実績に接続されているゲームは、新しいコードを追加することなく、プレイヤーのフレンドの情報フローに表示できます。


主要内容

多くのゲームにはすでにリーダーボードと実績があります。問題は、これらのイベントがゲーム内に留まることが多いということです。プレイヤーが新しい実績を獲得しても、友達はそれを知らないかもしれません。選手がランキング上位に到達しても、それを復帰の機会に変えるのは難しい。

Game Center 2022 の変更は、この問題点から始まります。新しいバージョンのダッシュボードには、ゲーム内の友達のイベントを同じ情報フローに組み込むためのアクティビティが追加されています。イベントには、新しい成果、ランキングの大幅な上昇、友達間のスコアの超えなどが含まれます。

さらに重要なのは、すでに Game Center のリーダーボードと実績を使用しているゲームでは、アクティビティ用に追加のコードを記述する必要がありません。システムはこれらのイベントをダッシュ​​ボードと友人のプロフィール ページに自動的に表示します。 Game Center は、友人がプレイヤーのスコアを超えたときにも通知を送信します。ゲーム自体はユーザーにプッシュ許可を要求する必要はありません。

このセッションは、Unity 開発者にとっても同じ道を歩むものでした。 Apple は、C# API を提供する GameKit 用の Unity プラグインをリリースしました。 Unity プロジェクトでは、ローカル プレーヤーを認証し、アクセス ポイントを表示し、Game Center のソーシャル配信機能を利用できます。


詳細

アクティビティ: ゲーム イベントを Game Center ダッシュボードに追加する (02:42)

新しいダッシュボードには、ゲーム内およびゲーム全体でのプレイヤー フレンドの最近のアクティビティが表示されます。スピーチに記載されているイベントは具体的でした。実績を獲得した、リーダーボードで大きく順位を上げた、友人が他のプレイヤーのハイスコアを超えたなどです。

ゲームにリーダーボードと実績が設定されている場合、アクティビティは自動的に表示されます。開発者が行う必要がある最初のステップは、ゲームに対して Game Center が有効になっていることを確認し、起動プロセスの早い段階でローカル プレーヤーの認証を完了することです。

// Authenticate the local player
import GameKit

class TitleScreenViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Authenticate the local player
        GKLocalPlayer.local.authenticateHandler = { viewController, error in
            if let viewController = viewController {
                // Present the view controller from Game Center.
                return
            }
        }
    }
}

キーポイント:

  • import GameKitGame Center に必要な GameKit フレームワークを紹介します。 -TitleScreenViewControllerタイトル画面に認証を配置することは、スピーチでの「できるだけ早く、おそらくタイトル画面にでも配置する」という提案に対応します。 -GKLocalPlayer.local.authenticateHandler認証コールバックを登録すると、システムは必要に応じて Game Center ログイン インターフェイスに戻ります。 -if let viewController = viewControllerシステムが認証インターフェイスの表示を必要とするかどうかを判断します。 -returnこれはインターフェース層によってレンダリングされる必要がありますviewController、コメント例では、これは特定のゲームの実装に委ねられています。

Unity: C# を使用した GameKit の呼び出し (04:30)

Unity プロジェクトは Game Center を放棄する必要はありません。新しい GameKit Unity プラグインは、完全な C# API を提供します。トーク内の認証コードにより、ローカル プレーヤー オブジェクトがゲーム管理コンポーネントに保存されます。

// Authenticate the local player
using Apple.GameKit;

public class MyGameManager : MonoBehaviour
{
    private GKLocalPlayer _localPlayer;

    private async Task Start()
    {
        try
        {
            _localPlayer = await GKLocalPlayer.Authenticate();
        }
        catch (Exception exception)
        {
            // Handle exception...
        }
    }
}

キーポイント:

  • using Apple.GameKit;Unity プラグインによって公開される GameKit 名前空間を使用します。 -MyGameManager : MonoBehaviourこのコードは Unity コンポーネントに配置され、Unity ライフサイクルによって駆動されることを説明します。 -_localPlayer認証されたものを保存するGKLocalPlayer、後で GameKit の機能を引き続き使用できます。 -Start()としてマークされていますasync Task認証プロセスはシステムの結果を待つ必要があるためです。 -await GKLocalPlayer.Authenticate()プラグインの静的認証メソッドを呼び出し、成功後にローカル プレーヤー オブジェクトを返します。 -catch (Exception exception)ネットワーク エラーやプレーヤーのキャンセルなどの認証エラーを処理するための余地を残しておきます。

アクセス ポイント: プレイヤーにダッシュボードを開くための入り口を提供します (05:25)

認証が完了した後も、プレイヤーが Game Center ダッシュボードに入るには自然な入り口が必要です。 Apple はアクセス ポイントの使用を推奨しています。ゲーム内のシステム入口です。プレイヤーがクリックすると、ダッシュボードが開き、実績、ランキング、アクティビティが表示されます。

演説では、ゲームメニューページにアクセスポイントを表示することを提案した。リアルタイムプレイ画面内では操作の妨げとなる場所に配置しないでください。

// Show the Access Point
import GameKit

class MenuScreenViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        GKAccessPoint.shared.location = .topLeading
        GKAccessPoint.shared.isActive = true
    }
}

キーポイント:

  • MenuScreenViewControllerアクセス ポイントがタイトル認証ページやゲーム内インターフェイスではなく、メニュー ページに配置されていることを示します。 -GKAccessPoint.shared.location = .topLeading入口表示位置を設定します。 -.topLeadingインターフェースの左上隅に入り口が表示されるようにします。特定の場所は、ゲーム UI に基づいて調整する必要があります。 -GKAccessPoint.shared.isActive = trueアクセス ポイントをアクティブにすると、システムがゲーム内に入り口を表示します。

Unity 側のコードも、位置を設定してアクティブにするだけで済みます。

// Show the Access Point
GKAccessPoint.Shared.Location = 
    GKAcessPoint.GKAccessPointLocation.TopLeading;

GKAccessPoint.Shared.IsActive = true;

キーポイント:

  • GKAccessPoint.SharedUnity プラグインによって公開される共有 Access Point インスタンスにアクセスします。 -LocationSwift の例と同様に、エントリの場所を設定します。location対応する。 -TopLeading左上隅の位置を選択します。 -IsActive = true入口が表示され、プレイヤーがクリックするとシステムがダッシュボードを開きます。

リーダーボード: リーダーボード イベントはアクティビティを自動的に生成します (06:24)

リーダーボードはアクティビティの主要な情報源の 1 つです。プレーヤーの友達がリーダーボードの上位 25% に入った場合、または友達がプレーヤーのスコアを超えた場合、その友達はアクティビティに表示されます。

そのうち、「友達があなたのスコアを超えた」場合もGame Centerの通知がトリガーされます。この講演では、この通知は Game Center によって送信され、ユーザーがゲームのプッシュ通知を許可するかどうかをゲームが処理する必要がないことが明確に述べられています。

これは、ランキング リストの設計に関する実際的な方向性を示しています。単に永続的なリストを作成するだけではありません。定期的なランキングは毎週または毎月リセットされるため、プレイヤーは何度もアクセスし続ける理由が得られます。

App Store Connect
└─ Game Center
   ├─ Leaderboards
   │  ├─ permanent leaderboard
   │  └─ recurring leaderboard
   └─ Achievements

キーポイント:

  • App Store ConnectGame Center機能を設定する場所です。 03:56 でのスピーチでは、Game Center をアプリ レコードで有効にする必要があると述べられています。 -Leaderboardsランキング リストの構成に使用されるアクティビティは、フレンド ランキング イベントに基づいてダイナミクスを表示します。 -permanent leaderboard長期にわたるトップスコアの記録に適しています。 -recurring leaderboardスピーチで言及された循環ランキング リストに対応して、新しい競争の瞬間を作り出すために時間枠が使用されます。 -Achievementsリーダーボードと合わせて、アクティビティのメイン イベント ソースを形成します。

実績: 実績の進捗状況が友達に表示されるようになります (07:42)

実績はプレイヤーにバッジを与えるだけではありません。 Game Center アクティビティは、友人に実績完了イベントを表示します。プレイヤーがゲーム内のすべての実績を完了すると、システムはお祝いのアクティビティも生成します。

これにより、実績の設計に新たな責任が課せられます。進行状況を記録したり、プレーヤーに隠されたコンテンツを探索するよう促すこともできます。アチーブメントの名前と説明が明確に書かれていれば、アチーブメントを友達の間でフォローアップの手がかりにすることができます。

Achievement design
├─ early achievement: teach the first meaningful action
├─ progress achievement: mark a chapter, level, or mode milestone
├─ skill achievement: reward a difficult challenge
└─ completion achievement: recognize finishing every achievement

キーポイント:

  • early achievement新しいプレイヤーができるだけ早くアクティビティに参加できるようにするための、敷居の低いイベントに適しています。 -progress achievementプレイヤーのゲームの進行状況に応じて、友達はそれを見てプレイヤーがどこにいたのかを理解できます。 -skill achievement難しい課題に報酬を与えるので、友人間の比較を引き起こすのに適しています。 -completion achievementスピーチ内の「すべてを達成した」という祝賀のダイナミクスに対応します。

重要ポイント

  • やるべきこと: 毎週リセットされるフレンドランキングリストをゲームに追加します。
    実行する価値がある理由: アクティビティでは、友達のパフォーマンスがリーダーボードに表示され、ループするリストにより、継続的にアクセスする理由も提供されます。
    開始方法: App Store Connect の Game Center エリアで定期的なリーダーボードを設定し、ゲームでスコアを送信します。

  • やるべきこと: 初心者向けチュートリアルをいくつかの初期の成果に分割します。
    実行する価値がある理由: 完了した実績はプレーヤーや友達のアクティビティに表示され、新しいプレーヤーが最初のアクション セットを完了すると、目に見える進行状況が生成されます。
    開始方法: 初めてレベルを完了した、初めてコアスキルを使用した、初めて敵を倒したなどのノードを選択し、Game Center 実績として設定します。

  • 内容: メニュー ページに Game Center アクセス ポイントを表示します。
    価値がある理由: プレーヤーは、よく知っている場所からダッシュボードを開いて、友達の更新、実績、リーダーボードを表示できます。
    開始方法:メニューページで設定GKAccessPoint.shared.location、 またGKAccessPoint.shared.isActiveに設定true

  • 内容: Unity ゲーム用の Game Center ログインを追加します。
    実行する価値がある理由: GameKit Unity プラグインは C# API を提供し、Unity プロジェクトは Game Center Activity エコシステムに参加することもできます。
    開始方法: Apple Unity プラグインをインストールし、ゲーム管理コンポーネントで呼び出します。GKLocalPlayer.Authenticate()


関連セッション

コメント

GitHub Issues · utterances