JP6129865B2 - ゲームコンテンツデータの予測的なキャッシング - Google Patents

ゲームコンテンツデータの予測的なキャッシング Download PDF

Info

Publication number
JP6129865B2
JP6129865B2 JP2014545389A JP2014545389A JP6129865B2 JP 6129865 B2 JP6129865 B2 JP 6129865B2 JP 2014545389 A JP2014545389 A JP 2014545389A JP 2014545389 A JP2014545389 A JP 2014545389A JP 6129865 B2 JP6129865 B2 JP 6129865B2
Authority
JP
Japan
Prior art keywords
game
player
probability
subset
path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014545389A
Other languages
English (en)
Other versions
JP2015509010A (ja
Inventor
ニキル・チャオチャリア
ハリハラン・ラマサング
ジョージ・パウロス・クウムリル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Empire Technology Development LLC
Original Assignee
Empire Technology Development LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Empire Technology Development LLC filed Critical Empire Technology Development LLC
Publication of JP2015509010A publication Critical patent/JP2015509010A/ja
Application granted granted Critical
Publication of JP6129865B2 publication Critical patent/JP6129865B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/47Controlling the progress of the video game involving branching, e.g. choosing one of several possible scenarios at a given point in time
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Description

本明細書に特に記載していないかぎり、本項に記述した情報は、本出願の特許請求の範囲に対する従来技術ではなく、また本項に含めることによって従来技術であることを認めるものではない。
オンラインのマッシブリーマルチプレイヤオンラインロールプレーイングゲーム(MMORPG)市場は急速に成長している。ゲームクライアントのユーザ環境がリアルタイムにユーザの決定に応じて絶えず更新される、対話型のゲームは、処理、ストレージ、および帯域幅の要件に関して非常にリソース集約的な活動になりつつある。一人称のシューティングゲームがリアルタイムな戦略と組み合わせられているため、ゲームの複雑さは幾重にも増加する。ゲームのためのコンピュータ環境は、クラウドベースのゲームシステムにますます移動されつつあり、そこでは、ゲーム処理はクラウドベースのサーバでホストされ、ゲームのビデオストリームは、かなり低い処理能力を有するローカルゲームクライアントに送信される。ローカルのゲームクライアントにビデオストリームをリアルタイムに送信する際の遅延、待ち時間、または遅れ時間は、クラウドベースのゲームにおいてユーザ体験に悪い影響を与える場合があるため、ローカルのゲームクライアントにゲームのビデオストリームを送信する際に待ち時間および遅れ時間を減らすことが望ましい場合がある。
ユーザ体験を改善し、かつ遅れ時間および待ち時間を減らす方法の1つは、事前にゲームの次に来るビデオシーケンスを生成し、ゲームクライアントにビデオシーケンスを前もって送信することである。事前に生成するために次に来るゲームシーケンスを予測する処理は、選択肢の数がより少ないときには、うまく機能することがある。しかし、一人称のシューティングゲームおよびリアルタイムの戦略ゲームなど、複雑な対話型MMORPゲームは、事実上非常に対話が多く動的であり、ユーザの行動および次に来るゲームストリームを前もって予測することは、不可能ではないにしても非常に困難である。
本開示は、一般的に、クラウドベースのゲームにおいてゲームコンテンツデータを予測的にキャッシュするための技術について記述する。一部の例によれば、クラウドベースのゲームにおいて予測的にキャッシュするための方法は、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、プレイヤによる第1の動作、プレイヤのゲーム履歴、および/または複数のプレイヤのゲーム履歴の組の少なくとも1つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定することと、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの1つまたは複数をレンダリングすることと、ゲームクライアントにキャッシュするために、レンダリングされた1つまたは複数の経路セグメントをゲームクライアントに送信することとを含むことができる。
他の例によれば、ゲームコンテンツデータを予測的にキャッシュするためのクラウドベースのゲームサーバは、メモリ、メモリに結合されたプロセッサを備えることができる。プロセッサは、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別し、プレイヤによる第1の動作、プレイヤのゲーム履歴、および/または複数のプレイヤのゲーム履歴の組の少なくとも1つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定し、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの1つまたは複数をレンダリングし、ゲームクライアントにキャッシュするために、レンダリングされた1つまたは複数の経路セグメントをゲームクライアントに送信するように構成することができる。
他の例によれば、コンピュータ可読記憶媒体は、クラウドベースのゲームにおいて予測的にキャッシュするために、命令を格納することができる。命令は、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、プレイヤによる第1の動作、プレイヤのゲーム履歴、および/または複数のプレイヤのゲーム履歴の組の少なくとも1つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定することと、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの1つまたは複数をレンダリングすることと、ゲームクライアントにキャッシュするために、レンダリングされた1つまたは複数の経路セグメントをゲームクライアントに送信することとを含むことができる。
さらに他の例によれば、予測されたゲームコンテンツデータをキャッシュするためのゲームクライアントは、メモリ、およびメモリに結合されたプロセッサを備えることができる。プロセッサは、ローカルにキャッシュするためにゲームサーバから1つまたは複数のレンダリングされた経路セグメントを受信するように構成することができる。経路セグメントは、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、プレイヤによる第1の動作、プレイヤのゲーム履歴、および/または複数のプレイヤのゲーム履歴の組の少なくとも1つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定することと、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの1つまたは複数をレンダリングすることとによってレンダリングすることができる。
前述の概要は例を示すものにすぎず、決して限定することを意図するものではない。図面および以下の詳細な説明を参照することによって、上に記述した例として示す態様、実施形態、および特徴に加えて、他の態様、実施形態、および特徴が明らかになろう。
本開示の前述および他の機能は、添付図面に関して、以下の記述および添付の特許請求の範囲からより完全に明らかになろう。これらの図は本開示に従って単に複数の実施形態を示すものであり、したがって、その範囲を限定するものではないことを理解して、添付図面を使用して追加の特異性および詳細を用いて本開示について記述する。
予測的にキャッシュするための例示的なクラウドベースのゲームシステムを示す図である。 使用履歴に基づいて予測的にキャッシュするための例示的なクラウドベースのゲームシステムを示す図である。 マルチ経路ゲームのセグメントに対する割り当てられた確率の例示的なシナリオを示す図である。 マルチ経路ゲームにおいて経路セグメントを予測的にキャッシュするために確率を動的に更新する機能ブロック図である。 クラウドベースのゲームにおいて予測的なキャッシングを実装するために使用できる汎用コンピューティングデバイスを示す図である。 図5のデバイスなど、コンピューティングデバイスによって実行できるクラウドベースのゲームにおいて予測的にキャッシュするための例示的な方法を示す流れ図である。 本明細書に記述した少なくとも一部の実施形態に従ってすべて配置された、例示的なコンピュータプログラム製品を示すブロック図である。
以下の詳細な説明では、その一部を形成する添付図面について言及する。図面では、文脈において指示されていないかぎり、類似の記号は、典型的には同様のコンポーネントを特定する。詳細な説明、図、および特許請求の範囲に記述されている例示的な実施形態は、限定を目的とするものではない。本明細書に提示された主題の精神または範囲から逸脱することなく、他の実施形態を利用し、他の変更を行うことができる。本明細書に一般的に記述し、図に示した本開示の態様は、多種多様な異なる構成において配置、交換、結合、分離、および設計することができ、本明細書では、それはすべてを明示的に意図するものであることが容易に理解されよう。
この開示は、一般的に、とりわけ、クラウドベースのゲームのゲームコンテンツデータの予測的なキャッシングに関係する方法、装置、システム、デバイス、および/またはコンピュータプログラム製品について記述するものである。
簡潔に言えば、クラウドベースのゲームにおいて予測的なキャッシングを介して遅れ時間を減らすための技術が提示される。クラウドベースのゲームシステムは、リアルタイムのゲームプレイ中に取ることができるゲーム経路を識別することができ、プレイヤが選択できる経路セグメントのサブセットへとゲーム経路を分割することができる。システムは、プレイヤによるリアルタイムの動作の分析ならびに現在のプレイヤおよび過去のプレイヤのゲーム履歴に基づいてプレイヤが経路セグメントのサブセットを取る確率を決定することができる。システムは、経路セグメントのサブセットに選択される確率を割り当てることができ、それぞれの確率に基づいて経路セグメントのサブセットをレンダリングすることができる。システムは、経路セグメントのサブセットに対するレンダリングされたゲームコンテンツデータをローカルキャッシュにキャッシュするためにゲームクライアントに送信できるため、リアルタイムゲームプレイ中に必要なときにゲームコンテンツデータが利用可能になり得る。
図1は、本明細書に記述した少なくとも一部の実施形態に従って配置された、予測的なキャッシングのための例示的なクラウドベースのゲームシステムを示している。図1の略図100に図示するように、クラウドベースのシステムは、1つまたは複数の物理的なコンピューティングデバイスに実装できる、クラウドベースのゲームサービス102を含むことができる。クラウドベースのゲームサービス102は、ネットワーク経路2を介してクラウドベースのネットワーク110を通じて1つまたは複数のゲームクライアント106にゲームコンテンツデータを提供することができる。クラウドベースのゲームサービス102は、ネットワーク経路1を介して、ゲームサービス予測キャッシングデータベースサーバ104に結合されてもよい。一部の例示的な実施形態では、ゲームサービス予測キャッシングデータベースサーバ104は、ゲームクライアント106の1つまたは複数でゲームをしている間に、ユーザまたは現在のゲームプレイヤが追求する可能性がある可能性の高いゲーム経路セグメントを予測することができる。ゲームサービス予測キャッシングデータベースサーバ104は、リアルタイムゲームプレイ中にゲームコンテンツデータをレンダリングするための遅れ時間を減らすために、クラウドベースのゲームサービス102が、ネットワーク経路2を介して1つまたは複数のゲームクライアント106に可能性の高いゲーム経路セグメントのゲームコンテンツデータを予測的にキャッシュすることを可能にすることができる。
他の例では、ローカルサーバノード108は、ネットワーク経路4を介して1つまたは複数のゲームクライアント106に予測されたゲーム経路セグメントを送信するために、待ち時間および遅れ時間をさらに減らすことができる。たとえば、ローカルサーバノード108は、クラウドベースのゲームサービス102よりゲームクライアント106の一部に物理的により接近して配置することによって、1つまたは複数のゲームクライアント106の可能性の高いゲーム経路セグメントについて、ゲームコンテンツデータを予測的にキャッシュするために、遅れ時間を減らすことができる。ローカルサーバノード108は、また、クラウドベースのゲームサービス102の計算上の負荷を緩和することによって、ゲームコンテンツデータを予測的にキャッシュするために、遅れ時間を減らすことができる。ローカルサーバノード108は、また、クラウドベースのネットワーク110のネットワーク負荷を緩和することによって、ゲームコンテンツデータを予測的にキャッシュするために、遅れ時間を減らすことができる。ローカルサーバノード108は、オプションとして、ネットワークパス3を介してゲームサービス102と通信することができる。
図2は、本明細書に記述した少なくとも一部の実施形態に従って配置された、使用履歴に基づく予測的なキャッシングのための例示的なクラウドベースのゲームシステムを示している。略図200に示すように、クラウドベースのゲームシステム210は、リアルタイムゲームプレイ中にゲームプレイヤが経験する待ち時間および遅れ時間を減らすために、関連するゲームコンテンツデータを予測してゲームクライアント230に送信(220)するように構成することができる。例示的なゲームは、一人称のシューティングゲームを含んでもよく、および/またはゲームクライアントのユーザ環境がユーザの決定に応じてリアルタイムに更新されるリアルタイムの対話型戦略ゲームであってもよい。
実施形態によるシステムでは、クラウドベースのゲームシステム210内のゲームサーバ212は、ゲームクライアント230のローカルキャッシュ222にゲームコンテンツデータを予測的にキャッシュするために利用できるため、リアルタイムゲームプレイ中に必要なときにゲームコンテンツデータを利用することができる。ゲームサーバ212は、現在のプレイヤのゲームクライアント230において現在のプレイヤによるゲームプレイ活動を監視することができる。現在のプレイヤがゲームクライアント230でゲームを始めると、ゲームの入口点からゲームの出口点に到着するためにプレイヤが取ることができる多数のゲーム経路がある場合があり、ゲームサーバ212は、プレイヤが取ることができる利用可能なゲーム経路を識別するように構成することができる。ゲームサーバ212は、現在のプレイヤが取ることを選択できる、より小さな経路セグメントへと識別されたゲーム経路をさらに分解できるため、入口点から出口点までの各ゲーム経路は、選択された経路セグメントのサブセットの組み合わせとなりうる。選択された経路セグメントのサブセットは、ゲーム入口からゲーム出口への2つ以上の利用可能なゲーム経路の一部でもよい。
例示的な実施形態では、ゲームサーバ212は、予測モジュール216を通じてゲームクライアント230で現在のプレイヤが取ることを選択できる最も可能性の高い経路セグメントを予測するように構成することができる。予測モジュール216は、現在のプレイヤのリアルタイムの動作に基づいて、現在のプレイヤが経路セグメントのサブセットを取る確率を決定することができる。たとえば、予測モジュール216は、現在のプレイヤの経路セグメントの場所を決定することができ、現在のプレイヤが次に選択するために利用できる経路セグメントを識別することができる。次に、予測モジュール216は、現在プレイヤのリアルタイムの動作および経路セグメントの選択を識別することができ、現在のプレイヤのリアルタイムのゲームプレイ決定に基づいて、利用可能な次に来る経路セグメントの1つまたは複数に次に選択される確率を決定することができる。
追加の実施形態では、ゲームサーバ212は、予測モジュール216が、現在のプレイヤのゲームプレイ履歴、および過去のプレイヤ202、204、206のゲームプレイ履歴に基づいて、現在のプレイヤが経路セグメントの特定のサブセットを選択する確率を決定できるように構成することができる。ゲームサーバ212は、1人または複数の過去のプレイヤ202、204、および206の動作、振る舞い、および経路セグメントの選択を含むゲームプレイ履歴を追跡し(208)、ゲームサーバ212に配置された使用履歴データベース214に過去のプレイヤ204、206、208のゲームプレイ履歴を格納するように構成することができる。一部の実施形態では、ゲームサーバ212は、現在のプレイヤの動作、振る舞い、および経路セグメントの選択を含む現在のプレイヤのゲームプレイ履歴を追跡し、また、使用履歴データベース214に現在のプレイヤのゲームプレイ履歴を格納するように構成することができる。
例示的な実施形態では、予測モジュール216は、現在のプレイヤが経路セグメントの特定のサブセットを選択する確率を決定するために、使用履歴データベース214に格納されている過去のプレイヤおよび現在のプレイヤのゲームプレイ履歴を分析するために、データマイニングおよびクラウドソーシングの手法を利用することができる。適用されるデータマイニングおよびクラウドソーシングの手法に基づいて、予測モジュール216は、利用可能な各経路セグメントに、次に選択される確率を割り当てることができるため、一部の利用可能な経路セグメントには、現在のプレイヤによって次に選択される確率を高く割り当てることができ、他の利用可能な経路セグメントには、現在のプレイヤによって次に選択される確率をより低く割り当てることができる。
さらに、ゲームサーバ212は、ゲームコンテンツデータにおいてゲーム開発者が指定できる経路セグメントに対する1組の事前定義された確率を格納できるため、予測モジュール216は、最初のゲームのセットアップ時にゲーム開発者によって指定された、事前定義された確率に基づいて、現在のプレイヤが経路セグメントの特定のサブセットを取る確率を決定することができる。一部の実施形態では、予測モジュール216は、ゲームサーバ212のゲームコンテンツデータに格納され、ゲームコンテンツデータ更新によって定期的に更新される、1組の事前定義された確率に基づいて、現在のプレイヤが経路セグメントの特定のサブセットを取る確率を決定することができる。予測モジュール216は、使用履歴データベース214に格納された現在のプレイヤおよび過去のプレイヤのゲームプレイ履歴をデータマイニングおよびクラウドソーシングすることから決定された確率に関連してゲームサーバ212に格納された、事前定義された確率に基づいて、利用可能な各経路セグメントに選択される確率を割り当てることができる。
例示的な実施形態では、予測モジュール216が、経路セグメントの利用可能なサブセットに、次に選択される確率を決定し割り当てると、ゲームサーバ212は、それぞれの割り当てられた確率に基づいて経路セグメントに対してゲームコンテンツデータをレンダリングすることができ、予測モジュール216は、ローカルキャッシュ222にキャッシュするためにゲームクライアント230にレンダリングされた経路セグメントを送信(220)することができる。例示的なシナリオでは、ゲームサーバ212は、経路セグメントの特定のサブセットが、現在のプレイヤによって次に選択される確率が最も高いと決定することができる。ゲームサーバ212は、選択される確率が最も高い経路セグメントに対してゲームコンテンツデータをレンダリングすることができ、予測モジュール216は、ローカルキャッシュ222にキャッシュするために、ゲームクライアント230に確率が最も高いその経路セグメントを送信(220)することができる。別の例では、ゲームサーバ212は、現在のプレイヤによって次に選択される確率が高い経路セグメントの2つ以上のサブセットを決定することができ、ゲームサーバ212は、選択される確率が高い複数の経路セグメントに対してゲームコンテンツデータをレンダリングすることができ、次に、予測モジュール216は、ローカルキャッシュ222にキャッシュするために、複数の確率が高い経路セグメントをゲームクライアント230に送信(220)することができる。
他の実施形態では、予測モジュール216は、割り当てられた確率に基づいて、ゲームクライアント230のローカルキャッシュ222にキャッシュするために、経路セグメントの品質および量を決定することができる。たとえば、予測モジュール216は、高品質でローカルキャッシュ222にキャッシュするために、ゲームクライアントに確率が最も高い経路セグメントを送信(220)することができる。送信された経路セグメントの品質は、ゲームクライアントでの表示品質でもよく、例の一部を挙げると、解像度の品質、毎秒のフレーム数、ラスタ化、およびシェーディングを含むことができる。予測モジュール216は、ゲームクライアントに送信される経路セグメントの品質を調整するために、解像度、毎秒のフレーム数、ラスタ化、およびシェーディングを調整することができる。予測モジュール216は、また、割り当てられた確率に比例して表示品質を変動させる際に、ローカルキャッシュ222にキャッシュするために、ゲームクライアントに1つまたは複数の追加的な経路セグメントのゲームコンテンツデータを送信(220)することができる。たとえば、より低い確率の経路セグメントは、より低い品質でレンダリングして送信することができ、より高い確率の経路セグメントは、より高い品質でレンダリングして送信することができる。
一部の実施形態では、予測モジュール216は、ゲームクライアント230のローカルキャッシュ222に送信される経路セグメントの量および品質のバランスを保つことができる。予測モジュール216は、ゲームクライアントに送信するための利用可能な帯域幅およびローカルキャッシュ222のサイズに基づいて、ローカルキャッシュ222にキャッシュするためにゲームクライアントに送信する経路セグメントの量を決定することができ、それに応じて利用可能な伝送帯域幅およびローカルキャッシュ222のスペースを最適化するために、送信される経路セグメントの品質を調整することができる。たとえば、帯域幅が低くかつ/またはキャッシュサイズが小さいシナリオでは、予測モジュール216は、より高い表示品質でより少ない経路セグメントを送信することができるか、あるいは、予測モジュール216は、品質を下げてローカルキャッシュ222により多くの経路セグメントを送信することができる。他の実施形態では、送信するべき経路セグメントの量および品質を決定するときに、予測モジュール216は、ゲームコンテンツデータ送信のために利用可能な帯域幅に影響する可能性がある、ゲームサーバ212からゲームコンテンツデータを受信している可能性がある追加的なゲームクライアントの活動中のプレイヤの数を考慮することができる。さらに、現在のプレイヤおよび/もしくは過去のプレイヤのゲームプレイ履歴が利用可能でない可能性があるとき、または予測モジュール216が有益な確率を計算できない一部のシナリオでは、予測モジュール216は、利用可能な経路セグメント間で次に選択される確率を平等に分散することができ、ほぼ平等に分散された品質で経路セグメントのゲームコンテンツデータをゲームクライアントに送信することができる。
他の実施形態では、ゲームサーバ212は、ゲームクライアント230で現在のプレイヤのリアルタイムゲームプレイを継続的に監視し追跡することができ、現在のプレイヤによって行われるリアルタイムの決定に基づいて、現在のプレイヤが経路セグメントの次のサブセットを選択する可能性を更新することができる。一部の実施形態では、ゲームサーバは、使用履歴データベース214に格納された現在のプレイヤおよび過去のプレイヤ202、204、206のゲームプレイ履歴に基づいて確率を更新することができる。たとえば、現在のプレイヤが経路セグメントの選択を行い、現在の経路セグメントのコンテンツデータがゲームクライアント230によってローカルキャッシュ222から取得されると、ゲームサーバ212は、予測モジュール216が、現在のプレイヤの新しい経路セグメントの場所を識別し、現在のプレイヤが次に選択するために利用可能な経路セグメントのサブセットを識別することを可能にすることができる。予測モジュール216は、現在のプレイヤのリアルタイムのゲームプレイ決定、現在のプレイヤのゲームプレイ履歴、および過去のプレイヤ202、204、206のゲームプレイ履歴に基づいて、利用可能な次に来る経路セグメントの1つまたは複数に選択される確率を再度決定することができる。予測モジュール216が、経路セグメントの次に利用可能なサブセットに、次に選択される確率を決定し割り当てると、ゲームサーバ212は、それぞれの割り当てられた確率に基づいて経路セグメントの新しい次の利用可能なサブセットに対してゲームコンテンツデータをレンダリングすることができ、予測モジュール216は、ローカルキャッシュ222にキャッシュするためにゲームクライアント230に新しくレンダリングされた経路セグメントを送信(220)することができる。ローカルキャッシュ222は更新することができるため、経路セグメントの以前のサブセットから未使用のゲームコンテンツデータを取り除き、経路セグメントの予測された次のサブセットに対して新しくレンダリングされたゲームコンテンツデータに置き換えることができる。
図3は、本明細書に記述した少なくとも一部の実施形態に従って配置された、マルチ経路ゲームのセグメントに対する割り当てられた確率の例示的なシナリオを示している。図2に関連してすでに説明したように、ゲームクライアント230で現在のプレイヤがゲームを開始すると、プレイヤがゲーム入口点302からゲーム出口点320に移動するときに、ゲームサーバ212は、現在のプレイヤのゲームプレイ活動を監視することができる。ゲーム入口点302からゲーム出口点320に移動するために、現在のプレイヤが取ることができる複数のゲーム経路が存在してもよく、ゲームサーバ212は、現在のプレイヤが選択できる利用可能なゲーム経路を最初に識別することができる。ゲームサーバ212は、識別された利用可能なゲーム経路を、現在のプレイヤがゲームを移動する間に取ることを選択できる複数のより小さなゲーム経路セグメント306に分割できるため、ゲーム入口点302からゲーム出口点320までの各ゲーム経路は、選択された利用可能な経路セグメントのサブセットの組み合わせでありうる。一部の実施形態では、経路セグメントの選択されたサブセットは、ゲーム入口点302からゲーム出口点320までの2つ以上の利用可能なゲーム経路の一部でもよい。
例示的な実施形態では、ゲームサーバ212は、ゲーム入口点302からゲーム出口点320に移動するために現在のプレイヤが取ることを選択できる経路セグメントの中で最も可能性の高いサブセットを予測するように構成することができる。予測モジュールを通じて、ゲームサーバは、経路セグメントのそれぞれに現在のプレイヤによって次に選択される確率を割り当てることができる。例示的なシナリオでは、略図300に示すように、現在のプレイヤによってゲームが開始されると、ゲームサーバは、経路セグメント306のそれぞれに、次に選択される実質的に等しい確率を最初に割り当てることができる。そのようなシナリオでは、ゲームサーバは、実質的に等しい品質で経路セグメント306に対してゲームコンテンツデータをレンダリングすることができ、ゲームクライアントのローカルキャッシュに対して、実質的に等しい確率を持つ経路セグメント306のゲームコンテンツデータを送信することができる。一部の実施形態では、ゲームサーバは、現在のプレイヤおよび/もしくは過去のプレイヤのゲームプレイ履歴が利用可能でない可能性があるとき、または有益な確率を計算できない場合など、一部のシナリオにおいて、利用可能な経路セグメント306間で次に選択される確率を平等に分散することができる。
他の実施形態では、ゲームサーバは、経路セグメント312のそれぞれに現在のプレイヤによって次に選択される変動する可能性を割り当てることができる。ゲームサーバ212は、予測モジュールを通じて、利用可能な経路セグメント312のそれぞれについて、次に選択される確率を決定するように構成することができる。現在のゲームプレイヤの動作、現在のプレイヤのゲームプレイ履歴、および過去のプレイヤのゲームプレイ履歴に基づいて、ゲームサーバ212は、特定の経路セグメントが、現在のプレイヤによって次に選択される可能性がより高い一方、他の経路セグメントは、次に選択される可能性がより低いと決定することができる。予測モジュールは確率を決定し、経路セグメント312に変動する確率を割り当てることができ、確率が経路セグメント312に割り当てられると、ゲームサーバ212は、確率がより高い経路セグメント312に対してゲームコンテンツデータをレンダリングすることができ、ローカルキャッシュにキャッシュするためにゲームクライアントに確率がより高い経路セグメント312のゲームコンテンツデータを送信することができる。すでに説明したように、ゲームサーバ212は、利用可能な帯域幅およびローカルキャッシュサイズを含む要素を最適化するために、ゲームクライアントに送信するために、経路セグメント312に対して送信されるゲームコンテンツデータの品質、および送信される経路セグメントの数を調整することができる。
ゲームの入口点および出口点だけでなく、略図300の経路セグメントは、プレイヤによって制御された手段を通じて歩いた、または対象にされたゲームでの実際の経路を表すことを目的としていない。ゲームの入口点および出口点は、プレイヤの開始状態および最終状態を単に表すことができる。同様に、各経路セグメントは、ゲーム内の所定の時間における特定のプレイヤの状態を表すことができる。
図4は、本明細書に記述した少なくとも一部の実施形態に従って配置された、マルチ経路ゲームにおいて経路セグメントを予測的にキャッシュするための確率を動的に更新する機能ブロック図を示している。略図400に示すように、現在のプレイヤのゲームクライアントにおいて現在のプレイヤによりゲームが開始されると、クラウドベースのゲームシステムにおけるゲームサーバは、現在のプレイヤのリアルタイムの動作、決定、および経路セグメントの選択を含む、ゲームクライアントでの現在のプレイヤの活動を監視(402)することができる。予測的なキャッシングモジュールを通じて、ゲームサーバは、現在のプレイヤの経路セグメントの場所を識別することができ、現在のプレイヤが直接的に次に選択するために利用できる経路セグメントを識別することができる(404)。
ゲームサーバは、現在のプレイヤのリアルタイムのゲームプレイ決定、現在のプレイヤのゲームプレイ履歴、および過去のプレイヤのゲームプレイ履歴に基づいて選択される確率を決定することによって、現在のプレイヤが次に取ることを選択する経路セグメントを予測することができる。これは、現在および過去のプレイヤの動作、振る舞い、および経路セグメントの選択の履歴を含むことができる。確率を決定するために、ゲームサーバは、現在のプレイヤのゲームプレイ履歴および過去のプレイヤのゲームプレイ履歴を格納することができる、ゲームサーバに配置された使用履歴データベース412にアクセス(406)することができる。ゲームサーバは、ゲームプレイ履歴に基づいて次に選択される確率を決定するために、データマイニング、クラウドソーシング、ならびに他の同様のデータ収集および分析の手法を適用するように構成することができ、ゲームサーバは、識別された利用可能な経路セグメントのそれぞれに、次に選択される決定された確率を割り当てる(408)ことができる。
ゲームサーバが、利用可能な経路セグメントに、次に選択される確率を決定し割り当てる(408)と、ゲームサーバは、それぞれの割り当てられた確率に基づいて経路セグメントに対してゲームコンテンツデータをレンダリングすることができ、経路セグメントに対してレンダリングされたゲームコンテンツデータをゲームクライアントに送信することができ、そこでは、ゲームコンテンツデータは、ゲームクライアントのローカルキャッシュにキャッシュ(410)することができる。ゲームサーバは、リアルタイムに現在のプレイヤの活動および経路セグメントの選択を継続的に監視できるため、プレイヤが経路セグメントを選択すると、ゲームサーバは、将来的に次に来る経路セグメントに次に選択される確率を継続的に更新する(414)ことができる。
図5は、本明細書に記述した少なくとも一部の実施形態に従って配置された、クラウドベースのゲームで予測的なキャッシングを実装するために使用できる、汎用のコンピューティングデバイスを示している。例示的な基本構成502では、コンピューティングデバイス500は、1つまたは複数のプロセッサ504およびシステムメモリ506を備えることができる。メモリバス508は、プロセッサ504とシステムメモリ506との間で通信するために使用することができる。基本構成502は、内部の破線内のそれらのコンポーネントによって図5に示されている。
所望の構成によって、プロセッサ504は、マイクロプロセッサ(μP)、マイクロコントローラ(μC)、デジタル信号プロセッサ(DSP)、またはそれらの任意の組み合わせを含む任意のタイプでもよいがそれらに限定されない。プロセッサ504は、レベルキャッシュメモリ512、プロセッサコア514、およびレジスタ516など、より多くのレベルのキャッシングを備えることができる。例示的なプロセッサコア514は、論理演算ユニット(ALU)、浮動小数点ユニット(FPU)、デジタル信号処理コア(DSPコア)、またはそれらの任意の組み合わせを備えることができる。例示的なメモリコントローラ518は、また、プロセッサ504と共に使用することができるか、または一部の実装では、メモリコントローラ518は、プロセッサ504の内部部品でもよい。
所望の構成に応じて、システムメモリ506は、揮発性メモリ(RAMなど)、不揮発性メモリ(ROM、フラッシュメモリなど)、またはそれらの任意の組み合わせを含む任意のタイプでもよいがそれらに限定されない。システムメモリ506は、オペレーティングシステム520、1つまたは複数のゲームサービスアプリケーション522、およびプログラムデータ524を含むことができる。ゲームサービスアプリケーション522は、予測的なモジュール525を備えることができ、これは、本明細書に記述されるようにリアルタイムゲームプレイ中に、ゲームプレイヤによって次に選択される決定された確率が高い経路セグメントにゲームコンテンツデータの予測的なキャッシングを提供することができる。図5を再び参照すると、プログラムデータ524は、他のデータの中でも、本明細書に記述するように現在のプレイヤおよび過去のプレイヤのゲームプレイ履歴に関連した使用履歴データ528を含むことができる。
コンピューティングデバイス500は、追加的な特徴または機能、ならびに基本構成502と任意の所望のデバイスおよびインターフェースとの間の通信を促進する追加的なインターフェースを持つことができる。たとえば、バス/インターフェースコントローラ530は、ストレージインターフェースバス534を介して、基本構成502と1つまたは複数のデータストレージデバイス532との間の通信を促進するために使用することができる。データストレージデバイス532は、1つもしくは複数の取外し式ストレージデバイス536、1つもしくは複数の非取外し式ストレージデバイス538、またはそれらの組み合わせでもよい。取外し式ストレージデバイスおよび非取外し式ストレージデバイスの例を2、3挙げると、フレキシブルディスクドライブおよびハードディスクドライブ(HDD)などの磁気ディスクデバイス、コンパクトディスク(CD)ドライブまたはデジタルバーサタイルディスク(DVD)ドライブなどの光ディスクドライブ、ソリッドステートドライブ(SSD)、およびテープドライブなどである。例示的なコンピュータ記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、または他のデータなど、情報を格納するための任意の方法または技術で実装された揮発性および不揮発性、取外し式および非取外し式の媒体を含む。
システムメモリ506、取外し式ストレージデバイス536、および非取外し式ストレージデバイス538は、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ、もしくは他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)、もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、または所望の情報を格納するために使用でき、コンピューティングデバイス500によってアクセスできる任意の他の媒体を含むがそれらに限定されない。任意のそのようなコンピュータ記憶媒体がコンピューティングデバイス500の一部であってもよい。
コンピューティングデバイス500は、また、バス/インターフェースコントローラ530を介して、さまざまなインターフェースデバイス(たとえば、1つまたは複数の出力装置542、1つまたは複数の周辺インターフェース544、および1つまたは複数の通信デバイス546)から基本構成502への通信を促進するためにインターフェースバス540を備えることができる。例示的な出力装置542の一部は、グラフィック処理ユニット548および音声処理ユニット550を備え、これらは1つまたは複数のA/Vポート552を介してディスプレイまたはスピーカなど、さまざまな外部デバイスと通信するように構成することができる。1つまたは複数の例示的な周辺インターフェース544は、シリアルインターフェースコントローラ554またはパラレルインターフェースコントローラ556を含むことができ、これらは1つまたは複数のI/Oポート558を介して入力装置(たとえばキーボード、マウス、ペン、音声入力機器、タッチ入力装置など)など外部デバイスまたは他の周辺機器(たとえばプリンタ、スキャナなど)と通信するように構成することができる。例示的な通信デバイス546は、ネットワークコントローラ560を備え、これは1つまたは複数の通信ポート564を介してネットワーク通信リンクを通じて1つまたは複数の他のコンピューティングデバイス562との通信を促進するように配置することができる。図1に示すように、1つまたは複数の他のコンピューティングデバイス562は、ゲームクライアント106、ローカルサーバノード108、および/またはゲームサービス予測キャッシング104を含むことができる。
ネットワーク通信リンクは、通信媒体の一例であってもよい。通信媒体は、典型的には、搬送波または他の移送機構など変調されたデータ信号内のコンピュータ読み取り可能な命令、データ構造、プログラムモジュール、または他のデータによって実現することができ、任意の情報配信媒体を含むことができる。「変調されたデータ信号」は、1つもしく複数のその特性が信号内の情報を符号化するように設定または変更された信号とすることができる。限定を目的とせずに例を挙げると、通信媒体は、有線ネットワークまたは直接的な有線接続などの有線媒体、およびアコースティック、無線周波数(RF)、マイクロ波、赤外線(IR)、および他の無線媒体など無線媒体を含むことができる。本明細書で使用するコンピュータ可読媒体という用語は、記憶媒体および通信媒体の両方を含むことができる。
コンピューティングデバイス500は、汎用もしくは専用のサーバの一部、メインフレーム、または上記の機能のいずれかを含む同様のコンピュータとして実装することができる。コンピューティングデバイス500は、また、ラップトップ型コンピュータおよび非ラップトップ型コンピュータの構成の両方を含むパーソナルコンピュータとして実装することができる。
例示的な実施形態は、また、方法を含むことができる。これらの方法は、本明細書に記述した構造を含む、任意の数の方法で実装することができる。そのような方法の1つは、本開示に記述したタイプのデバイスの機械操作によるものでもよい。他のオプションの方法は、他の動作が機械によって実行できる一方、動作の一部を実行する1人または複数の人間のオペレータに関連して実行される方法の個々の動作の1つまたは複数に対するものでもよい。これらの人間のオペレータは、互いに同じ場所に配置される必要はないが、それぞれはプログラムの一部を実行する機械のみを用いることができる。他の例では、人間の対話は、機械によって自動化できる事前選択された基準によってなど自動化することができる。
図6は、本明細書に記述した少なくとも一部の実施形態に従って配置された、図5のデバイスなど、コンピューティングデバイスによって実行できるクラウドベースのゲームにおいて予測的にキャッシュするための例示的な方法を示す流れ図である。例示的な方法は、ブロック622、624、626、628、630、および/または632の1つまたは複数に示すように、1つまたは複数の動作、機能、または行動を含むことができる。ブロック622から632に記述した動作は、また、コンピューティングデバイス610のコンピュータ可読媒体620など、コンピュータ可読媒体にコンピュータ実行可能命令として格納することができる。
クラウドベースのゲームの予測的なキャッシングの例示的なプロセスは、ブロック622「利用可能な経路セグメントを識別」から開始することができ、そこで、図2のゲームサーバ212などのゲームサーバは、現在のプレイヤによるゲームプレイ活動を監視し、ゲーム入口点からゲーム出口点に移動するために、現在のプレイヤが取ることができる利用可能なゲーム経路を識別し、現在のプレイヤが選択できる経路セグメントのサブセットへと利用可能なゲーム経路を分割することができる。
図6を再び参照すると、ブロック622の後にブロック624「経路セグメントのサブセットの確率を決定」が続き、そこで、ゲームサーバ212は、利用可能な経路セグメントのサブセットを決定し、次に選択される確率を割り当てることができる。ブロック624の後にブロック626「サブセットの1つまたは複数をレンダリング」が続くことができる。ブロック626では、ゲームサーバ212は、決定された確率に比例する場合がある表示品質で経路セグメントのサブセットに対してゲームコンテンツデータをレンダリングすることができる。ブロック626の後にブロック628「レンダリングされたセグメントをゲームクライアントに送信」が続くことができ、そこで、ゲームサーバ212は、ゲームクライアント230のローカルキャッシュにキャッシュするために、現在のプレイヤのゲームクライアント230にレンダリングされたセグメントを送信することができる。
ブロック628の後にブロック630「プレイヤの動作、履歴などに基づいて確率を更新」が続くことができ、そこで、ゲームサーバ212は、現在のプレイヤによるリアルタイムの動作、現在のプレイヤのゲームプレイ履歴、および過去のプレイヤのゲームプレイ履歴に基づいて、最初に割り当てられた確率を調整し更新することができる。ブロック630の後にブロック632「更新された確率に基づいて新しいコンテンツを送信することによってゲームクライアントのキャッシュを更新」が続くことができ、そこで、ゲームサーバは、新しく更新された確率を用いて経路セグメントに対してゲームコンテンツデータをレンダリングすることができ、ゲームクライアント230のローカルキャッシュにキャッシュするために、ゲームクライアントに新しくレンダリングされたゲームコンテンツデータを送信することができる。
上に記述したプロセスにおいてブロックで実行される機能は、説明を目的とするものである。クラウドベースのゲームにおける予測的なキャッシングは、より少ないまたは追加的な機能を用いて同様のプロセスによって実装することができる。一部の例では、機能は、異なる順序で実行することができる。他の一部の例では、さまざまな機能を排除することができる。さらに別の例では、さまざまな機能は、追加的な機能へと分割したり、またはより少ない機能へと組み合わせたりすることができる。
図7は、本明細書に記述した少なくとも一部の実施形態に従って配置された、例示的なコンピュータプログラム製品700のブロック図を示している。一部の例では、図7に示すように、コンピュータプログラム製品700は、たとえばプロセッサによって実行されたときに、本明細書に記述した機能を提供できる1つまたは複数の機械可読命令704も含むことができる信号搬送媒体702を含むことができる。したがって、たとえば、図5のプロセッサ504を参照すると、予測的なキャッシングモジュール525は、本明細書に記述したようにクラウドベースのゲームにおいて予測的なキャッシングに関連した動作を実行するために、媒体702によってプロセッサ504に伝達された命令704に応じて、図7に示すタスクの1つまたは複数に取りかかることができる。それらの命令の一部は、たとえば、クラウドベースのゲームサーバにゲームプレイ使用履歴を格納するための命令、利用可能な経路セグメントを識別するための命令、経路セグメントのサブセットの確率を決定するための命令、経路セグメントのサブセットの1つまたは複数をレンダリングするための命令、レンダリングされた経路セグメントをゲームクライアントに送信するための命令、プレイヤの動作、履歴などに基づいて確率を更新するための命令、および新しいゲームコンテンツを用いてゲームクライアントのキャッシュを更新するための命令を含むことができる。
一部の実装では、図7に示した信号搬送媒体702は、ハードディスクドライブ、コンパクトディスク(CD)、デジタルバーサタイルディスク(DVD)、デジタルテープ、メモリなど、コンピュータ可読媒体706を包含することができるがそれらに限定されない。一部の実装では、信号搬送媒体702は、メモリ、読み取り/書き込み(R/W)CD、R/W DVDなど、記録可能な媒体708を包含することができるがそれらに限定されない。一部の実装では、信号搬送媒体702は、デジタルおよび/またはアナログの通信媒体(たとえば、光ファイバケーブル、導波路、有線の通信リンク、ワイヤレス通信リンクなど)など、通信媒体710を包含することができるがそれらに限定されない。したがって、たとえば、プログラム製品700は、RF信号搬送媒体によってプロセッサ704の1つまたは複数のモジュールに伝達することができ、そこで、信号搬送媒体702は、ワイヤレス通信媒体710(たとえば、IEEE802.11標準に準拠するワイヤレス通信媒体)によって伝達される。
一部の例によれば、クラウドベースのゲームにおいて予測的にキャッシュするための方法は、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、プレイヤによる現在の動作、プレイヤの場所、プレイヤによる第1の動作、プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および/または複数のプレイヤによる第1の動作の組の少なくとも1つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定することと、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの1つまたは複数をレンダリングすることと、ゲームクライアントにキャッシュするために、レンダリングされた1つまたは複数の経路セグメントをゲームクライアントに送信することとを含むことができる。
一部の例によれば、方法は、確率が最も高い経路セグメントを送信することを含むことができる。
他の例によれば、方法は、それぞれの確率に比例して変動する表示品質を持つ1つまたは複数の経路セグメントをレンダリングことと、変動する表示品質を持つ1つまたは複数の経路セグメントを送信することとを含む。表示品質は、解像度、毎秒のフレーム数、ラスタ化、および/またはシェーディングの組の少なくとも1つを含むことができる。
一部の例によれば、方法は、利用可能な帯域幅、ゲームクライアントのキャッシュのサイズ、および/または活動中のプレイヤの数の組の少なくとも1つに基づいて送信するために多数のレンダリングされた経路セグメントを選択することを含むことができる。
さらに他の例によれば、方法は、プレイヤによる他の動作、プレイヤの他の場所、プレイヤのゲーム履歴、および/またはプレイヤがゲームを進めたときの複数のプレイヤのゲーム履歴の組の少なくとも1つに基づいてプレイヤが経路セグメントの他のサブセットを取る確率を更新することと、それぞれの確率に基づいて経路セグメントの他方のサブセットにおいて経路セグメントの1つまたは複数をレンダリングすることと、ゲームクライアントにキャッシュするために、レンダリングされた1つまたは複数の経路セグメントをゲームクライアントに送信することとを含むことができる。
さらに他の例によれば、方法は、経路セグメントを識別しかつ/または確率を決定するために、複数のプレイヤのゲーム履歴のデータマイニングまたはクラウドソーシングを用いることを含むことができる。
クラウドベースのゲームにおいて予測的にキャッシュするための方法の一部の例によれば、プレイヤが経路セグメントのサブセットを取る確率の決定は、ゲーム開発者によって指定され、最初のゲームのセットアップ時にゲームコンテンツデータに格納された、1組の事前定義された確率に基づいてもよい。
クラウドベースのゲームにおいて予測的にキャッシュするための方法の他の例によれば、プレイヤが経路セグメントのサブセットを取る確率の決定は、ゲームコンテンツデータに格納され、ゲームコンテンツ更新によって更新される1組の事前定義された確率にさらに基づく。
他の例によれば、方法は、ゲームクライアントのキャッシュから未使用のゲームコンテンツデータを削除することと、未使用のゲームコンテンツデータを1つまたは複数の経路セグメントの新しい組のゲームコンテンツデータに置き換えることとを含むことができる。
さらに他の例によれば、方法は、ゲームの初期化時に複数の経路セグメントに、実質的に等しい確率を割り当てることを含むことができる。
他の例によれば、ゲームコンテンツデータを予測的にキャッシュするためのクラウドベースのゲームサーバは、メモリ、メモリに結合されたプロセッサを含むことができる。プロセッサは、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別し、プレイヤによる現在の動作、プレイヤの場所、プレイヤによる第1の動作、プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および/または複数のプレイヤによる第1の動作の組の少なくとも1つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定し、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの1つまたは複数をレンダリングし、ゲームクライアントにキャッシュするために、レンダリングされた1つまたは複数の経路セグメントをゲームクライアントに送信するように構成することができる。
一部の例によれば、プロセッサは、確率が最も高い経路セグメントを送信するように構成することができる。
一部の例によれば、プロセッサは、それぞれの確率に比例して変動する表示品質を持つ1つまたは複数の経路セグメントをレンダリングし、変動する表示品質を持つ1つまたは複数の経路セグメントを送信するように構成することができる。
一部の例によれば、表示品質は、解像度、毎秒のフレーム数、ラスタ化、および/またはシェーディングの組の少なくとも1つを含むことができる。
他の例によれば、プロセッサは、利用可能な帯域幅、ゲームクライアントのキャッシュのサイズ、および/または活動中のプレイヤの数の組の少なくとも1つに基づいて送信するために多数のレンダリングされた経路セグメントを選択するように構成することができる。
他の例によれば、プロセッサは、プレイヤによる他の動作、プレイヤの他の場所、プレイヤのゲーム履歴、および/またはプレイヤがゲームを進めたときの複数のプレイヤのゲーム履歴の組の少なくとも1つに基づいてプレイヤが経路セグメントの他のサブセットを取る確率を更新し、それぞれの確率に基づいて経路セグメントの他方のサブセットにおいて経路セグメントの1つまたは複数をレンダリングし、ゲームクライアントにキャッシュするために、レンダリングされた1つまたは複数の経路セグメントをゲームクライアントに送信するように構成することができる。
他の例によれば、プロセッサは、経路セグメントを識別しかつ/または確率を決定するために、複数のプレイヤのゲーム履歴のデータマイニングまたはクラウドソーシングを用いるように構成することができる。
他の例によれば、プロセッサは、ゲーム開発者によって指定され、最初のゲームのセットアップ時にゲームコンテンツデータに格納された、1組の事前定義された確率にさらに基づいて、プレイヤが経路セグメントのサブセットを取る確率を決定するように構成することができる。
一部の例によれば、プロセッサは、ゲームコンテンツデータに格納され、ゲームコンテンツ更新によって更新される1組の事前定義された確率にさらに基づいて、プレイヤが経路セグメントのサブセットを取る確率を決定するように構成することができる。
他の例によれば、プロセッサは、ゲームクライアントのキャッシュから未使用のゲームコンテンツデータを削除し、未使用のゲームコンテンツデータを1つまたは複数の経路セグメントの新しい組のゲームコンテンツデータに置き換えるように構成することができる。
さらに他の例によれば、プロセッサは、ゲームの初期化時に複数の経路セグメントに、実質的に等しい確率を割り当てるように構成することができる。
他の例によれば、コンピュータ可読記憶媒体は、クラウドベースのゲームにおいて予測的にキャッシュするために、命令を格納することができる。命令は、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、プレイヤによる現在の動作、プレイヤの場所、プレイヤによる第1の動作、プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および/または複数のプレイヤによる第1の動作の組の少なくとも1つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定することと、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの1つまたは複数をレンダリングすることと、ゲームクライアントにキャッシュするために、レンダリングされた1つまたは複数の経路セグメントをゲームクライアントに送信することとを含むことができる。
一部の例によれば、命令は、確率が最も高い経路セグメントを送信することを含むことができる。
他の例によれば、命令は、それぞれの確率に比例して変動する表示品質を持つ1つまたは複数の経路セグメントをレンダリングすることと、変動する表示品質を持つ1つまたは複数の経路セグメントを送信することとを含むことができる。表示品質は、解像度、毎秒のフレーム数、ラスタ化、および/またはシェーディングの組の少なくとも1つを含むことができる。
一部の例によれば、命令は、利用可能な帯域幅、ゲームクライアントのキャッシュのサイズ、および/または活動中のプレイヤの数の組の少なくとも1つに基づいて送信するために多数のレンダリングされた経路セグメントを選択することを含むことができる。
他の例によれば、命令は、プレイヤによる他の動作、プレイヤの他の場所、プレイヤのゲーム履歴、および/またはプレイヤがゲームを進めたときの複数のプレイヤのゲーム履歴の組の少なくとも1つに基づいてプレイヤが経路セグメントの他のサブセットを取る確率を更新することと、それぞれの確率に基づいて経路セグメントの他方のサブセットにおいて経路セグメントの1つまたは複数をレンダリングすることと、ゲームクライアントにキャッシュするために、レンダリングされた1つまたは複数の経路セグメントをゲームクライアントに送信することとを含むことができる。
他の例によれば、命令は、経路セグメントを識別しかつ/または確率を決定するために、複数のプレイヤのゲーム履歴のデータマイニングまたはクラウドソーシングを用いることを含むことができる。
一部の例によれば、プレイヤが経路セグメントのサブセットを取る確率の決定は、ゲーム開発者によって指定され、最初のゲームのセットアップ時にゲームコンテンツデータに格納された、1組の事前定義された確率に基づいてもよい。
他の例によれば、プレイヤが経路セグメントのサブセットを取る確率の決定は、ゲームコンテンツデータに格納され、ゲームコンテンツ更新によって更新される1組の事前定義された確率にさらに基づく。
他の例によれば、命令は、ゲームクライアントのキャッシュから未使用のゲームコンテンツデータを削除することと、未使用のゲームコンテンツデータを1つまたは複数の経路セグメントの新しい組のゲームコンテンツデータに置き換えることとを含むことができる。
さらに他の例によれば、命令は、ゲームの初期化時に複数の経路セグメントに、実質的に等しい確率を割り当てることを含むことができる。
さらに他の例によれば、予測されたゲームコンテンツデータをキャッシュするためのゲームクライアントは、メモリ、およびメモリに結合されたプロセッサを含むことができる。プロセッサは、ローカルにキャッシュするためにゲームサーバから1つまたは複数のレンダリングされた経路セグメントを受信するように構成することができる。経路セグメントは、ゲーム中にプレイヤが取ることができる複数の経路セグメントを識別することと、プレイヤによる現在の動作、プレイヤの場所、プレイヤによる第1の動作、プレイヤのゲーム履歴、複数のプレイヤのゲーム履歴、および/または複数のプレイヤによる第1の動作の組の少なくとも1つに基づいてプレイヤが経路セグメントのサブセットを取る確率を決定することと、それぞれの確率に基づいて経路セグメントのサブセットにおいて経路セグメントの1つまたは複数をレンダリングすることとによってレンダリングすることができる。
一部の例によれば、プロセッサは、確率が最も高い経路セグメントを受信するように構成することができる。
一部の例によれば、プロセッサは、変動する表示品質を持つ1つまたは複数の経路セグメントを受信するように構成され、1つまたは複数の経路セグメントは、それぞれの確率に比例して変動する表示品質を用いてゲームサーバでレンダリングされる。
他の例によれば、表示品質は、解像度、毎秒のフレーム数、ラスタ化、および/またはシェーディングの組の少なくとも1つを含むことができる。
他の例によれば、送信される多数のレンダリングされた経路セグメントは、利用可能な帯域幅、ゲームクライアントのキャッシュのサイズ、および/または活動中のプレイヤの数の組の少なくとも1つに基づいてゲームサーバで選択することができる。
他の例によれば、プレイヤが経路セグメントの他のサブセットを取る確率は、プレイヤによる他の動作、プレイヤの他の場所、プレイヤのゲーム履歴、および/またはプレイヤがゲームを進めたときの複数のプレイヤのゲーム履歴の組の少なくとも1つに基づいてゲームサーバで更新することができる。
他の例によれば、プロセッサは、ゲームクライアントのキャッシュから未使用のゲームコンテンツデータを削除し、未使用のゲームコンテンツデータを1つまたは複数の経路セグメントの新しい組のゲームコンテンツデータに置き換えるように構成することができる。
さらに他の例によれば、ゲームクライアントは、デスクトップコンピュータ、ラップトップ型コンピュータ、車両搭載型コンピュータ、ハンドヘルドコンピュータ、多目的のコンピューティングデバイス、およびゲームデバイスの1つでもよい。
システムの側面でのハードウェアの実装形態とソフトウェアの実装形態との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般に(いつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点で)コスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび/またはシステムおよび/または他の技術をもたらすことができるさまざまな達成手段があり(たとえば、ハードウェア、ソフトウェア、および/またはファームウェア)、好ましい達成手段は、プロセスおよび/またはシステムおよび/または他の技術が導入される状況によって異なる。たとえば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび/またはファームウェアの達成手段を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実装形態を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および/またはファームウェアのなんらかの組み合わせを選択することができる。
前述の詳細な説明では、ブロック図、フローチャート、および/または例の使用によって、装置および/またはプロセスのさまざまな実施形態を説明してきた。そのようなブロック図、フローチャート、および/または例が1つまたは複数の機能および/または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および/または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組み合わせにより、個別におよび/または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、1つまたは複数のコンピュータ上で動作する1つまたは複数のコンピュータプログラムとして(たとえば、1つまたは複数のコンピュータシステム上で動作する1つまたは複数のプログラムとして)、1つまたは複数のプロセッサ上で動作する1つまたは複数のプログラムとして(たとえば、1つまたは複数のマイクロプロセッサ上で動作する1つまたは複数のプログラムとして)、ファームウェアとして、あるいは実質上それらの任意の組み合わせとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに/またはソフトウェアおよび/もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。
本開示は、本出願に記述した特定の実施形態に限定するものではなく、これらは、さまざまな態様の例となることを意図するものである。当業者には明白であるように、その精神および範囲から逸脱することなく、多数の変更および変形形態を実施することができる。本明細書に列挙したものに加えて、本開示の範囲内の機能的に等しい方法および装置は、前述の記述から当業者には明白になるであろう。そのような変更および変形形態は、添付した特許請求の範囲内に含まれることを意図するものである。本開示は、添付した特許請求の範囲の条件、およびそのような特許請求の範囲が権利を与える等価物の全範囲によってのみ限定されるものである。本開示は、当然変動する可能性がある特定の方法、試薬、合成物の構成、または、生物系に限定されるものではないことが理解されよう。また、本明細書で使用される用語は、特定の実施形態のみを記述するためのものであり、限定を意図するものではないことが理解されよう。
さらに、本明細書に記載された主題のメカニズムをさまざまな形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フロッピーディスク、ハードディスクドライブ、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、デジタルテープ、コンピュータメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および/またはアナログ通信媒体(たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど)の通信タイプの媒体が含まれるが、それらには限定されない。
本明細書で説明したやり方で装置および/またはプロセスを記載し、その後そのように記載された装置および/またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および/またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインタフェース、およびアプリケーションプログラムのうちの1つもしくは複数、タッチパッドもしくはスクリーンなどの1つもしくは複数の相互作用装置、ならびに/またはフィードバックループおよびコントロールモータを含むコントロールシステム(たとえば、ガントリーシステムの位置検知用および/もしくは速度検知用フィードバック、コンポーネントの移動用および/もしくは数量の調整用コントロールモータ)を含むことを、当業者は理解するであろう。
通常のデータ処理システムは、データコンピューティング/通信システムおよび/またはネットワークコンピューティング/通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。本明細書に記載された主題は、さまざまなコンポーネントをしばしば例示しており、これらのコンポーネントは、他のさまざまなコンポーネントに包含されるか、または他のさまざまなコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例示にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の2つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的に接続可能な、および/もしくは物理的に相互作用するコンポーネント、ならびに/またはワイヤレスに相互作用可能な、および/もしくはワイヤレスに相互作用するコンポーネント、ならびに/または論理的に相互作用する、および/もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。さまざまな単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
通常、本明細書において、特に添付の特許請求の範囲(たとえば、添付の特許請求の範囲の本体部)において使用される用語は、全体を通じて「オープンな(open)」用語として意図されていることが、当業者には理解されよう(たとえば、用語「含む(including)」は、「含むがそれに限定されない(including but not limited to)」と解釈されるべきであり、用語「有する(having)」は、「少なくとも有する(having at least)」と解釈されるべきであり、用語「含む(includes)」は、「含むがそれに限定されない(includes but is not limited to)」と解釈されるべきである、など)。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含む場合であっても、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではない(たとえば、「a」および/または「an」は、「少なくとも1つの」または「1つまたは複数の」を意味すると解釈されるべきである)。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう(たとえば、他の修飾語なしでの「2つの記載(two recitations)」の単なる記載は、少なくとも2つの記載、または2つ以上の記載を意味する)。
さらに、「A、BおよびC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、およびCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方(one of the terms)、当該用語のいずれか(either of the terms)、または両方の用語(both terms)を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「AまたはB」は、「A」または「B」あるいは「AおよびB」の可能性を含むことが理解されよう。
さらに、本開示の特徴または態様がマーカッシュ群に関して記述されている場合、本開示は、また、それによってマーカッシュ群のメンバーの個々のメンバーまたはサブグループに関して記述されていることが、当業者には認識されるであろう。
当業者は理解されるように、あらゆる目的について、書面による記述を提供することに関してなど、本明細書に開示されたすべての範囲は、また、可能なあらゆる部分範囲およびその部分範囲の組み合わせを包含する。記載した範囲は、少なくとも等分、3分の1、4分の1、5分の1、10分1などに分解される同一の範囲を十分に記述し可能にするものと容易に認識することができる。限定を目的としない例を示すと、本明細書に記述した各範囲は、下の3分の1、中央の3分の1、および上の3分の1などに容易に分解することができる。また、当業者は理解されるように、「まで(up to)」、「少なくとも(at least)」、「超える(greater than)」「未満(less than)」などのすべての言葉は、述べられた数を含み、続いて、上に記述したような部分範囲に分解できる範囲を示している。最後に、当業者は理解されるように、範囲は各個々のメンバーを含む。したがって、たとえば1〜3個のセルを持つグループは、1個、2個、または3個のセルを持つグループを表している。同様に、1〜5個のセルを持つグループは、1個、2個、3個、4個、または5個のセルを持つグループを表すという具合である。
さまざまな態様および実施形態について本明細書に開示したが、他の態様および実施形態は当業者には明白になるであろう。本明細書に開示したさまざまな態様および実施形態は、例を示すことを目的とするものであり、限定することを意図するものではなく、真の範囲および精神は、以下に示す特許請求の範囲によって示されている。

