(57)【要約】  サーバサイドレンダリングの解決策は、コンピュータアプリケーションにおけるユーザ状態を表すビデオ画像を格納するよう構成されたサーバにて、将来のユーザアクションを、コンピュータアプリケーションにおけるユーザ状態の少なくとも一部に基づいて識別することを含む。上記解決策はさらに、前記識別を受け、前記ユーザと関連付けられたユーザ機器に送信するためのビデオ画像をレンダリングすることを含み、前記ユーザ機器にて、コンピュータアプリケーションにおけるユーザの状態がサーバに送信される。上記送信されたことを受け、ユーザが将来のアクションを実施した後のユーザの将来状態を示す各ビデオ画像が格納される。ユーザのアクションを受け、上記ビデオ画像のうちひとつが、ユーザ機器のユーザディスプレイ上の表示用に選択される。一態様によれば、サーバによって識別される将来のユーザアクションは、前記状態のユーザにとって可能なユーザアクション数よりも少ない。
2013513858.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実行される方法であって、
コンピュータアプリケーションにおけるユーザの状態を示す複数のビデオ画像を格納するよう構成されたサーバコンピュータにて、一またはそれ以上の将来のユーザアクションを、コンピュータアプリケーションにおけるユーザの状態の少なくとも一部に基づいて識別することと、
前記識別を受け、前記ユーザと関連付けられたユーザ機器に送信するための一またはそれ以上のビデオ画像をレンダリングすることと、を含む方法。
【請求項２】
前記一またはそれ以上の将来のユーザアクションは、前記状態にあるユーザにとって可能なユーザアクション数よりも少ないことを特徴とする、請求項１に記載の方法。
【請求項３】
前記コンピュータアプリケーションは、コンピュータゲームを含むことを特徴とする、請求項１に記載の方法。
【請求項４】
前記コンピュータゲームは、オンラインコンピュータゲームを含むことを特徴とする、請求項３に記載の方法。
【請求項５】
前記一またはそれ以上のビデオ画像を、前記送信の前に圧縮することをさらに含む、請求項１に記載の方法。
【請求項６】
前記圧縮は、前記サーバコンピュータと前記ユーザ機器の間のネットワーク混雑度合の少なくとも一部に基づいて、圧縮量を選択することを特徴とする、請求項５に記載の方法。
【請求項７】
前記複数のビデオ画像は、各予め定められた一連の将来のユーザアクション数の後のユーザの状態を示し、前記予め定められた一連の将来のユーザアクション数は、一より大きいことを特徴とする、請求項１に記載の方法。
【請求項８】
前記予め定められた一連の将来のユーザアクション数は、
前記サーバコンピュータのデータ格納部の制限、
前記ユーザ機器のデータ格納部の制限、
ネットワーク帯域の制限、
前記サーバコンピュータが、前記一またはそれ以上のビデオ画像を動的にレンダリングするのに必要な時間、
前記サーバコンピュータが、前記一またはそれ以上のビデオ画像を圧縮するのに必要な時間、
前記ユーザ機器が、前記一またはそれ以上のビデオ画像を解凍するのに必要な時間、のいずれかひとつの少なくとも一部に基づいている、請求項７に記載の方法。
【請求項９】
前記一またはそれ以上のユーザアクションは、前記将来のユーザアクションの発生確率の少なくとも一部に基づいて限定される、請求項１に記載の方法。
【請求項１０】
装置であって、
メモリと、
一またはそれ以上のプロセッサとを含み、前記一またはそれ以上のプロセッサは、
一またはそれ以上の将来のユーザアクションを、コンピュータアプリケーションにおけるユーザの状態の少なくとも一部に基づいて識別し、
前記識別を受け、前記ユーザと関連付けられたユーザ機器に送信するための一またはそれ以上のビデオ画像をレンダリングするように構成されていることを特徴とする、装置。
【請求項１１】
前記一またはそれ以上の将来のユーザアクションは、前記状態にあるユーザにとって可能なユーザアクション数よりも少ないことを特徴とする、請求項１０に記載の装置。
【請求項１２】
前記コンピュータアプリケーションは、コンピュータゲームを含むことを特徴とする、請求項１０に記載の装置。
【請求項１３】
前記コンピュータゲームは、オンラインコンピュータゲームを含むことを特徴とする、請求項１１に記載の装置。
【請求項１４】
前記一またはそれ以上のプロセッサは、さらに、前記一またはそれ以上のビデオ画像を、前記送信の前に圧縮するように構成されていることを特徴とする、請求項１０に記載の装置。
【請求項１５】
前記圧縮は、前記装置と前記ユーザ機器の間のネットワーク混雑度合の少なくとも一部に基づいて、圧縮量を選択することを特徴とする、請求項１４に記載の装置。
【請求項１６】
前記複数の画像は、各予め定められた一連の将来のユーザアクション数の後のユーザの状態を示し、前記予め定められた一連の将来のユーザアクション数は、一より大きいことを特徴とする、請求項１０に記載の装置。
【請求項１７】
前記予め定められた一連の将来のユーザアクション数は、
前記装置のデータ格納部の制限、
前記ユーザ機器のデータ格納部の制限、
ネットワーク帯域の制限、
前記サーバコンピュータが、前記一またはそれ以上のビデオ画像を動的にレンダリングするのに必要な時間、
前記装置が、前記一またはそれ以上のビデオ画像を圧縮するのに必要な時間、および、
前記ユーザ機器が、前記一またはそれ以上のビデオ画像を解凍するのに必要な時間、のいずれかひとつの少なくとも一部に基づいている、請求項１６に記載の装置。
【請求項１８】
前記一またはそれ以上のユーザアクションは、前記将来のユーザアクションの発生確率の少なくとも一部に基づいて限定される、請求項１０に記載の装置。
【請求項１９】
装置であって、
コンピュータアプリケーションにおけるユーザの状態を表す複数のビデオ画像を格納するよう構成されたサーバコンピュータにて、一またはそれ以上の将来のユーザアクションを、コンピュータアプリケーションにおけるユーザの状態の少なくとも一部に基づいて識別する手段と、
前記識別を受け、前記ユーザと関連付けられたユーザ機器に送信するための一またはそれ以上のビデオ画像をレンダリングする手段と、を含む装置。
【請求項２０】
方法を実行する機械によって実行可能な命令のプログラムを具現化する前記機械により読み取り可能なプログラムを記録した記録媒体において、前記方法は、
コンピュータアプリケーションにおけるユーザの状態を示す複数のビデオ画像を格納するよう構成されたサーバコンピュータにて、一またはそれ以上の将来のユーザアクションを、コンピュータアプリケーションにおけるユーザの状態の少なくとも一部に基づいて識別することと、
前記識別を受け、前記ユーザと関連付けられたユーザ機器に送信するための一またはそれ以上のビデオ画像をレンダリングすることとを含む、記録媒体。
【請求項２１】
コンピュータで実行される方法であって、
ユーザと関連付けられたユーザ機器にて、コンピュータアプリケーションのユーザの状態を表す複数の画像を保存するサーバコンピュータに送信するために、前記コンピュータアプリケーションにおける前記ユーザの状態を格納することと、
前記送信を受け、ユーザが将来のアクションを実施した後の前記ユーザの将来状態を示す各一またはそれ以上のビデオ画像を格納することと、ユーザアクションを受け、前記ユーザ機器と関連付けられたユーザディスプレイに表示させるために、前記一またはそれ以上のビデオ画像のうちひとつを選択することと、を含む、方法。
【請求項２２】
将来のアクション数は、可能な将来のアクション数よりも少なく限定される、請求項２１に記載の方法。
【請求項２３】
前記サーバコンピュータに送信するために、前記ユーザアクションの指標を格納することをさらに含む、請求項２１に記載の方法。
【請求項２４】
前記コンピュータアプリケーションは、コンピュータゲームを含むことを特徴とする、請求項２１に記載の方法。
【請求項２５】
前記コンピュータアプリケーションは、コンピュータゲームを含むことを特徴とする、請求項２４に記載の方法。
【請求項２６】
前記一またはそれ以上の画像を格納することは、前記ユーザディスプレイ上に表示される前に、前記一またはそれ以上のビデオ画像を解凍することをさらに含むことを特徴とする、請求項２１に記載の方法。
【請求項２７】
前記解凍は、前記サーバコンピュータと前記ユーザ機器の間のネットワーク混雑度合の少なくとも一部に基づいていることを特徴とする、請求項２１に記載の方法。
【請求項２８】
前記複数のビデオ画像は、各予め定められた一連の将来のユーザアクション数の後のユーザの状態を示し、前記予め定められた一連の将来のユーザアクション数は、一より大きいことを特徴とする、請求項２６に記載の方法。
【請求項２９】
前記予め定められた一連の将来のユーザアクション数は、
前記サーバコンピュータのデータ格納部の制限、
前記ユーザ機器のデータ格納部の制限、
ネットワーク帯域の制限、
前記サーバコンピュータが、前記一またはそれ以上のビデオ画像を動的にレンダリングするのに必要な時間、
前記サーバコンピュータが、前記一またはそれ以上のビデオ画像を圧縮するのに必要な時間、
前記ユーザ機器が、前記一またはそれ以上のビデオ画像を解凍するのに必要な時間、のいずれかひとつの少なくとも一部に基づいている、請求項２８に記載の方法。
【請求項３０】
将来のユーザアクション数は、前記将来のユーザアクションの発生確率の少なくとも一部に基づいて限定されることを特徴とする、請求項２１に記載の方法。
【請求項３１】
装置であって、
メモリと、
一またはそれ以上のプロセッサとを含み、前記一またはそれ以上のプロセッサは、
ユーザと関連付けられたユーザ機器にて、コンピュータアプリケーションのユーザの状態を表す複数の画像を保存するサーバコンピュータに送信するために、前記コンピュータアプリケーションにおける前記ユーザの状態を格納し、
前記送信を受け、前記ユーザが将来のアクションを実施した後の前記ユーザの将来状態を示す各一またはそれ以上のビデオ画像を格納し、
ユーザアクションを受け、前記ユーザ機器と関連付けられたユーザディスプレイに表示させるために、前記一またはそれ以上のビデオ画像のうちひとつを選択するように構成されていることを特徴とする、装置。
【請求項３２】
将来のアクション数は、可能な将来のアクション数よりも少なく限定される、請求項３１の装置。
【請求項３３】
前記サーバコンピュータに送信するために、前記ユーザアクションの指標を格納することをさらに含む、請求項３１に記載の装置。
【請求項３４】
前記コンピュータアプリケーションは、コンピュータゲームを含むことを特徴とする、請求項３１に記載の装置。
【請求項３５】
前記コンピュータゲームは、オンラインコンピュータゲームを含むことを特徴とする、請求項３４に記載の装置。
【請求項３６】
前記一またはそれ以上の画像を格納することは、前記ユーザディスプレイ上に表示される前に、前記一またはそれ以上の画像を解凍することをさらに含むことを特徴とする、請求項３１に記載の装置。
【請求項３７】
前記解凍は、前記サーバコンピュータと前記ユーザ機器の間のネットワーク混雑度合の少なくとも一部に基づいていることを特徴とする、請求項３６に記載の装置。
【請求項３８】
前記複数のビデオ画像は、各予め定められた一連の将来のユーザアクション数の後のユーザの状態を示し、前記予め定められた一連の将来のユーザアクション数は、一より大きいことを特徴とする、請求項３１に記載の装置。
【請求項３９】
前記予め定められた一連の将来のユーザアクション数は、
前記サーバコンピュータのデータ格納部の制限、
前記ユーザ機器のデータ格納部の制限、
ネットワーク帯域の制限、
前記サーバコンピュータが、前記一またはそれ以上のビデオ画像を動的にレンダリングするのに必要な時間、
前記サーバコンピュータが、前記一またはそれ以上のビデオ画像を圧縮するのに必要な時間、
前記ユーザ機器が、前記一またはそれ以上のビデオ画像を解凍するのに必要な時間、のいずれかひとつの少なくとも一部に基づいている、請求項３８に記載の装置。
【請求項４０】
将来のユーザアクション数は、前記将来のユーザアクションの発生確率の少なくとも一部に基づいて限定されることを特徴とする、請求項３１に記載の装置。
【請求項４１】
装置であって、
ユーザと関連付けられたユーザ機器にて、コンピュータアプリケーションのユーザの状態を表す複数の画像を保存するサーバコンピュータに送信するために、前記コンピュータアプリケーションにおける前記ユーザの状態を格納する手段と、
前記送信を受け、前記ユーザが将来のアクションを実施した後の前記ユーザの将来状態を示す各一またはそれ以上のビデオ画像を格納する手段と、
ユーザアクションを受け、前記ユーザ機器と関連付けられたユーザディスプレイに表示させるために、前記一またはそれ以上のビデオ画像のうちひとつを選択する手段と、を含む、装置。
【請求項４２】
方法を実行する機械によって実行可能な命令のプログラムを具現化する前記機械により読み取りが可能なプログラムを記録した記録媒体において、前記方法は、
ユーザと関連付けられたユーザ機器にて、コンピュータアプリケーションのユーザの状態を表す複数の画像を保存するサーバコンピュータに送信するために、前記コンピュータアプリケーションにおける前記ユーザの状態を格納することと、
前記送信を受け、ユーザが将来のアクションを実施した後の前記ユーザの将来状態を示す各一またはそれ以上のビデオ画像を格納することと、
ユーザアクションを受け、前記ユーザ機器と関連付けられたユーザディスプレイに表示させるために、前記一またはそれ以上のビデオ画像のうちひとつを選択することとを含む、記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示内容は、サーバサイドレンダリングに関する。
【背景技術】
【０００２】
通常、オンラインゲームシステムなどのオンラインアプリケーションは、ネットワーク越しにサーバコンピュータと通信するユーザ機器を含んでいる。ユーザは、ジョイスティックなどのユーザ入力機器を介して、ユーザアクションに関わる入力を行う。入力はサーバに通信され、そのユーザ入力により、以降ユーザディスプレイに表示されるビデオ画像の内容の少なくとも一部を決定することができる。サーバで作成されるビデオ画像については、コンピュータゲームのプレーヤのアクションと、そのアクションの結果を反映したビデオ画像の表示との間で、著しい遅延があることがある。この遅延は、例えばネットワークの状況や複雑な作成処理によって生じている場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
オンラインアプリケーションのためのビデオ画像はユーザ機器で作成してもよいが、その解決策では、ユーザ機器が比較的高性能な画像システムをもたねばならず、ユーザ機器にかかる費用が増加してしまう。したがって、オンラインアプリケーションで使用されるユーザ機器に表示されるビデオ画像をレンダリングするための、よりよい解決策が所望される。
【課題を解決するための手段】
【０００４】
サーバサイドレンダリングの解決策は、コンピュータアプリケーションにおけるユーザ状態を表すビデオ画像を格納するよう構成されたサーバにて、将来のユーザアクションを、コンピュータアプリケーションにおけるユーザ状態の少なくとも一部に基づいて識別することを含む。上記解決策はさらに、前記識別を受け、前記ユーザと関連付けられたユーザ機器に送信するためのビデオ画像をレンダリングすることを含む。ユーザ機器にて、コンピュータアプリケーションにおける前記ユーザの状態がサーバに送信される。上記送信を受け、前記ユーザが将来のアクションを実施した後の前記ユーザの将来状態を示す各ビデオ画像が格納される。ユーザのアクションを受け、前記ユーザ機器のユーザディスプレイ上に表示するため、前記ビデオ画像のうちひとつが選択される。一態様によれば、前記サーバによって識別される前記将来のユーザアクションは、前記状態のユーザにとって可能なユーザアクション数よりも少ない。
【図面の簡単な説明】
【０００５】
本明細書に組み込まれ、本明細書の一部を構成する本添付図面は、本発明の一またはそれ以上の実施例を示す。また発明の詳細な説明と合わせ、添付図面により本発明の原則および実施を説明する。
【０００６】
【図１】本発明の一実施例に係るサーバサイドレンダリング用システムを示すブロック図である。
【図２】本発明の一実施例に係る、コンピュータにより生成されたキャラクタを操作するコンピュータゲームの画像を使用する、サーバサイドレンダリング用システムを示すブロック図である。
【図３】本発明の一実施例に係る、将来の動作を最も起こり得る将来の動作に限定する様子を示す図である。
【図４Ａ】本発明の一実施例に係る、ひとつの将来のユーザアクションの後のユーザ状態を表すビデオ画像を示す樹形図である。
【図４Ｂ】本発明の一実施例に係る、ふたつの将来のユーザアクションの後のユーザ状態を表すビデオ画像を示す樹形図である。
【図５】本発明の一実施例に係るサーバサイドレンダリング方法を、サーバの観点から示したフロー図である。
【図６】本発明の一実施例に係るサーバサイドレンダリング方法を、ユーザ機器の観点から示したフロー図である。
【図７】本開示内容の態様を実施するために適したコンピュータシステムのブロック図である。
【発明を実施するための形態】
【０００７】
本発明の実施例を、サーバサイドレンダリングに鑑みて説明する。当業者であれば、以下の本発明の詳細な説明はあくまでも例示のためであり如何なる限定も意図していないことが分かるであろう。本発明の他の実施例は順次、本開示内容の恩恵を受ける当業者に対し、その存在そのものを容易に示唆していくであろう。以下、本発明の実施の詳細について、添付図面を参照する。図面および以下の詳細な説明において、同一または同等の部分について参照する場合はそれと同一の参照表示を用いる。
【０００８】
明確性のため、通常用いられるもの全てがここに説明する実施内容の説明に記載または説明されているわけではない。もちろん当然のことながら、実際にこれらの実施内容を開発するにあたり、アプリケーションおよびビジネスに関わる制限など開発者の具体的な目的を果たすために、実施に特化した数多くの決定を下す必要がある。そしてこれらの具体的な目的は、実施内容のひとつひとつ、開発者のひとりひとりにおいて異なるものである。さらに、当然のことながら、このような開発努力は複雑で時間を要するものであるかも知れないが、本開示内容の恩恵を受ける当業者にとっては、技術職としての通常業務であるといえる。
【０００９】
一実施例によれば、部品、処理手順、および／またはデータ構成は、様々な種類のオペレーティングシステム（ＯＳ）、計算プラットフォーム、ファームウェア、コンピュータプログラム、コンピュータ言語、および／または一般用途の機械を使用することで実施することができる。前記方法は、処理回路上で実行されるプログラムされた処理として実行することができる。前記処理回路は、プロセッサとオペレーティングシステム、接続とネットワーク、データ格納部、またはスタンドアローン機器との多数の組み合わせの形態をとることができる。前記処理は、これらハードウェア、ハードウェア単体、またはその組み合わせにより実行される指示として実装することができる。ソフトウェアは、機械により読み取り可能なプログラム格納機器に格納してもよい。
【００１０】
一実施例によれば、部品、処理、および／またはデータ構成は、機械語、アセンブラ、ＣまたはＣ＋＋、Ｊａｖａ（登録商標）、および／またはその他のデータ処理コンピュータ上で行われる高度な言語のプログラムによって実装することができる。データ処理コンピュータとは、カリフォルニア州サンタクララ市のＳｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃ．から入手可能のＳｏｌａｒｉｓ、ワシントン州レドモンド市のＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎから入手可能のＷｉｎｄｏｗｓ  Ｖｉｓｔａ、Ｗｉｎｄｏｗｓ  ＮＴ、Ｗｉｎｄｏｗｓ  ＸＰ、Ｗｉｎｄｏｗｓ  ＸＰ  ＰＲＯ、およびＷｉｎｄｏｗｓ  ２０００、カリフォルニア州クパチーノ市のＡｐｐｌｅ  Ｉｎｃ．から入手可能のＡｐｐｌｅ  ＯＳ  Ｘを基礎とするシステム、または、複数のベンダーから入手可能のＬｉｎｕｘ（登録商標）などＵｎｉｘ（登録商標）オペレーティングシステムの様々なバージョンのＯＳが実行されるパーソナルコンピュータ、ワークステーションコンピュータ、メインフレームコンピュータ、または高性能なサーバ等である。前記方法は、マルチプロセッサシステムで実装することもでき、また、入力機器、出力機器、ディスプレイ、ポインティング機器、メモリ、格納機器、メディアインタフェースなどの周辺機器を含む、データをプロセッサと送受信するコンピュータ環境で実装してもよい。さらに、上記のコンピュータシステムまたはコンピュータ環境は、ローカルで、またはインターネットや他ネットワーク上でネットワーク接続されていてもよい。異なる実装形態を用いてもよく、また、異なる種類のオペレーティングシステム、計算プラットフォーム、コンピュータプログラム、ファームウェア、コンピュータ言語、および／または一般用途の機械を含んでもよい。さらに、当業者であれば、ハードワイヤード機器、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）など、用途特性としては一般ではない機器についても、ここに開示された発明の概念の範囲および主旨から逸脱することなく使用することができるということが認められるであろう。
【００１１】
本発明に鑑みて、「ネットワーク」という用語には、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、メトロエリアネットワーク、住居ネットワーク、企業ネットワーク、ネットワーク同士のネットワーク、インターネット、ワールドワイドウェブ、ケーブルテレビシステム、電話システム、無線通信システム、光ファイバーネットワーク、トークンリングネットワーク、イーサネット（登録商標）ネットワーク、ＡＴＭネットワーク、フレームリレーネットワーク、衛星通信システムなどが含まれる。このようなネットワーク群は従来よりよく知られているため、ここではより深くは説明しない。
【００１２】
本発明に鑑みて、「識別子」という用語は、順に並ぶ一またはそれ以上の数字、符号、記号などの系統を説明するものである。より一般的には、「識別子」とは一またはそれ以上のビットで表すことができるエンティティを説明するものである。
【００１３】
本発明に鑑みて、「分配された」という用語は、デジタル情報システムが複数のコンピュータに分散され、ひとつの場所に集中していないことを説明するものである。
【００１４】
本発明に鑑みて、「プロセッサ」という用語は、データを処理または変換する物理コンピュータ（スタンドアローンまたは分配されたもののいずれか）または仮想マシン（スタンドアローンまたは分配されたもののいずれか）を説明するものである。プロセッサは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせにおいて実装することができる。
【００１５】
本発明に鑑みて、「データ格納部」という用語は、デジタルまたはアナログ情報やデータを格納するための、ローカルまたは分配されたハードウェアおよび／またはソフトウェア手段または装置を説明するものである。「データ格納部」という用語は、例を挙げれば、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＤＲＡＭ）、フラッシュメモリ、ハードドライブ、ディスクドライブ、フレキシブルディスクドライブ、テープドライブ、ＣＤドライブ、ＤＶＤドライブ、磁気テープ機器（オーディオ、ビデオ、アナログ、デジタル、またはこれらの組み合わせ）、光学式記憶機器、電気的消去可能なプログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、ソリッドステートメモリ機器、および、ユニバーサルシリアルバス（ＵＳＢ）格納機器などの機器を説明するものである。「データ格納部」という用語は、さらに例を挙げれば、データベース、ファイルシステム、記録システム、オブジェクト指向データベース、リレーショナルデータベース、ＳＱＬデータベース、追跡記録およびログ、プログラムメモリ、キャッシュおよびバッファなども説明するものである。
【００１６】
本発明に鑑みて、「ネットワークインタフェース」という用語は、ユーザがネットワークを超えて通信したり、ネットワークから情報を取得したりするために、ネットワークにアクセスする手段を説明するものである。
【００１７】
本発明に鑑みて、「システム」という用語は、プロセッサ手段、データ格納手段、プログラム手段、および／またはユーザインタフェース手段を含む、ハードウェアおよび／またはソフトウェアのコンピュータ情報および／または制御機器、機器または機器のネットワークを説明するものである。前記ユーザインタフェース手段は、一またはそれ以上のデータネットワークや接続を介して本発明の実施例と通信するよう構成され、本発明の実施例と併せて使用するよう構成されている。
【００１８】
なお、ここでは、サーバサイドレンダリングシステムは、特定の機能を実施し相互に作用しあう様々なモジュールをもつことが示され論じられている。これらモジュールは、単に説明のために機能に基づいて分離されているのであって、コンピュータハードウェアおよび／またはコンピュータで読み取り可能な媒体に格納された、適切なコンピュータハードウェアによって実行される実行可能なソフトウェアコードを表すものであることを理解すべきである。これらの異なるモジュールおよびユニットの様々な機能は、どのモジュールでもそうであるように、上記ハードウェアおよび／またはコンピュータで読み取り可能な媒体に格納されたソフトウェアも同様に統合または分離してもよく、独立させてまたは組み合わせて使ってもよい。
【００１９】
本発明の実施例の例では、サーバコンピュータが、オンラインコンピュータゲームなどのオンラインコンピュータアプリケーションにおけるユーザアクションの結果であるビデオ画像を、レンダリングする。これらのビデオ画像は、ユーザ機器へ通信される。ユーザ機器がユーザからの入力を受け、適切なビデオ画像を選択し、その画像を表示する。ユーザ機器は、コンピュータアプリケーションのユーザアクションもサーバへ送る。画像転送方法は、様々なビデオ画像圧縮によって、ネットワーク状況に対し最適化させることができる。ユーザ機器からサーバへのフィードバックの厳しさは、サーバ上に可能な将来のコンピュータゲームプレーヤアクションの樹形を作り、今後に向けたいくつかの反復分のビデオ画像をレンダリングすることで減少させることができる。オンラインコンピュータアプリケーションにおけるユーザアクション数は、可能なユーザアクション数よりも少なく限定してもよい。
【００２０】
図１は、本発明の一実施例に係るサーバサイドレンダリング用システムを示すブロック図である。図１に示すように、サーバサイドレンダリング用システムは、ネットワーク１１５を介してサーバ１４０に通信可能に接続されたユーザ機器１１０を含む。サーバ１４０は、コンピュータアプリケーションにおけるユーザ状態を示すビデオ画像を格納するように構成されたデータ格納部１２０と、通信可能に接続されている。データ格納部１２０に格納された一またはそれ以上のビデオ画像は、可能なユーザ状態の少なくとも一部に基づいて動的に生成してもよい。ユーザ機器１１０は、ユーザ入力機器１０５を介してユーザ１２５から入力を受け取る。ユーザ機器１１０は、サーバコンピュータ１４０へ送る（１３０）ために、コンピュータアプリケーションにおけるユーザ１２５の状態を格納するように構成されている。ユーザ機器１１０はさらに、ユーザ１２５が将来のアクションを実施した後のユーザ１２５の将来状態を示す、一またはそれ以上のビデオ画像１３５を受け取り、メモリに格納するように構成されている。ユーザ機器１１０はさらに、ユーザアクションを受けて、ユーザディスプレイ機器１１０に表示するための一またはそれ以上のビデオ画像のうちひとつを選択するように構成されている。一実施例によれば、前記将来のアクション数は、可能なアクション数よりも少なく限定される。
【００２１】
引き続き図１を参照する。サーバ１４０は、コンピュータアプリケーションにおけるユーザ１２５の状態を示す現ユーザ状態１３０を受け取り、その現ユーザ状態１３０に基づき一またはそれ以上のユーザアクションを識別するように構成されている。サーバ１４０はさらに、前記識別に基づいて、一またはそれ以上のビデオ画像を作成し、前記一またそれ以上のビデオ画像を、ネットワーク１１５を介してユーザ機器１１０に送信する。一実施例によれば、前記一またはそれ以上の将来のユーザアクションは、前記状態にあるユーザにとって可能なユーザアクション数よりも少ない。
【００２２】
一実施例によれば、コンピュータアプリケーションはコンピュータゲームを含む。一実施例によれば、コンピュータゲームは、オンラインコンピュータゲームを含む。
【００２３】
一実施例によれば、サーバ１４０はさらに、ユーザ機器１１０にビデオ画像１３５を送信する前に前記ビデオ画像１３５を圧縮するように構成されており、ユーザ機器１１０はさらに、前記ビデオ画像１３５のうちひとつがユーザディスプレイ機器１００上に表示される前に、前記ビデオ画像１３５を解凍するように構成されている。
【００２４】
一実施例によれば、前記圧縮することは、サーバコンピュータ１４０とユーザ機器１１０との間のネットワーク混雑度合の少なくとも一部に基づいて、圧縮量を選択することを含む。特定の圧縮方法の選択は、圧縮を実施するのに必要な時間、および圧縮の予定量を考慮してもよい。例えば、比較的ネットワーク混雑度が高い時間には、比較的高い圧縮レベルを選択してもよい。加えて、比較的ネットワーク混雑度が低い時間には、比較的低い圧縮レベルを選択してもよい。
【００２５】
図２は、本発明の一実施例に係る、コンピュータにより生成されたキャラクタを操作するコンピュータゲームの画像を使用するサーバサイドレンダリング用システムを示すブロック図である。図２は、図１の通信１３０および１３５についてより詳細に提供する。ユーザの現状態を表す画像が、右向きのキャラクタを指す参照符号２７５に示されている。２３０で、参照符号２７５によって示された現ユーザ状態の指標が、サーバ２４０に送信される。サーバ２４０は、前記現ユーザ状態の指標を受け取り、次のユーザ状態のビデオ画像をレンダリングする。作成されたビデオ画像２３５は、データ格納部２２０から引き出される。
【００２６】
本例に示す通り、前記次のユーザ状態は、下向きのキャラクタ２５０、左向きのキャラクタ２５５、上向きのキャラクタ２６０、右向きのキャラクタ２６５、または丸い物体を取り込んでいる右向きのキャラクタ２７０のビデオ画像によって表すことができる。現状態２３０が送信された後の次のユーザアクションが、ビデオ画像２５０、２５５、２６０、２６５、および２７０のどれが実際にユーザ機器２１０によって選択され、ユーザ機器２００に表示されるのかを決定し、前記次のユーザアクションの結果である新しい状態が表される。したがって、もしユーザアクションで方向転換が指示されなかった場合は、ビデオ画像２６５が表示される。もしユーザアクションで上方向が指示されたら、ビデオ画像２６０が表示される。もしユーザアクションで、丸い物体があるパスを進んでいる時に方向転換が指示されなかった場合は、ビデオ画像２７０が表示される。
【００２７】
一実施例によれば、将来のユーザアクション数は、将来のユーザアクションの発生確率の少なくとも一部に基づいて限定される。このことは、図３を参照しながら、以下にさらに詳細に説明する。
【００２８】
図３は、本発明の一実施例に係る、将来の動作を最も起こり得る将来の動作に限定する様子を示す図である。図３に示すように、いくつかのユーザアプリケーションは比較的少数の将来状態（３０５）を有するため、状態を表すのに比較的少数のビデオ画像を必要とする。このようなユーザアプリケーションの例としては、図２に示されるビデオコンピュータゲームである。他、航空機飛行シミュレーションユーザアプリケーションなどのユーザアプリケーションは、比較的多数の将来状態（３１０）を有する。一実施例によれば、次の状態の数は、最も起こり得る将来状態（３００）に限定してもよい。
【００２９】
最も起こり得る将来状態は、ある特定の状態にあるユーザが以前とったアクションを考慮して決定してもよい。例えば、もしユーザが可能なユーザアクションＡ、Ｂ、Ｃ、および、Ｄがとれる状態にあり、ユーザは過去に同じ状態でアクションＣを選択したことがない場合、サーバからユーザ機器に送られる画像群において、ユーザアクションＣの結果である画像は生成されない。もし、実際にユーザがアクションＣを選択するようなことがあった場合、関連付けられた画像をユーザ機器によってリアルタイムに生成するか、またはサーバに要求してもよい。
【００３０】
また、最も起こり得る将来状態は、前記特定の状態にあった他のユーザのとった以前のアクションを考慮して決定してもよい。例えば、所定割合以上のユーザが、Ａ、Ｂ、Ｃ、および、Ｄの可能なユーザアクションをとれる状態にあった場合にアクションＣを選択したことがない場合、サーバからユーザ機器に送られる画像群において、ユーザアクションＣの結果である画像は生成されない。もし、実際にユーザがアクションＣを選択するようなことがあった場合、関連付けられた画像をユーザ機器によってリアルタイムに生成するか、またはサーバに要求してもよい。
【００３１】
図４Ａは、本発明の一実施例に係る、ひとつの将来のアクションの後のユーザ状態を表すビデオ画像を示す樹形図である。現ユーザ状態４００から始まり、ある特定のユーザアクションの識別で、将来のユーザ状態（４０５，４１０，４１５，４２０）が決定する。４つの将来のユーザ状態しか示されていない。これ以外の数の将来状態にすることも可能である。
【００３２】
図４Ｂは、本発明の一実施例に係る、ふたつの将来のアクションの後のユーザ状態を表すビデオ画像を示す樹形図である。現ユーザ状態４２２から始まり、第１のユーザアクションの識別によって第１の将来のユーザ状態（４２５，４３０，４３５，４４０）が決定する。前記第１の将来のユーザ状態がユーザ状態４２５である場合、第２のユーザアクションの識別によって第２の将来のユーザ状態（４４５，４５０）が決定する。前記第１の将来のユーザ状態がユーザ状態４３０である場合、第２のユーザアクションの識別によって第２の将来のユーザ状態（４５５，４６０，４６５）が決定する。前記第１の将来のユーザ状態がユーザ状態４３５である場合、第２のユーザアクションの識別によって第２の将来のユーザ状態（４７０，４７５）が決定する。前記第１の将来のユーザ状態がユーザ状態４４０である場合、第２のユーザアクションの識別によって第１の将来状態（４８０，４８５，４９０，４９５）を決定する。
【００３３】
図４Ａおよび図４Ｂは、それぞれ、１つ目および２つ目のユーザアクションの後の将来のユーザ状態を示している。同様に、２つよりも多い数の将来のユーザアクションの後のユーザ状態を示すビデオ画像も可能である。
【００３４】
一実施例によれば、予め定められる一連の将来のユーザアクション数は、サーバコンピュータのデータ格納部の制限の少なくとも一部に基づいている。例えば、使用可能なメモリが比較的多い場合には、比較的多い数の一連の将来のユーザアクションを、サーバコンピュータのメモリに表現してよい。そして、使用可能なメモリが比較的少ない場合には、比較的少ない数の一連の将来のユーザアクションを、サーバコンピュータのメモリに表現してよい。
【００３５】
一実施例によれば、前記予め定められる一連の将来のユーザアクション数は、ユーザ機器のデータ格納部の制限の少なくとも一部に基づいている。例えば、使用可能なメモリが比較的多い場合には、比較的多い数の一連の将来のユーザアクションを、クライアント機器のメモリに表現してよい。そして、使用可能なメモリが比較的少ない場合には、比較的少ない数の一連の将来のユーザアクションを、クライアント機器のメモリに表現してよい。
【００３６】
一実施例によれば、前記予め定められる一連の将来のユーザアクション数は、ネットワーク帯域の制限の少なくとも一部に基づいている。例えば、使用可能な帯域が比較的多い場合には、比較的多い数の一連の将来のユーザアクションを、メモリに表現してよい。そして、使用可能な帯域が比較的少ない場合には、比較的少ない数の一連の将来のユーザアクションを、メモリに表現してよい。
【００３７】
一実施例によれば、予め定められる一連の将来のユーザアクション数は、サーバコンピュータがビデオ画像を圧縮するために必要な時間の少なくとも一部に基づいている。例えば、サーバコンピュータがビデオ画像を圧縮するために必要な時間が比較的短い場合には、比較的多い数の一連の将来のユーザアクションを、メモリに表現してよい。そして、サーバコンピュータがビデオ画像を圧縮するために必要な時間が比較的長い場合には、比較的少ない数の一連の将来のユーザアクションを、メモリに表現してよい。
【００３８】
一実施例によれば、予め定められる一連の将来のユーザアクション数は、ユーザ機器がビデオ画像を解凍するために必要な時間の少なくとも一部に基づいている。例えば、クライアント機器がビデオ画像を解凍するために必要な時間が比較的短い場合には、比較的多い数の一連の将来のユーザアクションを、メモリに表現してよい。そして、クライアント機器がビデオ画像を解凍するために必要な時間が比較的長い場合には、比較的少ない数の一連の将来のユーザアクションを、メモリに表現してよい。
【００３９】
一実施例によれば、予め定められる一連の将来のユーザアクション数は、サーバコンピュータがビデオ画像を動的にレンダリングするために必要な時間の少なくとも一部に基づいている。例えば、サーバコンピュータがビデオ画像を動的にレンダリングするために必要な時間が比較的短い場合には、比較的多い数の一連の将来のユーザアクションを、メモリに表現してよい。そして、サーバコンピュータが動的にビデオ画像をレンダリングするために必要な時間が比較的長い場合には、比較的少ない数の一連の将来のユーザアクションを、メモリに表現してよい。
【００４０】
図５は、本発明の一実施例に係るサーバサイドレンダリング方法を、サーバの観点から示したフロー図である。図５に示された処理は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせにおいて実施することができる。５００にて、一またはそれ以上の将来のユーザアクションが、コンピュータアプリケーションにおけるユーザの状態の少なくとも一部に基づいて、識別される。５０５にて、５００の識別に基づいて、前記ユーザに関連付けられたユーザ機器に送るため、一またはそれ以上のビデオ画像がレンダリングされる。一実施例によれば、前記一またはそれ以上の将来のユーザアクションは、前記状態にあるユーザにとって可能なユーザアクション数よりも少ない。
【００４１】
図６は、本発明の一実施例に係るサーバサイドレンダリング方法を、ユーザ機器の観点から示したフロー図である。図６に示された処理は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせにおいて実施することができる。６００にて、コンピュータアプリケーションにおけるユーザの状態を表す複数の画像を格納するサーバコンピュータに送るため、前記コンピュータアプリケーションにおけるユーザの状態が格納される。６０５にて、前記ユーザが将来のアクションを実施した後の前記ユーザの将来状態を表す、一またはそれ以上のビデオ画像が格納される。一実施例によれば、前記将来のアクション数は、可能な将来のアクション数よりも少なく限定される。６１０にて、ユーザアクションを受け、前記ユーザと関連付けられたユーザ機器のユーザディスプレイ上に表示するために、一またはそれ以上のビデオ画像が選択される。
【００４２】
図７は、本発明の態様を実施するために適したコンピュータシステムのブロック図である。図７に示すように、システム７００は、プロセッサ７０４、内部メモリ７０６（ＲＡＭ等）、入力／出力（Ｉ／Ｏ）コントローラ７０８、リムーバブルメモリ（メモリーカード等）７２２、ディスプレイアダプタ７１２を介したディスプレイ画面７１０、ローラ型入力機器７１４、ジョイスティック７１６、数字キーボード７１８、英数字キーボード７１８、方位ナビゲーションパッド７２６、スマートカード受容機器７３０、および無線インタフェース７２０等の外部機器、等の主要なサブシステム間を接続するバス７０２を含む。他、多くの機器を接続することができる。無線ネットワークインタフェース７２０、有線ネットワークインタフェース７２８、またはその両方は、当業者が知るところのあらゆるネットワークインタフェースシステムを使用して、ローカルエリアネットワーク、広域エリアネットワーク（インターネット等）またはその両方とのインタフェースとして使用してもよい。
【００４３】
他、多くの機器またはサブシステム（図示せず）を、同様に接続してもよい。また、本発明を実施するのに、図７に図示したすべての機器が必須ということではない。さらに、前記機器およびサブシステム間は、図７に図示のものとは異なる手法で接続してもよい。本発明を実施するためのコードは、内部メモリ７０６に操作可能に設置してもよく、または、リムーバブルメモリ７２２、フレキシブルディスク、サムドライブ、コンパクトフラッシュ(登録商標)を利用した格納機器、ＤＶＤ-Ｒ（「デジタル多用途ディスク」または「デジタルビデオディスク」リコーダブル）、ＤＶＤ-ＲＯＭ（「デジタル多用途ディスク」または「デジタルビデオディスク」リードオンリメモリ）、ＣＤ-Ｒ（コンパクトディスクーリコーダブル）、またはＣＤ-ＲＯＭ（コンパクトディスクーリードオンリメモリ）などの格納用メディアに、操作可能に格納してもよい。
【００４４】
本発明の実施例は図示されたキャラクタゲームの例を使って示されているが、本発明の実施例は、ビデオ画像によってユーザの状態が表されるあらゆるオンラインユーザアプリケーションに適用されるものである。このようなオンラインユーザアプリケーションは、オンラインゲームを含む。
【００４５】
本発明の実施例と適用例が示され説明されたが、本発明概念から逸脱することなく、上述した以上に多くの変形例が実施可能であることは、本開示内容の恩恵を受ける当業者にとっては明らかである。したがって本発明は、添付の特許請求の範囲の主旨以外の内容において限定されるものではない。
【符号の説明】
【００４６】
１１０  ・・・  ユーザ機器
１４０、２４０  ・・・  サーバ
１１５  ・・・  ネットワーク
１２０  ・・・  データ格納部
１２５  ・・・  ユーザ
１０５  ・・・  ユーザ入力機器
１３５、２３５  ・・・  ビデオ画像
１３０、２３０、２７５、４００、４２２  ・・・  現ユーザ状態
１００  ２００・・・  ユーザディスプレイ機器
１１０、２１０  ・・・  ユーザ機器
２５０  ・・・  下向きのキャラクタ
２５５  ・・・  左向きのキャラクタ
２６０  ・・・  上向きのキャラクタ
２６５  ・・・  右向きのキャラクタ
２７０  ・・・  丸い物体を取り込んでいる右向きのキャラクタ
３０５  ・・・  少数の将来状態
３１０  ・・・  多数の将来状態
３００  ・・・  最も起こり得る将来状態
４０５、４１０、４１５、４２０  ・・・  将来のユーザ状態
４２５、４３０、４３５、４４０  ・・・  第１の将来のユーザ状態
４４５、４５０、４５５、４６０、４６５、４７０、４７５、４８０、４８５、４９０、４９５  ・・・  第２の将来状態
７００  ・・・  システム
７０２  ・・・  バス
７０４  ・・・  プロセッサ
７０６  ・・・  内部メモリ
７０８  ・・・  入力／出力（Ｉ／Ｏ）コントローラ
７２２  ・・・  リムーバブルメモリ
７１２  ・・・  ディスプレーアダプタ
７１０  ・・・  ディスプレイ画面
７１４  ・・・  ローラ型入力機器
７１６  ・・・  ジョイスティック
７１８  ・・・  数字キーボード、英数字キーボード
７２６  ・・・  方位ナビゲーションパッド
７３０  ・・・  スマートカード受容機器
７２０  ・・・  無線ネットワークインタフェース
７２８  ・・・  有線ネットワークインタフェース
【図４Ａ】
2013513858.tif 000003
【図４Ｂ】
2013513858.tif 000004
【図１】
2013513858.tif 000005
【図２】
2013513858.tif 000006
【図３】
2013513858.tif 000007
【図５】
2013513858.tif 000008
【図６】
2013513858.tif 000009
【図７】
2013513858.tif 000010
【国際調査報告】
2013513858.tif 000011