(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイスによって実行されるとき、ゲームプレイをゲームサーバーからクライアントに移動する方法を実行するコンピュータ実行可能命令を実施させる命令を記憶した、１つまたは複数のコンピュータ記憶媒体であって、前記方法が、
ゲームサーバーにおいて、遠隔ゲームセッション内でビデオゲームを実行するステップであって、データ接続(data connection)を介して制御入力が前記クライアントから受信され、前記データ制御入力に応答して、ゲームオブジェクトが操作され、前記ビデオゲームのレンダリングされた画像が前記データ接続を介して前記クライアントに伝達される、実行するステップと、
前記ゲームサーバーにおいて、前記ビデオゲームに関するゲーム移動(game-migration)トリガ事象を検出するステップと、
検出する前記ステップに応答して、前記ゲームサーバーから前記クライアントへのゲーム実行の切替えを開始するためのゲーム移動命令(game-migration instruction)を前記クライアントに伝達するステップと、
前記ゲームサーバー上での前記ビデオゲームの実行を終了するステップと
を含む、コンピュータ記憶媒体。
【請求項２】
前記実行するステップの進行と同時に、前記ビデオゲームに関する実行可能ゲームコードの第１のブロックを前記クライアントに伝達するステップをさらに含む、請求項１に記載の媒体。
【請求項３】
前記第１のブロックが、前記ゲームサーバーによって現在実行されている前記ビデオゲームの一部をプレイするために実行可能である、請求項２に記載の媒体。
【請求項４】
コンピューティングデバイスによって実行されるとき、ゲームプレイをクライアントからゲームサーバーに移動する方法を実行するコンピュータ実行可能命令を実施させる命令を記憶した、１つまたは複数のコンピュータ記憶媒体であって、前記方法が、
クライアントにおいて、ビデオゲームを実行するステップであって、制御入力がローカル・ゲーム・コントローラーから受信され、前記データ制御入力に応答して、ゲームオブジェクトが操作され、前記ビデオゲームのレンダリングされた画像が前記クライアントによって生成される、実行するステップと、
前記クライアントにおいて、前記ビデオゲームに関するゲーム移動トリガ事象を検出するステップと、
検出する前記ステップに応答して、前記クライアントから前記ゲームサーバーへのゲーム実行の切替えを開始するためのゲーム移動命令をゲームサーバーに伝達するステップと、
前記クライアント上での前記ビデオゲームの実行を終了するステップと、
ローカル・ゲーム・コントローラーから受信された追加の制御入力を前記ゲームサーバーに伝達するステップと、
前記クライアントにおいて、前記ビデオゲームのレンダリングされた画像を前記ゲームサーバーから受信するステップと
を含む、コンピュータ記憶媒体。
【請求項５】
前記クライアントにおいて、前記レンダリングされた画像を、前記ゲームサーバーから受信するステップと同時に、前記ビデオゲームに関する実行可能ゲームコードのブロックを受信するステップをさらに含む、請求項４に記載の媒体。
【請求項６】
前記ゲーム移動トリガ事象が、ユーザーが前記ビデオゲーム内で、あるレベルを終了することを含む、請求項４に記載の媒体。
【請求項７】
前記データ制御入力よりも少ないデータを含むアップロードフォーマットに前記データ制御入力を前処理するステップをさらに含む、請求項４に記載の媒体。
【請求項８】
クライアントとゲームサーバーとの間でビデオゲームの実行を移動する方法であって、
前記クライアント上に保存されたゲームの部分版(partial version)をプレイするための要求を受信するステップであって、前記部分版が、前記ゲームの完全版(full version)をプレイするために必要とされるすべてのゲームコンテンツに満たないゲームコンテンツを含む、受信するステップと、
前記ゲームの前記部分版を前記クライアント上のゲーム実行環境内にロードするステップと、
前記クライアントにおいて、前記ゲームの前記部分版を実行するステップであって、制御入力がローカル・ゲーム・コントローラーから受信され、前記データ制御入力に応答して、ゲームオブジェクトが操作され、前記ゲームの前記部分版のレンダリングされた画像が前記クライアントによって生成される、実行するステップと、
前記ゲームの前記完全版を購入するための要求を受信するステップと、
前記ゲームの前記完全版に関する購入要求を前記ゲームサーバーに伝達するステップと、
前記ゲームの前記完全版に関する追加の実行可能ゲームコンテンツを前記ゲームサーバーから受信するステップと、
前記クライアントにおいて、前記ゲームの前記部分版に関するゲーム移動トリガ事象を検出するステップと、
検出する前記ステップに応答して、前記クライアントから前記ゲームサーバーへのゲーム実行の切替えを開始するためのゲーム移動命令をゲームサーバーに伝達するステップと、
前記クライアント上での前記ゲームの前記部分版の実行を終了するステップと、
ローカル・ゲーム・コントローラーから受信された追加の制御入力を前記ゲームサーバーに伝達するステップと、
前記ゲームの前記部分版のレンダリングされた画像を前記ゲームサーバーから受信するステップとを含む方法。
【請求項９】
前記ゲームの前記完全版に関する追加の実行可能ゲームコンテンツを前記ゲームサーバーから受信する前記ステップが、前記クライアント上で進行中の前記ゲームの前記部分版のゲームプレイと同時に生じる、請求項８に記載の方法。
【請求項１０】
前記クライアント上での前記ゲームの前記部分版の実行を終了する前記ステップが、中断を引き起こさない、ゲームプレイ内のあるポイントで生じる、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明の一実施例は、例えば、ゲーム移動に関する。
【背景技術】
【０００２】
[0001]ビデオゲームは、オンラインで購入され、プレイするためにビデオゲーム機にダウンロードされることが可能である。プレイヤーは、ゲーム全体がダウンロードされるまで、ゲームのプレイを開始するのを待つ必要がある。ビデオゲームは、実行可能ゲームコードをクライアントデバイスにダウンロードせずに、サーバー上でプレイされることも可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[0002]本概要は、詳細な説明において下でさらに説明される、精選された概念を簡素化された形で紹介するために提供される。本概要は、特許請求される主題の主要な特徴または重要な特徴を識別することが意図されず、特許請求される主題の範囲を判断する際の助けとして単独で使用されることも意図されない。
【課題を解決するための手段】
【０００４】
[0003]本発明の実施形態は、ゲームプレイがサーバー実行ビデオゲームとクライアント実行ビデオゲームとの間を往復して移動するのを可能にする。例えば、ユーザーは、サーバー上で実行するビデオゲームのプレイを開始し、次いで、プレイをゲーム機などのクライアントデバイスに移動することができる。ゲームがサーバー上で実行しているとき、サーバーはゲームコードを実行して、ビデオ画像をレンダリングして、画像をクライアントに伝達する。クライアントは、ゲーム制御コマンドをサーバーに伝達することができる。
【０００５】
[0004]クライアントがゲーム実行を引き継ぐ前に、ゲームファイルはクライアントデバイスにアクセス可能であることが必要である。一実施形態では、サーバーは、ゲームプレイの間、ゲームファイルをクライアントデバイスにダウンロードする。ダウンロード速度をゲームプレイによって消費されないユーザーの帯域幅部分に限定することによって、進行中のゲーム経験の中断または劣化を防ぐために、ダウンロードはスロットル調整され得る。ゲームファイル、またはゲームファイルの第１のブロックがダウンロードされると、ゲームプレイはクライアントに切り替えることができる。
【０００６】
[0005]ゲームプレイは、クライアント上で開始して、サーバーに遷移することもできる。例えば、ユーザーは、ユーザーがゲームファイルをクライアント上に記憶していない、ゲーム内のあるポイントに達することができる。例えば、ユーザーは、第１のゲームブロックの一部である第１のレベルをプレイしており、次いで、まだダウンロードされていない第４のゲームブロックの一部である第６のレベルにスキップすることを望む場合がある。この場合、第４のゲームブロックがダウンロードされるまで、ゲームプレイはクラウドに遷移して戻ることができる。第４のブロックのダウンロードが完了すると、ユーザーはゲーム機上でのプレイに遷移して戻ることができる。一実施形態では、ゲーム内の非中断切替えポイント（ｎｏｎｄｉｓｒｕｐｔｉｖｅ  ｓｗｉｔｃｈｉｎｇ  ｐｏｉｎｔ）に達するとき、ユーザーはクライアントとサーバーとの間で遷移される。あるレベルの終点に達することは、非中断切替えポイントの一例である。
【０００７】
[0006]添付の図面を参照して、本発明の実施形態が下で詳細に説明される。
【図面の簡単な説明】
【０００８】
【図１】[0007]本発明の実施形態を実施するのに適した、例示的なコンピューティング環境のブロック図である。
【図２】[0008]本発明のある実施形態による、オンラインゲーム環境の図である。
【図３】[0009]本発明のある実施形態による、ゲーム移動環境の図である。
【図４】[0010]本発明のある実施形態による、ゲームサーバーからゲームクライアントへのゲームプレイの移動を促すゲーム環境内の伝達を示すシーケンス図である。
【図５】[0011]本発明のある実施形態による、クライアント・ゲーム・デバイスからサーバー配置ゲームサービス（ｓｅｒｖｅｒ  ｌｏｃａｔｅｄ  ｇａｍｉｎｇ  ｓｅｒｖｉｃｅ）へのゲームの移動の間にゲーム環境内で生じる伝達を示すシーケンス図である。
【図６】[0012]本発明のある実施形態による、ゲームプレイをゲームサーバーからクライアントデバイスに移動する方法を示す流れ図である。
【図７】[0013]本発明のある実施形態による、ゲームプレイをクライアントデバイスからゲームサーバーに移動する方法を示す流れ図である。
【図８】[0014]本発明のある実施形態による、クライアントとゲームサーバーとの間のビデオゲームの移動実行の方法を示す流れ図である。
【発明を実施するための形態】
【０００９】
[0015]本発明の実施形態の主題は、法定要件を満たすための特異性を用いて本明細書で説明される。しかし、この説明自体は、本特許の範囲を限定することが意図されない。むしろ、本発明者らは、他の現在もしくは今後の技術に関して、異なるステップまたは本書で説明されるステップに類似したステップの組合せを含めるために、特許請求される主題が他の様式で実施されることも可能であることを企図している。さらに、「ステップ」および／または「ブロック」という用語は、本明細書で、用いられる方法の異なる要素を暗示するために使用される場合があるが、個々のステップの順序が明示的に説明されていない限り、かつ個々のステップの順序が明示的に説明されている場合を除いて、これらの用語は本明細書で開示される様々なステップ間の何らかの特定の順序を暗示するとして解釈されるべきではない。
【００１０】
[0016]本発明の実施形態は、ゲームプレイがサーバー実行ビデオゲームとクライアント実行ビデオゲームとの間を往復して移動するのを可能にする。例えば、ユーザーは、サーバー上で実行するビデオゲームを開始し、次いで、ゲーム機などのクライアントデバイスにプレイを移動させることができる。ゲームがサーバー上で実行しているとき、サーバーは、ゲームコードを実行して、ビデオ画像をレンダリングして、画像をクライアントに伝達する。クライアントは、ゲーム制御コマンドをサーバーに伝達することができる。
【００１１】
[0017]本出願で使用される場合、ゲームを実行することは、ビデオゲーム画像をレンダリングすることを含む。レンダリングは、ゲーム・シーン・ファイルからビデオゲーム画像を生成するプロセスである。シーンファイルは、形状と、照明と、テキストと、ゲームオブジェクトを記述する他の情報とを含む。例示的なゲームオブジェクトは、背景オブジェクトおよび前景オブジェクトと、ゲームキャラクターと、ゲームウエポン（ｇａｍｅ  ｗｅａｐｏｎ）と、ゲーム特殊効果と、ビデオ・ゲーム・シーンの他の特徴とを含む。オブジェクト自体は、カメラによって拾い上げられたジェスチャ、タッチスクリーン上のタッチ入力、ゲームコントローラー上のジョイスティック入力およびボタン入力、キーストローク、音声コマンド、ならびに他の入力など、ユーザー入力に応答して操作され得る。レンダリングは、グラフィックス・プロセシング・ユニット（ＧＰＵ）に関連するグラフィックス・パイプラインを介して行われ得る。レンダリングされると、画像は表示のために出力され得る。
【００１２】
[0018]本発明に対する実施形態は、サーバーまたはクライアントのいずれかの上で実行するゲームを説明する場合がある。デバイスがゲーム画像をレンダリングするとき、ゲームはそのデバイス上で実行するが、他のデバイスはゲームプレイの一部である処理ステップを実行することが可能である。例えば、クライアントは、制御入力を前処理して、それらの制御入力を、ゲームコードを実行して、クライアントに伝達し戻される画像をレンダリングするサーバーに伝達することができる。加えて、クライアントデバイスは、レンダリングされた画像を表示のためにスケーリングすることができる。この場合、サーバーはゲームを実行するとして説明されるが、クライアントデバイスは何らかのゲームプレイ関係の処理および表示関係の処理を実行する。複数のプレイヤーがネットワークを介して接続されるマルチプレイヤーゲームでは、サーバーは、レンダリングするために、形状および他のゲーム情報をクライアントに送信することができる。
【００１３】
[0019]一実施形態では、ユーザーはサーバー上でゲームのプレイを開始する。述べたように、サーバー上でゲームをプレイするとして説明されるが、画像は、サーバーから、その画像が表示されるクライアントデバイスに送信され得る。同様に、制御およびゲーム入力は、クライアントから、ゲームを操作して、ビデオゲーム画像をレンダリングするためにそれらの制御およびゲーム入力が使用されるサーバーにアップロードされ得る。ある時点で、移動プロセスの開始を引き起こすトリガ事象が生じ得る。例えば、ユーザーは、プレイされているゲームの完全版を購入することを選択することができる。この時点で、ゲームサービスがゲームコードのブロックをクライアントデバイスにダウンロードするためにどの程度の帯域幅が利用可能であるかを判断する間、ユーザーはサーバー上でゲームのプレイを継続する。ゲームセッションが１２Ｍｂｐｓ接続の６Ｍｂｐｓを現在利用している場合、ゲーム移動構成要素は、利用可能な他の６Ｍｂｐｓ内でゲーム機への全ゲームのダウンロードを開始することができる。ゲームサービスは、帯域幅使用を継続的に監視して、ダウンロードをスロットル調整して、ゲーム経験の劣化を防ぐことができる。例えば、ゲームセッションに加えて、ユーザーがミュージック・ストリーミング・サービスにアクセスして、利用可能な帯域幅が４Ｍｂｐｓに削減された場合、それに応じて、ダウンロードは４Ｍｂｐｓにスロットル調整されることになる。
【００１４】
[0020]クライアントがゲーム実行を引き継ぐ前に、ゲームファイルはクライアントデバイスにアクセス可能であることが必要である。一実施形態では、サーバーはゲームプレイの間、ゲームファイルをクライアントデバイスにダウンロードする。ダウンロード速度をゲームプレイによって消費されないユーザーの帯域幅部分に制限することによって、進行中のゲーム経験の中断または劣化を防ぐために、ダウンロードはスロットル調整され得る。ゲームファイル、またはゲームファイルの第１のブロックがダウンロードされると、ゲームプレイはクライアントに切り替えることができる。
【００１５】
[0021]ゲームプレイは、クライアント上で開始して、サーバーに遷移することもできる。例えば、ユーザーは、ユーザーがゲームファイルをクライアント上に記憶していない、ゲーム内のあるポイントに達することができる。ユーザーは、第１のゲームブロックの一部である第１のレベルをプレイしており、次いで、まだダウンロードされていない第４番目のゲームブロックの一部である第６のレベルにスキップすることを望む場合がある。この場合、第４のゲームブロックがダウンロードされるまで、ゲームプレイはクラウドに遷移して戻ることができる。ダウンロードが完了すると、ユーザーはゲーム機上でのプレイに遷移して戻ることができる。一実施形態では、ゲーム内の非中断切替えポイントに達するとき、ユーザーはクライアントとサーバーとの間で遷移される。あるレベルの終点に達することは、非中断切替えポイントの一例である。
【００１６】
[0022]本発明の実施形態の概要を手短に説明してきたが、本発明の実施形態を実装する際に使用するのに適したある例示的な動作環境が下で説明される。
例示的な動作環境
[0023]図面全体を参照し、当初、特に図１を参照すると、本発明の実施形態を実装するための例示的な動作環境の全体が示され、コンピューティングデバイス１００と呼ばれる。コンピューティングデバイス１００は、適切なコンピューティング環境の単なる一例であり、本発明の使用または機能の範囲に関する何らかの限定を示唆することが意図されない。また、コンピューティングデバイス１００は、例示される構成要素のうちのいずれか１つもしくはそれらの組合せに関する何らかの依存性または要件を有するとして解釈されるべきでない。
【００１７】
[0024]本発明は、コンピュータコードあるいは、コンピュータ、または、情報携帯端末もしくは他のハンドヘルドデバイスなど、他の機械によって実行されている、プログラム構成要素など、コンピュータ実行可能命令を含む機械使用可能命令の一般的な文脈で説明される場合がある。全体に、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含めて、プログラム構成要素は、特定のタスクを実行するか、または特定の抽象データタイプを実装するコードを指す。本発明の実施形態は、ハンドヘルドデバイス、家庭用電化製品、汎用コンピュータ、専用コンピューティングデバイスなどを含めて、様々なシステム構成で実践され得る。本発明の実施形態は、タスクが通信ネットワークを介して連結される遠隔処理デバイスによって実行される分散型コンピューティング環境でも実践され得る。
【００１８】
[0025]図１を引き続き参照すると、コンピューティングデバイス１００は、以下のデバイス、すなわち、メモリ１１２と、１つまたは複数のプロセッサ１１４と、１つまたは複数の提示構成要素１１６と、入出力（Ｉ／Ｏ）ポート１１８と、Ｉ／Ｏ構成要素１２０と、例示的な電源１２２を直接的または間接的に結合するバス１１０を含む。バス１１０は（アドレスバス、データバス、またはそれらの組合せなど）１つもしくは複数のバスであってよいものを表す。図１の様々なブロックは、分かりやすいように、ラインを用いて示されるが、実際には、様々な構成要素を描写することはそれほど明瞭ではなく、例えて言えば、ラインはより正確にはグレイおよび曖昧になる。例えば、ディスプレイデバイスなどの提示構成要素はＩ／Ｏ構成要素１２０であると見なすことができる。また、プロセッサはメモリを有する。本発明の発明者らは、そういうものが本技術分野の性質であることを認識し、図１の略図は本発明の１つまたは複数の実施形態に関して使用され得る例示的なコンピューティングデバイスの単なる例であることを繰り返し表明する。「ワークステーション」、「サーバー」、「ラップトップ」、「ハンドヘルドデバイス」などの範疇は区別されないが、これは、これらすべてが図１の範囲内であると企図され、かつ「コンピュータ」または「コンピューティングデバイス」を指すためである。
【００１９】
[0026]コンピューティングデバイス１００は、典型的には、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピューティングデバイス１００によってアクセスされ得る任意の利用可能な媒体であってよく、揮発性媒体と不揮発性媒体、取外し可能媒体と取外し不可能媒体の両方を含む。限定ではなく、例として、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体とを含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、もしくは他のデータなど、情報を記憶するための任意の方法または技術で実装される揮発性媒体と不揮発性媒体、取外し可能媒体と取外し不可能媒体の両方を含む。
【００２０】
[0027]コンピュータ記憶媒体は、ＲＡＭと、ＲＯＭと、ＥＥＰＲＯＭと、フラッシュメモリまたは他のメモリ技術と、ＣＤ−ＲＯＭと、デジタル多用途ディスク（ＤＶＤ）または他の光ディスクストレージと、磁気カセットと、磁気テープと、磁気ディスクストレージまたは他の磁気記憶媒体とを含む。コンピュータ記憶媒体は、伝搬データ信号を含まない。
【００２１】
[0028]通信媒体は、典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波もしくは他の移送機構など、変調データ信号の形で実施し、任意の情報配信媒体を含む。「変調データ信号」という用語は、その特性セットのうちの１つもしくは複数を有する信号、または信号内の情報を符号化するような形で変更される信号を意味する。限定ではなく、例として、通信媒体は、配線ネットワークまたは直接配線接続など、ワイヤード媒体と、音響媒体、ＲＦ媒体、赤外線媒体、および他のワイヤレス媒体などのワイヤレス媒体とを含む。上記のうちのいずれかの組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【００２２】
[0029]メモリ１１２は、揮発性メモリおよび／または不揮発性メモリの形でコンピュータ記憶媒体を含む。メモリ１１２は、取外し可能であってよく、取外し不可能であってよく、またはそれらの組合せであってもよい。例示的なメモリは、固体メモリ、ハードドライブ、光ディスクドライブなどを含む。コンピューティングデバイス１００は、バス１１０、メモリ１１２、またはＩ／Ｏ構成要素１２０など、様々なエンティティからデータを読み取る、１つもしくは複数のプロセッサ１１４を含む。提示構成要素１１６は、データ表示をユーザーまたは他のデバイスに提示する。例示的な提示構成要素１１６は、ディスプレイデバイス、スピーカ、印刷構成要素、振動構成要素などを含む。Ｉ／Ｏポート１１８は、コンピューティングデバイス１００が、そのうちのいくつかは内蔵型であり得る、Ｉ／Ｏ構成要素１２０を含む他のデバイスに論理的に結合されるのを可能にする。例示的なＩ／Ｏ構成要素１２０は、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、プリンタ、ワイヤレスデバイスなどを含む。
例示的なオンラインゲーム環境
[0030]次に図２を参照すると、本発明のある実施形態によるオンラインゲーム環境２００が示される。オンラインゲーム環境２００は、ネットワーク２２０を介してゲームサービス２３０に接続された様々なゲームクライアントを含む。例示的なゲームクライアントは、ゲーム機２１０と、タブレット２１２と、パーソナルコンピュータ２１４とを含む。スマートフォンなど、他のゲームクライアントの使用も可能である。ゲーム機２１０は、ゲーム機２１０に通信可能に結合された、１つまたは複数のゲームコントローラーを有することが可能である。一実施形態では、タブレット２１２は、ゲーム機２１０またはパーソナルコンピュータ２１４用の入力デバイスとして機能し得る。別の実施形態では、タブレット２１２は、独立型ゲームクライアントである。ネットワーク２２０は、インターネットなど、広域ネットワークであってよい。
【００２３】
[0031]ゲームサービス２３０は、互いに通信可能に結合された複数のコンピューティングデバイスを含む。一実施形態では、ゲームサービス２３０は１つまたは複数のサーバーファームを使用して実装される。サーバーファームは、世界中の都市を含めて、様々な地理的領域にわたって広がり得る。このシナリオでは、ゲームクライアントは、最も近接するサーバーファームに接続することができる。本発明の実施形態は、このセットアップに限定されない。
【００２４】
[0032]ゲームサービス２３０は、ゲームがゲームサービス２３０によって提供されるコンピューティングデバイス内で実行されるのを可能にする。ゲームサービスとゲームクライアントとの間の通信セッションは、入力トラフィックをゲームサービス２３０に搬送して、レンダリングされたゲーム画像を戻す。この実施形態では、ゲームサービスの一部であるコンピューティングデバイスは、様々なゲームクライアントに関連する入力デバイスによって生成された制御ストリームを使用して、ビデオゲームコードを実行する。レンダリングされたビデオゲームは、次いで、ネットワークを介して、レンダリングされたゲームが表示のために出力されるゲームクライアントに伝達される。
ゲーム移動のための例示的なゲームクライアントおよびゲームサービス
[0033]次に図３を参照すると、本発明のある実施形態による、例示的なゲーム移動環境３００が示される。ゲーム移動環境３００は、ネットワーク３３０を介してゲームサーバー３４０に通信可能に結合されたゲームクライアント３１０を含む。一実施形態では、ネットワークはインターネットであってよい。ゲームクライアント３１０は、第１のゲーム入力デバイス３１２と、第２のゲーム入力デバイス３１４と、ディスプレイ３１６とに接続される。例示的なゲーム入力デバイスは、ゲームコントローラーと、キーボードと、マウスと、タッチパッドと、タッチスクリーンと、音声コマンドを受信するためのマイクロフォンと、デプスカメラと、ビデオカメラと、キーボードと、トラックボールとを含む。本発明の実施形態は、これらの入力デバイスに限定されない。ディスプレイデバイス３１６は、ビデオ・ゲーム・コンテンツを表示することができる。例えば、ディスプレイ３１６は、テレビジョンまたはコンピュータスクリーンであってよい。別の実施形態では、ディスプレイ３１６は、ゲームクライアント３１０に統合されたタッチスクリーンである。
【００２５】
[0034]ゲームクライアント３１０は、ビデオゲームを実行することが可能なコンピューティングデバイスである。ゲームクライアント３１０は、タブレットまたはラップトップコンピュータであってよい。別の実施形態では、ゲームクライアント３１０はゲーム機であり、ディスプレイ３１６はゲーム機に通信可能に接続された遠隔ディスプレイである。ゲームクライアント３１０は、動作環境３２０と、ゲーム移動構成要素３２１と、ゲーム実行環境３２２と、ゲーム・データ・ストア３２４と、ゲーム・サービス・クライアント３２６と、プレイヤー・プロファイル・データ・ストア３２８とを含む。
【００２６】
[0035]動作環境３２０は、ハードウェアを管理して、ゲームクライアント３１０上で実行するアプリケーションにサービスを提供するオペレーティングシステムによって提供され得る。動作環境は、クライアントリソースを、ゲーム移動の一環として、異なるアプリケーションに割り振ることができる。例えば、ゲームプレイがゲームクライアント３１０に移動すると、動作環境はディスプレイの制御をゲーム実行環境３２２に与えることができる。
【００２７】
[0036]ゲーム移動構成要素３２１は、クライアント３１０によって実行されるゲーム移動機能を管理する。ゲーム移動構成要素３２１は、クライアント３１０からゲームサーバー３４０へのゲームプレイの移動を開始することができる。ゲーム移動構成要素３２１は、ゲームプレイをゲームサーバー３４０からクライアント３１０に移動させるのに参加することも可能である。ゲーム移動構成要素３２１は、ゲームサーバー３４０上で実行するゲームサービスに連絡して、ゲームセッションをゲームサーバー３４０に移動することを要求することが可能である。この要求は、その要求が関連する特定のゲーム、ならびに現在のゲームがゲーム実行環境３２２内で実行している場合、現在のゲームの状態を含み得る。ゲームプレイは、サーバーから受信された命令またはトリガ事象の検出に応答して移動され得る。ゲーム移動構成要素３２１はトリガ事象を検出することができる。
【００２８】
[0037]いくつかのトリガ事象が可能である。ゲームの次の部分がクライアント上でプレイするために利用可能になるまで、部分的にダウンロードされたゲームの終点に達することがプレイをサーバー３４０に移動させるトリガである、いくつかのシナリオが存在する。１つのシナリオでは、ユーザーはユーザーがレベル１から３までをプレイするのを可能にするブロックなど、ブロックの形でゲームの第１の部分をダウンロードする。ユーザーがレベル３の終点に近づき、次のブロックがまだダウンロードされていないと、トリガ事象が認識され得る。レベル３の終点に達したとき、ユーザーがサーバー上でレベル４をプレイするのを可能にするゲーム移動が生じることになる。
【００２９】
[0038]別の実施形態では、ゲーム購入事象がトリガである。ゲームのデモ部分が終わるとき、ゲームの残りの部分をまずダウンロードさせずに、ゲームの完全版を購入するとすぐに、ゲームプレイをゲームクライアント３１０からサーバー３４０に移動することができる。別のシナリオでは、ゲーム機に完全にダウンロードされたゲームすら、サーバーによってだけ提供されるゲーム経験またはゲームレベルを有することが可能である。例えば、ゲームは、非常に大型で、サーバー上でだけ利用可能な最終レベルを有することが可能である。例えば、最終レベルは、ユーザーが数千人の悪人のうちの１人としてプレイするのを可能にし得る。
【００３０】
[0039]ゲーム実行環境３２２は、ゲームのインスタンスを実行するために必要とされる、クライアント３１０上のゲームリソースを含む。ゲーム実行環境３２２は、コンピューティングおよびビデオ処理とともにアクティブメモリを含む。ゲーム実行環境３２２は、ゲーム制御を受信して、そのプログラミングに従って、ゲームを操作および進展させる。一実施形態では、ゲーム実行環境３２２は、ゲームクライアントに伝達される、レンダリングされたビデオストリームを出力する。他の実施形態では、ゲーム実行環境３２２は、ゲームビデオをレンダリングするために、ゲームクライアント上のローカルオブジェクトと組み合わされることが可能なゲーム形状、または他の提示を出力する。
【００３１】
[0040]ゲーム・データ・ストア３２４は、ダウンロードされたゲームと、部分的にダウンロードされたゲームとを記憶する。ゲームは、プレイ可能ブロックの形でダウンロードされ得る。例えば、第１のプレイ可能ブロックは、プレイヤーが第１のレベルをプレイするのを可能にし得る。一実施形態では、ブロックは分割され、これは、レベル変更など、ゲーム遷移ポイントで開始および終了する。ゲームをプレイするために、ゲームはゲーム・データ・ストア３２４からゲーム実行環境３２２に関連するアクティブメモリ内にロードされることが必要であり得る。
【００３２】
[0041]ゲーム・サービス・クライアント３２６は、サーバー３４０上で実行するゲームサービスから受信された、レンダリングされたビデオゲーム画像を表示するクライアントアプリケーションである。ゲーム・サービス・クライアント３２６は、ゲーム入力を処理して、それを、サーバー３４０に伝達される、容易にアップロード可能なフォーマットに変更することも可能である。ゲーム・サービス・クライアント３２６は、サーバー３４０から受信された、レンダリングされたビデオゲーム画像をディスプレイ３１６のために最適化されたサイズにスケーリングすることも可能である。
【００３３】
[0042]プレイヤー・プロファイル・データ・ストア３２８は、個々のゲームに関するプレイヤープロファイル情報を記憶する。プレイヤープロファイル情報は、個々のゲームに関するツームストーン（ｔｏｍｂｓｔｏｎｅ）、またはゲーム保存データを保存することも可能である。このプレイヤー・プロファイル・データまたはゲーム進展データは、ゲーム移動プロセスの一環として往復して伝達され得る。例えば、ゲームがサーバー３４０からゲームクライアント３１０に移動されるとき、ゲーム保存ファイル、またはツームストーンはゲームクライアント３１０に伝達され得る。ゲーム保存ファイルとツームストーンは両方ともゲーム進展を記録する。ゲーム実行環境３２２は、次いで、ゲーム保存データを読み取って、プレイヤーがサーバー上に残されたとき、ゲームを開始する。ゲームプレイがクライアントからサーバーに移動するとき、ゲーム保存データおよびプレイヤープロファイル情報がゲームクライアント３１０からサーバー３４０にアップロードされる逆のシナリオも可能である。
【００３４】
[0043]ゲームサーバー３４０は、接続マネージャ３４２と、プレイヤー・プロファイル・データ・ストア３４４と、ゲーム移動マネージャ３４６と、ゲーム実行環境３４８と、ゲーム・データ・ストア３５０と、ゲームマネージャ３５２と、ゲーム販売促進マネージャ３５４とを含む。単一のボックスとして示されるが、ゲームサーバー３４０は、多数の機械を備えた１つのサーバーファームであり得るか、またはいくつかのサーバーファームであることすら可能である。
【００３５】
[0044]接続マネージャ３４２はクライアント３１０とサーバー３４０との間の接続を構築する。接続マネージャ３４２は、ユーザーがサーバー３４０によって提供されるゲームサービスにアクセスすることが許可されることを確実にするために、様々な認証機構を提供することも可能である。接続マネージャ３４２は、接続内で利用可能な帯域を解析して、ゲームプレイが劣化しないことを確実にするために、ゲームプレイの間、ゲームのダウンロードをスロットル調整することも可能である。
【００３６】
[0045]プレイヤー・プロファイル・データ・ストア３４４は、プレイヤー情報を構築および記憶するために、接続マネージャ３４２と共働することができる。プレイヤープロファイルの一部は、プレイヤーの名前、アドレス、およびクレジットカード情報など、人口統計情報および金融情報、またはゲームサービスによって提供されるゲームおよび経験の代金を支払うため、もしくは購入するための他の機構を含み得る。
【００３７】
[0046]加えて、プレイヤー・プロファイル・データ・ストア３４４は、個々のゲーム内のプレイヤーの進展を記録することができる。プレイヤーがゲームを進めると、プレイヤーの得点と、ゲームレベルへのアクセスとが記憶され得る。さらに、プレイヤー・プロファイル・データ・ストア３４４は、言語選択など、個々のプレイヤー選択に関する情報を記憶することができる。プレイヤーのゲームクライアント、およびネットワーク接続の速度に関する情報が記憶されて、ゲーム経験を最適化するために利用されることも可能である。例えば、一実施形態では、地理的に近接するサーバーファームが使用中であるとき、より高い遅延のインターネット接続を有するプレイヤーが近接するサーバーファームに優先的に接続され得るのに対して、より低い遅延の接続を有するプレイヤーはさらに遠いサーバーファームに接続され得る。このようにして、追加の遅延に対処することが最も可能なネットワーク接続を有するプレイヤーが、その位置により、追加の遅延を生み出すサーバーファームに接続される。
【００３８】
[0047]プレイヤー・プロファイル・データ・ストア３４４は、個々のプレイヤーに関する使用履歴を記憶することも可能である。プレイヤーのゲーム購入履歴、ゲームサンプリング履歴、またはゲームの購入を必要としない、ゲームサービスを通したゲームプレイ履歴が記憶され得る。この使用情報は、個々のプレイヤーに関心あるゲームを示唆するために解析され得る。一実施形態では、購入履歴は、ゲームサービスを通して購入されないゲームを含み得る。例えば、購入履歴は、プレイヤーが小売店で購入されたゲームからのキーを入力することによって増大され得る。いくつかの実施形態では、プレイヤーがもはやそのゲームクライアントでないとき、プレイヤーは、次いで、そのゲームクライアント３１０上と、ゲームサービスを通じての両方で、そのゲームに対するアクセスを有することが可能である。
【００３９】
[0048]ゲーム移動マネージャ３４６は、サーバー３４０からクライアント３１０へのゲームプレイの移動を管理して、クライアント３１０からサーバー３４０へのゲームプレイの移動を助けることができる。ゲーム移動構成要素３２１同様、ゲーム移動マネージャ３４６は、トリガ事象を検出して、応答して、ゲーム移動を開始することができる。先に述べたトリガ事象に加えて、サーバー３４０上で現在プレイされているゲームに関するコードを含むゲームブロックの成功裏のダウンロードは、サーバー３４０からクライアント３１０へのゲーム移動を開始することができるトリガ事象である。例えば、ユーザーは、サーバー上で実行する第１のゲームをプレイしている場合がある。ゲーム移動マネージャ３４６（または、他の構成要素）は、ゲームの第１の部分をプレイするのに必要とされるデータのブロックをクライアントに伝達する。データのこのブロックが成功裏にダウンロードされると、ゲームプレイをサーバー３４０からクライアント３１０に移動するための命令が送信され得る。ゲームが成功裏に移動されると、サーバー上でゲームをプレイするために前に使用されている帯域幅は、ゲームの残りをクライアント３１０にダウンロードするための専用にされ得る。
【００４０】
[0049]ゲーム実行環境３４８は、ゲームのインスタンスを実行するために必要とされるゲームリソースを含む。これらはゲームマネージャ３５２および他の構成要素によって管理される、前に説明されたリソースである。ゲーム実行環境３４８は、コンピューティングおよびビデオ処理とともにアクティブメモリを含む。ゲーム実行環境３４８は、Ｉ／Ｏチャネルを介してゲーム制御を受信して、そのプログラミングに従って、ゲームを操作および進展させる。一実施形態では、ゲーム実行環境３４８は、ゲームクライアントに伝達される、レンダリングされたビデオストリームを出力する。他の実施形態では、ゲーム実行環境３４８は、ゲームビデオをレンダリングするために、ゲームクライアント上でローカルオブジェクトと組み合わされることが可能なゲーム形状、または他の表現を出力する。
【００４１】
[0050]ゲーム・データ・ストア３５０は利用可能なゲームを記憶する。ゲームは、データストアから検索されて、アクティブメモリを介してアクティブ化され得る。ゲーム・データ・ストア３５０は、受動メモリ、すなわち、二次メモリとして説明され得る。一般に、ゲームは、ゲーム・データ・ストア３５０からプレイされ得ない。しかし、いくつかの実施形態では、二次メモリは仮想メモリとして利用されることが可能であり、この場合、ゲーム・データ・ストア３５０の一部は、アクティブメモリとしても機能し得る。これは、アクティブメモリは特定のハードウェア構成要素によって定義されるとは限らず、ゲームリソースが、ゲームを実行するために、メモリ内のオブジェクトをアクティブに操作して、それらのオブジェクトにアクセスするための能力によって定義されることを示す。
【００４２】
[0051]ゲームマネージャ３５２は、アクティブゲームへのプレイヤーの接続を管理する。一実施形態では、ゲームサービスを介して利用可能な各ゲームに関する個々のゲームマネージャが存在する。単一のゲームを例にとると、ゲームマネージャは、プレイヤーを要求されたゲーム内にドロップする（ｄｒｏｐ）ことになる。ゲームマネージャ３５２はアクティブゲームをやはり管理する。一実施形態では、プレイヤーは、ゲームマネージャ３５２を介してゲームに接続することができる。すなわち、ゲームマネージャ３５２は、個々のゲームインスタンス同士の間の伝達および接続に関するゲートキーパー（ｇａｔｅｋｅｅｐｅｒ）として機能し得る。プレイヤーがゲームから抜けるとき、プレイヤーの進展を検索して、プレイヤー・プロファイル・データ・ストア３４４内のプレイヤーのプロファイル内に保存するための命令がゲームマネージャに達し得る。プレイヤーがゲームから抜けると、ゲームはゲームマネージャ３５２によって中断され得る。
【００４３】
[0052]ゲーム販売促進マネージャ３５４は、ゲームサンプルまたはゲームデモを提供するゲームのブロックをゲームクライアント３１０にプリエンプティブに（ｐｒｅｅｍｐｔｉｖｅｌｙ）ダウンロードすることになる。ゲームブロックは、ゲーム全体の第１の部分、または特別に設計されたデモであってよい。いずれにしても、ゲーム販売促進マネージャ３５４は、プレイヤーの考えられるゲーム関心を識別して、ゲームクライアント３１０にダウンロードするために関連するゲームを選択することができる。ダウンロードされると、ユーザーは、ゲームサンプルまたはゲームデモがプレイされることが可能であることを通知され得る。ユーザーには、ゲームプレイの間、トリガ事象であり得る、ゲームを購入するオプションが与えられることが可能である。購入すると、ゲームの残りがダウンロードされることが可能であり、ユーザーは、必要な場合、ダウンロードが生じる間に、ゲームの完全サーバー版に移動され得る。
【００４４】
[0053]次に図４を参照すると、本発明のある実施形態による、ゲームサーバーからゲームクライアントへのゲームプレイの移動を促す、ゲーム環境４００内の伝達を示すシーケンス図が示される。ゲーム環境４００は、場合によっては、ゲームクライアント３１０に類似した、ゲームクライアント上で動作する構成要素、ならびにゲームサーバー３４０に類似し得る、ゲームサーバー上で動作する構成要素を含む。
【００４５】
[0054]ゲームクライアント上に配置された構成要素は、ゲームコントローラー４１０と、クライアントディスプレイ４１２と、ゲーム・サービス・クライアント・アプリケーション４１４と、クライアント移動構成要素４１６と、クライアント・ゲーム・ストア４１８と、クライアントゲーム環境４２０とを含む。ゲームサービス内に配置された構成要素は、ゲーム・サービス・ゲーム環境４２２と、ゲームサービス移動構成要素４２４と、ゲーム・サービス・データ・ストア４２６と、ゲーム・サービス・プレイヤー・プロファイル・データ・ストア４２８とを含む。クライアントとゲームサービスは両方とも、分かりやすいように、図４に示されない追加の構成要素を含み得る。
【００４６】
[0055]当初、ゲームコントローラー４１０からの制御入力４３０は、クライアントデバイス上で実行するゲーム・サービス・クライアント・アプリケーション４１４に伝達される。制御入力４３０は、ゲーム・サービス・サーバー上で実行するゲーム・サービス・ゲーム環境４２２によって使用可能な形態に前処理され得る（４３２）。この前処理は、いくつかの実施形態では必要とされず、その場合、未加工信号が伝達され得る。前処理された制御入力４３４がゲーム・サービス・クライアント４１４からゲーム・サービス・ゲーム環境４２２に伝達され、ここで、前処理された制御入力４３４はゲームオブジェクトを操作する（４３６）ために使用される。制御入力４３４に応答して、新しいゲーム画像４３８がレンダリングされて、ゲーム・サービス・クライアント４１４に伝達される。必要な場合、レンダリングされたゲーム画像４３８は、クライアントディスプレイ４１２に適したサイズにスケーリングされる（４４０）。スケーリングされたビデオ画像４４２は、ユーザーに表示するために、クライアントディスプレイ４１２に伝達される。
【００４７】
[0056]ゲーム状態情報４４６が生成され（４４４）、次いで、ゲーム・サービス・プレイヤー・プロファイル・データ・ストア４２８に伝達される。ユーザーがゲーム内のあるポイントに戻ることができるように、ゲーム状態は周期的に保存される。他の構成要素が、トリガ事象に関するゲーム状態情報を監視することも可能である。
【００４８】
[0057]移動トリガとは異なるダウンロードトリガがステップ４５０で検出される。ダウンロードトリガは、進行中のゲームセッション内でプレイされているゲームの残りを購入するためのユーザー決定であり得る。例えば、ユーザーは、販売促進またはデモの一環としてダウンロードされた、ゲームの第１のブロックのプレイを開始することができる。別の実施形態では、ユーザーは、予めゲームを購入したが、ゲームの次のブロックをダウンロードするために利用可能な帯域幅を有していなかった。ダウンロード事象４５０は、ダウンロード可用性を提供するためのユーザーの帯域幅または帯域幅使用の変化を検出することであり得る。
【００４９】
[0058]ダウンロード要求またはダウンロード命令４５２がゲームサービス移動構成要素４２４からゲーム・データ・ストア４２６に伝達される。ゲーム・データ・ストアは、ダウンロードされることになる、ゲームの次のブロックを準備して（４５４）、ゲームブロック４５６をクライアント・ゲーム・ストア４１８にダウンロードする。クライアント・ゲーム・ストア４１８はゲームブロック４５６を保存する（４５８）。単一のメッセージとして示されるが、シーケンス図に示されるゲームブロック４５６および他のメッセージは、実際には、経時的に生じる一連のメッセージであり得る。例えば、状況によっては、ユーザーの接続内で利用可能な帯域幅に応じて、ゲームブロック４５６をクライアント・ゲーム・ストア４１８にダウンロードするために２０分から３０分かかる場合がある。保存されると、ゲームブロックが使用できる状態にあることを示す通知４６０がクライアント移動構成要素４１６に送信される。ステップ４６２で、ダウンロード完了メッセージ４６４が生成されて、ゲームサービス移動構成要素４２４に伝達される。
【００５０】
[0059]ステップ４６６で、ゲーム移動トリガが検出される。この場合、クライアントデバイスに対するゲームブロックの完全なダウンロードはトリガ事象を構成する。トリガを検出する（４６６）とすぐ、移動に必要な情報が収集される。この場合、ゲーム状態情報４６８に関する要求が生成されて、ゲームサービスのプレイヤー・プロファイル・データ・ストア４２８に伝達される。ゲーム状態が検索されて（４７０）、現在のプレイヤー進展および他のゲームパラメータを記述するゲーム状態メッセージ４７１がクライアント移動構成要素４１６に伝達される。ゲーム状態情報を使用して、ゲーム移動メッセージ４７３が生成されて（４７２）、クライアント移動構成要素４１６またはクライアントデバイス上の他の構成要素に伝達される。ゲーム移動メッセージは、サーバー上で残されたゲームプレイをクライアント上で開始するために必要とされる情報をクライアントデバイスに提供する。
【００５１】
[0060]状態情報と移動命令とを受信するとすぐ、ステップ４７４で、クライアント移動構成要素４１６は、クライアント側からのゲーム移動プロセスを開始する。レンダリングされたビデオゲーム画像を予め受信しているゲーム・サービス・クライアント４１４上での活動を終了するメッセージ４７６が伝達される。この終了は即時でなくてよい。クライアントゲーム環境４２０が進行中のゲームをアクティブメモリ内にロードして、引き継ぐ準備ができると、ゲーム・サービス・クライアント４１４は終了される（４７７）。終了されることは、ゲーム・サービス・アプリケーションが終了されたか、または単に最小化されたことを示す場合がある。いずれにしても、ひとたび終了されると、ゲーム・サービス・クライアント４１４は、ゲームサーバーから受信された情報の処理または表示にアクティブに関与しない。
【００５２】
[0061]アクティブ化メッセージ４７８は、クライアント側ゲーム環境４２０にも送信される。ゲームアクティブ化４８０は、アクティブ化メッセージ４７８に応答して開始する。アクティブ化４８０の一環として、クライアントゲーム環境４２０はクライアント・ゲーム・ストア４１８からゲームコードを要求する（４８２）。ゲームコードが準備されて（４８４）、クライアントゲーム環境４２０に伝達し戻される（４８６）。ゲームデータは、次いで、アクティブメモリ内にロードされて（４８８）、ゲームプレイのために準備される。予め受信されたゲーム状態情報は、ユーザーがそのゲームを要求したポイントにゲームを設定するために使用される。一実施形態では、ゲームプレイがゲームサーバー上で続き、レンダリングされた画像がゲーム・サービス・クライアント４１４を介して表示される間に、ゲーム環境４２０はゲームをアクティブ化して、プレイのために準備している。切替えレベルなど、ゲーム内の遷移ポイントに達するとすぐに、ゲームプレイはゲーム・サービス・クライアント４１４からクライアントゲーム環境４２０に遷移する。
【００５３】
[0062]遷移すると、ゲーム制御データ４９０は、ゲームオブジェクトが操作されて（４９２）、新しいビデオゲーム画像がレンダリングされるクライアントゲーム環境４２０に伝達される。新しいビデオゲーム画像４９４はクライアントディスプレイ４１２に伝達され、ここで、新しいビデオゲーム画像４９４がユーザーに表示される。
【００５４】
[0063]次に図５を参照すると、本発明のある実施形態による、クライアント・ゲーム・デバイスからサーバー配置ゲームサービスへのゲームの移動の間、ゲーム環境５００内で生じる伝達を示すシーケンス図が示される。ゲーム環境５００は、場合によっては、ゲームクライアント３１０類似した、ゲームクライアントで動作する構成要素、ならびにゲームサーバー３４０に類似し得るゲームサーバー上で動作する構成要素を含む。ゲームクライアント上に配置された構成要素は、ゲームコントローラー５１０と、クライアントディスプレイ５１２と、ゲーム・サービス・クライアント・アプリケーション３１４と、クライアント移動構成要素５１６と、クライアントゲーム環境５１８とを含む。ゲームサービス内に配置された構成要素は、ゲーム・サービス・ゲーム環境５２０と、ゲームサービス移動構成要素５２２と、ゲーム・サービス・データ・ストア５２４とを含む。クライアントとゲームサービスは両方とも、分かりやすいように、図５に示されない追加の構成要素を含み得る。
【００５５】
[0064]当初、ユーザーはクライアントのゲーム環境５１８内で実行するゲームをプレイしている。ゲーム信号５３０はゲームコントローラー５１０からクライアントゲーム環境５１８に伝達され、ここで、信号５３０に応答して、ゲームオブジェクトが操作されて、ビデオゲームがレンダリングされる（５３２）。レンダリングされたビデオゲーム画像５３４はディスプレイデバイス５１２に伝達され、ここで、レンダリングされたビデオゲーム画像５３４がユーザーに表示される。
【００５６】
[0065]ステップ５３６で、クライアントゲーム環境５１８はゲーム状態更新メッセージ５３８をクライアント移動構成要素５１６に伝達する。ゲーム状態更新メッセージ５３８は、ゲーム内のユーザーの現在の進展、ならびに、ユーザーによって行われる他の命令または要求を記述することができる。例えば、ユーザーは、新しいレベルに関するメニュー要求を入力した可能性がある。
【００５７】
[0066]ステップ５４０で、クライアント移動構成要素５１６は、ゲーム状態メッセージ５３８を解析して、トリガ事象が生じたことを判断する。例えば、ユーザーは、新しいレベルを要求した可能性があるか、またはゲームクライアントにまだダウンロードされていない新しいレベルがアクセスされる、ゲーム内のあるポイントに達した可能性がある。この時点で、クライアント移動構成要素５１６は、移動プロセスを開始するために一連の伝達を生成する。
【００５８】
[0067]トリガを検出するとすぐに、クライアント移動構成要素５１６は、移動要求５４２をゲームサービス移動構成要素５２２に伝達する。これは、ゲームサービスとの伝達セッションがまだアクティブ化されていない場合、その伝達セッションを開始することをまず必要とする。伝達セッションを開始するプロセスは図５に示されず、ゲームサービスがゲーム移動要求を受け入れるために必要とされ得る認証プロセスまたは他のプロセスも図５に示されない。
【００５９】
[0068]ステップ５５０で、ゲーム移動構成要素５２２は、５４２で、移動要求を解析する。この要求は、リソース可用性に関して解析され得る。例えば、ゲームサービス移動構成要素５２２は、利用可能なリソースに問い合わせて、特定のレベルのゲームのインスタンスが利用可能であるか、またはユーザーに利用可能にされ得るかを判断する。ゲームサービス移動構成要素は、他の構成要素に問い合わせて、ユーザーが要求されたゲームレベルに関して適切なアクセスを有することを確実にすることもできる。示されないが、必要な場合、ゲームサービス移動構成要素５２２は、追加の情報に関して、クライアント側移動構成要素５１６に問い合わせることができる。
【００６０】
[0069]トリガ事象の検出時にクライアント移動構成要素５１６によって発行されたゲーム伝達に戻ると、ステップ５４０で、クライアント移動構成要素５１６は、アクティブ化要求５４４をゲーム・サービス・クライアント・アプリケーション５１４に送信することができる。アクティブ化要求５４４は、ゲーム・サービス・クライアント・アプリケーション５１４を起動させて、レンダリングされたビデオゲームを受信する準備をさせる。加えて、クライアント移動構成要素５１６は、ゲーム実行の終了を命令する終了メッセージ５４６をクライアントゲーム環境５１８に送信して、ゲーム・サービス・サーバーに対する移動を保留する。
【００６１】
[0070]移動要求５４２を受信することに応答して、ゲームサービス移動構成要素５２２は、アクティブ化メッセージ５５２をゲーム・サービス・ゲーム環境５２０に伝達する。アクティブ化メッセージ５５２に応答して、ゲーム・サービス・ゲーム環境５２０は、ユーザーによって要求されたゲーム内のあるポイントで、要求されたゲームのインスタンスをアクティブ化する。ゲーム・サービス・ゲーム環境５２０は、アクティブ化メッセージ５５２内でプレイヤープロファイルとゲーム状態情報とを受信することができる。この情報は、移動要求５４２内で伝達されているか、または図５のシーケンス図に示されない別個のメッセージを介して伝達されている可能性がある。
【００６２】
[0071]アクティブ化５５４の一環として、ゲーム・サービス・ゲーム環境５２０はゲームデータ要求５５６をゲーム・データ・ストア５２４に送信することができる。応答して、ゲームデータパッケージが準備されて（５５８）、ゲーム・サービス・ゲーム環境５２０に伝達される（５６０）。ステップ５６２で、ゲーム・サービス・ゲーム環境５２０はゲームデータをアクティブメモリ内にロードして、Ｉ／Ｏ接続およびデータをゲーム・サービス・クライアント・アプリケーション５１４またはゲームクライアントに関連する他の構成要素から受信するために準備する。
【００６３】
[0072]アクティブ化されると、ゲーム・サービス・ゲーム環境５２０は、ビデオゲームのレンダリングされた画像をゲーム・サービス・クライアント・アプリケーション５１４に送信する。レンダリングされた画像は、メッセージ５６４として示される。受信するとすぐに、ゲーム・サービス・クライアント・アプリケーション５１４は、画像をクライアントディスプレイ５１２に伝達することができる。
【００６４】
[0073]ゲームコントローラー５１０から受信されたゲーム制御データは、ゲーム・サービス・クライアント・アプリケーション５１４に伝達される。制御データ５６６は、ステップ５６８で、ゲーム・サービス・ゲーム環境５２０によって処理されることになる、容易にアップロード可能なフォーマットに前処理される。前処理されたゲーム制御５７０は、ゲームサービス環境５２０に伝達される。ステップ５７２で、制御５７０に応答して、ゲームオブジェクトが操作される。新しいレンダリングされたゲーム画像５７４は、次いで、ゲーム・サービス・クライアント・アプリケーション５１４に伝達し戻されて、ここで、ステップ５７６で、新しいレンダリングされたゲーム画像５７４はクライアントディスプレイ５１２用にスケーリングされ得る。適切にスケーリングされると、レンダリングされた画像はクライアントディスプレイ５１２に伝達され（５７８）、ここで、レンダリングされた画像はユーザーに出現する。
【００６５】
[0074]次に図６を参照すると、本発明のある実施形態による、ゲームプレイをゲームサーバーからクライアントデバイスに移動する方法６００が示される。ゲームサーバーは、ゲームを遠隔でプレイするのを可能にするゲームサービスに関連し得る。クライアントデバイスは、ゲーム機、パーソナルコンピュータ、タブレット、スマートフォン、または他の適切なデバイスであってよい。
【００６６】
[0075]ステップ６１０で、ビデオゲームは、遠隔ゲームセッション内でサーバーにおいて実行される。遠隔ゲームセッションの一環として、データ接続を介して、制御入力がクライアントデバイスから受信される。例えば、ジョイスティックなどのゲームコントローラーは、インターネット上で生じるデータ接続を介して制御入力をゲームサーバーに渡すクライアントデバイスに制御入力を送信することができる。ゲームセッションの一環として、制御入力に応答して、ゲームオブジェクトが操作されて、ビデオゲームのレンダリングされた画像がデータ接続を介してクライアントに伝達される。これにより、制御入力と組み合わされてゲームコードが実行されて、ビデオゲーム画像がレンダリングされて、クライアントに伝達される。
【００６７】
[0076]ステップ６２０で、ビデオゲームに関するゲーム移動トリガ事象がゲームサーバーにおいて検出される。いくつかのゲーム移動トリガが前に説明されている。一実施形態では、ゲーム移動トリガは、ビデオゲームに関するゲームブロックをクライアントデバイスにダウンロードするプロセスを完了する。ゲームブロックは、ゲームサーバーがビデオゲーム画像をレンダリングする必要なしに、現在プレイされているビデオゲームがクライアントデバイス上でプレイされるのを可能にし得る。別の実施形態では、ゲーム移動トリガ事象は、ユーザーがゲーム内の遷移ポイントに達することをやはり必要とする。遷移ポイントは、ゲームプレイを中断せずに、ビデオゲーム実行およびレンダリングがサーバーからクライアントに転送される、ゲーム内のあるポイントである。例えば、ユーザーは、ゲームメニュー内のあるレベルの終点にいる可能性があり、またはゲームを一時的に休止した可能性もある。したがって、トリガ事象は、複数の基準を満たすことを必要とする場合がある。例えば、第１の基準は現在のゲームブロックの完全なダウンロードであり得、第２の基準はゲームプレイが遷移ポイントに達したことであり得る。トリガ事象は、ダウンロードの進行とゲームプレイの進行とを監視することによって検出され得る。
【００６８】
[0077]ゲームブロックは、ダウンロードトリガ事象の検出に応答して、ゲームクライアントにダウンロードされ得る。ダウンロードトリガ事象は全ゲームの購入であり得る。別のダウンロードトリガ事象は、ダウンロードするために帯域幅を利用可能にするための、現在のユーザーのデータ接続内の使用の変更である。例えば、ユーザーのゲームプレイおよび他の活動は、ユーザーのデータ接続内で利用可能な帯域の１００％近くを消費している可能性がある。例えば、クライアント上のストリーミング・ミュージック・アプリケーションを閉じることによって、使用を変更するとすぐに、ダウンロードのために帯域幅が利用可能にされ得る。利用可能になると、次のゲームブロックのダウンロードがトリガされ得る。
【００６９】
[0078]ステップ６３０で、ゲーム移動トリガ事象を検出することに応答して、ゲーム移動命令がクライアントデバイスに伝達される。ゲーム移動命令は、ゲームサーバーからゲームクライアントへのゲーム実行の切替えを開始するようにクライアントデバイスに要求する。
【００７０】
[0079]ゲームサーバーからゲームクライアントにゲーム実行を切り替えることは、様々なステップを必要とし得る。例えば、ゲームサーバーから受信されたゲーム画像は、移動プロセスの一環として終了されるゲーム・サービス・クライアント・デバイス内に表示され得る。所望のビデオゲームに関するゲームコードは、クライアントのネイティブゲーム実行環境内でアクティブメモリ内にロードされることが必要な場合がある。これは、ゲームをアクティブメモリ内にロードすることに加えて、１つまたは複数のアプリケーションを起動することを必要とし得る。クライアント上で実行するゲームインスタンス内の設定を調整するために、様々なゲーム選択または現在のゲームに関する設定を説明するプレイヤープロファイル情報が使用される。加えて、ゲームがサーバー上で進展したポイントにビデオゲームをロードするために、サーバーから受信されたゲーム保存情報が使用され得る。
【００７１】
[0080]これらの制御は、クライアント上のローカルゲーム環境内に経路指定されて、サーバーから離される。ユーザーが局所的に関与するためにゲームの準備が完全に整うと、ステップ６４０で、サーバー上でのビデオゲームの実行は終了される。サーバーによってレンダリングされたビデオゲーム画像が終了されると、クライアントゲーム環境によってレンダリングされたビデオゲーム画像がユーザーに示される。遷移の間、インターフェースが遷移されると同時に、待機スクリーンもしくはゲーム要約スクリーン、広告、または他の特徴がユーザーに短く示されることが可能である。ゲーム移動が完了すると、ゲームサーバーによって確認メッセージが受信され得る。このメッセージに応答して、ゲームサーバーは、ゲームインスタンスを分解して、別のプレイヤーによる使用のために、サーバーリソースを解放することができる。
【００７２】
[0081]いくつかのマルチプレイヤーゲームの場合、マルチプレイヤーゲームの一部である伝達は、サーバーベースのインスタンスからクライアントに再び経路指定され得る。伝達は、他のプレイヤーによって生成されたテキストまたは音声を含み得る。伝達は、クライアントが他のプレイヤーによって行われたゲーム変更をレンダリングするのを可能にするゲーム制御であってもよい。例えば、伝達は、他のゲームキャラクターがどこに移動したか、および仮想オブジェクトを移動させるなど、仮想ゲーム界を変更する、それらのキャラクターがとる他の動作を説明することが可能である。
【００７３】
[0082]一実施形態では、ゲームブロックは、ゲームセッションに関して使用される帯域幅を奪わずに、利用可能な帯域幅の大部分を使用するために計算された速度でクライアントデバイスに伝達される。ゲームセッションは、帯域幅を使用して、レンダリングされたビデオゲーム画像をクライアントにダウンロードして、制御入力をクライアントからサーバーにアップロードする。一実施形態では、ダウンロード速度は、利用可能な帯域幅と、ビデオゲーム経験の間に使用される最大帯域幅速度との間の差である。別の実施形態では、ビデオゲーム経験の間に使用される平均帯域幅は、データ接続上で利用可能な帯域幅とビデオゲーム経験に起因する使用との間の差を計算するために使用される。ゲームセッションによって使用される帯域幅は、異なる制御が使用されると変更し得る。例えば、ジョイスティック制御信号に音声コマンドが追加されるとき、帯域幅使用は上昇することになる。
【００７４】
[0083]次に図７を参照すると、本発明のある実施形態による、ゲームプレイをクライアントデバイスからゲームサーバーに移動する方法７００を示す流れ図が示される。ステップ７１０で、ビデオゲームはゲームクライアントにおいて実行される。実行の一環として、制御入力がゲームクライアントに通信可能に結合されたローカル・ゲーム・コントローラーから受信される。例えば、ジョイスティックまたはデプスカメラは、ハード接続を介して、もしくはワイヤレス接続を介して、ゲームクライアントに接続され得る。いずれにしても、制御入力に応答して、ゲームオブジェクトが操作されて、ビデオゲームのレンダリングされた画像がクライアントによって生成されて、ゲームクライアントに関連するディスプレイデバイスを介してクライアントに表示される。ゲームクライアントに統合されるディスプレイデバイス、またはテレビジョンなど、別個の独立形デバイス。
【００７５】
[0084]したがって、ステップ７１０で、ビデオゲームはゲームクライアントにおいて実行される。これは、ビデオゲームコードがクライアントのゲーム実行環境内でアクティブメモリ内にロードされることと、ゲームコードを処理して、それに応じて、ビデオゲーム画像をレンダリングするために、グラフィックス・プロセッシング・ユニットおよび中央処理装置など、ローカル・クライアント・リソースを利用することとを必要とする場合がある。
【００７６】
[0085]ステップ７２０で、ビデオゲームに関するゲーム移動トリガ事象がゲームクライアントにおいて検出される。ゲーム移動トリガ事象の例は、それに関するコードが、現在、クライアントデバイスにダウンロードされていないレベルのビデオゲームをプレイするための要求を含む。別の例では、ゲーム移動トリガ事象は、クライアントデバイス上でプレイするためにビデオゲームの次のレベルが利用可能でないとき、ユーザーがビデオゲーム内のあるレベルの終了からしきい値期間に達することである。次のレベルはサーバー上でプレイするように設計され、クライアントにダウンロードするように設計されていないため、次のレベルは利用可能でない場合がある。別の実施形態では、次のレベルは、いくつかの理由で、クライアントにまだダウンロードされていないため、次のレベルは利用可能でない。例えば、ビデオゲームの次のレベルはまだ購入されていない場合がある。別の実施形態では、ビデオゲームの次の部分またはブロックは、ゲームプレイの間、またはそれ以外の理由でダウンロードされる機会を有さなかった。
【００７７】
[0086]ステップ７３０で、トリガ事象を検出することに応答して、クライアントからゲームサーバーへのゲーム実行の切替えを開始するためのゲーム移動命令がゲームサーバーに伝達される。このプロセスの一環として、クライアントデバイス、またはそのクライアントデバイスに関連するユーザーがゲームサービスに対する、かつゲームの複数のレベルに対するアクセスを有することを確認するために、サーバー認証機能が実行され得る。ユーザーがゲームの次のレベルに対するゲームサービスへのアクセスを有さない場合、ユーザーに、そのアクセスを購入する機会、あるいは認証情報を提供する機会が提供されてよい。例えば、ゲームの完全版を購入することによって、ユーザーがこの情報を提供すると、ゲーム移動プロセスは続いて、ユーザーがサーバー上でゲームプレイを継続するのを可能にする。一実施形態では、ゲームプレイがサーバー上で即時開始するのに対して、ビデオゲームの次のブロックは利用可能な帯域幅内でクライアントデバイスにダウンロードされる。そのダウンロードの終わりに、ゲームプレイはクライアントデバイスに移動して戻ることができる。
【００７８】
[0087]ステップ７４０で、クライアント上でのビデオゲームの実行が終了される。これは、ユーザーがゲームプレイをゲームサーバー上に転送する準備ができたことを示す確認メッセージに応答して行われることが可能である。ステップ７５０で、ローカル・ゲーム・コントローラーから受信された追加の制御入力がゲームサーバーに伝達される。一実施形態では、これらの制御入力は、ゲームサーバーにアップロードするために好都合なフォーマットに前処理される。一実施形態では、ゲームサーバーで実行するビデオゲームに関するコードは、ゲームクライアント上で実行する同じコードである。一実施形態では、これは、制御入力が、変更なしに、ゲームサーバーに直接的に伝達されることを可能にする。
【００７９】
[0088]ステップ７６０で、ビデオゲームのレンダリングされた画像がゲームサーバーから受信される。レンダリングされた画像は、クライアントデバイス上で実行するゲーム・サービス・クライアントによって表示され得る。レンダリングされた画像は、追加の制御入力に応答して行われたゲームに対する変更を反映する。この場合も、ゲームプレイが進行している間、ビデオゲームの次のブロックが受信されて、保存される。ビデオゲームの次のブロックのダウンロードが完了すると、ゲームの実行およびレンダリングは、クライアントデバイスに移動して戻ることが可能である。
【００８０】
[0089]次に図８を参照すると、本発明のある実施形態による、クライアントとゲームサーバーとの間でビデオゲームの実行を移動する方法８００を示す流れ図が示される。ステップ８１０で、クライアント上に保存された部分的なゲームをプレイするためのユーザーからの要求が受信される。一実施形態では、ゲームサービスは、ゲームの部分版であり得るサンプルゲームまたはデモゲームをゲームクライアントにプリエンプティブにダウンロードすることができる。ユーザーに何のゲームがサンプリングされ得るかを知らせるためのインターフェースがクライアント上に示されることが可能である。一実施形態では、この部分は、第１のレベルなど、ビデオゲームの第１の部分である。この部分は、ゲーム機能への完全なアクセスを有してよく、または限定されたアクセスを有してもよい。
【００８１】
[0090]ステップ８１５で、部分的なゲームがクライアント上のゲーム実行環境内にロードされる。これは、ゲームをクライアントデバイスのアクティブメモリ内にロードするステップと、プレイヤープロファイル情報をゲームに追加するステップと、ゲームがクライアント上で実行されるために必要とされる他のタスクを実行するステップとを含み得る。
【００８２】
[0091]ステップ８２０で、クライアントにおいて、部分的ゲームが実行される。ゲームの一部として、制御入力が、音声コマンドを受信するためのマイクロフォン、ジェスチャを受信するためのデプスカメラ、ジョイスティック、キーボード、タッチスクリーン、または他のゲームコントローラーなど、ローカル・ゲーム・コントローラーから受信される。入力に応答して、ゲームオブジェクトが操作されて、ビデオゲームのレンダリングされた画像がクライアントによって生成される。ステップ８２５で、部分的ゲームの完全版を購入するための要求がクライアントにおいて受信される。ステップ８３０で、部分的ゲームの完全版に関する購入要求がゲームサーバーに伝達される。ステップ８３５で、ゲームの完全版に関する追加の実行可能ゲームコンテンツがゲームサーバーから受信される。ステップ８４０で、ゲームクライアントにおいて、部分的ゲームに関するゲーム移動トリガ事象が検出される。一実施形態では、トリガ事象は、ダウンロードの完了である。追加の実行可能ゲームコードは、ゲームプレイの進行中に、またはゲームプレイの進行と同時に受信され得る。
【００８３】
[0092]ステップ８４５で、トリガ事象を検出することに応答して、クライアントからゲームサーバーへのゲーム実行の切替えを開始するためのゲーム移動命令がゲームサーバーに伝達される。この実施形態では、ゲームトリガ事象は、プレイヤーが、その後、ゲームクライアント上でゲームコードが利用不可能になる部分的ゲームの終点またはあるレベルの終点に達することであり得る。
【００８４】
[0093]ステップ８５０で、クライアント上での部分的ゲームの実行が終了される。ステップ８５５で、ローカルゲーム制御から受信された追加の制御入力がゲームサーバーに伝達され、ステップ８６０で、ビデオゲームのレンダリングされた画像がゲームサーバーから受信される。レンダリングされた画像は、前に受信および伝達された追加の制御入力を反映する。
【００８５】
[0094]一実施形態では、複数の部分的ゲームがゲームサービスから受信される。部分的ゲームは、クライアントデバイス上でプレイされるゲームのタイプに基づいて選択され得る。
【００８６】
[0095]本発明の実施形態は、限定的ではなく、例示的であるとして説明されてきた。ある種の特徴およびサブコンビネーションは実用的なものであり、他の特徴およびサブコンビネーションを参照せずに用いられることが可能であることを理解されよう。これは請求項によって企図され、かつ請求項の範囲内である。
【図１】
0006272864.tif 000002
【図２】
0006272864.tif 000003
【図３】
0006272864.tif 000004
【図４】
0006272864.tif 000005
【図５】
0006272864.tif 000006
【図６】
0006272864.tif 000007
【図７】
0006272864.tif 000008
【図８】
0006272864.tif 000009