View in English

  • メニューを開く メニューを閉じる
  • Apple Developer
検索
検索を終了
  • Apple Developer
  • ニュース
  • 見つける
  • デザイン
  • 開発
  • 配信
  • サポート
  • アカウント
次の内容に検索結果を絞り込む

クイックリンク

5 クイックリンク

ビデオ

メニューを開く メニューを閉じる
  • コレクション
  • トピック
  • すべてのビデオ
  • 利用方法

WWDC19に戻る

ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。

  • 概要
  • トランスクリプト
  • Game Centerのプレイヤー識別子

    Game Centerが、対象範囲が個々のゲームやデベロッパチームのIDにスコープされた永続的なプレイヤー識別子に対応しました。このセッションでは、スコープされた識別子によってプレイヤーのプライバシーがどのように向上するかを説明し、Appやゲームを推奨されるAPIに移行させる方法を紹介します。

    リソース

      • HDビデオ
      • SDビデオ
    • プレゼンテーションスライド(PDF)

    関連ビデオ

    WWDC19

    • プライバシーのための設計
  • このビデオを検索

    (音楽)

    Game Center技術チームの ベン・ハリーです 今回はGame CenterプレーヤーIDの 説明をします

    まず Game Centerの機能について 概要からお話しします

    Game Centerではプレーヤーが Leaderboard上で最高スコアを追跡し アチーブメントを閲覧できます さらに 友人とLeaderboardの スコアを競ったり リアルタイムまたはターン制で マルチプレイゲームができます

    Game Centerの中心となるのは プレーヤーです

    プレーヤーは独自の情報を持つ オブジェクトで表されます オブジェクトは GKPlayerで管理されています

    GKPlayerはエイリアスプロパティが 提供するニックネームを持ちます

    また プレーヤーは アバター画像を選ぶこともできます

    さらに各ユーザは 全ゲームに共通する― 独自の静的IDを保持します

    これでプレーヤー情報が分かります

    これから静的IDの 現状の機能を説明します

    すでに知ってる方も こちらの例で 思い出してみましょう

    AとBの2チームがいます ここでの“チーム”は App Storeにゲームを配信する― 開発チームを意味します 今回プレイしたのは Aのゲーム2つとBのゲーム1つです ご覧のとおり 僕の静的IDはP123です 僕のIDは各ゲームで P123と表示されます つまり どのゲームをプレイしても IDは一緒です さて 今回はプライバシー保護の 強化のために― チーム用とゲーム用の 2種類のIDを導入しました

    まずはteamPlayerIDから 始めましょう 先程と同様 “チーム”は ゲームを配信する開発チームを指します チームAとBが配信するゲームは 先ほどと同じものです

    今回 僕は2つのIDを持っています チームAのゲームはいずれも teamPlayerIDがT11です チームBのゲームをする時の IDはT22になります

    つまりteamPlayerIDは チームごとに設定されています

    チームAは僕のT11のIDを チームBは僕のT22のIDだけを知るため プレーヤーのプライバシーが守られます

    以上がteamPlayerIDです 次はgamePlayerIDについて 説明しましょう

    このIDはプレーヤー別に 各ゲームに付与されます つまり僕のプレーヤーIDは ゲームごとに異なります

    gamePlayerIDは 開発チームとは無関係です

    もう一度チームAとBに 戻りましょう ご覧のとおり gamePlayerIDは 配信するチームに関係なく 各ゲームに設定されています

    gamePlayerIDがどのように チームから独立しているか― 別チームへゲームを移すと 仮定して考えてみましょう

    仮にゲーム2を チームAからBへ移した場合― 僕のIDがどうなるか お見せします

    例えばチームAが ゲーム2の所有権をBに譲渡します ところがゲーム2の gamePlayerIDは変わりません

    IDは保持され チームからは独立しています

    ではteamPlayerIDは どうなったでしょう?

    ゲーム2は チームBからの配信になったので チームBのIDに変わりました

    ここまで Game Centerに 新しく導入されたIDと― ゲームの所有権が移ると IDにどう影響するかを話しました

    次の話は 開発したゲームで どのようにIDを使うかです

    さて 今回追加されたのは teamPlayerIDと gamePlayerIDでしたね

    これらのIDはプレーヤーの プライバシー保護の改善が目的で― Appleの保護義務に基づくものです

    僕の静的ID P123は 2種類の新しいIDに差し替えられました

    静的IDは今後廃止されるので 今後は新しいIDを使用してください

    先程言ったとおり 新しいIDは 既存のIDの代わりとなります プレーヤー情報を知る必要がなければ 変更は不要です

    もし その情報が必要なら 新しいIDに切り替えましょう

    大抵の場合 使うのは teamPlayerIDです

    ゲームデータの保存にも teamPlayerIDへの切り替えを勧めます 複数のプレーヤーがデバイスを 共有する状況にも対処できます

    バックエンドシステムで 既存のIDを使う方も― 新しいIDに更新してください

    認証が成功すれば更新されます

    次にスコープIDがローカルプレイヤーを 認証する方法を説明します

    デバイス上のプレーヤー認証は GKLocalPlayerが管理しています 認証されるのは 常に1名のみです

    また GKLocalPlayerは 永続的な2種類のIDを持ちます

    ではGKPlayerは? GKPlayerは 他のプレーヤー情報を提供します これらはLeaderboardの プレイリストに記録された― ローカルプレイヤー以外の情報です

    GKPlayerのIDはコンテキストに 基づくインスタンスです IDはLeaderboardの 各インスタンスを対象とするため― 連続するマッチで 継続して使えません

    ではGKPlayerオブジェクトを ロードしてみましょう loadPlayersForIdentifiers: withCompletionHandlerを実行します

    使用するのはteamPlayerIDか gamePlayerIDです

    しかし まれにスコープIDを 使用できない場合があります その場合はどうするべきでしょう?

    通常はゲームを開始すると― 認証後にローカルプレイヤーの IDを取得できます

    それでも取得できない可能性が わずかにあります そこでGKPlayerに 新しいAPIを追加しました scopedIDsArePersistentを 実行します

    スコープIDが取得不可であれば falseが出ます

    そのためIDの使用前に プロパティの確認が必要です

    認証後にスコープIDを使うと仮定して 情報を整理してみましょう

    まずauthenticateHandlerで viewControllerが返されるか確認し 返されている場合は表示させます

    返されずに ローカルプレイヤーが認証されたら― スコープIDが永続的な値か 確認してから使用してください

    現在もバックエンドシステムで 静的IDを使用している場合は― 新しいスコープIDに 切り替えましょう

    本日の内容をまとめます Game Centerは 新しいIDを導入しました

    teamPlayerIDは 各チームに設定されます

    一方 gamePlayerIDは 各ゲームに設定されるので 別チームに所有権が移っても IDは同じです

    新しいIDは既存のIDと同様に Game Center API内で使えます

    ぜひ今日から 利用してみてください

    詳細はリンク先から確認できます

    ありがとうございました

