(57)【要約】  クラウドベースのゲームにおいて予測的なキャッシングを介して遅れ時間を減らすための技術について一般的に記述する。一例では、クラウドベースのゲームシステムは、リアルタイムのゲームプレイ中に取ることができるゲーム経路を識別することができ、プレイヤが選択できる経路セグメントのサブセットへとゲーム経路を分割することができる。システムは、プレイヤによるリアルタイムの動作ならびに現在のプレイヤおよび過去のプレイヤのゲーム履歴に基づいてプレイヤが経路セグメントのサブセットを取る確率を決定することができる。システムは、経路セグメントのサブセットに選択される確率を割り当てることができ、それぞれの確率に基づいて経路セグメントのサブセットをレンダリングすることができる。システムは、経路セグメントのサブセットに対してレンダリングされたゲームコンテンツデータをローカルキャッシュにキャッシュするためにゲームクライアントに送信できるため、リアルタイムゲームプレイ中に必要なときにゲームコンテンツデータが利用可能になり得る。
2015509010.tif 000002
【特許請求の範囲】
【請求項１】
クラウドベースのゲームにおいて予測的にキャッシュするための方法であって、
ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、
前記プレイヤによる現在の動作、前記プレイヤの場所、前記プレイヤによる第１の動作、前記プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および／または前記複数のプレイヤによる第１の動作の組の少なくとも１つに基づいて前記プレイヤが前記経路セグメントのサブセットを取る確率を決定することと、
それぞれの確率に基づいて経路セグメントの前記サブセットにおいて前記経路セグメントの１つまたは複数をレンダリングすることと、
前記ゲームクライアントにキャッシュするために、前記レンダリングされた１つまたは複数の経路セグメントをゲームクライアントに送信することと
を含む方法。
【請求項２】
確率が最も高い経路セグメントを送信することをさらに含む請求項１に記載の方法。
【請求項３】
それぞれの確率に比例して変動する表示品質を持つ前記１つまたは複数の経路セグメントをレンダリングすることと、
前記変動する表示品質を持つ前記１つまたは複数の経路セグメントを送信することと
をさらに含む請求項１に記載の方法。
【請求項４】
前記表示品質が、解像度、毎秒のフレーム数、ラスタ化、および／またはシェーディングの組の少なくとも１つを含む請求項３に記載の方法。
【請求項５】
利用可能な帯域幅、ゲームクライアントのキャッシュのサイズ、および／または活動中のプレイヤの数の組の少なくとも１つに基づいて送信するために多数のレンダリングされた経路セグメントを選択することをさらに含む請求項１の方法。
【請求項６】
前記プレイヤによる他の動作、前記プレイヤの他の場所、前記プレイヤのゲーム履歴、および／または前記プレイヤが前記ゲームを進めたときの複数のプレイヤのゲーム履歴の組の少なくとも１つに基づいて前記プレイヤが前記経路セグメントの他のサブセットを取る確率を更新することと、
それぞれの確率に基づいて経路セグメントの他方のサブセットにおいて前記経路セグメントの１つまたは複数をレンダリングすることと、
前記ゲームクライアントにキャッシュするために、前記レンダリングされた１つまたは複数の経路セグメントを前記ゲームクライアントに送信することと
をさらに含む請求項１に記載の方法。
【請求項７】
前記経路セグメントを識別しかつ／または前記確率を決定するために、前記複数のプレイヤの前記ゲーム履歴のデータマイニングおよびクラウドソーシングの１つを用いることをさらに含む請求項１に記載の方法。
【請求項８】
前記プレイヤが前記経路セグメントのサブセットを取る確率を決定することが、ゲーム開発者によって指定され、最初のゲームのセットアップ時にゲームコンテンツデータに格納された、１組の事前定義された確率にさらに基づく請求項１に記載の方法。
【請求項９】
前記プレイヤが前記経路セグメントのサブセットを取る確率を決定することが、ゲームコンテンツデータに格納され、ゲームコンテンツ更新によって更新される１組の事前定義された確率にさらに基づく請求項１に記載の方法。
【請求項１０】
前記ゲームクライアントのキャッシュから未使用のゲームコンテンツデータを削除することと、
前記未使用のゲームコンテンツデータを１つまたは複数の経路セグメントの新しい組のゲームコンテンツデータに置き換えることと
をさらに含む請求項１に記載の方法。
【請求項１１】
前記ゲームの初期化時に前記複数の経路セグメントに、実質的に等しい確率を割り当てることをさらに含む請求項１に記載の方法。
【請求項１２】
ゲームコンテンツデータを予測的にキャッシュするためのクラウドベースのゲームサーバであって、
メモリと、
前記メモリに結合されたプロセッサであって、
ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別し、
前記プレイヤによる現在の動作、前記プレイヤの場所、前記プレイヤによる第１の動作、前記プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および／または前記複数のプレイヤによる第１の動作の組の少なくとも１つに基づいて前記プレイヤが前記経路セグメントのサブセットを取る確率を決定し、
それぞれの確率に基づいて経路セグメントの前記サブセットにおいて前記経路セグメントの１つまたは複数をレンダリングし、
ゲームクライアントにキャッシュするために、前記レンダリングされた１つまたは複数の経路セグメントを前記ゲームクライアントに送信する
ように構成されたプロセッサと
を備えるサーバ。
【請求項１３】
前記プロセッサは、確率が最も高い経路セグメントを送信するようにさらに構成されている請求項１２に記載のサーバ。
【請求項１４】
前記プロセッサが、
それぞれの確率に比例して変動する表示品質を持つ１つまたは複数の経路セグメントをレンダリングし、
前記変動する表示品質を持つ前記１つまたは複数の経路セグメントを送信するようにさらに構成されている請求項１２に記載のサーバ。
【請求項１５】
前記表示品質が、解像度、毎秒のフレーム数、ラスタ化、および／またはシェーディングの組の少なくとも１つを含む請求項１４に記載のサーバ。
【請求項１６】
前記プロセッサが、利用可能な帯域幅、ゲームクライアントのキャッシュのサイズ、および／または活動中のプレイヤの数の組の少なくとも１つに基づいて送信するために多数のレンダリングされた経路セグメントを選択するようにさらに構成されている請求項１２に記載のサーバ。
【請求項１７】
前記プロセッサが、
前記プレイヤによる他の動作、前記プレイヤの他の場所、前記プレイヤのゲーム履歴、および／または前記プレイヤがゲームを進めたときの複数のプレイヤのゲーム履歴の組の少なくとも１つに基づいて前記プレイヤが前記経路セグメントの他のサブセットを取る確率を更新し、
それぞれの確率に基づいて経路セグメントの前記他方のサブセットにおいて前記経路セグメントの１つまたは複数をレンダリングし、
前記ゲームクライアントにキャッシュするために、前記レンダリングされた１つまたは複数の経路セグメントを前記ゲームクライアントに送信するようにさらに構成されている請求項１２に記載のサーバ。
【請求項１８】
前記プロセッサが、前記経路セグメントを識別しかつ／または前記確率を決定するために、前記複数のプレイヤの前記ゲーム履歴のデータマイニングおよびクラウドソーシングの１つを用いるようにさらに構成されている請求項１２に記載のサーバ。
【請求項１９】
前記プロセッサが、ゲーム開発者によって指定され、最初のゲームのセットアップ時にゲームコンテンツデータに格納された、１組の事前定義された確率にさらに基づいて、前記プレイヤが前記経路セグメントの前記サブセットを取る確率を決定するようにさらに構成されている請求項１２に記載のサーバ。
【請求項２０】
前記プロセッサが、ゲームコンテンツデータに格納され、ゲームコンテンツ更新によって更新される１組の事前定義された確率にさらに基づいて、前記プレイヤが前記経路セグメントの前記サブセットを取る確率を決定するようにさらに構成されている請求項１２に記載のサーバ。
【請求項２１】
前記プロセッサが、
前記ゲームクライアントのキャッシュから未使用のゲームコンテンツデータを削除し、
前記未使用のゲームコンテンツデータを１つまたは複数の経路セグメントの新しい組のゲームコンテンツデータに置き換えるようにさらに構成されている請求項１２に記載のサーバ。
【請求項２２】
前記プロセッサが、前記ゲームの初期化時に前記複数の経路セグメントに、実質的に等しい確率を割り当てるようにさらに構成されている請求項１２に記載のサーバ。
【請求項２３】
クラウドベースのゲームにおいて予測的にキャッシュするために、命令が格納されたコンピュータ可読記憶媒体であって、前記命令は、
ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、
前記プレイヤによる現在の動作、前記プレイヤの場所、前記プレイヤによる第１の動作、前記プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および／または前記複数のプレイヤによる第１の動作の組の少なくとも１つに基づいて前記プレイヤが前記経路セグメントのサブセットを取る確率を決定することと、
それぞれの確率に基づいて経路セグメントの前記サブセットにおいて前記経路セグメントの１つまたは複数をレンダリングすることと、
ゲームクライアントにキャッシュするために、前記レンダリングされた１つまたは複数の経路セグメントをゲームクライアントに送信することと
を含むコンピュータ可読記憶媒体。
【請求項２４】
前記命令が、確率が最も高い経路セグメントを送信することをさらに含む請求項２３に記載のコンピュータ可読記憶媒体。
【請求項２５】
前記命令が、
それぞれの確率に比例して変動する表示品質を持つ前記１つまたは複数の経路セグメントをレンダリングすることと、
前記変動する表示品質を持つ前記１つまたは複数の経路セグメントを送信することと
をさらに含む請求項２３に記載のコンピュータ可読記憶媒体。
【請求項２６】
前記表示品質が、解像度、毎秒のフレーム数、ラスタ化、および／またはシェーディングの組の少なくとも１つを含む請求項２５に記載のコンピュータ可読記憶媒体。
【請求項２７】
前記命令が、利用可能な帯域幅、ゲームクライアントのキャッシュのサイズ、および／または活動中のプレイヤの数の組の少なくとも１つに基づいて送信するために多数のレンダリングされた経路セグメントを選択することをさらに含む請求項２３に記載のコンピュータ可読記憶媒体。
【請求項２８】
前記命令が、
前記プレイヤによる他の動作、前記プレイヤの他の場所、前記プレイヤのゲーム履歴、および／または前記プレイヤが前記ゲームを進めたときの複数のプレイヤのゲーム履歴の組の少なくとも１つに基づいて前記プレイヤが前記経路セグメントの他のサブセットを取る確率を更新することと、
それぞれの確率に基づいて経路セグメントの前記他方のサブセットにおいて前記経路セグメントの１つまたは複数をレンダリングすることと、
前記ゲームクライアントにキャッシュするために、前記レンダリングされた１つまたは複数の経路セグメントを前記ゲームクライアントに送信することと
をさらに含む請求項２３に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記命令が、前記経路セグメントを識別しかつ／または前記確率を決定するために、前記複数のプレイヤのゲーム履歴のデータマイニングおよびクラウドソーシングの１つを用いることをさらに含む請求項２３に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記プレイヤが前記経路セグメントの前記サブセットを取る確率を決定することが、ゲーム開発者によって指定され、最初のゲームのセットアップ時にゲームコンテンツデータに格納された、１組の事前定義された確率にさらに基づくプレイヤ請求項２３に記載のコンピュータ可読記憶媒体。
【請求項３１】
前記プレイヤが前記経路セグメントの前記サブセットを取る確率を決定することが、ゲームコンテンツデータに格納され、ゲームコンテンツ更新によって更新される１組の事前定義された確率にさらに基づく請求項２３に記載のコンピュータ可読記憶媒体。
【請求項３２】
前記命令が、
前記ゲームクライアントのキャッシュから未使用のゲームコンテンツデータを削除することと、
前記未使用のゲームコンテンツデータを１つまたは複数の経路セグメントの新しい組のゲームコンテンツデータに置き換えることと
をさらに含む請求項２３に記載のコンピュータ可読記憶媒体。
【請求項３３】
前記命令が、前記ゲームの初期化時に前記複数の経路セグメントに、実質的に等しい確率を割り当てることをさらに含む請求項２３に記載のコンピュータ可読記憶媒体。
【請求項３４】
予測されたゲームコンテンツデータをキャッシュするためのゲームクライアントであって、
メモリと、
前記メモリに結合されたプロセッサであって、
ローカルにキャッシュするためにゲームサーバから１つまたは複数のレンダリングされた経路セグメントを受信するように構成され、１つまたは複数の経路セグメントは、
ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、
前記プレイヤによる現在の動作、前記プレイヤの場所、前記プレイヤによる第１の動作、前記プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および／または前記複数のプレイヤによる第１の動作の組の少なくとも１つに基づいて前記プレイヤが前記経路セグメントのサブセットを取る確率を決定することと、
それぞれの確率に基づいて経路セグメントの前記サブセットにおいて前記経路セグメントの１つまたは複数をレンダリングすることと
によってレンダリングされるように構成されたプロセッサと
を備えるゲームクライアント。
【請求項３５】
前記プロセッサが、確率が最も高い経路セグメントを受信するようにさらに構成されている請求項３４に記載のゲームクライアント。
【請求項３６】
前記プロセッサが、変動する表示品質を持つ前記１つまたは複数の経路セグメントを受信するようにさらに構成され、前記１つまたは複数の経路セグメントが、それぞれの確率に比例して前記変動する表示品質を用いて前記ゲームサーバでレンダリングされる請求項３４に記載のゲームクライアント。
【請求項３７】
前記表示品質は、解像度、毎秒のフレーム数、ラスタ化、および／またはシェーディングの組の少なくとも１つを含む請求項３６に記載のゲームクライアント。
【請求項３８】
送信される多数のレンダリングされた経路セグメントが、利用可能な帯域幅、ゲームクライアントのキャッシュのサイズ、および／または活動中のプレイヤの数の組の少なくとも１つに基づいて前記ゲームサーバで選択される請求項３４に記載のゲームクライアント。
【請求項３９】
前記プレイヤが前記経路セグメントの他のサブセットを取る確率は、前記プレイヤによる他の動作、前記プレイヤの他の場所、前記プレイヤのゲーム履歴、および／または前記プレイヤが前記ゲームを進めたときの複数のプレイヤのゲーム履歴の組の少なくとも１つに基づいて前記ゲームサーバで更新される請求項３４に記載のゲームクライアント。
【請求項４０】
前記プロセッサが、
前記ゲームクライアントのキャッシュから未使用のゲームコンテンツデータを削除し、
前記未使用のゲームコンテンツデータを１つまたは複数の経路セグメントの新しい組のゲームコンテンツデータに置き換えるようにさらに構成されている請求項３４に記載のゲームクライアント。
【請求項４１】
前記ゲームクライアントは、デスクトップコンピュータ、ラップトップ型コンピュータ、車両搭載型コンピュータ、ハンドヘルドコンピュータ、多目的のコンピューティングデバイス、およびゲームデバイスの１つである請求項３４に記載のゲームクライアント。
【発明の詳細な説明】
【背景技術】
【０００１】
本明細書に特に記載していないかぎり、本項に記述した情報は、本出願の特許請求の範囲に対する従来技術ではなく、また本項に含めることによって従来技術であることを認めるものではない。
【０００２】
オンラインのマッシブリーマルチプレイヤオンラインロールプレーイングゲーム（ＭＭＯＲＰＧ）市場は急速に成長している。ゲームクライアントのユーザ環境がリアルタイムにユーザの決定に応じて絶えず更新される、対話型のゲームは、処理、ストレージ、および帯域幅の要件に関して非常にリソース集約的な活動になりつつある。一人称のシューティングゲームがリアルタイムな戦略と組み合わせられているため、ゲームの複雑さは幾重にも増加する。ゲームのためのコンピュータ環境は、クラウドベースのゲームシステムにますます移動されつつあり、そこでは、ゲーム処理はクラウドベースのサーバでホストされ、ゲームのビデオストリームは、かなり低い処理能力を有するローカルゲームクライアントに送信される。ローカルのゲームクライアントにビデオストリームをリアルタイムに送信する際の遅延、待ち時間、または遅れ時間は、クラウドベースのゲームにおいてユーザ体験に悪い影響を与える場合があるため、ローカルのゲームクライアントにゲームのビデオストリームを送信する際に待ち時間および遅れ時間を減らすことが望ましい場合がある。
【０００３】
ユーザ体験を改善し、かつ遅れ時間および待ち時間を減らす方法の１つは、事前にゲームの次に来るビデオシーケンスを生成し、ゲームクライアントにビデオシーケンスを前もって送信することである。事前に生成するために次に来るゲームシーケンスを予測する処理は、選択肢の数がより少ないときには、うまく機能することがある。しかし、一人称のシューティングゲームおよびリアルタイムの戦略ゲームなど、複雑な対話型ＭＭＯＲＰゲームは、事実上非常に対話が多く動的であり、ユーザの行動および次に来るゲームストリームを前もって予測することは、不可能ではないにしても非常に困難である。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示は、一般的に、クラウドベースのゲームにおいてゲームコンテンツデータを予測的にキャッシュするための技術について記述する。一部の例によれば、クラウドベースのゲームにおいて予測的にキャッシュするための方法は、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、プレイヤによる第１の動作、プレイヤのゲーム履歴、および／または複数のプレイヤのゲーム履歴の組の少なくとも１つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定することと、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの１つまたは複数をレンダリングすることと、ゲームクライアントにキャッシュするために、レンダリングされた１つまたは複数の経路セグメントをゲームクライアントに送信することとを含むことができる。
【０００５】
他の例によれば、ゲームコンテンツデータを予測的にキャッシュするためのクラウドベースのゲームサーバは、メモリ、メモリに結合されたプロセッサを備えることができる。プロセッサは、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別し、プレイヤによる第１の動作、プレイヤのゲーム履歴、および／または複数のプレイヤのゲーム履歴の組の少なくとも１つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定し、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの１つまたは複数をレンダリングし、ゲームクライアントにキャッシュするために、レンダリングされた１つまたは複数の経路セグメントをゲームクライアントに送信するように構成することができる。
【０００６】
他の例によれば、コンピュータ可読記憶媒体は、クラウドベースのゲームにおいて予測的にキャッシュするために、命令を格納することができる。命令は、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、プレイヤによる第１の動作、プレイヤのゲーム履歴、および／または複数のプレイヤのゲーム履歴の組の少なくとも１つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定することと、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの１つまたは複数をレンダリングすることと、ゲームクライアントにキャッシュするために、レンダリングされた１つまたは複数の経路セグメントをゲームクライアントに送信することとを含むことができる。
【０００７】
さらに他の例によれば、予測されたゲームコンテンツデータをキャッシュするためのゲームクライアントは、メモリ、およびメモリに結合されたプロセッサを備えることができる。プロセッサは、ローカルにキャッシュするためにゲームサーバから１つまたは複数のレンダリングされた経路セグメントを受信するように構成することができる。経路セグメントは、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、プレイヤによる第１の動作、プレイヤのゲーム履歴、および／または複数のプレイヤのゲーム履歴の組の少なくとも１つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定することと、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの１つまたは複数をレンダリングすることとによってレンダリングすることができる。
【０００８】
前述の概要は例を示すものにすぎず、決して限定することを意図するものではない。図面および以下の詳細な説明を参照することによって、上に記述した例として示す態様、実施形態、および特徴に加えて、他の態様、実施形態、および特徴が明らかになろう。
【０００９】
本開示の前述および他の機能は、添付図面に関して、以下の記述および添付の特許請求の範囲からより完全に明らかになろう。これらの図は本開示に従って単に複数の実施形態を示すものであり、したがって、その範囲を限定するものではないことを理解して、添付図面を使用して追加の特異性および詳細を用いて本開示について記述する。
【図面の簡単な説明】
【００１０】
【図１】予測的にキャッシュするための例示的なクラウドベースのゲームシステムを示す図である。
【図２】使用履歴に基づいて予測的にキャッシュするための例示的なクラウドベースのゲームシステムを示す図である。
【図３】マルチ経路ゲームのセグメントに対する割り当てられた確率の例示的なシナリオを示す図である。
【図４】マルチ経路ゲームにおいて経路セグメントを予測的にキャッシュするために確率を動的に更新する機能ブロック図である。
【図５】クラウドベースのゲームにおいて予測的なキャッシングを実装するために使用できる汎用コンピューティングデバイスを示す図である。
【図６】図５のデバイスなど、コンピューティングデバイスによって実行できるクラウドベースのゲームにおいて予測的にキャッシュするための例示的な方法を示す流れ図である。
【図７】本明細書に記述した少なくとも一部の実施形態に従ってすべて配置された、例示的なコンピュータプログラム製品を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下の詳細な説明では、その一部を形成する添付図面について言及する。図面では、文脈において指示されていないかぎり、類似の記号は、典型的には同様のコンポーネントを特定する。詳細な説明、図、および特許請求の範囲に記述されている例示的な実施形態は、限定を目的とするものではない。本明細書に提示された主題の精神または範囲から逸脱することなく、他の実施形態を利用し、他の変更を行うことができる。本明細書に一般的に記述し、図に示した本開示の態様は、多種多様な異なる構成において配置、交換、結合、分離、および設計することができ、本明細書では、それはすべてを明示的に意図するものであることが容易に理解されよう。
【００１２】
この開示は、一般的に、とりわけ、クラウドベースのゲームのゲームコンテンツデータの予測的なキャッシングに関係する方法、装置、システム、デバイス、および／またはコンピュータプログラム製品について記述するものである。
【００１３】
簡潔に言えば、クラウドベースのゲームにおいて予測的なキャッシングを介して遅れ時間を減らすための技術が提示される。クラウドベースのゲームシステムは、リアルタイムのゲームプレイ中に取ることができるゲーム経路を識別することができ、プレイヤが選択できる経路セグメントのサブセットへとゲーム経路を分割することができる。システムは、プレイヤによるリアルタイムの動作の分析ならびに現在のプレイヤおよび過去のプレイヤのゲーム履歴に基づいてプレイヤが経路セグメントのサブセットを取る確率を決定することができる。システムは、経路セグメントのサブセットに選択される確率を割り当てることができ、それぞれの確率に基づいて経路セグメントのサブセットをレンダリングすることができる。システムは、経路セグメントのサブセットに対するレンダリングされたゲームコンテンツデータをローカルキャッシュにキャッシュするためにゲームクライアントに送信できるため、リアルタイムゲームプレイ中に必要なときにゲームコンテンツデータが利用可能になり得る。
【００１４】
図１は、本明細書に記述した少なくとも一部の実施形態に従って配置された、予測的なキャッシングのための例示的なクラウドベースのゲームシステムを示している。図１の略図１００に図示するように、クラウドベースのシステムは、１つまたは複数の物理的なコンピューティングデバイスに実装できる、クラウドベースのゲームサービス１０２を含むことができる。クラウドベースのゲームサービス１０２は、ネットワーク経路２を介してクラウドベースのネットワーク１１０を通じて１つまたは複数のゲームクライアント１０６にゲームコンテンツデータを提供することができる。クラウドベースのゲームサービス１０２は、ネットワーク経路１を介して、ゲームサービス予測キャッシングデータベースサーバ１０４に結合されてもよい。一部の例示的な実施形態では、ゲームサービス予測キャッシングデータベースサーバ１０４は、ゲームクライアント１０６の１つまたは複数でゲームをしている間に、ユーザまたは現在のゲームプレイヤが追求する可能性がある可能性の高いゲーム経路セグメントを予測することができる。ゲームサービス予測キャッシングデータベースサーバ１０４は、リアルタイムゲームプレイ中にゲームコンテンツデータをレンダリングするための遅れ時間を減らすために、クラウドベースのゲームサービス１０２が、ネットワーク経路２を介して１つまたは複数のゲームクライアント１０６に可能性の高いゲーム経路セグメントのゲームコンテンツデータを予測的にキャッシュすることを可能にすることができる。
【００１５】
他の例では、ローカルサーバノード１０８は、ネットワーク経路４を介して１つまたは複数のゲームクライアント１０６に予測されたゲーム経路セグメントを送信するために、待ち時間および遅れ時間をさらに減らすことができる。たとえば、ローカルサーバノード１０８は、クラウドベースのゲームサービス１０２よりゲームクライアント１０６の一部に物理的により接近して配置することによって、１つまたは複数のゲームクライアント１０６の可能性の高いゲーム経路セグメントについて、ゲームコンテンツデータを予測的にキャッシュするために、遅れ時間を減らすことができる。ローカルサーバノード１０８は、また、クラウドベースのゲームサービス１０２の計算上の負荷を緩和することによって、ゲームコンテンツデータを予測的にキャッシュするために、遅れ時間を減らすことができる。ローカルサーバノード１０８は、また、クラウドベースのネットワーク１１０のネットワーク負荷を緩和することによって、ゲームコンテンツデータを予測的にキャッシュするために、遅れ時間を減らすことができる。ローカルサーバノード１０８は、オプションとして、ネットワークパス３を介してゲームサービス１０２と通信することができる。
【００１６】
図２は、本明細書に記述した少なくとも一部の実施形態に従って配置された、使用履歴に基づく予測的なキャッシングのための例示的なクラウドベースのゲームシステムを示している。略図２００に示すように、クラウドベースのゲームシステム２１０は、リアルタイムゲームプレイ中にゲームプレイヤが経験する待ち時間および遅れ時間を減らすために、関連するゲームコンテンツデータを予測してゲームクライアント２３０に送信（２２０）するように構成することができる。例示的なゲームは、一人称のシューティングゲームを含んでもよく、および／またはゲームクライアントのユーザ環境がユーザの決定に応じてリアルタイムに更新されるリアルタイムの対話型戦略ゲームであってもよい。
【００１７】
実施形態によるシステムでは、クラウドベースのゲームシステム２１０内のゲームサーバ２１２は、ゲームクライアント２３０のローカルキャッシュ２２２にゲームコンテンツデータを予測的にキャッシュするために利用できるため、リアルタイムゲームプレイ中に必要なときにゲームコンテンツデータを利用することができる。ゲームサーバ２１２は、現在のプレイヤのゲームクライアント２３０において現在のプレイヤによるゲームプレイ活動を監視することができる。現在のプレイヤがゲームクライアント２３０でゲームを始めると、ゲームの入口点からゲームの出口点に到着するためにプレイヤが取ることができる多数のゲーム経路がある場合があり、ゲームサーバ２１２は、プレイヤが取ることができる利用可能なゲーム経路を識別するように構成することができる。ゲームサーバ２１２は、現在のプレイヤが取ることを選択できる、より小さな経路セグメントへと識別されたゲーム経路をさらに分解できるため、入口点から出口点までの各ゲーム経路は、選択された経路セグメントのサブセットの組み合わせとなりうる。選択された経路セグメントのサブセットは、ゲーム入口からゲーム出口への２つ以上の利用可能なゲーム経路の一部でもよい。
【００１８】
例示的な実施形態では、ゲームサーバ２１２は、予測モジュール２１６を通じてゲームクライアント２３０で現在のプレイヤが取ることを選択できる最も可能性の高い経路セグメントを予測するように構成することができる。予測モジュール２１６は、現在のプレイヤのリアルタイムの動作に基づいて、現在のプレイヤが経路セグメントのサブセットを取る確率を決定することができる。たとえば、予測モジュール２１６は、現在のプレイヤの経路セグメントの場所を決定することができ、現在のプレイヤが次に選択するために利用できる経路セグメントを識別することができる。次に、予測モジュール２１６は、現在プレイヤのリアルタイムの動作および経路セグメントの選択を識別することができ、現在のプレイヤのリアルタイムのゲームプレイ決定に基づいて、利用可能な次に来る経路セグメントの１つまたは複数に次に選択される確率を決定することができる。
【００１９】
追加の実施形態では、ゲームサーバ２１２は、予測モジュール２１６が、現在のプレイヤのゲームプレイ履歴、および過去のプレイヤ２０２、２０４、２０６のゲームプレイ履歴に基づいて、現在のプレイヤが経路セグメントの特定のサブセットを選択する確率を決定できるように構成することができる。ゲームサーバ２１２は、１人または複数の過去のプレイヤ２０２、２０４、および２０６の動作、振る舞い、および経路セグメントの選択を含むゲームプレイ履歴を追跡し（２０８）、ゲームサーバ２１２に配置された使用履歴データベース２１４に過去のプレイヤ２０４、２０６、２０８のゲームプレイ履歴を格納するように構成することができる。一部の実施形態では、ゲームサーバ２１２は、現在のプレイヤの動作、振る舞い、および経路セグメントの選択を含む現在のプレイヤのゲームプレイ履歴を追跡し、また、使用履歴データベース２１４に現在のプレイヤのゲームプレイ履歴を格納するように構成することができる。
【００２０】
例示的な実施形態では、予測モジュール２１６は、現在のプレイヤが経路セグメントの特定のサブセットを選択する確率を決定するために、使用履歴データベース２１４に格納されている過去のプレイヤおよび現在のプレイヤのゲームプレイ履歴を分析するために、データマイニングおよびクラウドソーシングの手法を利用することができる。適用されるデータマイニングおよびクラウドソーシングの手法に基づいて、予測モジュール２１６は、利用可能な各経路セグメントに、次に選択される確率を割り当てることができるため、一部の利用可能な経路セグメントには、現在のプレイヤによって次に選択される確率を高く割り当てることができ、他の利用可能な経路セグメントには、現在のプレイヤによって次に選択される確率をより低く割り当てることができる。
【００２１】
さらに、ゲームサーバ２１２は、ゲームコンテンツデータにおいてゲーム開発者が指定できる経路セグメントに対する１組の事前定義された確率を格納できるため、予測モジュール２１６は、最初のゲームのセットアップ時にゲーム開発者によって指定された、事前定義された確率に基づいて、現在のプレイヤが経路セグメントの特定のサブセットを取る確率を決定することができる。一部の実施形態では、予測モジュール２１６は、ゲームサーバ２１２のゲームコンテンツデータに格納され、ゲームコンテンツデータ更新によって定期的に更新される、１組の事前定義された確率に基づいて、現在のプレイヤが経路セグメントの特定のサブセットを取る確率を決定することができる。予測モジュール２１６は、使用履歴データベース２１４に格納された現在のプレイヤおよび過去のプレイヤのゲームプレイ履歴をデータマイニングおよびクラウドソーシングすることから決定された確率に関連してゲームサーバ２１２に格納された、事前定義された確率に基づいて、利用可能な各経路セグメントに選択される確率を割り当てることができる。
【００２２】
例示的な実施形態では、予測モジュール２１６が、経路セグメントの利用可能なサブセットに、次に選択される確率を決定し割り当てると、ゲームサーバ２１２は、それぞれの割り当てられた確率に基づいて経路セグメントに対してゲームコンテンツデータをレンダリングすることができ、予測モジュール２１６は、ローカルキャッシュ２２２にキャッシュするためにゲームクライアント２３０にレンダリングされた経路セグメントを送信（２２０）することができる。例示的なシナリオでは、ゲームサーバ２１２は、経路セグメントの特定のサブセットが、現在のプレイヤによって次に選択される確率が最も高いと決定することができる。ゲームサーバ２１２は、選択される確率が最も高い経路セグメントに対してゲームコンテンツデータをレンダリングすることができ、予測モジュール２１６は、ローカルキャッシュ２２２にキャッシュするために、ゲームクライアント２３０に確率が最も高いその経路セグメントを送信（２２０）することができる。別の例では、ゲームサーバ２１２は、現在のプレイヤによって次に選択される確率が高い経路セグメントの２つ以上のサブセットを決定することができ、ゲームサーバ２１２は、選択される確率が高い複数の経路セグメントに対してゲームコンテンツデータをレンダリングすることができ、次に、予測モジュール２１６は、ローカルキャッシュ２２２にキャッシュするために、複数の確率が高い経路セグメントをゲームクライアント２３０に送信（２２０）することができる。
【００２３】
他の実施形態では、予測モジュール２１６は、割り当てられた確率に基づいて、ゲームクライアント２３０のローカルキャッシュ２２２にキャッシュするために、経路セグメントの品質および量を決定することができる。たとえば、予測モジュール２１６は、高品質でローカルキャッシュ２２２にキャッシュするために、ゲームクライアントに確率が最も高い経路セグメントを送信（２２０）することができる。送信された経路セグメントの品質は、ゲームクライアントでの表示品質でもよく、例の一部を挙げると、解像度の品質、毎秒のフレーム数、ラスタ化、およびシェーディングを含むことができる。予測モジュール２１６は、ゲームクライアントに送信される経路セグメントの品質を調整するために、解像度、毎秒のフレーム数、ラスタ化、およびシェーディングを調整することができる。予測モジュール２１６は、また、割り当てられた確率に比例して表示品質を変動させる際に、ローカルキャッシュ２２２にキャッシュするために、ゲームクライアントに１つまたは複数の追加的な経路セグメントのゲームコンテンツデータを送信（２２０）することができる。たとえば、より低い確率の経路セグメントは、より低い品質でレンダリングして送信することができ、より高い確率の経路セグメントは、より高い品質でレンダリングして送信することができる。
【００２４】
一部の実施形態では、予測モジュール２１６は、ゲームクライアント２３０のローカルキャッシュ２２２に送信される経路セグメントの量および品質のバランスを保つことができる。予測モジュール２１６は、ゲームクライアントに送信するための利用可能な帯域幅およびローカルキャッシュ２２２のサイズに基づいて、ローカルキャッシュ２２２にキャッシュするためにゲームクライアントに送信する経路セグメントの量を決定することができ、それに応じて利用可能な伝送帯域幅およびローカルキャッシュ２２２のスペースを最適化するために、送信される経路セグメントの品質を調整することができる。たとえば、帯域幅が低くかつ／またはキャッシュサイズが小さいシナリオでは、予測モジュール２１６は、より高い表示品質でより少ない経路セグメントを送信することができるか、あるいは、予測モジュール２１６は、品質を下げてローカルキャッシュ２２２により多くの経路セグメントを送信することができる。他の実施形態では、送信するべき経路セグメントの量および品質を決定するときに、予測モジュール２１６は、ゲームコンテンツデータ送信のために利用可能な帯域幅に影響する可能性がある、ゲームサーバ２１２からゲームコンテンツデータを受信している可能性がある追加的なゲームクライアントの活動中のプレイヤの数を考慮することができる。さらに、現在のプレイヤおよび／もしくは過去のプレイヤのゲームプレイ履歴が利用可能でない可能性があるとき、または予測モジュール２１６が有益な確率を計算できない一部のシナリオでは、予測モジュール２１６は、利用可能な経路セグメント間で次に選択される確率を平等に分散することができ、ほぼ平等に分散された品質で経路セグメントのゲームコンテンツデータをゲームクライアントに送信することができる。
【００２５】
他の実施形態では、ゲームサーバ２１２は、ゲームクライアント２３０で現在のプレイヤのリアルタイムゲームプレイを継続的に監視し追跡することができ、現在のプレイヤによって行われるリアルタイムの決定に基づいて、現在のプレイヤが経路セグメントの次のサブセットを選択する可能性を更新することができる。一部の実施形態では、ゲームサーバは、使用履歴データベース２１４に格納された現在のプレイヤおよび過去のプレイヤ２０２、２０４、２０６のゲームプレイ履歴に基づいて確率を更新することができる。たとえば、現在のプレイヤが経路セグメントの選択を行い、現在の経路セグメントのコンテンツデータがゲームクライアント２３０によってローカルキャッシュ２２２から取得されると、ゲームサーバ２１２は、予測モジュール２１６が、現在のプレイヤの新しい経路セグメントの場所を識別し、現在のプレイヤが次に選択するために利用可能な経路セグメントのサブセットを識別することを可能にすることができる。予測モジュール２１６は、現在のプレイヤのリアルタイムのゲームプレイ決定、現在のプレイヤのゲームプレイ履歴、および過去のプレイヤ２０２、２０４、２０６のゲームプレイ履歴に基づいて、利用可能な次に来る経路セグメントの１つまたは複数に選択される確率を再度決定することができる。予測モジュール２１６が、経路セグメントの次に利用可能なサブセットに、次に選択される確率を決定し割り当てると、ゲームサーバ２１２は、それぞれの割り当てられた確率に基づいて経路セグメントの新しい次の利用可能なサブセットに対してゲームコンテンツデータをレンダリングすることができ、予測モジュール２１６は、ローカルキャッシュ２２２にキャッシュするためにゲームクライアント２３０に新しくレンダリングされた経路セグメントを送信（２２０）することができる。ローカルキャッシュ２２２は更新することができるため、経路セグメントの以前のサブセットから未使用のゲームコンテンツデータを取り除き、経路セグメントの予測された次のサブセットに対して新しくレンダリングされたゲームコンテンツデータに置き換えることができる。
【００２６】
図３は、本明細書に記述した少なくとも一部の実施形態に従って配置された、マルチ経路ゲームのセグメントに対する割り当てられた確率の例示的なシナリオを示している。図２に関連してすでに説明したように、ゲームクライアント２３０で現在のプレイヤがゲームを開始すると、プレイヤがゲーム入口点３０２からゲーム出口点３２０に移動するときに、ゲームサーバ２１２は、現在のプレイヤのゲームプレイ活動を監視することができる。ゲーム入口点３０２からゲーム出口点３２０に移動するために、現在のプレイヤが取ることができる複数のゲーム経路が存在してもよく、ゲームサーバ２１２は、現在のプレイヤが選択できる利用可能なゲーム経路を最初に識別することができる。ゲームサーバ２１２は、識別された利用可能なゲーム経路を、現在のプレイヤがゲームを移動する間に取ることを選択できる複数のより小さなゲーム経路セグメント３０６に分割できるため、ゲーム入口点３０２からゲーム出口点３２０までの各ゲーム経路は、選択された利用可能な経路セグメントのサブセットの組み合わせでありうる。一部の実施形態では、経路セグメントの選択されたサブセットは、ゲーム入口点３０２からゲーム出口点３２０までの２つ以上の利用可能なゲーム経路の一部でもよい。
【００２７】
例示的な実施形態では、ゲームサーバ２１２は、ゲーム入口点３０２からゲーム出口点３２０に移動するために現在のプレイヤが取ることを選択できる経路セグメントの中で最も可能性の高いサブセットを予測するように構成することができる。予測モジュールを通じて、ゲームサーバは、経路セグメントのそれぞれに現在のプレイヤによって次に選択される確率を割り当てることができる。例示的なシナリオでは、略図３００に示すように、現在のプレイヤによってゲームが開始されると、ゲームサーバは、経路セグメント３０６のそれぞれに、次に選択される実質的に等しい確率を最初に割り当てることができる。そのようなシナリオでは、ゲームサーバは、実質的に等しい品質で経路セグメント３０６に対してゲームコンテンツデータをレンダリングすることができ、ゲームクライアントのローカルキャッシュに対して、実質的に等しい確率を持つ経路セグメント３０６のゲームコンテンツデータを送信することができる。一部の実施形態では、ゲームサーバは、現在のプレイヤおよび／もしくは過去のプレイヤのゲームプレイ履歴が利用可能でない可能性があるとき、または有益な確率を計算できない場合など、一部のシナリオにおいて、利用可能な経路セグメント３０６間で次に選択される確率を平等に分散することができる。
【００２８】
他の実施形態では、ゲームサーバは、経路セグメント３１２のそれぞれに現在のプレイヤによって次に選択される変動する可能性を割り当てることができる。ゲームサーバ２１２は、予測モジュールを通じて、利用可能な経路セグメント３１２のそれぞれについて、次に選択される確率を決定するように構成することができる。現在のゲームプレイヤの動作、現在のプレイヤのゲームプレイ履歴、および過去のプレイヤのゲームプレイ履歴に基づいて、ゲームサーバ２１２は、特定の経路セグメントが、現在のプレイヤによって次に選択される可能性がより高い一方、他の経路セグメントは、次に選択される可能性がより低いと決定することができる。予測モジュールは確率を決定し、経路セグメント３１２に変動する確率を割り当てることができ、確率が経路セグメント３１２に割り当てられると、ゲームサーバ２１２は、確率がより高い経路セグメント３１２に対してゲームコンテンツデータをレンダリングすることができ、ローカルキャッシュにキャッシュするためにゲームクライアントに確率がより高い経路セグメント３１２のゲームコンテンツデータを送信することができる。すでに説明したように、ゲームサーバ２１２は、利用可能な帯域幅およびローカルキャッシュサイズを含む要素を最適化するために、ゲームクライアントに送信するために、経路セグメント３１２に対して送信されるゲームコンテンツデータの品質、および送信される経路セグメントの数を調整することができる。
【００２９】
ゲームの入口点および出口点だけでなく、略図３００の経路セグメントは、プレイヤによって制御された手段を通じて歩いた、または対象にされたゲームでの実際の経路を表すことを目的としていない。ゲームの入口点および出口点は、プレイヤの開始状態および最終状態を単に表すことができる。同様に、各経路セグメントは、ゲーム内の所定の時間における特定のプレイヤの状態を表すことができる。
【００３０】
図４は、本明細書に記述した少なくとも一部の実施形態に従って配置された、マルチ経路ゲームにおいて経路セグメントを予測的にキャッシュするための確率を動的に更新する機能ブロック図を示している。略図４００に示すように、現在のプレイヤのゲームクライアントにおいて現在のプレイヤによりゲームが開始されると、クラウドベースのゲームシステムにおけるゲームサーバは、現在のプレイヤのリアルタイムの動作、決定、および経路セグメントの選択を含む、ゲームクライアントでの現在のプレイヤの活動を監視（４０２）することができる。予測的なキャッシングモジュールを通じて、ゲームサーバは、現在のプレイヤの経路セグメントの場所を識別することができ、現在のプレイヤが直接的に次に選択するために利用できる経路セグメントを識別することができる（４０４）。
【００３１】
ゲームサーバは、現在のプレイヤのリアルタイムのゲームプレイ決定、現在のプレイヤのゲームプレイ履歴、および過去のプレイヤのゲームプレイ履歴に基づいて選択される確率を決定することによって、現在のプレイヤが次に取ることを選択する経路セグメントを予測することができる。これは、現在および過去のプレイヤの動作、振る舞い、および経路セグメントの選択の履歴を含むことができる。確率を決定するために、ゲームサーバは、現在のプレイヤのゲームプレイ履歴および過去のプレイヤのゲームプレイ履歴を格納することができる、ゲームサーバに配置された使用履歴データベース４１２にアクセス（４０６）することができる。ゲームサーバは、ゲームプレイ履歴に基づいて次に選択される確率を決定するために、データマイニング、クラウドソーシング、ならびに他の同様のデータ収集および分析の手法を適用するように構成することができ、ゲームサーバは、識別された利用可能な経路セグメントのそれぞれに、次に選択される決定された確率を割り当てる（４０８）ことができる。
【００３２】
ゲームサーバが、利用可能な経路セグメントに、次に選択される確率を決定し割り当てる（４０８）と、ゲームサーバは、それぞれの割り当てられた確率に基づいて経路セグメントに対してゲームコンテンツデータをレンダリングすることができ、経路セグメントに対してレンダリングされたゲームコンテンツデータをゲームクライアントに送信することができ、そこでは、ゲームコンテンツデータは、ゲームクライアントのローカルキャッシュにキャッシュ（４１０）することができる。ゲームサーバは、リアルタイムに現在のプレイヤの活動および経路セグメントの選択を継続的に監視できるため、プレイヤが経路セグメントを選択すると、ゲームサーバは、将来的に次に来る経路セグメントに次に選択される確率を継続的に更新する（４１４）ことができる。
【００３３】
図５は、本明細書に記述した少なくとも一部の実施形態に従って配置された、クラウドベースのゲームで予測的なキャッシングを実装するために使用できる、汎用のコンピューティングデバイスを示している。例示的な基本構成５０２では、コンピューティングデバイス５００は、１つまたは複数のプロセッサ５０４およびシステムメモリ５０６を備えることができる。メモリバス５０８は、プロセッサ５０４とシステムメモリ５０６との間で通信するために使用することができる。基本構成５０２は、内部の破線内のそれらのコンポーネントによって図５に示されている。
【００３４】
所望の構成によって、プロセッサ５０４は、マイクロプロセッサ（μＰ）、マイクロコントローラ（μＣ）、デジタル信号プロセッサ（ＤＳＰ）、またはそれらの任意の組み合わせを含む任意のタイプでもよいがそれらに限定されない。プロセッサ５０４は、レベルキャッシュメモリ５１２、プロセッサコア５１４、およびレジスタ５１６など、より多くのレベルのキャッシングを備えることができる。例示的なプロセッサコア５１４は、論理演算ユニット（ＡＬＵ）、浮動小数点ユニット（ＦＰＵ）、デジタル信号処理コア（ＤＳＰコア）、またはそれらの任意の組み合わせを備えることができる。例示的なメモリコントローラ５１８は、また、プロセッサ５０４と共に使用することができるか、または一部の実装では、メモリコントローラ５１８は、プロセッサ５０４の内部部品でもよい。
【００３５】
所望の構成に応じて、システムメモリ５０６は、揮発性メモリ（ＲＡＭなど）、不揮発性メモリ（ＲＯＭ、フラッシュメモリなど）、またはそれらの任意の組み合わせを含む任意のタイプでもよいがそれらに限定されない。システムメモリ５０６は、オペレーティングシステム５２０、１つまたは複数のゲームサービスアプリケーション５２２、およびプログラムデータ５２４を含むことができる。ゲームサービスアプリケーション５２２は、予測的なモジュール５２５を備えることができ、これは、本明細書に記述されるようにリアルタイムゲームプレイ中に、ゲームプレイヤによって次に選択される決定された確率が高い経路セグメントにゲームコンテンツデータの予測的なキャッシングを提供することができる。図５を再び参照すると、プログラムデータ５２４は、他のデータの中でも、本明細書に記述するように現在のプレイヤおよび過去のプレイヤのゲームプレイ履歴に関連した使用履歴データ５２８を含むことができる。
【００３６】
コンピューティングデバイス５００は、追加的な特徴または機能、ならびに基本構成５０２と任意の所望のデバイスおよびインターフェースとの間の通信を促進する追加的なインターフェースを持つことができる。たとえば、バス／インターフェースコントローラ５３０は、ストレージインターフェースバス５３４を介して、基本構成５０２と１つまたは複数のデータストレージデバイス５３２との間の通信を促進するために使用することができる。データストレージデバイス５３２は、１つもしくは複数の取外し式ストレージデバイス５３６、１つもしくは複数の非取外し式ストレージデバイス５３８、またはそれらの組み合わせでもよい。取外し式ストレージデバイスおよび非取外し式ストレージデバイスの例を２、３挙げると、フレキシブルディスクドライブおよびハードディスクドライブ（ＨＤＤ）などの磁気ディスクデバイス、コンパクトディスク（ＣＤ）ドライブまたはデジタルバーサタイルディスク（ＤＶＤ）ドライブなどの光ディスクドライブ、ソリッドステートドライブ（ＳＳＤ）、およびテープドライブなどである。例示的なコンピュータ記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、または他のデータなど、情報を格納するための任意の方法または技術で実装された揮発性および不揮発性、取外し式および非取外し式の媒体を含む。
【００３７】
システムメモリ５０６、取外し式ストレージデバイス５３６、および非取外し式ストレージデバイス５３８は、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ）、もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、または所望の情報を格納するために使用でき、コンピューティングデバイス５００によってアクセスできる任意の他の媒体を含むがそれらに限定されない。任意のそのようなコンピュータ記憶媒体がコンピューティングデバイス５００の一部であってもよい。
【００３８】
コンピューティングデバイス５００は、また、バス／インターフェースコントローラ５３０を介して、さまざまなインターフェースデバイス（たとえば、１つまたは複数の出力装置５４２、１つまたは複数の周辺インターフェース５４４、および１つまたは複数の通信デバイス５４６）から基本構成５０２への通信を促進するためにインターフェースバス５４０を備えることができる。例示的な出力装置５４２の一部は、グラフィック処理ユニット５４８および音声処理ユニット５５０を備え、これらは１つまたは複数のＡ／Ｖポート５５２を介してディスプレイまたはスピーカなど、さまざまな外部デバイスと通信するように構成することができる。１つまたは複数の例示的な周辺インターフェース５４４は、シリアルインターフェースコントローラ５５４またはパラレルインターフェースコントローラ５５６を含むことができ、これらは１つまたは複数のＩ／Ｏポート５５８を介して入力装置（たとえばキーボード、マウス、ペン、音声入力機器、タッチ入力装置など）など外部デバイスまたは他の周辺機器（たとえばプリンタ、スキャナなど）と通信するように構成することができる。例示的な通信デバイス５４６は、ネットワークコントローラ５６０を備え、これは１つまたは複数の通信ポート５６４を介してネットワーク通信リンクを通じて１つまたは複数の他のコンピューティングデバイス５６２との通信を促進するように配置することができる。図１に示すように、１つまたは複数の他のコンピューティングデバイス５６２は、ゲームクライアント１０６、ローカルサーバノード１０８、および／または状態遷移データベースサーバ１０４を含むことができる。
【００３９】
ネットワーク通信リンクは、通信媒体の一例であってもよい。通信媒体は、典型的には、搬送波または他の移送機構など変調されたデータ信号内のコンピュータ読み取り可能な命令、データ構造、プログラムモジュール、または他のデータによって実現することができ、任意の情報配信媒体を含むことができる。「変調されたデータ信号」は、１つもしく複数のその特性が信号内の情報を符号化するように設定または変更された信号とすることができる。限定を目的とせずに例を挙げると、通信媒体は、有線ネットワークまたは直接的な有線接続などの有線媒体、およびアコースティック、無線周波数（ＲＦ）、マイクロ波、赤外線（ＩＲ）、および他の無線媒体など無線媒体を含むことができる。本明細書で使用するコンピュータ可読媒体という用語は、記憶媒体および通信媒体の両方を含むことができる。
【００４０】
コンピューティングデバイス５００は、汎用もしくは専用のサーバの一部、メインフレーム、または上記の機能のいずれかを含む同様のコンピュータとして実装することができる。コンピューティングデバイス５００は、また、ラップトップ型コンピュータおよび非ラップトップ型コンピュータの構成の両方を含むパーソナルコンピュータとして実装することができる。
【００４１】
例示的な実施形態は、また、方法を含むことができる。これらの方法は、本明細書に記述した構造を含む、任意の数の方法で実装することができる。そのような方法の１つは、本開示に記述したタイプのデバイスの機械操作によるものでもよい。他のオプションの方法は、他の動作が機械によって実行できる一方、動作の一部を実行する１人または複数の人間のオペレータに関連して実行される方法の個々の動作の１つまたは複数に対するものでもよい。これらの人間のオペレータは、互いに同じ場所に配置される必要はないが、それぞれはプログラムの一部を実行する機械のみを用いることができる。他の例では、人間の対話は、機械によって自動化できる事前選択された基準によってなど自動化することができる。
【００４２】
図６は、本明細書に記述した少なくとも一部の実施形態に従って配置された、図５のデバイスなど、コンピューティングデバイスによって実行できるクラウドベースのゲームにおいて予測的にキャッシュするための例示的な方法を示す流れ図である。例示的な方法は、ブロック６２２、６２４、６２６、６２８、６３０、および／または６３２の１つまたは複数に示すように、１つまたは複数の動作、機能、または行動を含むことができる。ブロック６２２から６３２に記述した動作は、また、コンピューティングデバイス６１０のコンピュータ可読媒体６２０など、コンピュータ可読媒体にコンピュータ実行可能命令として格納することができる。
【００４３】
クラウドベースのゲームの予測的なキャッシングの例示的なプロセスは、ブロック６２２「利用可能な経路セグメントを識別」から開始することができ、そこで、図２のゲームサーバ２１２などのゲームサーバは、現在のプレイヤによるゲームプレイ活動を監視し、ゲーム入口点からゲーム出口点に移動するために、現在のプレイヤが取ることができる利用可能なゲーム経路を識別し、現在のプレイヤが選択できる経路セグメントのサブセットへと利用可能なゲーム経路を分割することができる。
【００４４】
図６を再び参照すると、ブロック６２２の後にブロック６２４「経路セグメントのサブセットの確率を決定」が続き、そこで、ゲームサーバ２１２は、利用可能な経路セグメントのサブセットを決定し、次に選択される確率を割り当てることができる。ブロック６２４の後にブロック６２６「サブセットの１つまたは複数をレンダリング」が続くことができる。ブロック６２６では、ゲームサーバ２１２は、決定された確率に比例する場合がある表示品質で経路セグメントのサブセットに対してゲームコンテンツデータをレンダリングすることができる。ブロック６２６の後にブロック６２８「レンダリングされたセグメントをゲームクライアントに送信」が続くことができ、そこで、ゲームサーバ２１２は、ゲームクライアント２３０のローカルキャッシュにキャッシュするために、現在のプレイヤのゲームクライアント２３０にレンダリングされたセグメントを送信することができる。
【００４５】
ブロック６２８の後にブロック６３０「プレイヤの動作、履歴などに基づいて確率を更新」が続くことができ、そこで、ゲームサーバ２１２は、現在のプレイヤによるリアルタイムの動作、現在のプレイヤのゲームプレイ履歴、および過去のプレイヤのゲームプレイ履歴に基づいて、最初に割り当てられた確率を調整し更新することができる。ブロック６３０の後にブロック６３２「更新された確率に基づいて新しいコンテンツを送信することによってゲームクライアントのキャッシュを更新」が続くことができ、そこで、ゲームサーバは、新しく更新された確率を用いて経路セグメントに対してゲームコンテンツデータをレンダリングすることができ、ゲームクライアント２３０のローカルキャッシュにキャッシュするために、ゲームクライアントに新しくレンダリングされたゲームコンテンツデータを送信することができる。
【００４６】
上に記述したプロセスにおいてブロックで実行される機能は、説明を目的とするものである。クラウドベースのゲームにおける予測的なキャッシングは、より少ないまたは追加的な機能を用いて同様のプロセスによって実装することができる。一部の例では、機能は、異なる順序で実行することができる。他の一部の例では、さまざまな機能を排除することができる。さらに別の例では、さまざまな機能は、追加的な機能へと分割したり、またはより少ない機能へと組み合わせたりすることができる。
【００４７】
図７は、本明細書に記述した少なくとも一部の実施形態に従って配置された、例示的なコンピュータプログラム製品７００のブロック図を示している。一部の例では、図７に示すように、コンピュータプログラム製品７００は、たとえばプロセッサによって実行されたときに、本明細書に記述した機能を提供できる１つまたは複数の機械可読命令７０４も含むことができる信号搬送媒体７０２を含むことができる。したがって、たとえば、図５のプロセッサ５０４を参照すると、予測的なキャッシングモジュール５２５は、本明細書に記述したようにクラウドベースのゲームにおいて予測的なキャッシングに関連した動作を実行するために、媒体７０２によってプロセッサ５０４に伝達された命令７０４に応じて、図７に示すタスクの１つまたは複数に取りかかることができる。それらの命令の一部は、たとえば、クラウドベースのゲームサーバにゲームプレイ使用履歴を格納するための命令、利用可能な経路セグメントを識別するための命令、経路セグメントのサブセットの確率を決定するための命令、経路セグメントのサブセットの１つまたは複数をレンダリングするための命令、レンダリングされた経路セグメントをゲームクライアントに送信するための命令、プレイヤの動作、履歴などに基づいて確率を更新するための命令、および新しいゲームコンテンツを用いてゲームクライアントのキャッシュを更新するための命令を含むことができる。
【００４８】
一部の実装では、図７に示した信号搬送媒体７０２は、ハードディスクドライブ、コンパクトディスク（ＣＤ）、デジタルバーサタイルディスク（ＤＶＤ）、デジタルテープ、メモリなど、コンピュータ可読媒体７０６を包含することができるがそれらに限定されない。一部の実装では、信号搬送媒体７０２は、メモリ、読み取り／書き込み（Ｒ／Ｗ）ＣＤ、Ｒ／Ｗ  ＤＶＤなど、記録可能な媒体７０８を包含することができるがそれらに限定されない。一部の実装では、信号搬送媒体７０２は、デジタルおよび／またはアナログの通信媒体（たとえば、光ファイバケーブル、導波路、有線の通信リンク、ワイヤレス通信リンクなど）など、通信媒体７１０を包含することができるがそれらに限定されない。したがって、たとえば、プログラム製品７００は、ＲＦ信号搬送媒体によってプロセッサ７０４の１つまたは複数のモジュールに伝達することができ、そこで、信号搬送媒体７０２は、ワイヤレス通信媒体７１０（たとえば、ＩＥＥＥ８０２．１１標準に準拠するワイヤレス通信媒体）によって伝達される。
【００４９】
一部の例によれば、クラウドベースのゲームにおいて予測的にキャッシュするための方法は、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、プレイヤによる現在の動作、プレイヤの場所、プレイヤによる第１の動作、プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および／または複数のプレイヤによる第１の動作の組の少なくとも１つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定することと、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの１つまたは複数をレンダリングすることと、ゲームクライアントにキャッシュするために、レンダリングされた１つまたは複数の経路セグメントをゲームクライアントに送信することとを含むことができる。
【００５０】
一部の例によれば、方法は、確率が最も高い経路セグメントを送信することを含むことができる。
【００５１】
他の例によれば、方法は、それぞれの確率に比例して変動する表示品質を持つ１つまたは複数の経路セグメントをレンダリングことと、変動する表示品質を持つ１つまたは複数の経路セグメントを送信することとを含む。表示品質は、解像度、毎秒のフレーム数、ラスタ化、および／またはシェーディングの組の少なくとも１つを含むことができる。
【００５２】
一部の例によれば、方法は、利用可能な帯域幅、ゲームクライアントのキャッシュのサイズ、および／または活動中のプレイヤの数の組の少なくとも１つに基づいて送信するために多数のレンダリングされた経路セグメントを選択することを含むことができる。
【００５３】
さらに他の例によれば、方法は、プレイヤによる他の動作、プレイヤの他の場所、プレイヤのゲーム履歴、および／またはプレイヤがゲームを進めたときの複数のプレイヤのゲーム履歴の組の少なくとも１つに基づいてプレイヤが経路セグメントの他のサブセットを取る確率を更新することと、それぞれの確率に基づいて経路セグメントの他方のサブセットにおいて経路セグメントの１つまたは複数をレンダリングすることと、ゲームクライアントにキャッシュするために、レンダリングされた１つまたは複数の経路セグメントをゲームクライアントに送信することとを含むことができる。
【００５４】
さらに他の例によれば、方法は、経路セグメントを識別しかつ／または確率を決定するために、複数のプレイヤのゲーム履歴のデータマイニングまたはクラウドソーシングを用いることを含むことができる。
【００５５】
クラウドベースのゲームにおいて予測的にキャッシュするための方法の一部の例によれば、プレイヤが経路セグメントのサブセットを取る確率の決定は、ゲーム開発者によって指定され、最初のゲームのセットアップ時にゲームコンテンツデータに格納された、１組の事前定義された確率に基づいてもよい。
【００５６】
クラウドベースのゲームにおいて予測的にキャッシュするための方法の他の例によれば、プレイヤが経路セグメントのサブセットを取る確率の決定は、ゲームコンテンツデータに格納され、ゲームコンテンツ更新によって更新される１組の事前定義された確率にさらに基づく。
【００５７】
他の例によれば、方法は、ゲームクライアントのキャッシュから未使用のゲームコンテンツデータを削除することと、未使用のゲームコンテンツデータを１つまたは複数の経路セグメントの新しい組のゲームコンテンツデータに置き換えることとを含むことができる。
【００５８】
さらに他の例によれば、方法は、ゲームの初期化時に複数の経路セグメントに、実質的に等しい確率を割り当てることを含むことができる。
【００５９】
他の例によれば、ゲームコンテンツデータを予測的にキャッシュするためのクラウドベースのゲームサーバは、メモリ、メモリに結合されたプロセッサを含むことができる。プロセッサは、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別し、プレイヤによる現在の動作、プレイヤの場所、プレイヤによる第１の動作、プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および／または複数のプレイヤによる第１の動作の組の少なくとも１つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定し、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの１つまたは複数をレンダリングし、ゲームクライアントにキャッシュするために、レンダリングされた１つまたは複数の経路セグメントをゲームクライアントに送信するように構成することができる。
【００６０】
一部の例によれば、プロセッサは、確率が最も高い経路セグメントを送信するように構成することができる。
【００６１】
一部の例によれば、プロセッサは、それぞれの確率に比例して変動する表示品質を持つ１つまたは複数の経路セグメントをレンダリングし、変動する表示品質を持つ１つまたは複数の経路セグメントを送信するように構成することができる。
【００６２】
一部の例によれば、表示品質は、解像度、毎秒のフレーム数、ラスタ化、および／またはシェーディングの組の少なくとも１つを含むことができる。
【００６３】
他の例によれば、プロセッサは、利用可能な帯域幅、ゲームクライアントのキャッシュのサイズ、および／または活動中のプレイヤの数の組の少なくとも１つに基づいて送信するために多数のレンダリングされた経路セグメントを選択するように構成することができる。
【００６４】
他の例によれば、プロセッサは、プレイヤによる他の動作、プレイヤの他の場所、プレイヤのゲーム履歴、および／またはプレイヤがゲームを進めたときの複数のプレイヤのゲーム履歴の組の少なくとも１つに基づいてプレイヤが経路セグメントの他のサブセットを取る確率を更新し、それぞれの確率に基づいて経路セグメントの他方のサブセットにおいて経路セグメントの１つまたは複数をレンダリングし、ゲームクライアントにキャッシュするために、レンダリングされた１つまたは複数の経路セグメントをゲームクライアントに送信するように構成することができる。
【００６５】
他の例によれば、プロセッサは、経路セグメントを識別しかつ／または確率を決定するために、複数のプレイヤのゲーム履歴のデータマイニングまたはクラウドソーシングを用いるように構成することができる。
【００６６】
他の例によれば、プロセッサは、ゲーム開発者によって指定され、最初のゲームのセットアップ時にゲームコンテンツデータに格納された、１組の事前定義された確率にさらに基づいて、プレイヤが経路セグメントのサブセットを取る確率を決定するように構成することができる。
【００６７】
一部の例によれば、プロセッサは、ゲームコンテンツデータに格納され、ゲームコンテンツ更新によって更新される１組の事前定義された確率にさらに基づいて、プレイヤが経路セグメントのサブセットを取る確率を決定するように構成することができる。
【００６８】
他の例によれば、プロセッサは、ゲームクライアントのキャッシュから未使用のゲームコンテンツデータを削除し、未使用のゲームコンテンツデータを１つまたは複数の経路セグメントの新しい組のゲームコンテンツデータに置き換えるように構成することができる。
【００６９】
さらに他の例によれば、プロセッサは、ゲームの初期化時に複数の経路セグメントに、実質的に等しい確率を割り当てるように構成することができる。
【００７０】
他の例によれば、コンピュータ可読記憶媒体は、クラウドベースのゲームにおいて予測的にキャッシュするために、命令を格納することができる。命令は、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、プレイヤによる現在の動作、プレイヤの場所、プレイヤによる第１の動作、プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および／または複数のプレイヤによる第１の動作の組の少なくとも１つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定することと、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの１つまたは複数をレンダリングすることと、ゲームクライアントにキャッシュするために、レンダリングされた１つまたは複数の経路セグメントをゲームクライアントに送信することとを含むことができる。
【００７１】
一部の例によれば、命令は、確率が最も高い経路セグメントを送信することを含むことができる。
【００７２】
他の例によれば、命令は、それぞれの確率に比例して変動する表示品質を持つ１つまたは複数の経路セグメントをレンダリングすることと、変動する表示品質を持つ１つまたは複数の経路セグメントを送信することとを含むことができる。表示品質は、解像度、毎秒のフレーム数、ラスタ化、および／またはシェーディングの組の少なくとも１つを含むことができる。
【００７３】
一部の例によれば、命令は、利用可能な帯域幅、ゲームクライアントのキャッシュのサイズ、および／または活動中のプレイヤの数の組の少なくとも１つに基づいて送信するために多数のレンダリングされた経路セグメントを選択することを含むことができる。
【００７４】
他の例によれば、命令は、プレイヤによる他の動作、プレイヤの他の場所、プレイヤのゲーム履歴、および／またはプレイヤがゲームを進めたときの複数のプレイヤのゲーム履歴の組の少なくとも１つに基づいてプレイヤが経路セグメントの他のサブセットを取る確率を更新することと、それぞれの確率に基づいて経路セグメントの他方のサブセットにおいて経路セグメントの１つまたは複数をレンダリングすることと、ゲームクライアントにキャッシュするために、レンダリングされた１つまたは複数の経路セグメントをゲームクライアントに送信することとを含むことができる。
【００７５】
他の例によれば、命令は、経路セグメントを識別しかつ／または確率を決定するために、複数のプレイヤのゲーム履歴のデータマイニングまたはクラウドソーシングを用いることを含むことができる。
【００７６】
一部の例によれば、プレイヤが経路セグメントのサブセットを取る確率の決定は、ゲーム開発者によって指定され、最初のゲームのセットアップ時にゲームコンテンツデータに格納された、１組の事前定義された確率に基づいてもよい。
【００７７】
他の例によれば、プレイヤが経路セグメントのサブセットを取る確率の決定は、ゲームコンテンツデータに格納され、ゲームコンテンツ更新によって更新される１組の事前定義された確率にさらに基づく。
【００７８】
他の例によれば、命令は、ゲームクライアントのキャッシュから未使用のゲームコンテンツデータを削除することと、未使用のゲームコンテンツデータを１つまたは複数の経路セグメントの新しい組のゲームコンテンツデータに置き換えることとを含むことができる。
【００７９】
さらに他の例によれば、命令は、ゲームの初期化時に複数の経路セグメントに、実質的に等しい確率を割り当てることを含むことができる。
【００８０】
さらに他の例によれば、予測されたゲームコンテンツデータをキャッシュするためのゲームクライアントは、メモリ、およびメモリに結合されたプロセッサを含むことができる。プロセッサは、ローカルにキャッシュするためにゲームサーバから１つまたは複数のレンダリングされた経路セグメントを受信するように構成することができる。経路セグメントは、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、プレイヤによる現在の動作、プレイヤの場所、プレイヤによる第１の動作、プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および／または複数のプレイヤによる第１の動作の組の少なくとも１つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定することと、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの１つまたは複数をレンダリングすることとによってレンダリングすることができる。
【００８１】
一部の例によれば、プロセッサは、確率が最も高い経路セグメントを受信するように構成することができる。
【００８２】
一部の例によれば、プロセッサは、変動する表示品質を持つ１つまたは複数の経路セグメントを受信するように構成され、１つまたは複数の経路セグメントは、それぞれの確率に比例して変動する表示品質を用いてゲームサーバでレンダリングされる。
【００８３】
他の例によれば、表示品質は、解像度、毎秒のフレーム数、ラスタ化、および／またはシェーディングの組の少なくとも１つを含むことができる。
【００８４】
他の例によれば、送信される多数のレンダリングされた経路セグメントは、利用可能な帯域幅、ゲームクライアントのキャッシュのサイズ、および／または活動中のプレイヤの数の組の少なくとも１つに基づいてゲームサーバで選択することができる。
【００８５】
他の例によれば、プレイヤが経路セグメントの他のサブセットを取る確率は、プレイヤによる他の動作、プレイヤの他の場所、プレイヤのゲーム履歴、および／またはプレイヤがゲームを進めたときの複数のプレイヤのゲーム履歴の組の少なくとも１つに基づいてゲームサーバで更新することができる。
【００８６】
他の例によれば、プロセッサは、ゲームクライアントのキャッシュから未使用のゲームコンテンツデータを削除し、未使用のゲームコンテンツデータを１つまたは複数の経路セグメントの新しい組のゲームコンテンツデータに置き換えるように構成することができる。
【００８７】
さらに他の例によれば、ゲームクライアントのプロセッサは、デスクトップコンピュータ、ラップトップ型コンピュータ、車両搭載型コンピュータ、ハンドヘルドコンピュータ、多目的のコンピューティングデバイス、およびゲームデバイスの１つでもよい。
【００８８】
システムの側面でのハードウェアの実装形態とソフトウェアの実装形態との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般に（いつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点で）コスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび／またはシステムおよび／または他の技術をもたらすことができるさまざまな達成手段があり（たとえば、ハードウェア、ソフトウェア、および／またはファームウェア）、好ましい達成手段は、プロセスおよび／またはシステムおよび／または他の技術が導入される状況によって異なる。たとえば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび／またはファームウェアの達成手段を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実装形態を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および／またはファームウェアのなんらかの組み合わせを選択することができる。
【００８９】
前述の詳細な説明では、ブロック図、フローチャート、および／または例の使用によって、装置および／またはプロセスのさまざまな実施形態を説明してきた。そのようなブロック図、フローチャート、および／または例が１つまたは複数の機能および／または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および／または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組み合わせにより、個別におよび／または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、１つまたは複数のコンピュータ上で動作する１つまたは複数のコンピュータプログラムとして（たとえば、１つまたは複数のコンピュータシステム上で動作する１つまたは複数のプログラムとして）、１つまたは複数のプロセッサ上で動作する１つまたは複数のプログラムとして（たとえば、１つまたは複数のマイクロプロセッサ上で動作する１つまたは複数のプログラムとして）、ファームウェアとして、あるいは実質上それらの任意の組み合わせとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに／またはソフトウェアおよび／もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。
【００９０】
本開示は、本出願に記述した特定の実施形態に限定するものではなく、これらは、さまざまな態様の例となることを意図するものである。当業者には明白であるように、その精神および範囲から逸脱することなく、多数の変更および変形形態を実施することができる。本明細書に列挙したものに加えて、本開示の範囲内の機能的に等しい方法および装置は、前述の記述から当業者には明白になるであろう。そのような変更および変形形態は、添付した特許請求の範囲内に含まれることを意図するものである。本開示は、添付した特許請求の範囲の条件、およびそのような特許請求の範囲が権利を与える等価物の全範囲によってのみ限定されるものである。本開示は、当然変動する可能性がある特定の方法、試薬、合成物の構成、または、生物系に限定されるものではないことが理解されよう。また、本明細書で使用される用語は、特定の実施形態のみを記述するためのものであり、限定を意図するものではないことが理解されよう。
【００９１】
さらに、本明細書に記載された主題のメカニズムをさまざまな形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フロッピーディスク、ハードディスクドライブ、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、デジタルテープ、コンピュータメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および／またはアナログ通信媒体（たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど）の通信タイプの媒体が含まれるが、それらには限定されない。
【００９２】
本明細書で説明したやり方で装置および／またはプロセスを記載し、その後そのように記載された装置および／またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および／またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインタフェース、およびアプリケーションプログラムのうちの１つもしくは複数、タッチパッドもしくはスクリーンなどの１つもしくは複数の相互作用装置、ならびに／またはフィードバックループおよびコントロールモータを含むコントロールシステム（たとえば、ガントリーシステムの位置検知用および／もしくは速度検知用フィードバック、コンポーネントの移動用および／もしくは数量の調整用コントロールモータ）を含むことを、当業者は理解するであろう。
【００９３】
通常のデータ処理システムは、データコンピューティング／通信システムおよび／またはネットワークコンピューティング／通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。本明細書に記載された主題は、さまざまなコンポーネントをしばしば例示しており、これらのコンポーネントは、他のさまざまなコンポーネントに包含されるか、または他のさまざまなコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例示にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の２つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の２つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の２つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的に接続可能な、および／もしくは物理的に相互作用するコンポーネント、ならびに／またはワイヤレスに相互作用可能な、および／もしくはワイヤレスに相互作用するコンポーネント、ならびに／または論理的に相互作用する、および／もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
【００９４】
本明細書における実質的にすべての複数形および／または単数形の用語の使用に対して、当業者は、状況および／または用途に適切なように、複数形から単数形に、および／または単数形から複数形に変換することができる。さまざまな単数形／複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
【００９５】
通常、本明細書において、特に添付の特許請求の範囲（たとえば、添付の特許請求の範囲の本体部）において使用される用語は、全体を通じて「オープンな（ｏｐｅｎ）」用語として意図されていることが、当業者には理解されよう（たとえば、用語「含む（ｉｎｃｌｕｄｉｎｇ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｉｎｇ  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきであり、用語「有する（ｈａｖｉｎｇ）」は、「少なくとも有する（ｈａｖｉｎｇ  ａｔ  ｌｅａｓｔ）」と解釈されるべきであり、用語「含む（ｉｎｃｌｕｄｅｓ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｅｓ  ｂｕｔ  ｉｓ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきである、など）。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ）」および「１つまたは複数の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「１つまたは複数の」または「少なくとも１つの」および「ａ」または「ａｎ」などの不定冠詞を含む場合であっても、不定冠詞「ａ」または「ａｎ」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に１つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではない（たとえば、「ａ」および／または「ａｎ」は、「少なくとも１つの」または「１つまたは複数の」を意味すると解釈されるべきである）。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう（たとえば、他の修飾語なしでの「２つの記載（ｔｗｏ  ｒｅｃｉｔａｔｉｏｎｓ）」の単なる記載は、少なくとも２つの記載、または２つ以上の記載を意味する）。
【００９６】
さらに、「Ａ、ＢおよびＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（たとえば、「Ａ、Ｂ、およびＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、などを有するシステムを含むが、それに限定されない）。２つ以上の代替用語を提示する事実上いかなる離接する語および／または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方（ｏｎｅ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、当該用語のいずれか（ｅｉｔｈｅｒ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、または両方の用語（ｂｏｔｈ  ｔｅｒｍｓ）を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「ＡまたはＢ」は、「Ａ」または「Ｂ」あるいは「ＡおよびＢ」の可能性を含むことが理解されよう。
【００９７】
さらに、本開示の特徴または態様がマーカッシュ群に関して記述されている場合、本開示は、また、それによってマーカッシュ群のメンバーの個々のメンバーまたはサブグループに関して記述されていることが、当業者には認識されるであろう。
【００９８】
当業者は理解されるように、あらゆる目的について、書面による記述を提供することに関してなど、本明細書に開示されたすべての範囲は、また、可能なあらゆる部分範囲およびその部分範囲の組み合わせを包含する。記載した範囲は、少なくとも等分、３分の１、４分の１、５分の１、１０分１などに分解される同一の範囲を十分に記述し可能にするものと容易に認識することができる。限定を目的としない例を示すと、本明細書に記述した各範囲は、下の３分の１、中央の３分の１、および上の３分の１などに容易に分解することができる。また、当業者は理解されるように、「まで（ｕｐ  ｔｏ）」、「少なくとも（ａｔ  ｌｅａｓｔ）」、「超える（ｇｒｅａｔｅｒ  ｔｈａｎ）」「未満（ｌｅｓｓ  ｔｈａｎ）」などのすべての言葉は、述べられた数を含み、続いて、上に記述したような部分範囲に分解できる範囲を示している。最後に、当業者は理解されるように、範囲は各個々のメンバーを含む。したがって、たとえば１〜３個のセルを持つグループは、１個、２個、または３個のセルを持つグループを表している。同様に、１〜５個のセルを持つグループは、１個、２個、３個、４個、または５個のセルを持つグループを表すという具合である。
【００９９】
さまざまな態様および実施形態について本明細書に開示したが、他の態様および実施形態は当業者には明白になるであろう。本明細書に開示したさまざまな態様および実施形態は、例を示すことを目的とするものであり、限定することを意図するものではなく、真の範囲および精神は、以下に示す特許請求の範囲によって示されている。
【図１】
2015509010.tif 000003
【図２】
2015509010.tif 000004
【図３】
2015509010.tif 000005
【図４】
2015509010.tif 000006
【図５】
2015509010.tif 000007
【図６】
2015509010.tif 000008
【図７】
2015509010.tif 000009
【手続補正書】
【提出日】平成26年6月9日(2014.6.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クラウドベースのゲームにおいて予測的にキャッシュするための方法であって、
ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、
前記プレイヤによる現在の動作、前記プレイヤの場所、前記プレイヤによる第１の動作、前記プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および／または前記複数のプレイヤによる第１の動作の組の少なくとも１つに基づいて前記プレイヤが前記経路セグメントのサブセットを取る確率を決定することと、
それぞれの確率に比例して変動する表示品質を持つそれぞれの確率に基づいて、経路セグメントの前記サブセットにおいて前記経路セグメントの１つまたは複数をレンダリングすることと、
前記ゲームクライアントにキャッシュするために、前記変動する表示品質を持つ前記レンダリングされた１つまたは複数の経路セグメントをゲームクライアントに送信することと
を含む方法。
【請求項２】
確率が最も高い経路セグメントを送信することをさらに含む請求項１に記載の方法。
【請求項３】
利用可能な帯域幅、ゲームクライアントのキャッシュのサイズ、および／または活動中のプレイヤの数の組の少なくとも１つに基づいて送信するために多数のレンダリングされた経路セグメントを選択することをさらに含む請求項１に記載の方法。
【請求項４】
前記プレイヤによる他の動作、前記プレイヤの他の場所、前記プレイヤのゲーム履歴、および／または前記プレイヤが前記ゲームを進めたときの複数のプレイヤのゲーム履歴の組の少なくとも１つに基づいて前記プレイヤが前記経路セグメントの他のサブセットを取る確率を更新することと、
それぞれの確率に基づいて経路セグメントの他方のサブセットにおいて前記経路セグメントの１つまたは複数をレンダリングすることと、
前記ゲームクライアントにキャッシュするために、前記レンダリングされた１つまたは複数の経路セグメントを前記ゲームクライアントに送信することと
をさらに含む請求項１に記載の方法。
【請求項５】
ゲーム開発者によって指定され、最初のゲームのセットアップ時にゲームコンテンツデータに格納された、１組の事前定義された確率に基づいて、前記プレイヤが前記経路セグメントのサブセットを取る確率を決定すること
をさらに含む請求項１に記載の方法。
【請求項６】
ゲームコンテンツデータを予測的にキャッシュするためのクラウドベースのゲームサーバであって、
メモリと、
前記メモリに結合されたプロセッサであって、
ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別し、
前記プレイヤによる現在の動作、前記プレイヤの場所、前記プレイヤによる第１の動作、前記プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および／または前記複数のプレイヤによる第１の動作の組の少なくとも１つに基づいて前記プレイヤが前記経路セグメントのサブセットを取る確率を決定し、
それぞれの確率に比例して変動する表示品質を持つそれぞれの確率に基づいて、経路セグメントの前記サブセットにおいて前記経路セグメントの１つまたは複数をレンダリングし、
前記ゲームクライアントにキャッシュするために、前記変動する表示品質を持つ前記レンダリングされた１つまたは複数の経路セグメントをゲームクライアントに送信する
ように構成されたプロセッサと
を備えるサーバ。
【請求項７】
前記プロセッサが、前記ゲームの初期化時に前記複数の経路セグメントに、実質的に等しい確率を割り当てるようにさらに構成されている請求項６に記載のサーバ。
【請求項８】
前記プロセッサが、
前記ゲームクライアントのキャッシュから未使用のゲームコンテンツデータを削除し、
前記未使用のゲームコンテンツデータを１つまたは複数の経路セグメントの新しい組のゲームコンテンツデータに置き換える
ようにさらに構成されている請求項６に記載のサーバ。
【請求項９】
前記プロセッサが、利用可能な帯域幅、ゲームクライアントのキャッシュのサイズ、および／または活動中のプレイヤの数の組の少なくとも１つに基づいて送信するために多数のレンダリングされた経路セグメントを選択するようにさらに構成されている請求項６に記載のサーバ。
【請求項１０】
前記プロセッサが、前記経路セグメントを識別しかつ／または前記確率を決定するために、前記複数のプレイヤの前記ゲーム履歴のデータマイニングおよびクラウドソーシングの１つを用いるようにさらに構成されている請求項６に記載のサーバ。
【請求項１１】
前記プロセッサが、ゲーム開発者によって指定され、最初のゲームのセットアップ時にゲームコンテンツデータに格納された、１組の事前定義された確率にさらに基づいて、前記プレイヤが前記経路セグメントの前記サブセットを取る確率を決定するようにさらに構成されている請求項６に記載のサーバ。
【請求項１２】
前記プロセッサが、ゲームコンテンツデータに格納され、ゲームコンテンツ更新によって更新される１組の事前定義された確率にさらに基づいて、前記プレイヤが前記経路セグメントの前記サブセットを取る確率を決定するようにさらに構成されている請求項６に記載のサーバ。
【請求項１３】
クラウドベースのゲームにおいて予測的にキャッシュするために、命令が格納されたコンピュータ可読記憶媒体であって、前記命令は、
ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、
前記プレイヤによる現在の動作、前記プレイヤの場所、前記プレイヤによる第１の動作、前記プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および／または前記複数のプレイヤによる第１の動作の組の少なくとも１つに基づいて前記プレイヤが前記経路セグメントのサブセットを取る確率を決定することと、
それぞれの確率に比例して変動する表示品質を用いてそれぞれの確率に基づいて、経路セグメントの前記サブセットにおいて前記経路セグメントの１つまたは複数をレンダリングすることと、
前記ゲームクライアントにキャッシュするために、前記変動する表示品質を持つ前記レンダリングされた１つまたは複数の経路セグメントをゲームクライアントに送信することと
を含むコンピュータ可読記憶媒体。
【請求項１４】
前記表示品質が、解像度、毎秒のフレーム数、ラスタ化、および／またはシェーディングの組の少なくとも１つを含む請求項１３に記載のコンピュータ可読記憶媒体。
【請求項１５】
前記命令が、
前記プレイヤによる他の動作、前記プレイヤの他の場所、前記プレイヤのゲーム履歴、および／または前記プレイヤが前記ゲームを進めたときの複数のプレイヤのゲーム履歴の組の少なくとも１つに基づいて前記プレイヤが前記経路セグメントの他のサブセットを取る確率を更新することと、
それぞれの確率に比例して変動する表示品質を持つ前記１つまたは複数の経路セグメントをレンダリングすることと、
前記変動する表示品質を持つ前記１つまたは複数の経路セグメントを送信することと
をさらに含む請求項１３に記載のコンピュータ可読記憶媒体。
【請求項１６】
前記プレイヤが前記経路セグメントの前記サブセットを取る確率を決定することが、ゲーム開発者によって指定され、最初のゲームのセットアップ時にゲームコンテンツデータに格納された、またはゲームコンテンツデータに格納され、ゲームコンテンツ更新によって更新される１組の事前定義された確率にさらに基づく請求項１３に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記命令が、前記ゲームの初期化時に前記複数の経路セグメントに、実質的に等しい確率を割り当てることをさらに含む請求項１３に記載のコンピュータ可読記憶媒体。
【請求項１８】
予測されたゲームコンテンツデータをキャッシュするためのゲームクライアントであって、
メモリと、
前記メモリに結合されたプロセッサであって、
ローカルにキャッシュするためにゲームサーバから１つまたは複数のレンダリングされた経路セグメントを受信するように構成され、前記１つまたは複数の経路セグメントは、
ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、
前記プレイヤによる現在の動作、前記プレイヤの場所、前記プレイヤによる第１の動作、前記プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および／または前記複数のプレイヤによる第１の動作の組の少なくとも１つに基づいて前記プレイヤが前記経路セグメントのサブセットを取る確率を決定することと、
それぞれの確率に比例して変動する表示品質を用いてそれぞれの確率に基づいて、経路セグメントの前記サブセットにおいて前記経路セグメントの１つまたは複数をレンダリングすることと
によってレンダリングされるように構成されたプロセッサと
を備えるゲームクライアント。
【請求項１９】
前記プロセッサが、
前記ゲームクライアントのキャッシュから未使用のゲームコンテンツデータを削除し、
前記未使用のゲームコンテンツデータを１つまたは複数の経路セグメントの新しい組のゲームコンテンツデータに置き換える
ようにさらに構成されている請求項１８に記載のゲームクライアント。
【請求項２０】
前記ゲームクライアントは、デスクトップコンピュータ、ラップトップ型コンピュータ、車両搭載型コンピュータ、ハンドヘルドコンピュータ、多目的のコンピューティングデバイス、およびゲームデバイスの１つである請求項１８に記載のゲームクライアント。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
コンピューティングデバイス５００は、また、バス／インターフェースコントローラ５３０を介して、さまざまなインターフェースデバイス（たとえば、１つまたは複数の出力装置５４２、１つまたは複数の周辺インターフェース５４４、および１つまたは複数の通信デバイス５４６）から基本構成５０２への通信を促進するためにインターフェースバス５４０を備えることができる。例示的な出力装置５４２の一部は、グラフィック処理ユニット５４８および音声処理ユニット５５０を備え、これらは１つまたは複数のＡ／Ｖポート５５２を介してディスプレイまたはスピーカなど、さまざまな外部デバイスと通信するように構成することができる。１つまたは複数の例示的な周辺インターフェース５４４は、シリアルインターフェースコントローラ５５４またはパラレルインターフェースコントローラ５５６を含むことができ、これらは１つまたは複数のＩ／Ｏポート５５８を介して入力装置（たとえばキーボード、マウス、ペン、音声入力機器、タッチ入力装置など）など外部デバイスまたは他の周辺機器（たとえばプリンタ、スキャナなど）と通信するように構成することができる。例示的な通信デバイス５４６は、ネットワークコントローラ５６０を備え、これは１つまたは複数の通信ポート５６４を介してネットワーク通信リンクを通じて１つまたは複数の他のコンピューティングデバイス５６２との通信を促進するように配置することができる。図１に示すように、１つまたは複数の他のコンピューティングデバイス５６２は、ゲームクライアント１０６、ローカルサーバノード１０８、および／またはゲームサービス予測キャッシング１０４を含むことができる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００８７
【補正方法】変更
【補正の内容】
【００８７】
さらに他の例によれば、ゲームクライアントは、デスクトップコンピュータ、ラップトップ型コンピュータ、車両搭載型コンピュータ、ハンドヘルドコンピュータ、多目的のコンピューティングデバイス、およびゲームデバイスの１つでもよい。
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2015509010.tif 000010
【国際調査報告】
2015509010.tif 000011
2015509010.tif 000012