Claims (17)

  1. クラウドベースのゲームにおいて、サーバからゲームクライアントに予測的にキャッシュするためにサーバが実行する方法であって、
    前記方法は、
    ゲーム中にプレイヤが取ることができる経路セグメントを識別することであって、前記プレイヤが、前記経路セグメントを含むゲーム上の範囲を、前記ゲームクライアントの操作に基づいて移動でき、この移動は、前記経路セグメントの組み合わせを含むサブセットから構成される経路に沿って行われることと、
    前記プレイヤのゲーム履歴の利用可能性の決定に応答して、前記プレイヤのゲーム履歴に基づいて前記プレイヤが前記経路セグメント1つのサブセットを取得する確率を決定することと、
    前記確率に基づいて、前記サブセットにおいて前記経路セグメントの1つまたは複数にゲームコンテンツデータをレンダリングすることであって、前記レンダリングされた経路セグメント1つまたは複数の夫々が確率に比例する表示品質にあることと、
    前記プレイヤのゲーム履歴が利用できないことの決定に応答して、前記プレイヤが前記サブセットを取得する確率として、前記経路セグメントのサブセットの1つを選択する等しい確率を適用することであって、前記サブセットが前記等しい確率に基づいて等しい表示品質でレンダリングされることと、
    前記ゲームクライアントのゲームクライアントキャッシュでキャッシュされるようにするために、前記表示品質で前記レンダリングされた1つまたは複数の経路セグメントを前記ゲームクライアントに送信することと、
    前記ゲームクライアントキャッシュから未使用のゲームコンテンツデータを削除することと、そして、
    前記未使用のゲームコンテンツデータを前記レンダリングされた1つまたは複数の経路セグメントで置き換えることと
    を含む方法。
  2. 確率が最も高い経路セグメントを送信することをさらに含む請求項1に記載の方法。
  3. 利用可能な帯域幅、ゲームクライアントのキャッシュのサイズ、および、活動中のプレイヤの数の組の少なくとも1つに基づいて送信するために前記レンダリングされた1つまたは複数の経路セグメントを選択することをさらに含む請求項1に記載の方法。
  4. 前記プレイヤの前記ゲーム履歴に基づいて前記プレイヤが前記経路セグメントの他のサブセットを取る前記確率を更新することと、
    前記確率に基づいて前記他のサブセットにおいて前記経路セグメントの1つまたは複数をレンダリングすることと、
    前記ゲームクライアントキャッシュでキャッシュされるようにするために、前記レンダリングされた1つまたは複数の経路セグメントを前記ゲームクライアントに送信することと
    をさらに含む請求項1に記載の方法。
  5. ゲーム開発者によって指定され、最初のゲームのセットアップ時に前記ゲームコンテンツデータに格納された、1組の事前定義された確率に基づいて、前記プレイヤが前記サブセットを取る確率を決定すること
    をさらに含む請求項1に記載の方法。
  6. ゲームコンテンツデータをゲームクライアントに予測的にキャッシュするためのクラウドベースのゲームサーバであって、
    メモリと、
    前記メモリに結合されたプロセッサであって、
    ゲーム中にプレイヤが取ることができる経路セグメントを識別することであって、前記プレイヤが、前記経路セグメントを含むゲーム上の範囲を、前記ゲームクライアントの操作に基づいて移動でき、この移動は、前記経路セグメントの組み合わせを含むサブセットから構成される経路に沿って行わることと、
    前記プレイヤのゲーム履歴の利用可能性の決定に応答して、前記プレイヤのゲーム履歴に基づいて前記プレイヤが前記経路セグメント1つのサブセットを取得する確率を決定することと、
    前記確率に基づいて、前記サブセットにおいて前記経路セグメントの1つまたは複数にゲームコンテンツデータをレンダリングし、前記レンダリングされた経路セグメントの1つまたは複数の夫々が前記確率に比例する表示品質にあるようにすることと、
    前記プレイヤのゲーム履歴が利用できないことの決定に応答して、前記プレイヤが前記サブセットを取得する確率として、前記経路セグメントのサブセットの1つを選択する等しい確率を適用し、前記経路セグメントのサブセットが前記等しい確率に基づいて等しい表示品質でレンダリングされることと、
    前記ゲームクライアントのゲームクライアントキャッシュでキャッシュされるようにするために、前記表示品質で前記レンダリングされた1つまたは複数の経路セグメントを前記ゲームクライアントに送信することと、
    前記ゲームクライアントキャッシュから未使用のゲームコンテンツデータを削除することと、そして、
    前記未使用のゲームコンテンツデータを前記レンダリングされた1つまたは複数の経路セグメントで置き換えるようにすること、
    を実行する前記プロセッサと
    を備えるサーバ。
  7. 前記プロセッサが、前記ゲームの初期化時に前記経路セグメントに、実質的に等しい確率を割り当てるようにさらに構成されている請求項6に記載のサーバ。
  8. 前記プロセッサが、利用可能な帯域幅、前記ゲームクライアントのキャッシュのサイズ、および、活動中のプレイヤの数の少なくとも1つに基づいて送信するために前記レンダリングされた1つまたは複数の経路セグメントを選択するようにさらに構成されている請求項6に記載のサーバ。
  9. 前記プロセッサが、前記経路セグメントを識別し、かつ前記確率を決定するために、前記プレイヤの前記ゲーム履歴のデータマイニングおよびクラウドソーシングの1つを用いるようにさらに構成されている請求項6に記載のサーバ。
  10. 前記プロセッサが、ゲーム開発者によって指定され、最初のゲームのセットアップ時にゲームコンテンツデータに格納された、1組の事前定義された確率にさらに基づいて、前記プレイヤが前記サブセットを取る前記確率を決定するようにさらに構成されている請求項6に記載のサーバ。
  11. 前記プロセッサが、前記ゲームコンテンツデータに格納され、ゲームコンテンツ更新によって更新される1組の事前定義された確率にさらに基づいて、前記プレイヤが前記サブセットを取る前記確率を決定するようにさらに構成されている請求項6に記載のサーバ。
  12. クラウドベースのゲームにおいて、サーバからゲームクライアントに予測的にキャッシュするために、命令が格納されたコンピュータ可読記憶媒体であって、
    前記命令が、コンピュータに、
    ゲーム中にプレイヤが取ることができる経路セグメントを識別することであって、前記プレイヤが、前記経路セグメントを含むゲーム上の範囲を、前記ゲームクライアントの操作に基づいて移動でき、この移動は、前記経路セグメントの組み合わせを含むサブセットから構成される経路に沿って行われることと、
    前記プレイヤのゲーム履歴の利用可能性の決定に応答して、前記プレイヤのゲーム履歴に基づいて前記プレイヤが前記経路セグメント1つのサブセットを取得する確率を決定することと、
    前記確率に基づいて、前記サブセットにおいて前記経路セグメントの1つまたは複数をレンダリングすることであって、前記レンダリングされた経路セグメントの1つまたは複数の夫々が前記確率に比例する表示品質にあることと、
    前記プレイヤの前記ゲーム履歴が利用できないことの決定に応答して、前記プレイヤが前記サブセットを取得する確率として、前記経路セグメントのサブセットの1つを選択する等しい確率を適用することであって、前記サブセットが前記等しい確率に基づいて等しい表示品質でレンダリングされることと、
    前記ゲームクライアントのゲームクライアントキャッシュでキャッシュされるようにするために、前記表示品質で前記レンダリングされた1つまたは複数の経路セグメントを前記ゲームクライアントに送信することと、
    前記ゲームクライアントキャッシュから未使用のゲームコンテンツデータを取り除くことと、そして、
    前記未使用のゲームコンテンツデータを前記レンダリングされた1つまたは複数の経路セグメントで置き換えることと
    を実行させるための命令を含む、
    コンピュータ可読記憶媒体。
  13. 前記表示品質が、解像度、毎秒のフレーム数、ラスタ化、およびシェーディングの少なくとも1つを含む請求項12に記載のコンピュータ可読記憶媒体。
  14. 前記命令が、前記コンピュータに、
    前記プレイヤの前記ゲーム履歴に基づいて前記プレイヤが前記経路セグメントの他のサブセットを取る確率を更新することと、
    前記確率に比例した表示品質を持つ前記経路セグメントをレンダリングすることと、
    前記表示品質を持つ前記経路セグメントを送信することと、
    を実行させるための命令をさらに含む請求項12に記載のコンピュータ可読記憶媒体。
  15. 前記プレイヤが前記サブセットを取る前記確率を決定することが、ゲーム開発者によって指定され、最初のゲームのセットアップ時にゲームコンテンツデータに格納された、またはゲームコンテンツデータに格納され、ゲームコンテンツ更新によって更新される1組の事前定義された確率にさらに基づく請求項12に記載のコンピュータ可読記憶媒体。
  16. 前記命令が、前記コンピュータに、前記ゲームの初期化時に前記経路セグメントに、前記等しい確率を割り当てることを実行させるための命令をさらに含む請求項12に記載のコンピュータ可読記憶媒体。
  17. クラウドベースのゲームにおいて、サーバからゲームクライアントに予測的にキャッシュするために、
    コンピュータに、
    ゲーム中にプレイヤが取ることができる経路セグメントを識別することであって、前記プレイヤが、前記経路セグメントを含むゲーム上の範囲を、前記ゲームクライアントの操作に基づいて移動でき、この移動は、前記経路セグメントの組み合わせを含むサブセットから構成される経路に沿って行われることと、
    前記プレイヤのゲーム履歴の利用可能性の決定に応答して、前記プレイヤのゲーム履歴に基づいて前記プレイヤが前記経路セグメント1つのサブセットを取得する確率を決定することと、
    前記確率に基づいて、前記サブセットにおいて前記経路セグメントの1つまたは複数をレンダリングすることであって、前記レンダリングされた経路セグメントの1つまたは複数の夫々が前記確率に比例する表示品質にあることと、
    前記プレイヤの前記ゲーム履歴が利用できないことの決定に応答して、前記プレイヤが前記サブセットを取得する確率として、前記経路セグメントのサブセットの1つを選択する等しい確率を適用することであって、前記サブセットが前記等しい確率に基づいて等しい表示品質でレンダリングされることと、
    前記ゲームクライアントのゲームクライアントキャッシュでキャッシュされるようにするために、前記表示品質で前記レンダリングされた1つまたは複数の経路セグメントを前記ゲームクライアントに送信することと、
    前記ゲームクライアントキャッシュから未使用のゲームコンテンツデータを取り除くことと、そして、
    前記未使用のゲームコンテンツデータを前記レンダリングされた1つまたは複数の経路セグメントで置き換えることと
    実行させるためのプログラム。