Developer Footer

  • ビデオ
  • WWDC19
  • Game Centerのプレイヤー識別子
  • メニューを開く メニューを閉じる
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    メニューを開く メニューを閉じる
    • アクセシビリティ
    • アクセサリ
    • App Extension
    • App Store
    • オーディオとビデオ(英語)
    • 拡張現実
    • デザイン
    • 配信
    • 教育
    • フォント(英語)
    • ゲーム
    • ヘルスケアとフィットネス
    • アプリ内課金
    • ローカリゼーション
    • マップと位置情報
    • 機械学習
    • オープンソース(英語)
    • セキュリティ
    • SafariとWeb(英語)
    メニューを開く メニューを閉じる
    • 英語ドキュメント(完全版)
    • 日本語ドキュメント(一部トピック)
    • チュートリアル
    • ダウンロード(英語)
    • フォーラム(英語)
    • ビデオ
    Open Menu Close Menu
    • サポートドキュメント
    • お問い合わせ
    • バグ報告
    • システム状況(英語)
    メニューを開く メニューを閉じる
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles(英語)
    • フィードバックアシスタント
    メニューを開く メニューを閉じる
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program(英語)
    • News Partner Program(英語)
    • Video Partner Program(英語)
    • セキュリティ報奨金プログラム(英語)
    • Security Research Device Program(英語)
    Open Menu Close Menu
    • Appleに相談
    • Apple Developer Center
    • App Store Awards(英語)
    • Apple Design Awards
    • Apple Developer Academy(英語)
    • WWDC
    Apple Developerアプリを入手する
    Copyright © 2025 Apple Inc. All rights reserved.
    利用規約 プライバシーポリシー 契約とガイドライン