(57)【特許請求の範囲】
【請求項１】
プロセッサーが、ゲーム・コンテンツを先読みする方法であって、
先読みゲーム・アセットをエッジ・コンピューティング・インフラストラクチャに先読みするために、分散型ネットワーク・インフラストラクチャにおいてゲーム・サーバーから先読み命令を受け取るステップであって、前記先読みゲーム・アセットが、ゲーム・ストリーミング・セッション内における先読みゲーム・アセットとして分類され、前記先読みゲーム・アセットは、あらかじめ定められたインタラクティブ性のレベルを前記ゲーム・ストリーミング・セッション内の他のゲーム・コンテンツの一部との間に有するゲーム・コンテンツの一部であって、それによって、前記あらかじめ定められたインタラクティブ性のレベルに基づいて前記先読みゲーム・アセットは先読みされるものとして選択され、前記ゲーム・コンテンツの先読みゲーム・アセットに適用されるゲーム・ストリーミング制約の閾値は、前記先読みゲーム・アセットのあらかじめ定められたインタラクティブ性のレベルに基づくものであって、前記ゲーム・ストリーミング制約は、ゲーム・コンテンツのストリーミングに適用される制約である、ステップと、
前記ゲーム・サーバーに関連する主ストレージから前記先読みゲーム・アセットを前記エッジ・コンピューティング・インフラストラクチャに関連する補助ストレージに先読みするステップであって、前記先読みゲーム・アセットが、前記先読みゲーム・アセットが使用される予想ゲーム・コンテキストに先立って、前記ゲーム・サーバーによって処理され、前記予想ゲーム・コンテキストは複数のゲーム・コンテキストの一つであって、それぞれの予想ゲーム・コンテキストは、ユーザーに一意のインタラクションによって前記ゲーム・ストリーミング・セッションの間にトリガーされるゲーム・プレーの一部である、ステップと、
前記予想ゲーム・コンテキストの出現時に、前記エッジ・コンピューティング・インフラストラクチャから、前記先読みゲーム・アセットを出力のために供給するステップであって、前記先読みゲーム・アセットを前記エッジ・コンピューティング・インフラストラクチャに関連する補助ストレージからダウンロードし、前記ゲーム・サーバーに関連する主ストレージからのストリーム・ゲーム・アセットと結合させるステップと、
を含む、方法。
【請求項２】
請求項１に記載の方法において、前記先読みゲーム・アセットが、ゲーム開発フェーズ中において、先読みアセットとして分類され、前記先読み命令が、複数の先読みゲーム・アセットを、前記予想ゲーム・コンテキストに関連するパッケージとして識別し、前記命令が前記ゲーム開発フェーズ中に定められる、方法。
【請求項３】
請求項１又は２に記載の方法において、前記先読みゲーム・アセットの先読みが、
前記予想ゲーム・コンテキストをトリガーする１つ以上のインタラクティブ・アクションを参照すること、および
前記１つ以上のインタラクティブ・アクションに基づいて、前記先読みゲーム・アセットを先読みすると決定すること、
に基づく、方法。
【請求項４】
請求項１又は２に記載の方法において、前記先読みゲーム・アセットの先読みが、
前記分散型ネットワーク・インフラストラクチャの１つ以上のストリーミング・セッション・パラメーターを参照すること、および
前記１つ以上のゲーム・ストリーミング・セッション・パラメーターの閾値を満たすことに基づいて、前記先読みゲーム・アセットを先読みすると決定すること、
に基づく、方法。
【請求項５】
プロセッサーが、ゲーム・コンテンツを先読みする方法であって、
分散型ネットワーク・インフラストラクチャにおいてゲーム・プラットフォームに先読み命令を送信するステップであって、前記先読み命令が、前記ゲーム・プラットフォームに、先読みゲーム・アセットをエッジ・コンピューティング・インフラストラクチャに先読みすることを命令し、前記先読みゲーム・アセットが、ゲーム・ストリーミング・セッション内における先読みアセットとして分類され、前記先読みゲーム・アセットは、あらかじめ定められたインタラクティブ性のレベルを前記ゲーム・ストリーミング・セッション内の他のゲーム・コンテンツの一部との間に有するゲーム・コンテンツの一部であって、それによって、前記あらかじめ定められたインタラクティブ性のレベルに基づいて前記先読みゲーム・アセットは先読みされるものとして選択され、前記ゲーム・コンテンツの先読みゲーム・アセットに適用されるゲーム・ストリーミング制約の閾値は、前記先読みゲーム・アセットのあらかじめ定められたインタラクティブ性のレベルに基づくものであって、前記ゲーム・ストリーミング制約は、ゲーム・コンテンツのストリーミングに適用される制約である、ステップと、
前記ゲーム・プラットフォームから先読み要求を受けるステップであって、前記先読み要求が、少なくとも１つのゲーム・ストリーミング・セッション・パラメーターを参照することに基づいて生成される、ステップと、
画像をレンダリングするか、オーディオを用意するかの少なくともいずれかを含む、前記先読みゲーム・アセットを処理するステップと、
前記先読みゲーム・アセットを前記エッジ・コンピューティング・インフラストラクチャに送信するステップであって、前記先読みゲーム・アセットの送信が主ストレージから処理された先読みゲーム・アセットを前記エッジ・コンピューティング・インフラストラクチャに関連する補助ストレージにストリーミングすることを含み、それによって、予想ゲーム・コンテキストの発生に伴って処理された先読みゲーム・アセットが前記エッジ・コンピューティング・インフラストラクチャからダウンロードされ、前記予想ゲーム・コンテキストは複数のゲーム・コンテキストの一つであって、それぞれの予想ゲーム・コンテキストは、ユーザーに一意のインタラクションによって前記ゲーム・ストリーミング・セッションの間にトリガーされるゲーム・プレーの一部である、ステップと、
を含む、方法。
【請求項６】
請求項５に記載の方法において、前記先読み命令が、更に、ストリーム・ゲーム・アセットと関連付けられ、前記ストリーム・ゲーム・アセットが、前記ゲーム・ストリーミング・セッション内におけるストリーム・ゲーム・アセットとして分類される、方法。
【請求項７】
請求項５又は６に記載の方法において、前記先読みゲーム・アセットのストリーミングが、少なくとも現在のゲーム・コンテキストに関連するストリーム・ゲーム・アセットのストリーミングと同時に行われる、方法。
【請求項８】
請求項１〜７のいずれか一項に記載の方法を実行するためのプログラム。
【請求項９】
請求項１〜７のいずれか一項に記載の方法を実行するためのプログラムを記録した記録媒体。
【請求項１０】
プロセッサと、前記プロセッサで実行されたときに、請求項１〜７のいずれか一項に記載の方法を実行するプログラムを記録したメモリを有する、装置。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  ストリーミング・メディア・コンテンツとは、一般に、コンテンツ配信ネットワークによって供給されつつ、エンド・ユーザーによって常時受信され提示されるメディア・コンテンツを指す。コンテンツ配信ネットワークとは、一般に、インタラクティブおよび非インタラクティブなメディア・コンテンツのメディア・ストリーミングをサポートするために、インターネット全域にわたって複数のデーター・センター内にデプロイされたサーバーの大規模分散型システムを指す。インタラクティブ・コンテンツは、ゲーム・サーバー上で実行されゲーム・プラットフォームに送られるビデオ・ゲームを含む（例えば、セット・トップ・ボックス、ハンドヘルド・デバイス、テレビジョンに埋め込まれたコンピューティング・デバイス、ビデオ・ゲーム・コンソール）。非インタラクティブ・コンテンツは、ビデオ（例えば、ムービーおよびテレビジョン・ショー）およびオーディオ（例えば、音楽）を含む。実際には、コンテンツ配信ネットワーク・プロバイダーは、彼らのインタラクティブおよび非インタラクティブ・メディア・コンテンツをエンド・ユーザーに配信することに対して、メディア会社のようなコンテンツ・プロバイダーによる支払いを受けることができる。ストリーミング・コンテンツをサポートするアーキテクチャおよび技法は、インタラクティブおよび非インタラクティブ・メディア・コンテンツ毎に異なる機能を行うことができる。非インタラクティブ・メディア・コンテンツは、特定のユーザーだけに唯一なのではなく、したがって、メディア・コンテンツがエンド・ユーザーによって要求されたときに、コンテンツ・プロバイダーのネットワークから直接送られる必要がないように、メディア・コンテンツはデーター・センター・サーバー（例えば、エッジ・サーバー）によってストリーミングおよびホストされることもある。例えば、ユーザーが非インタラクティブ・コンテンツを求める要求を行うと、その非インタラクティブ・コンテンツはユーザーに対してローカルな複数のエッジ・サーバー上に存在する可能性があり、ユーザーの要求は、そのコンテンツをローカルに有する最適化サーバーに導かれる。このため、非インタラクティブ・コンテンツは、サービス品質を向上させ、インフラストラクチャ・コストを低減することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
[0002]  対照的に、インタラクティブ・メディア・コンテンツの個別性(individualized nature)のために、インタラクティブ・メディア・コンテンツを有するコンテンツ・プロバイダーは、非インタラクティブ・メディアを有するコンテンツ・プロバイダーが行うような、エッジ・サーバーを利用することができない。例えば、中央ゲーミング・サーバーは、ゲーム・プレーをレンダリングして実行し、次いで、ユーザーに一意のゲーム・ストリーミング・セッションにおいて、このユーザーからインタラクティブ・フィードバックを受けなければならない。このため、ゲーム・ストリーミングは、ストリーミング・ゲームを提供することに伴うインフラストラクチャ・コスト、帯域幅要件、およびレイテンシーを考慮しなければならない。従来のゲーム設計ならびにゲーム・ストリーミング方法およびシステムは、インタラクティブ・コンテンツをストリーミングするときの欠点に取り組む方法を提供することができない。
【課題を解決するための手段】
【０００３】
[0003]  この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断するときに単独で補助として使用されることを意図するのでもない。
【０００４】
本発明の実施形態は、ゲーム・コンテンツのインテリジェントなストリーミングを可能にする。ゲーム・コンテンツのインテリジェントなストリーミングは、ゲーム・コンテンツの識別されたインタラクティブ性レベルに基づく、ストリーミング・ゲーム・コンテンツの変形(variations)および組み合わせを含むことができる。ゲーム・コンテンツのインタラクティブ性のレベルは、ゲーム開発者に基づく分類、プレー−検査に基づく分類、または機械学習に基づく分類のような、様々な異なる技法を使用して、ゲーム・コンテンツのインタラクティブ性の分類に基づいて決定することができる。インタラクティブ性のレベルは、個々のゲーム・コンテキスト、またはゲーム・コンテンツの特定のゲーム・アセット(game asset)のような、ゲーム・コンテンツの異なるコンポーネント毎に定めることができる。ゲームのコンポーネントのインタラクティブ性のレベルに少なくとも部分的に基づいてゲーム・コンテンツをストリーミングするにより、ストリーミング技法を使用して、特定のインタラクティブ性のレベルを有するゲーム・コンテンツに別々にストリーミング技法を適用することが可能になる。具体的には、ゲーム・コンテンツのコンテキストに対して、低いインタラクティブ性のレベルが識別されたことに基づいて、インタラクティブ性が高いコンテンツに伴うゲーム・ストリーミングの制約を軽減することができる。
【０００５】
一実施形態では、ある既定レベルのインタラクティブ性が識別されたゲーム・コンテンツは、ゲーム・ストリーミングを改良するために、先読みすることができる。コンテンツ配信ネットワーク・プロバイダーは、先読みしたコンテンツのストリーミングを容易にすることができる。具体的には、ゲーム・アセットを先読みゲーム・アセットまたはストリーム・ゲーム・アセットとして分類することに基づいて、先読み命令を発生させる(develop)ようにビデオ・ゲームを設計することができる。先読み命令は、ゲーム・サーバーからゲーム・プラットフォームに伝達され、先読みゲーム・アセットが使用される、予想ゲーム・コンテキストに先立って、この先読みゲーム・アセットをエッジ・コンピューティング・インフラストラクチャに先読みすることを、ゲーム・プラットフォームに命令する。先読みゲーム・アセットは、ゲーム・サーバーからエッジ・コンピューティング・インフラストラクチャに先読みされる。予想ゲーム・コンテキストの出現時に、ストリーミング・ゲーム・アセットがゲーム・サーバーからストリーミングされつつ、先読みゲーム・アセットがエッジ・コンピューティング・インフラストラクチャからダウンロードされ、双方が組み合わせられて、ゲーム・プラットフォームにおける出力のために提供される。
【図面の簡単な説明】
【０００６】
[0004]  添付図面を参照しながら、本発明について以下に詳細に説明する。
【図１】図１は、本発明の実施形態を実現するときの使用に適した例証的なコンピューティング環境のブロック図である。
【図２Ａ】図２Ａは、本発明の実施形態を採用することができる例証的なネットワーク環境のブロック図である。
【図２Ｂ】図２Ｂは、本発明の実施形態を採用することができる例証的なネットワーク環境のブロック図である。
【図３】図３は、本発明の実施形態によるゲーム・コンテンツのインテリジェント・ストリーミング方法を示す模式図である。
【図４】図４は、本発明の実施形態によるゲーム・コンテンツのインテリジェント・ストリーミング方法を示す模式図である。
【図５】図５は、本発明の実施形態によるゲーム・コンテンツのインテリジェント・ストリーミング方法を示す流れ図である。
【図６】図６は、本発明の実施形態によるゲーム・コンテンツのインテリジェント・ストリーミング方法を示す流れ図である。
【図７】図７は、本発明の実施形態によるゲーム・コンテンツのインテリジェント・ストリーミング方法を示す流れ図である。
【図８】図８は、本発明の実施形態にしたがってゲーム・コンテンツを先読みする方法を示す流れ図である。
【発明を実施するための形態】
【０００７】
[0013]  本明細書では、本発明の実施形態の主題について、法的要件を満たすために具体性を持って説明する。しかしながら、説明自体は、本特許の範囲を限定することは意図していない。むしろ、本発明者は、特許請求する主題は、本文書において記載するステップとは異なるステップまたは同様のステップの組み合わせを含むように、他の現在の技術または今後の技術と関連付けて、別の方法で具体化してもよいことを想定している。更に、「ステップ」および／または「ブロック」という用語は、本明細書においては、採用される方法の異なるエレメントを言外に意味するために使用することもできるが、個々のステップの順序が明示的に記載されているのではなければ、そして記載されている場合を除いて(unless and except)、この用語は、本明細書において開示される種々のステップ間において、いかなる特定の順序をも暗示するように解釈してはならない。
【０００８】
[0014]  本開示に限って言えば、「含む」(including)という単語は、「備える」(comprising)と同じ広い意味を有する。加えて、「ａ」および「ａｎ」のような単語は、逆のことが別段示されなければ、単数だけでなく複数も含む。つまり、例えば、「特徴」(a feature)の要件は、１つ以上の特徴がある場合に満たされる。また、「または」(or)という用語は、接続語、離接語、および双方を含む（つまり、ａまたはｂは、ａまたはｂのいずれか、ならびにａおよびｂも含む）。
【０００９】
[0015]  ストリーミング・メディア・コンテンツとは、一般に、コンテンツ配信ネットワークによって供給されつつ、エンド・ユーザーによって常時受信され提示されるメディア・コンテンツを指す。コンテンツ配信ネットワークとは、一般に、メディア・ストリーミングをサポートするために、インターネット全域にわたって複数のデーター・センター内にデプロイされたサーバーの大規模分散型システムを指す。コンテンツ配信ネットワーク・プロバイダーは、インタラクティブおよび非インタラクティブ・メディア・コンテンツのストリーミングを容易にすることができる。インタラクティブ・コンテンツは、ビデオ・ゲーム、具体的には、ゲーム・サーバー上でレンダリングおよび実行されゲーム・プラットフォーム（例えば、セット・トップ・ボックス、ハンドヘルド・デバイス、テレビジョンに埋め込まれたコンピューティング・デバイス、ビデオ・ゲーム・コンソール）に送られるビデオ・ゲームを含むことができる。非インタラクティブ・コンテンツは、ビデオ（例えば、ムービーおよびテレビジョン・ショー）およびオーディオ（例えば、音楽）を含むことができる。実際には、コンテンツ配信ネットワーク・プロバイダーは、彼らのインタラクティブおよび非インタラクティブ・メディア・コンテンツをエンド・ユーザーに配信することに対して、メディア会社のようなコンテンツ・プロバイダーによる支払いを受けることができる。
【００１０】
[0016]  ストリーミング・コンテンツをサポートするアーキテクチャおよび技法は、インタラクティブおよび非インタラクティブ・メディア・コンテンツ毎に異なる機能を行うことができる。非インタラクティブ・メディア・コンテンツは、特定のユーザーだけに唯一なのではなく、したがって、ビデオ・エンコード処理、バッファ管理、および誤り訂正技法が、インタラクティブ・メディアと比較すると、非インタラクティブ・メディアには異なって適用される。具体的には、メディア・コンテンツがエンド・ユーザーによって要求されたときに、コンテンツ・プロバイダーのネットワークから直接送られる必要がないように、非インタラクティブ・メディア・コンテンツをデーター・センター・サーバー（例えば、エッジ・サーバー）によってストリーミングおよびホストすることができる。エッジ・サーバーは、アプリケーション、データー、およびコンピューティング・パワー・サービスを集中ポイントから離れてネットワークの論理的極遠(logical extreme)までプッシュするエッジ・コンピューティングを提供する。エッジ・サーバーは、レイテンシー（サーバーとユーザーとの間の距離によって生じる遅れ）の低下を容易にする。距離が重要なのは、トラフィックを導くために光ファイバ・ケーブルが使用されるので、 インターネットの速度が光速によって制限されるからである。エッジ・サーバーは、ユーザーとサーバーとの間の距離を短縮するのに役立つ。例えば、ユーザーが非インタラクティブ・コンテンツを求める要求を行うと、この非インタラクティブ・コンテンツは、ユーザーに対してローカルな複数のエッジ・サーバーに存在する可能性があり、ユーザーの要求は、このコンテンツをローカルに有する最適化サーバーに導かれる。したがって、非インタラクティブ・メディア・コンテンツは、改善されたサービス品質および少ないインフラストラクチャ・コストを有することができる。
【００１１】
[0017]  対照的に、インタラクティブ・メディア・コンテンツの個別性のために、インタラクティブ・メディア・コンテンツを有するコンテンツ・サーバーは、非インタラクティブ・メディアを有するコンテンツ・サーバーと同様に、ビデオ・エンコーディング、バッファ管理、誤り訂正、およびエッジ・サーバーを利用することができない。例えば、中央ゲーミング・サーバーは、ゲーム・プレーをレンダリングして実行し、次いで、ユーザーに一意のゲーム・ストリーミング・セッションにおいて、このユーザーからインタラクティブ・フィードバックを受けなければならない。このため、ゲーム・ストリーミングは、ストリーミング・ゲームを提供することに伴う追加のインフラストラクチャ・コスト、帯域幅要件、およびレイテンシーを考慮しなければならない。従来のゲーム設計ならびにゲーム・ストリーミング方法およびシステムは、インタラクティブ・コンテンツをストリーミングするときの欠点に取り組む方法を提供することができない。
【００１２】
[0018]  本発明の実施形態は、ゲーム・コンテンツのインテリジェント・ストリーミングのための簡単で効率的な方法およびシステムを提供する。高いレベルでは、ゲーム・コンテンツのストリーミングは、識別したゲーム・コンテンツのインタラクティブ性レベルに基づく、ストリーミング・ゲーム・コンテンツの変形および組み合わせを含むことができる。ゲーム・コンテンツのインタラクティブ性のレベルは、ゲーム開発者に基づく分類、プレー−検査に基づく分類、または機械学習に基づく分類のような、様々な異なる技法を使用して、ゲーム・コンテンツのインタラクティブ性の分類に基づいて決定することができる。インタラクティブ性(interactively)のレベルは、ゲーム・コンテンツの個々のゲーム・コンテキストまたは特定のゲーム・アセットのような、ゲーム・コンテンツの異なるコンポーネント毎に定めることができる。ゲームのコンポーネントのインタラクティブ性のレベルに少なくとも部分的に基づいてゲーム・コンテンツをストリーミングするにより、ストリーミング技法を使用して、特定のインタラクティブ性のレベルを有するゲーム・コンテンツに別々にストリーミング技法を適用することが可能になる。具体的には、ゲーム・コンテンツのコンテキストに対して、低いインタラクティブ性のレベルが識別されたことに基づいて、インタラクティブ性が高いコンテンツに伴うゲーム・ストリーミングの制約を軽減することができる。
【００１３】
[0019]  一実施形態では、ゲーム・ストリーミングは、先読みしたゲーム・コンテンツがユーザーのゲーム・ストリーミング・セッションを最適化できるように、ゲーム・プラットフォームのためにインテリジェントにゲーム・コンテンツを先読みする（例えば、ゲーム・アセットを先読みする）先読み命令を含むことができる。先読みとは、一般に、ゲーム・サーバーから直接ゲーム・コンテンツをストリーミングする代わりに、前もってゲーム・コンテンツを選択して引き出すことを意味するとして差し支えない。具体的には、予想ゲーム・コンテキストよりも前にゲーム・コンテンツが処理され利用可能になるように、選択されたゲーム・コンテンツがゲーム・サーバー上で処理され（例えば、画像をレンダリングし、オーディオを用意する）、補助ストレージ（例えば、エッジ・コンピューティング・インフラストラクチャ）に前もってストリーミングすることができる。
【００１４】
[0020]  背景として、ゲーム・ストリーミングは、本発明の実施形態によって考えられる様々な異なる技法を含むことができる。基本的には、ゲーム・ストリームは、ゲーム・コンテンツがユーザーのハード・ドライブ上に格納されず、ゲーム・コードの実行が、実行動作を行うゲーム・サーバーにおいて主に行われるように、第１技法において機能することができる。代わりに、第２技法を採用することもでき、この場合、ゲームの何らかの小さい部分を、例えば、プレーし始めるために、キャッシュ内にダウンロードすることができ、追加のゲーム・コンテンツをユーザーのデバイスにダウンロードする。第３の代替案は、第１技法および第２技法の全ての、または一部の混成を含む(involve)ことができる。ゲーム・ストリーミングのタイプには関係なく、本発明の実施形態は、ゲーム・ストリーミングの体験を改善するために、本明細書において説明するような、特にエッジ・コンピューティング・インフラストラクチャにおいて、ゲーム・コンテンツの先読みを利用することができる。
【００１５】
[0021]  本発明の実施形態は、例えば、ゲーム・サーバーにおいて実行されるが、ゲーム・プラットフォームにダウンロードされローカルにプレーされるゲームをユーザーにプレーさせることによって、ゲーム・ストリーミングをサポートするゲーム・プラットフォームと連携できるという利点がある。具体的には、ゲームの出力は、ゲーム・サーバーにおいて実行され、ゲーム・プラットフォーム（例えば、セット・トップ・ボックス、ハンドヘルド・デバイス、テレビジョンに埋め込まれたコンピューティング・デバイス、ビデオ・ゲーム・コンソール）に送られる。ゲーム・コンテンツのグラフィクスがレンダリングされてゲーム・プラットフォームにストリーミングされるので、あるゲーム・プラットフォームはハードウェアのグラフィクス・サポートを有さなくてもよい。一例として、殆どのストリーミング・ゲームは、ゲーム・コンテンツを処理するゲーム・サーバーと協働する。本明細書において使用する場合、ゲーム・コンテンツを処理する、または処理されたゲーム・コンテンツとは、レンダリングされたゲーム画像／グラフィクス、および／または用意されたオーディオがゲーム・プラットフォームにストリーミングされることを意味することができる。レンダリングされるゲーム画像およびオーディオは互いに同期される。これに関して、ゲーム・コンテンツはゲーム・サーバー上で実行され処理される。
【００１６】
[0022]  ゲーム・ストリーミングのアーキテクチャは、ゲーム・サーバーおよびゲーム・プラットフォーム上の様々なコンポーネントが、ユーザーにゲーミング・セッションを提供し易くする。例えば、サーバーは、画像またはグラフィクスをレンダリングするレンダリング・コンポーネント、頂点バッファおよびテクスチャのような特殊データーを圧縮する圧縮コンポーネント、同期されレンダリングされた画像およびオーディオをゲーム・プラットフォームに送るネットワーク・コンポーネントを含むことができる。実施形態では、レンダリングされた画像およびオーディオのゲーム・コンテンツを処理して、それぞれ、エンコード・ビデオおよびコード化オーディオとする。次いで、レンダリングされた画像およびオーディオは、共通のタイムスタンプに基づいて、独立してしかし同期して、ストリーミングすることができる。
【００１７】
[0023]  ゲーム・プラットフォームは、ゲーム・コンテンツを処理して出力するために、様々な異なるコンポーネントを含む。例えば、受信コンポーネントは、レンダリングされた画像およびオーディオを受信して処理し、次いでこれらをユーザーに出力するように構成することができる。加えて、ゲーム・プラットフォームは、出力された処理済みのゲーム・コンテンツとユーザーが対話処理することを可能にする様々な異なる制御機構(control features)（例えば、リモコンまたはコントローラー）およびインターフェース機構（例えば、ディスプレイ・インターフェース、ジェスチャ・インターフェース）を含むことができる。したがって、ゲーム・プラットフォームにおけるインタラクティブ・コンポーネントは、ユーザー・インタラクションを受け、これらのインタラクションをゲーム・サーバーに伝達して、ユーザー・アクションに基づいてこれらが処理されて新たなゲーム・コンテンツが作成されるように構成することができる。
【００１８】
[0024]  本発明の実施形態は、ゲーム・コンテンツのインタラクティブ性レベルの識別に基づく、ゲーム・コンテンツのストリーミングを対象とする。ゲーム・コンテンツのインタラクティブ性のレベルは、ゲーム開発者に基づく分類、プレー−検査に基づく分類、または機械学習に基づく分類のような、様々な異なる技法を使用して、ゲーム・コンテンツのインタラクティブ性の分類に基づいて決定することができる。具体的には、ゲーム開発者が、メタデーター、またはゲーム・コンテキストのインタラクティブ性のレベルのその他の指定を含ませてもよい。ゲーム開発者が、ＡＰＩを使用して、個々のゲーム・コンテキストの特定のシーンまたはコンポーネントを含むゲーム・コンテキストのインタラクティブ性のレベルを識別してもよい。例えば、インタラクティブ性のレベルは、ゲーム・コンテンツの特定のゲーム・アセットのインタラクティブ性レベルであってもよい。ゲーム・コンテキストにおけるゲーム・アセットのインタラクティブ性が高くなる程、インタラクティブ性のレベルの分類も高くなり、ゲーム・コンテキストにおけるゲーム・アセットのインタラクティブ性が低くなる程、インタラクティブ性のレベルの分類も低くなる。更に、個々のゲームは、インテリジェント・ストリーミングにおいて利用されるゲーム全体のインタラクティブ性の分類と関連付けることもできる。
【００１９】
[0025]  プレー−検査に基づく分類は、ゲーム・プレー中に、ゲーム・コンテキストおよび／またはゲーム・アセットの特定の(specific)インタラクティブ性を識別することを含んでもよい。プレー検査は人に基づく評価を含んでもよい。例えば、ゲーム検査官(game tester)が、第１シーンを、多数の(a high number of)インタラクティブ・アセットを有するとして識別し、他のシーンを、低いレベルのインタラクティブ性のアセットを有するとして識別するとしてもよい。ゲーム・コンテンツの評価に基づいて、ランタイム・ツールを実装し、ストリーミングのためにゲームを処理するときに、識別されたゲーム・コンテンツのインタラクティブ性レベルを要因として考慮する(factor)のでもよい。
【００２０】
[0026]  更に、機械学習に基づく分類は、ゲーム・コンテンツに対してインタラクティブ性のレベルを識別するときに、ゲーム・コンテンツとのユーザーのインタラクション・データーから、どのゲーム・コンテキストおよび／またはゲーム・アセットがインタラクティブなのか、学習することを含むことができる。具体的には、機械学習は、ゲーム・コンテンツのインタラクティブ性のレベルを判定するときに、大きな複数組のゲーム・プレー・データーにおいてパターンを発見し、インタラクティブおよび非インタラクティブ・ゲーム・コンポーネントに関連する未知のプロパティを発見するために使用することもできる。また、追加のコンピューティング・ツールが、ゲーム・コンテンツのインタラクティブ性レベルを識別し易くすることもできる。コンピューティング・ツールは、コードを評価して、ゲーム処理を続けるためには、どのコンポーネントがインタラクション入力を必要とするか確認することができる。ゲーム・コンテキストおよびゲーム・アセットを含むゲーム・コンテンツに対してインタラクティブ性のレベルを判定すると、少なくとも部分的にコンポーネントのインタラクティブ性のレベルに基づいて、ゲーム・コンテンツをストリーミングすることができる。
【００２１】
[0027]  インタラクティブ性が高いコンテンツに伴うゲーム・ストリーミングの制約は、ゲーム・コンテンツ・コンテキストに対して低いインタラクティブ性のレベルが識別されたことに基づいて、軽減することができる。ゲーム・ストリーミングの制約とは、一般に、ゲーム・コンテンツのインタラクティブ性の結果としてのゲーム・ストリーミングに対する制限または制約を意味する。例えば、ビデオ・コデックまたはエンコード技法、バッファ管理、誤り訂正、およびエッジ・インフラストラクチャ使用技法は全て、特定のゲーム・コンテキストに関連付けられたインタラクティブ性のレベルの関数として、軽減することができるゲーム・ストリーミングの制約である。ストリーミングの制約は、特定の(specific)インタラクティブ性のレベルを有するゲーム・コンテンツに別々に適用することができる。実施形態では、ゲーム・ストリーミングの制約の閾値を、インタラクティブ性のレベルの特定の指定に対して設定することもできる。したがって、ゲームが全体的にインタラクティブ・メディア・コンテンツであるとして識別されても、ゲーム・コンテキストの個々のインタラクティブ性のレベルを識別することによって、異なるレベルのインタラクティブ性を有するゲームのコンポーネントに、様々なゲーム制約を適用し、ユーザーのゲーミング体験を改善することが可能となる。
【００２２】
[0028]  一実施形態では、ゲーム・コンテンツを先読みし易くするために、エッジ・インフラストラクチャを使用することができる。ゲーム・コンテンツの先読みは、ゲーム・コンテンツを実行し処理することができるゲーム・サーバーに関連する主ストレージからゲーム・コンテンツ（例えば、先読みゲーム・アセット）を引き出して、ゲーム・プラットフォームに関連する補助ストレージ（例えば、エッジ・コンピューティング・インフラストラクチャ）に送ることを含む。具体的には、ゲーム・コンテンツをインテリジェントに先読みするとは、予想ゲーム・コンテキストに先立って、ゲーム・コンテンツが主ストレージから引き出されて、補助ストレージにおいて利用可能にするように、複数のゲーム・ストリーミング・セッション・パラメーターに基づいて、ゲーム・コンテンツを処理する（即ち、画像をレンダリングし、オーディオを用意する）ことを意味するとして差し支えない。インテリジェントな先読みは、ゲーム・ストリーミング・セッションの間に、他の処理されたゲーム・コンテンツのアクティブなストリーミングと同時に行うことができる。一般に、ゲーム・サーバーに関連する主ストレージは、補助ストレージから地理的に分散されている。これに関して、ユーザーと先読みゲーム・アセットとの間の距離が短縮され、先読みゲーム・アセットは前もって入手可能となる。先読みゲーム・アセットをより近づけてそして前もって有することによってレイテンシーを低減し、ユーザー体験の改善のために、一定の先読みゲーム・アセットの追加処理を可能にする。
【００２３】
[0029]  一例として、背景音楽が先読みゲーム・アセットとして分類されるとすると、ゲームとのユーザー・インタラクションによって、予想ゲーム・コンテキストをトリガーしたとき、予想ゲーム・コンテキストをサポートするために、背景音楽がゲーム・サーバーにおける主ストレージから補助ストレージに先読みされる。主ストレージから直接受け取った処理済みゲーム・コンテンツを使用して、ユーザーがゲームをプレーし続けている間に、背景音楽をダウンロードすることができる。ゲーム・プレーは、背景音楽が必要とされるゲームの予想部分まで継続することができる。その時点において、補助ストレージにおける背景音楽は、主ストレージから直接ストリーミングされた処理済みゲーム・コンテンツと組み合わせられる。尚、先読みゲーム・アセットを引き出す１組の予めプログラミングされた命令を無視するかまたは肯定するかの判断における考慮事項とすることができる、複数のゲーム・ストリーミング・セッション・パラメーター（例えば、帯域幅、メモリー・バッファ）に基づいて、背景音楽をインテリジェントに先読みできることも考えられる。
【００２４】
[0030]  ゲーム・コンテンツの先読みは、ゲームの開発によって容易にすることもできる。ゲーム開発のゲーム設計フェーズの間に、アセット、規則、ゲーム・プレーの設計、環境、ストーリーライン、およびキャラクター(character)を含むゲーム・コンテンツが定められる。本発明の実施形態では、ゲーム設計フェーズは、更に、ゲーム・ストリーミング・セッションの間に異なる部分において処理および先読みされるとよいゲーム・コンテンツを識別することも含む。具体的には、ゲーム・アセットを先読みゲーム・アセットまたはストリーム・ゲーム・アセットとして分類し、先読みゲーム・アセットを先読みし出力のためにこの先読みゲーム・アセットを供給する命令、または出力のために先読みゲーム・アセットをストリーム・ゲーム・アセットと組み合わせる命令と関連付けることができる。例えば、オーディオ先読みゲーム・アセットをビデオ・ストリーム・ゲーム・アセットと共に出力するのでもよく、オーディオ・ストリーム・ゲーム・アセットをビデオ先読みゲーム・アセットと共に出力するのでもよく、更には、ビデオ先読みゲーム・アセットをビデオ・ストリーム・ゲーム・アセットと組み合わせて出力するのでもよい。以上のことの任意の他の組み合わせや変形も、本発明の実施形態では考えられる。
【００２５】
[0031]  加えて、予想ゲーム・コンテキストを定め、インテリジェントに先読みされる１つ以上の先読みゲーム・アセットの引き出しをトリガーするために使用することもできる。予想ゲーム・コンテキストは、先読みゲーム・アセットが、単独でまたはストリーム・ゲーム・アセットと組み合わせて、予想ゲーム・コンテキストの出現時に、表示のために供給されるように、先読みゲーム・アセットの先読みをトリガーすることができる。ゲーム設計フェーズは、先読みゲーム・アセットとして作成することができるゲーム・アセットを創造的に識別することができ、このゲーム・アセットには、ゲームの内部において先読みゲーム・アセットを利用することができる部分を見越して先読みされるように、命令をプログラミングすることができる。異なるタイプの命令が、予想ゲーム・コンテキストに関連する先読みゲーム・アセットのパッケージを定め、この先読みゲーム・アセットをどのようにゲーム・プレーに組み込むかについての指針をゲーム・プラットフォームに供給することができる。実施形態では、プログラミングされた命令は、先読みゲーム・アセットを引き出す特定の命令を無視するまたは肯定するために使用することができるゲーム・セッション・ストリーミング・パラメーターに、具体的に閾値を設定する(provide)ことができる。
【００２６】
[0032]  ゲーム・コンテンツをインテリジェントに先読みする前に、ゲーム・ストリーミングをサポートする分散型ネットワーク・インフラストラクチャの様々なゲーム・ストリーミング・セッション・パラメーターを参照することもできる。一般に、分散型ネットワーク・インフラストラクチャのゲーム・ストリーミング・セッション・パラメーターは、どのようにそしていつゲーム・コンテンツを先読みするかに影響を与えるネットワーク・インフラストラクチャの可変または一定コンポーネントを指すことができる。例えば、ゲーミング・ストリーミング・セッション・パラメーターは、帯域幅、バッファ・メモリー、ユーザー・インタラクティブ・アクション、先読みゲーム・アセットのサイズ、ストリーム・ゲーム・アセットのサイズ、およびエッジ・コンピューティング・インフラストラクチャを含むことができる。これに関して、特定の時点におけるゲーム・ストリーミング・セッション・パラメーターの値が、ゲーム・コンテンツの先読みに影響を与えることもある。一例として、予想ゲーム・コンテキストの間に先読みされるように、先読みゲーム・アセットを分類してもよい。予想ゲーム・コンテキストを認識したとき、ゲーム・サーバーは、複数の先読みゲーム・アセットをダウンロードするように、ゲーム・プラットフォームに命令することができる。
【００２７】
[0033]  本発明の実施形態では、先読みは、更に、帯域幅を監視し、先読みゲーム・アセットの先読みを開始する前に、ネットワーク上で利用可能な帯域幅が既定の閾値以下であると判定するように構成されたゲーム・プラットフォームを含むことができる。既定の閾値は、ゲーム・コンテンツの先読みを開始することをゲーム・プラットフォームに指令する命令において定めることができる。具体的には、先読みゲーム・アセットのダウンロードは、ゲーム・ストリーミング・セッションの測定帯域幅に基づいて、無視するまたは肯定することができる。言い換えると、先読みゲーム・アセットは、帯域幅が既定閾値以下であるときに、先読みするとよい。１つのシナリオでは、ゲーム・プラットフォームは、先読みゲーム・アセットのダウンロードを進めるには帯域幅が十分でないと判定し、予想ゲーム・コンテキストの間にサーバーから直接ゲーム・アセットをストリーミングすることができる。これに関して、ゲーム・アセットが先読みゲーム・アセットとして分類されても、このゲーム・アセットはゲーム・サーバーから直接ストリーミングされる。したがって、帯域幅の使用は、ゲーム・ストリーミング・セッション・パラメーターに基づいて、ゲーム・ストリーミング・セッションのために最適化される。
【００２８】
[0034]  他の例では、同じエッジ・コンピューティング・インフラストラクチャを共有する合同ゲーム・セッションにおける２人のユーザーを識別することが可能であるとよい。ゲーム・ストリーミング・セッションの間、ゲーム・プレーが各ユーザーのインタラクションに一意であっても、先読みゲーム・コンテンツがユーザー間で共有されるように、エッジ・コンピューティング・インフラストラクチャに先読みゲーム・コンテンツをダウンロードすることができるという利点がある。例えば、ゲーム・プレーの一部を見越してビデオ・カット・シーンを先読みし、２人のユーザーと関連付けて格納することができる。何故なら、双方のユーザーは同じエッジ・コンピューティング・インフラストラクチャを共有し、協調型ビデオ・ゲームをプレーしており、同時に双方のユーザーに対してこのカット・シーンをトリガーする場合もあるからである。したがって、非インタラクティブ・メディア・コンテンツと同様に、インテリジェントな先読みに基づいて、インタラクティブ・メディア・コンテンツにおいても、エッジ・コンピューティング・インフラストラクチャを利用することができる。また、先読みゲーム・アセットのために、追加の処理も利用可能であるとよい。先読みゲーム・アセットが識別されたとき、この先読みゲーム・アセットがゲーム・サーバーから直接ストリーミングされる場合にレンダリングされるよりも、高い品質でレンダリングすることができる。これに関して、先読みアセットの品質が向上する。何故なら、これは、予想コンテキストに先立って処理されて利用可能となり、したがって一層高い品質で出力されるからである。本発明の新規な特徴の応用の他の変形や組み合わせも考えられる。
【００２９】
[0035]  先読みのために分類されたゲーム・コンテンツの先読みによって、ゲーム・ストリーミングの様々な異なる面について機能性向上が可能になる。例えば、処理されたゲーム・コンテンツが常にゲーム・サーバーから直接ストリーミングされる必要はなく、代わりに、予め、ゲーム・コンテキストを見越して選択ゲーム・コンテンツを処理し、ゲーム・ストリーミング・セッションの間にインテリジェントに先読みすることができる。更に、ゲーム設計フェーズの間に、ゲーム開発者は、本発明の実施形態の機能をサポートするように、創造的にゲームを設計することができる。例えば、予想ゲーム・コンテキストの間における先読みゲーム・アセットおよびストリーム・ゲーム・アセットの識別、ならびにゲーム中にこれらのアセットをどのように使用するかについての命令が、ゲーム・ストリーミングを基本的に改良する(enhance)。更に、ゲーム・ストリーミング・セッション中に、リソースの最大化を行うことができ(afford)、ゲーム・ストリーミング・セッション・パラメーター（例えば、帯域幅）の利用可能性に基づいて、帯域幅が利用可能なときに、先読みゲーム・アセットを、高い品質でレンダリングすることができ、帯域幅が利用可能でないとき、直接ストリーミングすることができる。加えて、先読みゲーム・アセットが、単独でまたはストリーム・ゲーム・アセットと組み合わせて、ランタイム時に出力のために供給されるように、エッジ・コンピューティング・インフラストラクチャのコンピューティング・リソースを利用して、ゲーミング・ストリーミングにおけるインテリジェントな先読みを統合し易くすることができる。
【００３０】
[0036]  本発明の第１の態様では、コンピューター使用可能命令を格納する１つ以上のコンピューター記憶媒体を提供する。このコンピューター使用可能命令が、１つ以上のコンピューティング・デバイスによって使用されるとき、１つ以上のコンピューティング・デバイスに、ゲーム・コンテンツを先読みする方法を実行させる。この方法は、分散型ネットワーク・インフラストラクチャにおいて、ゲーム・サーバーから先読みゲーム・アセットをエッジ・コンピューティング・インフラストラクチャに先読みするために先読み命令を受け取るステップを含む。先読みゲーム・アセットは、ゲーム・ストリーミング・セッション内において先読みゲーム・アセットとして分類される。また、この方法は、先読みゲーム・アセットを先読みするステップを含む。先読みゲーム・アセットは、先読みゲーム・アセットが使用される予想ゲーム・コンテキストに先立って、ゲーム・サーバーにおいて処理される。更に、この方法は、予想ゲーム・コンテキストの出現時に出力するために、エッジ・コンピューティング・インフラストラクチャから、先読みゲーム・アセットを供給するステップも含む。
【００３１】
[0037]  本発明の第２の態様では、コンピューター使用可能命令を格納する１つ以上のコンピューター記憶媒体を提供する。このコンピューター使用可能命令が、１つ以上のコンピューティング・デバイスによって使用されるとき、１つ以上のコンピューティング・デバイスに、ゲーム・コンテンツを先読みする方法を実行させる。この方法は、分散型ネットワーク・インフラストラクチャにおいてゲーム・プラットフォームに先読み命令を送信するステップを含み、先読み命令は、ゲーム・プラットフォームに、先読みゲーム・アセットをエッジ・コンピューティング・インフラストラクチャに先読みすることを命令する。先読みゲーム・アセットは、ゲーム・ストリーミング・セッション内において先読みアセットとして分類される。また、この方法は、ゲーム・プラットフォームから先読み要求を受けるステップも含み、先読み要求は、少なくとも１つのゲーム・ストリーミング・セッション・パラメーターを参照することに基づいて生成される。更に、この方法は、先読みゲーム・アセットを処理するステップも含む。また、この方法は、先読みゲーム・アセットをエッジ・コンピューティング・インフラストラクチャに送信するステップも含み、先読みゲーム・アセットは、処理されたゲーム・コンテンツであり、予想ゲーム・コンテキストの出現まで、エッジ・コンピューティング・インフラストラクチャに格納される。
【００３２】
[0038]  本発明の第３の態様では、ゲーム・コンテンツを先読みするためのコンピューター実装方法を提供する。この方法は、ゲームにおいてゲーム・アセットを使用するために、ゲーム・コンテキストを識別するステップを含む。また、この方法は、ゲーム・アセットを先読みゲーム・アセットとして分類するステップも含む。更に、この方法は、このゲーム・アセットに対して先読み命令を生成するステップも含み、この先読み命令はゲーム・アセットの機能を定める。この方法は、ゲームのゲーム・コードに、先読み命令を埋め込むステップを含む。また、この方法は、ゲーム・コードの実行中に、先読み命令をゲーム・プラットフォームに送信するステップも含み、先読み命令は、ゲーム・プラットフォームに、ゲーム・アセットをエッジ・コンピューティング・インフラストラクチャに先読みすることを命令する。この方法は、ゲーム・プラットフォームから先読み要求を受けるステップを含む。この方法は、先読みゲーム・アセットを処理するステップを含む。この方法は、先読みゲーム・アセットをエッジ・コンピューティング・インフラストラクチャに送信するステップを含む。
【００３３】
[0039]  本発明の第４の態様では、ゲーム・コンテンツをインテリジェントにストリーミングするためのコンピューター実装方法を提供する。この方法は、ゲーム・コンテンツに対してゲーム・コンテキストを識別するステップを含む。更に、この方法は、ゲーム・コンテキストの少なくとも１つのコンポーネントを、インタラクティブ性のレベルで識別するステップも含む。ゲーム・コンテキストのインタラクティブ性のレベルは、ゲーム・コンテンツのインタラクティブ性の分類に基づいて、ゲーム開発者に基づく分類、プレー?検査に基づく分類、または機械学習に基づく分類のような、様々な異なる技法を使用して判定することができる。更に、この方法は、ゲーム・コンテキストのインタラクティブ性のレベルに基づいて、ゲーム・コンテキストをストリーミングするステップも含む。ゲームのコンポーネントのインタラクティブ性のレベルに少なくとも部分的に基づいてゲーム・コンテンツをストリーミングすることによって、特定のインタラクティブ性のレベルを有するゲーム・コンテキストに別々に適用されるストリーミング技法を使用することが可能になる。
【００３４】
[0040]  以上、本発明の実施形態の全体像について端的に説明したので、本発明の実施形態を実現することができる例証的な動作環境について、これより、本発明の種々の態様について一般的なコンテキストを与えるために説明する。最初に特に図１を参照して、本発明の実施形態を実現するための例証的な動作環境を示し、全体的にコンピューティング・デバイス１００と呼ぶ。コンピューティング・デバイス１００は、適したコンピューティング環境の一例に過ぎず、本発明の使用範囲や機能に関して限定を示唆することは全く意図していない。また、コンピューティング・デバイス１００が、図示するコンポーネントの内任意の１つまたはその組み合わせに関して何らかの依存性または要件を有するように解釈しては決してならない。
【００３５】
[0041]  本発明は、コンピューター、あるいはパーソナル・データー・アシスタントまたは他のハンドヘルド・デバイスのような他の機械によって実行される、プログラム・モジュールのようなコンピューター実行可能命令を含む、コンピューター・コードまたは機械使用可能命令という一般的なコンテキストで説明することができる。一般に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データー構造等を含み、特定のタスクを実行するコード、または特定の抽象データー型を実装するコードを指す。本発明は、ハンドヘルド・デバイス、消費者用電子機器、汎用コンピューター、更に特殊なコンピューティング・デバイス等を含む、種々のシステム構成において実施することができる。また、本発明は、分散型コンピューティング環境においても実施することができ、この場合、タスクは、通信ネットワークを通じてリンクされたリモート処理デバイスによって実行される。
【００３６】
[0042]  図１を参照すると、コンピューティング・デバイス１００は、以下のデバイスを直接または間接的に結合するバス１００を含む。メモリー１１２、１つ以上のプロセッサー１１４、１つ以上のプレゼンテーション・コンポーネント１１６、入力／出力（Ｉ／Ｏ）ポート１１８、Ｉ／Ｏモジュール１２０、および例示の電源１２２。バス１１０は、１つ以上のバス（アドレス・バス、データー・バス、またはその組み合わせ等）であってもよいものを代表する。図１の種々のブロックは、明確にするために線で示されるが、実際には、種々のコンポーネントの境界分けはそれ程明確ではなく、例えて言えば、線は、更に正確にするならば、灰色および曖昧になるであろう。例えば、ディスプレイ・デバイスのようなプレゼンテーション・コンポーネントをＩ／Ｏコンポーネントであると見なす者もいると考えられる。また、プロセッサーはメモリーを有する。本発明者は、このようなことは技術の本質であると認識しており、図１の図は、本発明の１つ以上の実施形態と共に使用することができるコンピューティング・デバイス例を例示するに過ぎないことを繰り返しておく。「ワークステーション」、「サーバー」、「ラップトップ」、「ハンドヘルド・デバイス」等の間に区別は行わない。何故なら、これらは全て図１に範囲に入ると考えられ、「コンピューティング・デバイス」を指すからである。
【００３７】
[0043]  コンピューティング・デバイス１００は、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューティング・デバイス１００によってアクセスすることができる任意の入手可能な媒体とすることができ、揮発性および不揮発性双方の媒体、リムーバブルおよび非リムーバブル媒体を含む。一例として、そして限定ではなく、コンピューター読み取り可能媒体はコンピューター記憶媒体および通信媒体を含むことができる。
【００３８】
[0044]  コンピューター記憶媒体は、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体の双方を含み、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターというような情報の格納のための任意の方法または技術で実現される。コンピューター記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリーまたは他のメモリー技術、ＣＤ−ＲＯＭ、ディジタル・バーサタイル・ディスク（ＤＶＤ）または他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができコンピューティング・デバイス１００によってアクセスすることができる他のいずれの媒体も含むが、これらに限定されるのではない。コンピューター記憶媒体は、信号自体を除外する。
【００３９】
[0045]  通信媒体は、通例、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターを、搬送波のような変調データー信号、または他の移送メカニズムに具体化し、任意の情報配信媒体を含む。「変調データー信号」という用語は、この信号内に情報をエンコードするような方法で、その特性の内１つ以上が設定または変更された信号を意味する。一例として、そして限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続のような有線媒体と、音響、ＲＦ、赤外線、およびその他のワイヤレス媒体のようなワイヤレス媒体とを含む。以上のものの任意の組み合わせも、コンピューター読み取り可能媒体の範囲内に含まれてしかるべきである。
【００４０】
[0046]  メモリー１１２は、揮発性および／または不揮発性メモリーの形態で、コンピューター記憶媒体を含む。メモリーは、リムーバブル、非リムーバブル、またはこれらの組み合わせでもよい。例証的なハードウェア・デバイスには、ソリッド・ステート・メモリー、ハード・ドライブ、光ディスク・ドライブ等が含まれる。コンピューティング・デバイス１００は、メモリー１１２またはＩ／Ｏコンポーネント１２０のような種々のエンティティからデーターを読み出す１つ以上のプロセッサーを含む。プレゼンテーション・コンポーネント（１つまたは複数）１１６は、データー指示をユーザーまたは他のデバイスに提示する。例証的なプレゼンテーション・コンポーネントには、ディスプレイ・デバイス、スピーカー、印刷コンポーネント、振動コンポーネント等が含まれる。Ｉ／Ｏポート１１８は、コンピューティング・デバイス１００を、Ｉ／Ｏコンポーネント１２０を含む他のデバイスに論理的に結合することを可能にする。他のデバイスの一部は内蔵されてもよい。例示的なＩ／Ｏコンポーネント１２０には、マイクロフォン、ジョイスティック、ゲーム・パッド、スキャナー、ハード／ソフト・ボタン、タッチ・スクリーン・ディスプレイ等が含まれる。
【００４１】
[0047]  無線機１２４は、無線通信を送信および／または受信する。コンピューティング・デバイス１００は、種々のワイヤレス・ネットワークを通じて通信および媒体を受信するように構成されたワイヤレス端末であってもよい。コンピューティング・デバイス１００は、符号分割多元接続（「ＣＤＭＡ」）、汎欧州デジタル移動電話方式（「ＧＳＭ（登録商標）」）、または時分割多元接続（「ＴＤＭＡ」）のような、ワイヤレス・プロトコル、およびその他を通じて通信し、他のデバイス（図１には示されていない）と通信することができる。無線通信は、短距離接続、長距離接続、または短距離および長距離双方のワイヤレス電気通信接続の組み合わせであってもよい。「短距離」および「長距離」型の接続に言及するとき、２つのデバイス間の空間関係を示す意図はない。代わりに、異なるカテゴリー、または異なる種類の接続（即ち、主接続および副接続）として、大まかに短距離および長距離と呼んでいる。短距離接続は、デバイス（例えば、移動体ホットスポット）に対するＷｉ−Ｆｉ（登録商標）接続を含むことができ、ＷＬＡＮ接続のように、８０２．１１プロトコルを使用してワイヤレス通信ネットワークへのアクセスを提供する。他のコンピューティング・デバイスへのＢｌｕｅｔｏｏｔｈ（登録商標）接続は、短距離接続の第２の例である。長距離接続は、ＣＤＭＡ、ＧＰＲＳ、ＧＳＭ、ＴＤＭＡ、および８０２．１６プロトコルの内１つ以上を使用する接続を含むことができる。
【００４２】
[0048]  センサー１２６は、デバイスならびに環境特性および条件を観察する。例証的なセンサーには、加速度計、ジャイロスコープ、ＧＰＳ／ロケーション、近接センサー、光センサー、および振動センサーが含まれる。
【００４３】
[0049]  これより図２Ａおよび図２Ｂに移ると、本発明の実施形態による、ゲーム・ストリーミング・インフラストラクチャ２００（以後「インフラストラクチャ」）が示されており、ゲーム・コンテンツの先読みに備えることができる複数のコンピューティング・デバイスを含む。図２に示すインフラストラクチャ２００は、適したインフラストラクチャの一例である。インフラストラクチャ２００は、図１を参照して説明したコンピューティング・デバイス１００と同様の複数のコンピューティング・デバイスを含む。インフラストラクチャ２００が、ここに図示するいずれの１つのモジュール／コンポーネントまたはモジュール／コンポーネントの組み合わせに関しても何らかの依存性または要件を有するように解釈しては決してならない。 各々が１つのデバイスを含んでもよく、または分散環境において協働する複数のデバイスを含んでもよい。例えば、コンポーネントは、分散型環境において配置され、本明細書において説明する機能を集合的に行う複数のデバイスを含んでもよい。加えて、図示しない他のコンポーネントも、ネットワーク環境内に含まれてもよい。
【００４４】
[0050]  図２Ａを参照すると、インフラストラクチャ２００は、ゲーム・サーバー２０２、エッジ・コンピューティング・インフラ２０４、ゲーム・プラットフォーム２０６、およびゲーム開発サーバー２０８を含むことができ、これら全てはネットワーク接続環境２１０内にある。ネットワークは、限定ではなく、１つ以上のローカル・エリア・ネットワーク（ＬＡＮ）および／またはワイド・エリア・ネットワーク（ＷＡＮ）を含むことができる。このようなネットワーキング環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネット、およびインターネットでは極普通である。したがって、ネットワークについてはここではこれ以上説明しない。
【００４５】
[0051]  尚、本明細書において説明するこの構成および他の構成は、例として明示されるに過ぎないことは理解されてしかるべきである。示すものに加えてまたはその代わりに、他の構成およびエレメント（例えば、機械、インターフェース、機能、順序、および機能の集合体(grouping)）も使用することができ、いくつかのエレメントは全てまとめて省略されてもよい。更に、本明細書において説明するエレメントの多くは、機能的エンティティであり、個別コンポーネントまたは分散型コンポーネントとして、あるいは他のコンポーネントと併せて、更には任意の適した組み合わせおよび場所において実現することができる。本明細書において１つ以上のエンティティによって実行されるとして説明する種々の機能は、ハードウェア、ファームウェア、および／またはソフトウェアによって実行することができる。例えば、種々の機能は、メモリーに格納されている命令をプロセッサーが実行することによって、実行することができる。
【００４６】
[0052]  ゲーム・サーバー２０２は、ゲーム・ストリーミングに合わせてゲームを実行する役割を担う。一般に、ゲームはゲーム・サーバー２０２において格納され、処理されたゲーム・コンテンツは、エッジ・コンピューティング・インフラストラクチャ２０４を介して直接ゲーム・プラットフォーム２０６にストリーミングされる（２１２）。ゲームの実行は、更に、ゲーム・プラットフォームにおいて記録されたユーザー・アクション２１４に基づくこともでき、例えば、制御手段(control)およびボタンの押下がゲーム・プラットフォームにおいて記録され、ゲーム・サーバーに伝達される（２１６）。ユーザー・アクション２１４に基づいて更に処理するとき、ゲーム・サーバーは追加の処理済みゲーム・コンテンツを送ることができる。以上で説明したゲーム・ストリーミング技法は単なる実証例に過ぎず、本発明の実施形態を限定することを意図するのではない。尚、本発明の新規な特徴は、他のゲーム・ストリーミング技法にも適用できることが考えられる。
【００４７】
[0053]  図２Ｂを参照すると、ゲーム・サーバー２０２は外部ゲーム・ストリーミング・コンポーネント２２０を含むことができる。外部ゲーム・ストリーミング・コンポーネント２２０は、ゲーム・ストリーミングに合わせたゲームの実行を容易にするために、ゲーム・サーバー２０２における追加のコンポーネント（図示せず）と共に機能することができる。外部ゲーム・ストリーミング・コンポーネント２２０は、ゲーム・コンテンツのインタラクティブ性のレベルに基づいて、ゲーム・ストリーミングを管理する役割を担う。具体的には、ゲーム・コンテンツの個々のコンテキストまたは特定のゲーム・アセットのような、ゲーム・コンテンツの異なるコンポーネントに、インタラクティブ性のレベルを関連付けることができる。例えば、ユーザーは、ゲーム前コンテキスト、ゲーム内コンテキスト、またはゲーム後コンテキストにあるとしてもよい。ゲーム前コンテキストは、ゲーム・ストリーミング・セッションのためにゲーム選択肢を選択するためのメニュー画面とすることができ、ゲーム内コンテキストは、ゲーム・プレー中の一時点とすることができ、ゲーム後コンテキストは、ゲームのあるステージの終了時におけるカット・シーンを意味することができる。ゲーム・コンテキストとは、一般に、ゲーム・ストリーミング・セッションを取り巻く１組の状況を指すことができる。ゲーム・コンテキストの他の変形や組み合わせも、本発明の実施形態では考えられる。
【００４８】
[0054]  ゲーム・コンテキストおよびゲーム・アセットがインタラクティブ性のレベルに基づいてストリーミングされるように、異なるゲーム・コンテキストおよびゲーム・アセットのインタラクティブ性のレベルを判定するために、様々な異なる技法を使用することができる（例えば、分類コンポーネント２６０によって）。インタラクティブ性のレベルに基づいてゲーム・コンテンツをストリーミングする一実施形態では、外部ゲーム・ストリーミング・コンポーネント２２０は、ゲーム・サーバーにおけるゲーム・アセットに対する先読み命令を管理するように構成される。更に、外部ゲーム・ストリーミング・コンポーネント２０２は、予想ゲーム・コンテキストに基づいて、ゲーム・アセットに対する先読み命令を伝達することもできる。ゲーム・コンテキストのステータスは、先読み命令を伝達することを外部ゲーム・ストリーミング・コンポーネントにトリガーさせる、１つ以上の予想ゲーム・コンテキストを定めることができる。
【００４９】
[0055]  分類コンポーネント２６０は、異なるインタラクティブ性のレベルによってゲーム・コンテンツを分類し易くするために実装することができる。分類コンポーネントの位置は例証的であることを意図しており、分類コンポーネントは、それに帰せられる機能を達成するためには、独立して実装されても、またはゲーム開発サーバー２０８と共に実装されてもよい。ゲーム・コンテンツのインタラクティブ性のレベルは、ゲーム開発者に基づく分類、プレー?検査に基づく分類、または機械学習に基づく分類のような、様々な異なる技法に基づいて判定することができる。具体的には、ゲーム開発者が、メタデーター、またはゲーム・コンテキストのインタラクティブ性のレベルの他の指定を含ませてもよい。ゲーム開発者が、ＡＰＩを使用して、個々のゲーム・コンテキストの特定のシーンまたはコンポーネント（例えば、ゲーム・アセット）を含むゲーム・コンテキストのインタラクティブ性のレベルを識別してもよい。プレー−検査に基づく分類は、ゲーム・プレー中に、ゲーム・コンテキストおよび／またはゲーム・アセットのインタラクティブ性を識別することを含んでもよい。プレー検査は、人に基づく評価、およびゲーム・コンテンツにおけるゲーム・コンポーネントのインタラクティブ性の分類を含んでもよい。機械学習に基づく分類は、ゲーム・コンテンツに対してインタラクティブ性のレベルを識別するときに、ゲーム・コンテンツとのユーザーのインタラクション・データーから、どのゲーム・コンテキストおよび／またはゲーム・アセットがインタラクティブなのか、学習することを含むことができる。ゲーム・コンテキストおよびゲーム・アセットを含むゲーム・コンテンツに対してインタラクティブ性のレベルを判定したなら、少なくとも部分的にコンポーネントのインタラクティブ性のレベルに基づいて、ゲーム・コンテンツをストリーミングすることができる。
【００５０】
[0056]  外部ゲーム・ストリーミング・コンポーネント２２０は、特定のインタラクティブ性のレベルを有するゲーム・コンテンツに対して別々に適用することができるストリーミング技法を使用して、ストリーミング命令を生成することができる。先に論じたように、インタラクティブ性が高いコンテンツに伴うゲーム・ストリーミングの制約は、ゲーム・コンテンツ・コンテキストに対して低いインタラクティブ性のレベルを識別したことに基づいて、軽減することができる。例えば、ビデオ・コデックまたはエンコード技法、バッファ管理、誤り訂正、およびエッジ・インフラストラクチャ使用技法は全て、特定のゲーム・コンテキストに関連付けられたインタラクティブ性のレベルの関数として緩和することができる、ゲーム・ストリーミングの制約である。ゲーム・プラットフォームにおいて、インタラクティブ性が高いゲーム・コンテキストに関連するバッファ管理手順が使用されるように、 ゲーム・プラットフォーム２０６に対するストリーミング命令が、ゲーム・プラットフォームに、高インタラクティブ性指定があるゲーム・コンテキストを知らせることもできる。加えて、ゲーム・コンテキストに対して低いインタラクティブ性のレベルが判定されたとき、外部ゲーム・ストリーミング２２０は、代わりに、低いインタラクティブ性のレベルが関連付けられたゲーム・コンテキストを直接（即ち、ゲーム・プラットフォームに）または間接的に（即ち、エッジ・コンピューティング・インフラストラクチャ２０４に）先読みするために、先読み命令をゲーム・プラットフォームに伝達することができる。
【００５１】
[0057]  実施形態では、ゲーム・ストリーミング制約の閾値を、特定のインタラクティブ性のレベルの指定に対して設定することができる。例えば、ゲーム・コンテキストのインタラクティブ性のレベルに基づいて、バッファ管理に閾値バッファ・サイズを定めるのでもよい。また、非インタラクティブ・ビデオ・コンテンツのための前処理時間に、ビデオ・コンテンツに関連付けられたインタラクティブ性のレベルの関数として、送信のためにビデオ・コンテンツを前処理する閾値時間を設定(configure)するのでもよい。ゲーム・コンテキストのインタラクティブ性のレベルに基づく命令およびストリーミング制約のその他の変形および組み合わせも、本発明の実施形態では考えられる。
【００５２】
[0058]  図３を参照すると、例証的なゲーム・コンテキスト３００の模式図が示されている。ゲーム・コンテキスト３００は、４つのコンテキスト、主レベル３１０、アルファ３２０、ベータ３３０、およびガンマ３４０を含む。ゲーム・ストリーミング・セッションは、主レベル３１０の現ゲーム・コンテキストを有することができる。追加の要因（例えば、ユーザーのインタラクションまたはゲームのプログラミング）に基づいて、予想コンテキストはアルファ３２０とすることができる。したがって、アルファ３２０に関連付けられた先読みゲーム・アセット３２２を先読みするために、先読み命令がトリガーされる。加えて、予想コンテキストは、更に、ゲーム・プレー中における他のキャラクターとのインタラクションに基づくカット・シーン３４０であってもよい。これに関して、カット・シーンは、ゲーム・コンテキストに先立って、先読みゲーム・アセットとして先読みすることができ、ゲーム・コンテキストの出現時(happening)に、カット・シーンがエッジ・コンピューティング・インフラストラクチャ２０４における補助ストレージからダウンロードされる。また、カット・シーンは、ゲーム・プレー中にゲーム・サーバー２０２から直接カット・シーンがストリーミングされるよりも高い品質でレンダリングされるように、先読み期間の間にカット・シーンに追加の処理を行う余裕も得ることができる。
【００５３】
[0059]  ゲーム開発サーバー２０８は、ゲーム・ストリーミング中に実行されるゲーム・コードを供給する（２１８）役割を担う。ゲーム開発サーバーは、先読み命令を生成し(develop)、この先読み命令がゲーム設計中に有利に定められるように、先読み命令をゲーム・コード内に埋め込むことをサポートする。ゲーム開発のゲーム設計フェーズの間、アセット、規則、ゲーム・プレーの設計、環境、ストーリーライン、および登場人物を含むゲーム・コンテンツが定められる。ゲーム設計フェーズは、本発明の実施形態では、更に、ゲーム・ストリーミング・セッションの間に異なる部分で処理され先読みされるとよいゲーム・コンテンツを識別することも含むことができる。具体的には、ゲーム・アセットは、先読みゲーム・アセットまたはストリーム・ゲーム・アセットとして分類することができる。図４１０を参照すると、キャラクター４１０はストリーム・ゲーム・アセットとして定められてもよいが、フィギャー(figure)４４０は先読みゲーム・アセットとして分類される。加えて、カット・シーン４２０および背景４３０も先読みゲーム・アセットとして分類されてもよいが、ゲームの追加のエレメントはゲーム・サーバーから直接ストリーミングされる。
【００５４】
[0060]  先読みゲーム・アセットには、この先読みゲーム・アセットを先読みするための先読み命令を関連付けることができる。開発者は、外部ゲーム・ストリーミング・コンポーネント２２０に、どのように先読み命令をゲーム・サーバー２０２において管理すべきか指令する命令を、ゲーム・コード内に埋め込むことができる。この命令は、処理されたゲーム・コンテンツを先読みする命令が伝達されるように、ゲーム・コンテキストのステータスに基づいて、予想ゲーム・コンテキストを定めることができる。例えば、ユーザーが、あるステージの終了まで、定められた回数以内のアクションを残すというような現在のゲーム・コンテキストである場合、予想ゲーム・コンテキストは、ステージ・カット・シーンの終了とすることができる。これに関して、外部ゲーム・ストリーミング・コンポーネント２２０は、予想ゲーム・コンテキストに先立って、処理されたゲーム・コンテンツが入手可能になるように、先読みゲーム・アセットをダウンロードすることをゲーム・プラットフォームに指令することができる。また、ゲーム開発者は、予想ゲーム・コンテキストの間における先読みゲーム・アセットの使用法(usage)も定めることができる。使用法は、具体的に、先読みゲーム・アセットがエッジ・コンピューティング・インフラストラクチャに先読みされた後、どのようにそれが使用されるか定めることができる。使用法は、先読みおよびストリーミングのタイミング、ゲーム・アセットを単独で表示するかまたは他のタイプのゲーム・アセットと組み合わせて表示するか、そして先読みゲーム・アセットをゲーム・ストリーミング・セッションの他の面(aspect)と同期させることを含むこともできる。例えば、使用法の定義は、アクティブなゲーム・プレーをサポートする現ゲーム・ストリーミング・セッション・エレメントと共に、先読みゲーム・アセットを同時に処理することをサポートすることができる。
【００５５】
[0061]  更に、先読み命令は、先読みゲーム・アセットをどのように出力するかについて、ゲーム・プラットフォーム２０６への指令も含むことができる。具体的には、出力のために、先読みゲーム・アセットをストリーム・ゲーム・アセットと組み合わせることができる。したがって、先読み命令において取り込まれる先読みゲーム・アセットを出力するには、様々な異なる変形が可能である。例えば、オーディオ先読みゲーム・アセットをビデオ・ストリーム・ゲーム・アセットと共に出力することができ、オーディオ・ストリーム・ゲーム・アセットをビデオ先読みゲーム・アセットと共に出力することができ、更にビデオ先読みゲーム・アセットをビデオ・ストリーム・ゲーム・アセットと組み合わせて出力することもできる。以上のことの他のあらゆる組み合わせや変形も、本発明の実施形態では考えられる。
【００５６】
[0062] 引き続き図２Ｂを参照すると、先読み命令は、付加的に、ゲーム・ストリーミング・セッション・パラメーター２５０を考慮に入れるように構成することもできる。一般に、分散型ネットワーク・インフラストラクチャのゲーム・ストリーミング・セッション・パラメーターは、ゲーム・コンテンツをどのようにそしていつ先読みするのかに影響を及ぼすネットワーク・インフラストラクチャの変数または定数コンポーネントを指すことができる。例えば、ゲーム・ストリーミング・セッション・パラメーター２５０は、帯域幅、バッファ・メモリー、ユーザー・インタラクティブ・アクション、先読みゲーム・アセットのサイズ、ストリーム・ゲーム・アセットのサイズ、およびエッジ・コンピューティング・インフラストラクチャを含むことができる。先読み命令には閾値が設定され(configure)、この閾値を評価して、先読み命令を無視するかまたは肯定するか判断することができる。閾値は、ゲーム・プラットフォームが先読みゲーム・アセットをインテリジェントに先読みするのに役立つゲーム・ストリーミング・セッション・パラメーターおよび先読みゲーム・アセットに基づいて定められる。これに関して、先読みゲーム・アセットを先読みするか否かは、更に、ゲーム・ストリーミング・セッション・パラメーター２５０を評価することに基づいてもよい。
【００５７】
[0063]  更に、ゲーム・プレーの他の面を改善するために、特殊な先読みゲーム・アセットも定めることができる。先読みゲーム・アセットは、破損アセット(corruption asset)として定義されてもよく、ゲーム・プレー中に破損を修復するために、この破損アセットがインテリジェントに使用される。例えば、低帯域幅がグラフィクスにおけるグリッチまたは乏しい解像度の原因となる場合がある。ゲーム・サーバーから直接ストリーミングされる低解像度のグラフィクスの代わりに、先読みされた破損アセットをトリガーし出力することができる。尚、ゲーム・ストリーミング・セッション・パラメーターにおける制限（例えば、低い帯域幅）によって生ずる破損を継ぎ目なく修復するために、破損アセットをゲーム・コンテキスト内に織り交ぜるとよいことが考えられる。以上のことの任意の他の組み合わせや変形も、本発明の実施形態では考えられる。
【００５８】
[0064]  エッジ・コンピューティング・インフラストラクチャ２０４は、エッジ・コンピューティングをゲーム・ストリーミング・セッションに提供する役割を担う。エッジ・コンピューティング・インフラストラクチャ２０４は、ゲーム・サーバー２０２から離れたゲーム・ストリーミング処理を提供する。これに関して、ゲームの実行はゲーム・サーバーにおいて行えることに変わりないが、処理されたゲーム・コンテンツの少なくとも一部が、先読み命令に基づいて送信される。具体的には、エッジ・ゲーム・ストリーミング・コンポーネント２３０は、ゲーム・アセットを先読みし、ストリーム・ゲーム・アセットを処理するように構成される。ときどき、先読みゲーム・アセットの先読みとストリーム・ゲーム・アセットの処理が同時に行われることもある。先読みゲーム・アセットが先読みされるのは、予想ゲーム・コンテキストをサポートするためであり、ストリーム・ゲーム・アセットは現在のゲーム・コンテキストをサポートする。先読みゲーム・アセットは、ゲーム・サーバー２０２とゲーム・プラットフォーム２０６との間で伝達される先読み命令に基づいて先読みされる。次いで、エッジ・コンピューティング・インフラストラクチャにおける補助ストレージから先読みゲーム・アセットを供給する ために、先読みゲーム・アセットは、ゲーム・プラットフォームからの命令に基づいて、エッジ・コンピューティング・インフラストラクチャ２０４からダウンロードされる。
【００５９】
[0065]  ゲーム・プラットフォーム２０６は、ゲーム・ストリーミング・セッションの間にゲーム・コンテンツを処理し、処理したゲーム・コンテンツを出力のために供給する役割を担う。内部ゲーム・ストリーミング・コンポーネント２４０および追加のコンポーネント（図示せず）が、ゲーム・プラットフォームにおけるゲーム・ストリーミングを容易にすることができる。具体的には、内部ゲーム・ストリーミング・コンポーネント２４０は、種々のゲーム・コンテキストに合わせて先読み命令を処理するように構成されている。先読み命令は、外部ゲーム・ストリーミング・コンポーネント２２０を有するゲーム・サーバー２０２から受け取ることができる。先読み命令は、予想ゲーム・コンテキストを考慮して、ゲーム・コンテキストをどのように先読みするかについての情報を含む。予想ゲーム・コンテキストは、ゲーム・プレーの現在のゲーム・コンテキストに基づくことができる。内部ゲーム・ストリーミング・コンポーネントは、ゲーム命令を評価し、先読み命令を実行する。先読み命令の評価は、ゲーム・セッション・パラメーターの監視を含んでもよい。実施形態では、内部ゲーム・ストリーミング・コンポーネント２４０が自律的に閾値を規定する(prescribe)ことができ、および／またはプログラミングされた命令が、先読みゲーム・アセットを引き出すための特定の命令を無視するまたは肯定するために使用することができるゲーム・セッション・ストリーム・パラメーターに、具体的に閾値を与えてもよい。インテリジェントな先読みは、ゲーム・ストリーミング・セッション・パラメーターを要因として考慮し(factor)ながら先読みゲーム・アセットを引き出すことを含む。インテリジェントな先読みは、ゲーム・ストリーミング・セッションの間に他の処理済みゲーム・コンテンツをストリーミングするゲーム・ストリーミング・セッションと同時に行うこともできる。これに関して、内部ゲーム・ストリーミング・コンポーネント２４０は、先読みゲーム・アセットを先読みする決定を行う前に、現在利用可能な帯域幅を評価することができる。先読みゲーム・アセットを先読みする決定のときに、先読みゲーム・アセットをエッジ・コンピューティング・インフラストラクチャに先読みし、予想ゲーム・コンテキストの間にストリーミングする。
【００６０】
[0066]  更に、内部ゲーム・ストリーミング・コンポーネント２４０は、処理したゲーム・コンテンツを出力する役割も担う。処理されたゲーム・コンテンツが、ストリーム・ゲーム・セットおよび先読みアセットの異なる変形や組み合わせであってもよい。先読み命令は、先読みゲーム・アセットの直接出力および組み合わせ出力に対する命令を含むことができる。例えば、ストリーミング・ゲーム・コンテキストのアセットの一部分が先読みゲーム・アセットであり、他の部分がストリーム・ゲーム・アセットであるのでもよい。先読みゲーム・アセットはエッジ・コンピューティング・インフラストラクチャ２０４からダウンロードされ、一方ストリーム・ゲーム・アセットはゲーム・サーバーから直接ストリーミングされる。ユーザー・アクションが受け取られてもよく、このユーザー・アクションに基づいて、ゲーム・ストリーミング処理のサイクルが継続する。
【００６１】
[0067]  これより図５に移り、ゲーム・コンテンツを先読みする方法５００を表す流れ図を示す。最初にブロック５１０において、分散型ネットワーク・インフラストラクチャにおいて、ゲーム・コンテンツを先読みするための先読み命令をゲーム・サーバーから受け取る。先読みゲーム・アセットは、ゲーム・ストリーミング・セッション内における先読みゲーム・アセットとして分類される。先読みゲーム・アセットは、ゲーム開発フェーズの間に先読みゲーム・アセットとして分類することもできる。また、追加のゲーム・アセットもストリーミング・ゲーム・アセットとして分類することができる。ブロック５２０において、先読みゲーム・アセットを先読みする。具体的には、ゲーム・サーバーに関連する主ストレージから先読みゲーム・アセットを先読みし、エッジ・コンピューティング・インフラストラクチャに関連する補助ストレージに格納する。先読みゲーム・アセットが使用される予想ゲーム・コンテキストに先立って、ゲーム・サーバーにおいて先読みゲーム・アセットを処理する。予想ゲーム・コンテキストは、複数のゲーム・コンテキストの１つであってもよく、各予想ゲーム・コンテキストは、ユーザーに一意のインタラクションによってゲーム・ストリーミング・セッションの間にトリガーされるゲーム・プレーの一部である。
【００６２】
[0068]  先読みゲーム・アセットは、予想コンテキストをトリガーするインタラクティブ・アクションを参照し、このインタラクティブ・アクションに基づいてゲーム・アセットを先読みすると決定したことに基づいて、先読みされてもよい。実施形態では、先読みゲーム・アセットは、更に、分散型ネットワーク・インフラストラクチャの１つ以上のゲーム・ストリーミング・セッション・パラメーターを監視および参照し、１つ以上のゲーム・ストリーミング・セッション・パラメーターの閾値が満たされることに基づいて、先読みゲーム・アセットを先読みすると決定したことに基づいて、先読みされてもよい。尚、１つ以上のゲーム・ストリーミング・セッション・パラメーターの閾値が満たされないときは、先読み命令を無視してよいことが考えられる。ブロック５３０において、予想ゲーム・コンテキストの出現時に、先読みゲーム・アセットを出力のために供給する。具体的には、エッジ・コンピューティング・インフラストラクチャにおける補助ストレージから先読みゲーム・アセットをダウンロードし、主ストレージからのストリーム・ゲーム・アセットと組み合わせる。ストリーム・ゲーム・アセットは、ゲーム・サーバーにおいて直接実行および処理される。
【００６３】
[0069]  これより図６に移り、ゲーム・コンテンツを先読みする方法６００を表す流れ図を示す。最初にブロック６１０において、分散型ネットワーク・インフラストラクチャにおいて、先読み命令をゲーム・プラットフォームに送信する。先読み命令は、ゲーム・プラットフォームに、先読みゲーム・アセットを先読みするように指令する。先読みゲーム・アセットは、ゲーム・ストリーミング・セッション内における先読みアセットとして分類される。また、先読み命令を、ゲーム・ストリーミング・セッション内における先読みアセットとして分類されたストリーム・ゲーム・アセットと関連付けることもできる。ブロック６２０において、ゲーム・プラットフォームから先読み要求を受ける。先読み要求は、少なくとも１つのゲーム・セッション・パラメーターを参照することに基づいて、ゲーム・プラットフォームにおいて生成される。ブロック６３０において、先読みゲーム・アセットを処理する。処理は、画像をレンダリングする、およびオーディオを用意するの内少なくとも１つを含むことができる。実施形態では、画像はビデオ内にレンダリングされ、オーディオはコード化される。ブロック６４０において、先読みゲーム・アセットを送信する。先読みゲーム・アセットの送信は、先読みゲーム・セットを主ストレージから補助ストレージにストリーミングすることを含む。予想ゲーム・コンテキストの出現時に先読みゲーム・アセットがエッジ・コンピューティング・インフラストラクチャからダウンロードされるように、補助ストレージはエッジ・コンピューティング・インフラストラクチャと関連付けられる。
【００６４】
[0070]  これより図７に移り、ゲーム・コンテンツを先読みする方法７００を表す流れ図を示す。最初にブロック７１０において、ゲームにおいてゲーム・アセットを使用するゲーム・コンテキストを識別する。ゲーム・コンテキストは、１つ以上の要因（例えば、現在のゲーム・コンテキスト、ユーザーのインタラクション）に基づいてトリガーされる、予想ゲーム・コンテキストとして定めることができる。ブロック７２０において、ゲーム・アセットを先読みゲーム・アセットとして分類する。実施形態では、少なくとも１つの追加のコンポーネントをストリーミング・ゲーム・アセットとして分類する。ブロック７３０において、先読み命令をゲーム・アセットのために生成する。先読み命令は、ゲーム・アセットの機能(functioning)を定める。先読み命令の生成は、付加的に、ゲーム・コンテキストを、他のゲーム・コンテキストと関係付けて、予想ゲーム・コンテキストとして分類し、ゲーム・アセットの使用を、予想ゲーム・コンテキスト中における先読みアセットとして定めることを含むこともできる。実施形態では、ゲーム・ストリーミング・セッション・パラメーターも識別し、先読み命令において閾値を設定し(configure)、先読みゲーム・アセットを求める要求を送る前に、この閾値を評価する。
【００６５】
[0071]  ブロック７４０において、ゲームのゲーム・コードに先読み命令を埋め込む。ブロック７５０において、このゲーム・コードの実行中に、先読み命令をゲーム・プラットフォームに送信する。先読み命令は、ゲーム・プラットフォームに、ゲーム・アセットを先読みすることを命令する。ブロック７６０において、先読み命令に応答して、ゲーム・プラットフォームから先読み要求を受ける。ブロック７７０において、先読みゲーム・アセットを処理する。ゲーム・アセットは、レンダリングされたグラフィック、および／または用意されたオーディオであってもよい。ブロック７８０において、先読みゲーム・アセットをエッジ・コンピューティング・インフラストラクチャに送信する。エッジ・コンピューティング・インフラストラクチャは、先読みゲーム・アセットのための補助ストレージとして機能し、予想ゲーム・コンテキストの出現時に、先読みゲーム・アセットがエッジ・コンピューティング・インフラストラクチャからダウンロードされる。尚、エッジ・コンピューティング・インフラストラクチャへの送信は、予想ゲーム・コンテキストのための先読みゲーム・アセット、および現在のゲーム・コンテキストのためのストリーム・ゲーム・アセットを同時に送信することを含んでもよいことが考えられる。
【００６６】
[0072]  これより図８に移り、ゲーム・コンテンツを先読みする方法８００を表す流れ図を示す。最初にブロック８１０において、ゲーム・コンテンツに対するゲーム・コンテキストを識別する。ブロック８２０において、ゲーム・コンテキストの少なくとも１つのコンポーネントを、インタラクティブ性のレベルによって分類する。ゲーム・コンテキストの分類は、ゲーム開発者に基づく分類、プレー−検査に基づく分類、または機械学習に基づく分類に基づくことができる。ブロック８３０において、ゲーム・コンテキストのコンポーネントに対するインタラクティブ性のレベルに少なくとも基づいて、ゲーム・コンテキストをストリーミングする。尚、ゲーム・コンテキストのインタラクティブ性のレベルに基づくゲーム・コンテキストのストリーミングは、更に、１つ以上のゲーム・ストリーミング制約を識別すること、および１つ以上のゲーム・ストリーミング制約の閾値を設定する(configure)ことも含み、閾値は、ゲーム・コンテキストのインタラクティブ性のレベルに基づくことが考えられる。
【００６７】
[0073]  実施形態では、第１レベルのインタラクティブ性を有する第１ゲーム・コンポーネントをエッジ・コンピューティング・インフラストラクチャに先読みすることができるように、先読み命令を定めることができる。予想ゲーム・コンテキストを識別したとき、第１ゲーム・コンポーネントをエッジ・コンピューティング・インフラストラクチャからストリーミングすることができ、その間第２ゲーム・コンポーネントを同時にゲーム・サーバーからストリーミングする。第２ゲーム・コンポーネントは、第２レベルのインタラクティブ性を有する。エッジ・コンピューティング・インフラストラクチャは、予想ゲーム・コンテキストの出現時に、ゲーム・コンテキスト・コンポーネントがエッジ・コンピューティング・インフラストラクチャからダウンロードされるように、インタラクティブ性がないことに関連付けられたゲーム・コンテキストのための補助ストレージとして機能する。
【００６８】
[0074]  以上、本発明の実施形態について、特定の実施形態に関係付けて説明したが、これらの実施形態は、あらゆる観点において、限定的ではなく例示的であることを意図している。本発明が属する技術分野における当業者には、本発明の範囲から逸脱することなく、代替実施形態も明らかであろう。
【００６９】
[0075]  以上のことから、本発明は、先に明記した全ての目的(ends and objects)を、自明であり構造に固有である他の利点と共に達成するのに十分に適応することが分かるであろう。
【００７０】
[0076]  尚、ある種の特徴およびサブコンビネーションは有用であり、他の特徴やサブコンビネーションを引用することなく採用されてもよいことは理解されよう。これは、特許請求の範囲によって想定されており、特許請求の範囲内に該当することと考えられる。
【図１】
0006710201.tif 000002
【図２Ａ】
0006710201.tif 000003
【図２Ｂ】
0006710201.tif 000004
【図３】
0006710201.tif 000005
【図４】
0006710201.tif 000006
【図５】
0006710201.tif 000007
【図６】
0006710201.tif 000008
【図７】
0006710201.tif 000009
【図８】
0006710201.tif 000010