JP2014545389A 2011-12-09 2012-03-09 ゲームコンテンツデータの予測的なキャッシング Active JP6129865B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN4298/CHE/2011 2011-12-09
IN4298CH2011 2011-12-09
PCT/IB2012/051103 WO2013084078A1 (en) 2011-12-09 2012-03-09 Predictive caching of game content data

Publications (2)

Publication Number Publication Date
JP2015509010A JP2015509010A (ja) 2015-03-26
JP6129865B2 true JP6129865B2 (ja) 2017-05-17

Family

ID=48573640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014545389A Active JP6129865B2 (ja) 2011-12-09 2012-03-09 ゲームコンテンツデータの予測的なキャッシング

Country Status (4)

Country Link
US (2) US9313083B2 (ja)
JP (1) JP6129865B2 (ja)
KR (1) KR101563277B1 (ja)
WO (1) WO2013084078A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112018002096T5 (de) 2017-04-21 2020-01-09 Zenimax Media Inc. Spielereingabebewegungskompensation durch antizipation von bewegungsvektoren

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10183219B2 (en) * 2013-08-14 2019-01-22 Activision Publishing, Inc. System and method for cross-platform multiplayer videogames
JP2015082290A (ja) * 2013-10-24 2015-04-27 富士通株式会社 端末装置、情報処理装置、情報処理システム、表示制御方法および表示制御プログラム
US11809451B2 (en) 2014-02-19 2023-11-07 Snowflake Inc. Caching systems and methods
US10545917B2 (en) 2014-02-19 2020-01-28 Snowflake Inc. Multi-range and runtime pruning
US10154072B2 (en) * 2014-09-17 2018-12-11 Microsoft Technology Licensing, Llc Intelligent streaming of media content
US10207185B2 (en) * 2015-03-07 2019-02-19 Sony Interactive Entertainment America Llc Using connection quality history to optimize user experience
US10530824B2 (en) 2015-09-25 2020-01-07 Microsoft Technology Licensing, Llc Real-time end-to-end latency monitoring
US10962780B2 (en) * 2015-10-26 2021-03-30 Microsoft Technology Licensing, Llc Remote rendering for virtual images
US9569812B1 (en) * 2016-01-07 2017-02-14 Microsoft Technology Licensing, Llc View rendering from multiple server-side renderings
US10437780B2 (en) 2016-07-14 2019-10-08 Snowflake Inc. Data pruning based on metadata
US10264050B2 (en) * 2016-10-03 2019-04-16 Paypal, Inc. Predictive analysis of computing patterns for preloaded data to reduce processing downtime
CN109151601B (zh) * 2017-06-28 2020-08-04 武汉斗鱼网络科技有限公司 快速启动并获取游戏画面的方法、存储介质、设备及系统
US11816622B2 (en) 2017-08-14 2023-11-14 ScoutZinc, LLC System and method for rating of personnel using crowdsourcing in combination with weighted evaluator ratings
US11537264B2 (en) * 2018-02-09 2022-12-27 Sony Interactive Entertainment LLC Methods and systems for providing shortcuts for fast load when moving between scenes in virtual reality
US11050843B2 (en) * 2018-03-30 2021-06-29 Facebook, Inc. Systems and methods for prefetching content
KR20200006341A (ko) * 2018-07-10 2020-01-20 주식회사 넥슨코리아 확률형 아이템 제공 시스템의 제어 방법, 장치 및 컴퓨터 프로그램
CN110875836B (zh) * 2018-08-31 2023-04-07 北京京东尚科信息技术有限公司 基于网络预测的应用缓存方法、系统、设备及存储介质
KR102257891B1 (ko) * 2019-05-24 2021-05-28 서울시립대학교 산학협력단 비동기 로딩 장치 및 방법
US11033824B2 (en) * 2019-06-14 2021-06-15 Roblox Corporation Predictive data preloading
CN112546620A (zh) * 2019-09-26 2021-03-26 伊姆西Ip控股有限责任公司 游戏控制的方法、设备和计算机程序产品
KR20210087273A (ko) * 2020-01-02 2021-07-12 삼성전자주식회사 전자장치 및 그 제어방법
CN112023395B (zh) * 2020-08-24 2024-03-01 深圳威尔视觉传媒有限公司 云游戏加载方法、电子设备及计算机可读存储介质
EP4240503A1 (en) * 2020-11-06 2023-09-13 InterDigital CE Patent Holdings, SAS Display control in cloud gaming applications
US20220212100A1 (en) * 2021-01-04 2022-07-07 Microsoft Technology Licensing, Llc Systems and methods for streaming interactive applications
CN113965625A (zh) * 2021-09-13 2022-01-21 广州四三九九信息科技有限公司 一种游戏实体位置平滑同步方法、系统及设备

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4894774A (en) 1986-10-15 1990-01-16 Mccarthy Patrick J Lookahead pipeline for processing object records in a video system
US5970479A (en) 1992-05-29 1999-10-19 Swychco Infrastructure Services Pty. Ltd. Methods and apparatus relating to the formulation and trading of risk management contracts
JPH10289219A (ja) * 1997-02-14 1998-10-27 N T T Data:Kk クライアント・サーバシステム、キャッシュ管理方法及び記録媒体
WO2000016210A1 (en) 1998-09-17 2000-03-23 Nexchange Corporation Affiliate commerce system and method
JP4270623B2 (ja) 1999-01-13 2009-06-03 三菱電機株式会社 時系列データ蓄積配信システム
JP2003053030A (ja) * 2001-08-13 2003-02-25 Terasu Design Kenkyusho:Kk ゲーム用情報処理システム
US6868439B2 (en) * 2002-04-04 2005-03-15 Hewlett-Packard Development Company, L.P. System and method for supervising use of shared storage by multiple caching servers physically connected through a switching router to said shared storage via a robust high speed connection
US7515156B2 (en) 2003-01-08 2009-04-07 Hrl Laboratories, Llc Method and apparatus for parallel speculative rendering of synthetic images
WO2004063841A2 (en) 2003-01-16 2004-07-29 Sabian Group Inc. System method and platform for online gaming
US7240162B2 (en) 2004-10-22 2007-07-03 Stream Theory, Inc. System and method for predictive streaming
EP1669947A1 (en) 2004-12-10 2006-06-14 Aruze Corporation Game machine and game system
JP2006218059A (ja) * 2005-02-10 2006-08-24 Masakazu Ito ゲーム装置及びゲームプログラム
US7789758B2 (en) 2006-03-10 2010-09-07 Electronic Arts, Inc. Video game with simulated evolution
AU2007203533B2 (en) 2006-07-31 2009-11-19 Videobet Interactive Sweden AB Information updating management in a gaming system
US7934058B2 (en) * 2006-12-14 2011-04-26 Microsoft Corporation Predictive caching of assets to improve level load time on a game console
US8632407B2 (en) * 2007-08-01 2014-01-21 Cfph, Llc General gaming engine
US9211473B2 (en) * 2008-12-15 2015-12-15 Sony Computer Entertainment America Llc Program mode transition
US8613673B2 (en) * 2008-12-15 2013-12-24 Sony Computer Entertainment America Llc Intelligent game loading
JP5265232B2 (ja) * 2008-04-03 2013-08-14 株式会社バンダイナムコゲームス プログラム、情報記憶媒体、およびゲーム装置
EP2319018A4 (en) 2008-07-22 2012-10-17 Sony Online Entertainment Llc SYSTEM AND METHOD FOR PHYSICAL INTERACTIONS IN A SIMULATION
JP5035194B2 (ja) * 2008-09-25 2012-09-26 カシオ計算機株式会社 サーバ装置、クライアント装置、サーバベースコンピューティングシステムおよびプログラム
US20100161384A1 (en) 2008-12-18 2010-06-24 Wells Matthew D System and Method for Presenting Content
US20100161348A1 (en) 2008-12-19 2010-06-24 Empathic Software Systems Clinical Management System
US9486701B2 (en) 2009-12-30 2016-11-08 Crytek Gmbh Computer-controlled video entertainment system
TWI454140B (zh) 2010-06-08 2014-09-21 Univ Nat Taiwan 與影片互動之方法與比賽模擬系統
KR20170129967A (ko) * 2010-09-13 2017-11-27 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 게임 서버를 포함하는 컴퓨터 게임 시스템에서 통신 네트워크를 통해 클라이언트들 간에 게임 세션을 이송하는 방법
KR101593344B1 (ko) * 2011-11-10 2016-02-18 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 이력 플레이어 데이터를 이용한 추론적인 렌더링
US20130137518A1 (en) 2011-11-29 2013-05-30 Keith V. Lucas System for Pre-Caching Game Content Based on Game Selection Probability
US9379933B1 (en) * 2013-05-06 2016-06-28 Amazon Technologies, Inc. Dynamically adjusting media content cache size

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112018002096T5 (de) 2017-04-21 2020-01-09 Zenimax Media Inc. Spielereingabebewegungskompensation durch antizipation von bewegungsvektoren

