はじめに
ゲームはそれぞれ異なりますが、多くのゲームが認定中に課題に直面する主要な領域がいくつかあります。このページでは、これらの主要な領域のいくつかを取り上げ、認定中にそれらを回避するためのヒントと戦略を紹介します。 テスト対象となるすべての XBOX Requirement (XR) テスト ケースを確認するには、認定テスト ケースのページを参照してください。失敗の多いテスト ケース
次の表は、各テスト ケースの認定失敗の分布を、XBOX 本体と PC の申請に分けて示しています。N/A は、そのテスト ケースがそのデバイスの種類で失敗の多いテスト ケースに含まれないことを示します。
PC では、Microsoft Store ポリシー 10.4.2 (アプリのクラッシュまたはフリーズ) に対して記録された失敗は 001-01 タイトルの安定性として報告され、Microsoft Store ポリシー 10.1 (他のプラットフォーム) に対して記録された失敗は 022-01 公式の命名基準として報告されます。
ガイダンスとベスト プラクティス
001-01 タイトルの安定性
タイトルはテスト全体を通じて安定している必要があり、タイトルのテストを妨げる問題があってはなりません。 ガイダンスサポートされているすべてのデバイスの種類、ハードウェア構成、および本体の世代でタイトルをテストしてください。安定性の問題の大部分は、次の例で見つかっています。
- タイトルの起動時のクラッシュ、ハング、または長いロード画面。想定されるタイミングについては、テスト ケースの 失敗の例 を確認してください。
- ゲーム招待の送受信、マッチメイキング、参加シナリオなどのマルチプレイヤー アクティビティ中のクラッシュ。
- 通常のゲームプレイ中のクラッシュ。
- 中断、スリープ、休止状態、および再開のシナリオをテストする際のクラッシュまたはハング。
- ユーザー入力を受け付けるすべての画面でユーザー入力をテストする際のクラッシュまたはハング。
- すべてのゲーム メニューにすばやく出入りする際のクラッシュまたはハング。
PC では、このテスト ケースは、Microsoft Store ポリシー 10.4.2 (アプリのクラッシュまたはフリーズ) に対して記録された失敗も対象とします。最新のグラフィックス ドライバーを使用して、さまざまなハードウェアとビデオ カードの構成でテストしてください。タイトルは、最も一般的な 5 つの解像度 (1366 x 768、1440 x 900、1080P、1440P、および 4K) で、該当する場合はウィンドウ モードと全画面モードの両方で、さまざまな AMD、Intel、および Nvidia の GPU を使用してテストされます。
- ストアからタイトルをインストールしてください。テスト チームは、開発者サンドボックスでタイトルをサイドロードした場合には見られない問題を、ストアからタイトルをインストールした後に確認しています。
- 複数の解像度 (ウィンドウ モードと全画面) でテストしてください。
- すべての画面でランダムな入力をテストしてください。
- ゲーム メニューにすばやく出入りしてください。
003-02 タイトルの完全性
タイトルは、認定に提出される時点で、機能的に完成しており、テスト可能で、XBOX の品質基準を満たしている必要があります。 提出物には、すべてのクライアント コード、提出成果物、およびダウンロード コンテンツを含める必要があります。パートナー サービスは、テストと認定のために利用可能であり、適切に構成されている必要があります。タイトルは、Microsoft に提出する際に、最新バージョンの Submission Validator を使用して失敗なく正常にパッケージ化される必要があり、提出物には Submission Validator のログを含める必要があります。 認定中にテスト ケース 003-02 に失敗する最も一般的な理由は、認定チームがテスト パスを実行できない、またはすべてのゲーム モードを完了できない原因となるゲームの問題です。 一般的な問題- ゲーム モードを完了できず、タイトルを進行できない。
- リーダーボードにデータが反映されない。
- コントローラー、キーボードなどのさまざまな入力モードの使用が機能しない。
- プレイヤーがタイトルを進行できない状態に陥る (武器をリロードできない、キャラクターが動けなくなる、またはゲーム環境の外に落下するなど)。
- ゲームが機能的に完成しており、テスト可能であることを確認してください。
- ゲームに重大なバグやゲームの進行を妨げるバグがないこと。
045-01 ユーザー特権の尊重
タイトルは、すべてのユーザーの特権設定を尊重し、競合がある場合はシステムの解決 UI を表示する必要があります。 技術的なガイダンスとベスト プラクティスの詳細については、XBOX services のユーザー特権のクライアント側での使用 のドキュメントを参照してください。 一般的な問題- タイトルが、子どもアカウントと大人アカウントの両方でユーザーの特権を尊重していない。
- タイトルが、システムの解決 UI を表示するために必要な API を使用していない。
You can join multiplayer games特権がBlockに設定されているときに、タイトルがユーザーにマルチプレイヤー ゲーム セッションへの参加またはゲーム招待の承諾を許可している。You can join multiplayer games特権がBlockに設定されているときに、タイトルはユーザーにマルチプレイヤー ゲーム セッションへの参加またはゲーム招待の承諾を許可していないが、システムの解決 UI を表示していない。
- XBOX では、[設定] -> [全般] -> [オンライン安全性とファミリー] -> [プライバシーとオンライン安全性] -> [XBOX プライバシー] に移動します。
- PC では、https://aka.ms/XboxPrivSettings にアクセスして特権とプライバシーの設定を管理します。
- 子どもアカウントと大人アカウントの両方で、XR-045 のすべての特権を確認します。
- 子どもアカウントは、保護者または後見人によって管理されます。保護者は、[設定] > [アカウント] > [ファミリー設定] > [ファミリー メンバーの管理] で子どもアカウントの特権設定をカスタマイズできます。
[!Note]XUserCheckPrivilegeは、ユーザーが特定の特権を持っているかどうかを判断します。XUserResolvePrivilegeWithUiAsyncは、ユーザー特権に必要なシステムの解決 UI を表示します。これにより、ユーザーが特権を持っていない場合に、説明またはアップセルのための必要な UI が表示されます。
064-02 同じゲームからのゲーム セッションへの参加
このテスト ケースの目的は、同じゲームからのマルチプレイヤーへの参加可能性を検証することです。ユーザーが同じゲームからマルチプレイヤー ゲーム エクスペリエンスに参加するか、その招待を承諾した場合、ユーザーはそのマルチプレイヤー エクスペリエンスに参加させられる必要があります。 一般的な問題- 同じゲームからマルチプレイヤー エクスペリエンスに参加するか、その招待を承諾しても、ユーザーがそのエクスペリエンスに参加させられない。
- 同じゲームからパスワードで保護されたマルチプレイヤー エクスペリエンスに参加するか、その招待を承諾しても、ユーザーがそのエクスペリエンスに参加させられない。
055-01 実績
最も一般的な失敗は、条件が満たされたときにタイトルが実績のロックを解除できないことです。認定に提出する前に、条件が満たされたときにすべての実績のロックが解除されることを確認してください。064-03 ゲーム内招待
このテスト ケースは、ゲーム内招待のメカニズムを提供するタイトルにのみ適用されます。ゲーム内招待は必須ではなく推奨です。タイトルがゲーム内招待を提供する場合、そのメカニズムは XBOX プラットフォームを通じて招待をルーティングし、受信者が XBOX シェルの通知を通じて招待を受け取り、セッションに参加できるようにする必要があります。これには、クロス ネットワークのプレイヤーが存在する参加可能なセッションや、パスワードで保護された参加可能なセッションが含まれます。 GDK を使用して参加可能性をアドバタイズし、アクティビティを記録する方法については、マルチプレイヤー アクティビティ (MPA) の概要 を参照してください。 一般的な問題- ゲーム内招待を提供するタイトルが招待を XBOX プラットフォーム経由でルーティングしていないため、受信者が XBOX シェルを通じて招待を受け取れない。
- タイトルはパスワードで保護された参加可能なマルチプレイヤー エクスペリエンスをサポートしているが、プレイヤーがゲーム内からそれらのエクスペリエンスへのゲーム招待を送信することを許可していない。
タイトルがゲーム内招待のメカニズムを提供する場合は、パスワードで保護されたエクスペリエンスを含むすべての参加可能なマルチプレイヤー エクスペリエンスが XBOX プラットフォームを通じて招待をルーティングし、受信者が XBOX シェルを通じて招待を受け取れることを確認してください。
015-01 ユーザー コミュニケーション
タイトルは、プライバシーおよびオンラインの安全性に関連する操作についてのユーザーのアクセス許可を XBOX サービスで確認する必要があり、ユーザーのプライバシーとオンライン安全性の設定で許可されていない場合は、ユーザー データを送信したり、XBOX を介したコミュニケーションを許可したりしてはなりません。- 本体では、[設定] -> [全般] -> [オンライン安全性とファミリー] -> [プライバシーとオンライン安全性] -> [XBOX プライバシー] に移動します。
- PC では、XBOX のプライバシー設定でプライバシー設定を管理できます。
- ユーザーが別のユーザーをブロックしたときに、タイトルがブロックされたユーザーからのすべてのコミュニケーションをブロックしていない。
- ‘Others can communicate with voice, text or invites’ がブロックに設定されているときに、ユーザーが XBOX を介して音声とテキストでコミュニケーションできる。
- ‘Others can communicate with voice, text or invites’ がブロックに設定されているときに、ユーザーが XBOX 以外で音声とテキストでコミュニケーションできる。
- ‘Others can communicate with voice, text or invites’ がブロックに設定されているときに、タイトルがユーザーにマルチプレイヤー ゲーム招待の受信を許可している。
052-06 クラウド ストレージ: ローミング
ユーザーが XBOX サービスにサインインしている場合、ゲームのセーブ進行状況は同種のデバイス間でローミングする必要があります。デバイス間または本体の世代間で同じ TitleID を使用するゲームの場合、セーブ データはそれらのデバイス間でローミングする必要があります。サポートされている場合、ゲームのセーブ データは PC と本体の間で正常にローミングする必要があります。 一般的な問題- 同じ種類または世代の 2 台目のデバイス (XBOX Series S と XBOX Series X、XBOX One と XBOX One S、または 2 台の異なる PC など) で、ゲームのセーブを正常にダウンロードできない。
- 本体の世代間で同じ TitleID を共有するゲーム (XBOX One と XBOX Series X|S など) で、これらのデバイス間でゲームのセーブをローミングできない。
- 初回起動時にクラウド内のセーブがタイトルによって認識されず、ユーザーの操作なしに、その後 2 台目のデバイスで上書きされる。
- サポートされている場合に、ゲームのセーブ データが PC と本体の間で正常にローミングしない。
052-05 ユーザーとの正しい関連付け
タイトルは、進行状況、保存された状態、設定、実績、およびその他の報酬を、その進行状況を記録した、その設定を選択した、またはその報酬を獲得したユーザーに関連付ける必要があります。タイトルは、サインインしていないユーザーの状態を保存しないようにする必要があります。この要件の重要な側面は、タイトルがアクティブ、中断、または終了している間にタイトルのプライマリ ユーザーが変更される状況の処理に関係しています。- GDK を使用してゲームの状態を保存する方法については、ゲーム セーブの概要 を参照してください。
- GDK を使用してゲームの状態を管理し、データを保存する方法については、XBOX ゲームのライフ サイクル を参照してください。
- タイトルがセーブ データを XBOX プロフィールに正しく関連付けていない。
- ユーザーの変更後に、タイトルがユーザーの進行状況、保存された状態、設定、実績、またはその他の報酬をユーザーに誤って関連付ける。
- ユーザーの変更後に、新しいユーザーのセーブ進行状況が保存されない。
- 以前のユーザーがサインアウトした後に、新しいユーザーがそのユーザーのセーブ データ、状態、またはプロフィールを変更できる。
022-01 公式の命名基準
最も一般的な失敗は、タイトルがテキストや画像で競合プラットフォームに言及している場合です。すべてのテキストと画像が 用語リスト に準拠し、競合プラットフォームに言及していない (競合他社のコントローラーの画像やボタンの表示など) ことを確認してください。001-02 中断、スリープ、休止状態後のタイトルの安定性
タイトルは、中断、スリープ、休止状態、および再開されたときに安定している必要があります。 一般的な問題- タイトルが中断、スリープ、休止状態、または再開されたときのクラッシュまたはハング。
- タイトルが中断されている間にユーザーを変更したときのクラッシュまたはハング。
- メニューの操作中にタイトルを中断したときのクラッシュまたはハング。
- オンライン マッチのプレイ中にタイトルを中断したときのクラッシュまたはハング。
すべてのメニュー、ゲーム モード、およびゲームプレイのシナリオ (オンラインとオフライン) で、タイトルを中断、スリープ、休止状態にし、再開してください。タイトルが中断されている間にユーザーの変更を実行してください。
064-01 ゲーム外からのゲーム セッションへの参加
このテスト ケースは、ゲーム外からの参加可能性を検証します。ユーザーがゲーム外からマルチプレイヤー エクスペリエンスに参加するか、その招待を承諾した場合、ユーザーはそのマルチプレイヤー エクスペリエンスに参加させられる必要があります。タイトルが終了している間と中断されている間に、マルチプレイヤー エクスペリエンスへの参加を必ず検証してください。 一般的な問題- ゲーム外からマルチプレイヤー エクスペリエンスに参加するか、その招待を承諾しても、ユーザーがそのエクスペリエンスに参加させられない。
- ゲーム外からパスワードで保護されたマルチプレイヤー エクスペリエンスに参加するか、その招待を承諾しても、ユーザーがそのエクスペリエンスに参加させられない。
- タイトルが終了または中断されている間にマルチプレイヤー エクスペリエンスに参加しても、ユーザーがそのマルチプレイヤー エクスペリエンスに参加させられない。
018-01 不適切なコンテンツの報告と UGC テキスト文字列の検証
ユーザー生成コンテンツ (UGC) は、ユーザーがアプリや製品に提供するコンテンツであり、オンライン状態で他のユーザーが表示またはアクセスできるものです。製品に UGC が含まれている場合は、次のことを行う必要があります。- ユーザー生成コンテンツに関する製品の利用規約やコンテンツ ガイドラインを、ゲーム内またはタイトルの Web サイトで公開し、ユーザーが利用できるようにする。
- コンテンツ ガイドラインに違反している場合のレビューおよび削除/無効化のために、製品内の不適切または有害なコンテンツを開発者に報告する手段をユーザーに提供するか、不適切または有害な UGC を事前に検出する方法 (テキスト フィルタリングなど) を実装する。
- タイトルは、Microsoft から要求された場合に UGC を削除/無効化する必要がある。
- ユーザーがゲーム内で UGC にアクセスできないシナリオを適切に処理する。
- サードパーティの MOD プラットフォームと統合されたタイトルは、利用可能な場合は製品の報告/苦情 API と統合する必要があり、それぞれのサードパーティ契約で要求されている場合はコンテンツをモデレートする必要がある。
- サードパーティの MOD プラットフォームと統合されたタイトルは、コンテンツが開発者から提供されたものでない場合、免責事項、ダイアログ、または視覚的な手がかりをユーザーに提示する必要がある。
StringService API を使用するタイトルは、(テキストのシナリオについて) 事前検出の要件を自動的に満たします。タイトルは、名前やその他の短い静的テキスト文字列には、既定で StringService API を使用する必要があります。タイトルに、より長いテキスト入力が可能なその他のテキストのシナリオがある場合、または技術的もしくはその他の制約がある場合、タイトルは、XBOX サービス上で特定の用語のセットが他のプレイヤーに表示されないように制限することで、独自のテキスト フィルタリングを実装することを選択できます。XBOX サービス上のローカル以外のプレイヤーに対するブロックまたは難読化の最低限の基準として使用する必要がある コア ワードの一覧 を参照してください。
一般的な問題
- タイトルが有害または不適切なテキストを事前に検出していない。
067-01 最近一緒にプレイしたユーザーとのやり取り
オンライン マルチプレイヤー機能を備えたタイトルは、プラットフォームが「最近一緒にプレイしたユーザー」リストを表示できるように、マルチプレイヤー アクティビティ (MPA) の Recent Players 機能を使用して、XBOX ネットワーク上での意味のあるプレイヤーのやり取りを記録する必要があります。従来の Multiplayer Session Directory (MPSD) をまだ使用しているタイトルの場合は、代わりにセッション状態の情報を MPSD で維持することができます。両方を維持すると重複したレコードが作成される可能性があるため、両方を使用しないでください。 一般的な問題- すべてのプロフィールがデバイスの「最近一緒にプレイしたユーザー」リストに含まれていない。
- マルチプレイヤーのゲームプレイ中に退出したユーザーが「最近一緒にプレイしたユーザー」リストに表示されない。