Also Published As

Publication number Publication date
WO2013084078A1 (en) 2013-06-13
US9313083B2 (en) 2016-04-12
US10376784B2 (en) 2019-08-13
JP2015509010A (ja) 2015-03-26
US20130151651A1 (en) 2013-06-13
KR101563277B1 (ko) 2015-10-26
US20160166932A1 (en) 2016-06-16
KR20140101792A (ko) 2014-08-20

Similar Documents

Publication Publication Date Title
JP6129865B2 (ja) ゲームコンテンツデータの予測的なキャッシング
US8858324B2 (en) Speculative rendering using historical player data
KR20200123404A (ko) 멀티 플레이어 비디오 게임 매치 메이킹 최적화
CN111249724A (zh) 机器学习驱动式资源分配
JP7259037B2 (ja) マッシブマルチプレーヤコンピュート
CN109200578A (zh) 用于视频游戏的交互式语音控制的伴随应用
JP2015512089A (ja) クラウドベースのゲームシステムにおける負荷分散
JP2015509776A (ja) オンラインゲーム
US20150119139A1 (en) Selective caching of interactive objects
JP7438201B2 (ja) マルチプレーヤープログラムにおける高入力レイテンシの導入
JP7313467B2 (ja) サーバーの負荷予測及び高度なパフォーマンス測定
JP2022506614A (ja) ゲーム内情報プラットフォーム
US20220274026A1 (en) Intelligent prioritization and manipulation of stream views
KR20170006762A (ko) 클라우드 게임 서비스 제공 장치 및 방법
KR102633104B1 (ko) 리그 오브 레전드 게임의 전장 내의 챔피언을 자동으로 플레이하는 봇의 행동을 결정하는 방법 및 이를 수행하는 컴퓨팅 시스템
CN113710336B (zh) 服务器负载预测和高级性能度量
US9526992B2 (en) Resource management for distributed games
KR102063813B1 (ko) 스테이지형 턴제 게임 제공 장치 및 시스템
CN117122915A (zh) 用于在视频游戏的游戏玩法期间自动控制用户打断的方法和系统
Zhao Server allocation for massively multiplayer online cloud games
JP2017119171A (ja) オンラインゲーム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150804

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151102

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151203

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160204

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20160224

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20160303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161027

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170331

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170412

R150 Certificate of patent or registration of utility model

Ref document number: 6129865

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150