(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-05
(54)【発明の名称】人工知能に基づくネットワークストレージゲームの割り当て
(51)【国際特許分類】
A63F 13/358 20140101AFI20241128BHJP
A63F 13/67 20140101ALI20241128BHJP
【FI】
A63F13/358
A63F13/67
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024534247
(86)(22)【出願日】2022-11-23
(85)【翻訳文提出日】2024-08-07
(86)【国際出願番号】 US2022050956
(87)【国際公開番号】W WO2023107283
(87)【国際公開日】2023-06-15
(32)【優先日】2021-12-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100099324
【氏名又は名称】鈴木 正剛
(72)【発明者】
【氏名】ルーロフ ロダリック コーレンブランデル
(57)【要約】
ゲームクラウドシステムにおけるゲーム割り当てのための方法である。この方法では、データセンタの複数の計算ノードの状態を追跡し、複数の計算ノードは、複数のラックアセンブリにわたって分散される。この方法では、複数のビデオゲームの複数の人気評価を追跡する。この方法では、複数のビデオゲームの複数の人気評価に基づいて、複数のビデオゲームから、複数のラックアセンブリにわたる1つ以上のビデオゲームの分散を決定する。この方法では、決定された1つ以上のビデオゲームの分散に基づいて、複数のラックアセンブリにわたる複数のビデオゲームからの1つ以上のビデオゲームを格納する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
データセンタの複数の計算ノードの状態を追跡し、前記複数の計算ノードは複数のラックアセンブリにわたって分散されており、
複数のビデオゲームの複数の人気評価を追跡し、
前記複数のビデオゲームの前記複数の人気評価に基づいて、前記複数のラックアセンブリにわたる前記複数のビデオゲームからの1つ以上のビデオゲームの分散を決定し、
決定された前記1つ以上のビデオゲームの前記分散に基づいて、前記複数のラックアセンブリにわたる前記複数のビデオゲームからの前記1つ以上のビデオゲームを格納する、方法。
【請求項2】
前記複数の計算ノードの前記状態の前記追跡では、
前記複数の計算ノードのそれぞれの使用状況を追跡し、
前記複数のラックアセンブリの複数のネットワークストレージにわたる前記複数のビデオゲームの分散を追跡する、請求項1に記載の方法。
【請求項3】
さらに、人工知能を使用してビデオゲームの人気評価のトレンドを決定し、
前記トレンドに基づいて前記ビデオゲームを格納するためのラックアセンブリの数を決定する、請求項1に記載の方法。
【請求項4】
前記複数の人気評価の前記追跡では、
1つ以上のネットワークを介してアクセス可能な複数のサイトからテレメトリデータを受信し、
前記テレメトリデータから特徴を抽出し、
前記複数の特徴に基づいてビデオゲームのトレンドを分類し、前記トレンドは、増加している前記ビデオゲームの人気評価を示し、前記人気評価は前記ビデオゲームのゲームセッションの需要に対応し、
前記トレンドに基づいて前記ビデオゲームを格納するための前記複数のラックアセンブリのうちのラックアセンブリの数を増加させることを含む、請求項1に記載の方法。
【請求項5】
前記複数の人口評価の前記追跡では、
前記データセンタの前記複数の計算ノードにわたって前記複数のビデオゲームのそれぞれの1つ以上のゲームセッションを追跡する、請求項1に記載の方法。
【請求項6】
さらに、前記データセンタの前記複数の計算ノードにわたってビデオゲームの1つ以上のゲームセッションを追跡し、
追跡される前記ビデオゲームの前記1つ以上のゲームセッションに基づいて前記ビデオゲームの人気評価が増加していることを示すトレンドを、追跡される前記ビデオゲームの前記1つ以上のゲームセッションに基づいて識別し、前記人気評価は、前記ビデオゲームのゲームセッションの需要に対応し、
前記トレンドに基づいて前記ビデオゲームを格納するための前記複数のラックアセンブリのうちのラックアセンブリの数を増加させる、請求項5に記載の方法。
【請求項7】
前記データセンタの前記複数の計算ノードにわたってビデオゲームのゲームセッションを追跡し、
前記ビデオゲームのゲームセッションの高い需要の期間を予測し、
前記期間の間に、前記高い需要をサポートするための前記複数のラックアセンブリのうちのラックアセンブリの数にわたり前記ビデオゲームをロードする、請求項5に記載の方法。
【請求項8】
前記第1のビデオゲームの存在期間の一部について、前記データセンタの前記複数の計算ノードにわたって第1のビデオゲームの第1の人気評価の第1の履歴を追跡し、
前記第1のビデオゲームの第1の人気評価が前記第1のビデオゲームの前記存在期間の前記一部で第1の期間にわたって増加していることを示す前記第1の履歴における第1のトレンドを決定し、
前記第1のトレンドに基づいて前記第1のビデオゲームを格納するための第1の数のラックアセンブリを決定し、
第2の期間にわたる第2のビデオゲームの第2の人気評価が前記第1のビデオゲームの前記第1のトレンドと同様になることを示す第2のトレンドを予測し、
前記第2のトレンドに基づいて前記第2のビデオゲームを格納するための第2の数のラックアセンブリをロードし、前記第2の数は前記第1の数とほぼ同じである、請求項1に記載の方法。
【請求項9】
さらに、前記複数のビデオゲームの前記複数の人気評価の前記追跡に基づいて、ビデオゲームの人気評価が上昇していることを示すトレンドを識別し、
前記トレンドに基づいて新しいゲームセッションのために前記複数の計算ノードのうちの1つ以上の計算ノードに前記ビデオゲームをプリロードする、請求項1に記載の方法。
【請求項10】
方法を実行するためのコンピュータプログラムを格納する非一時的コンピュータ可読媒体であって、前記非一時的コンピュータ可読媒体は、
データセンタの複数の計算ノードの状態を追跡するためのプログラム命令を有し、前記複数の計算ノードは複数のラックアセンブリにわたって分散されており、
複数のビデオゲームの複数の人気評価を追跡するためのプログラム命令を有し、
前記複数のビデオゲームの前記複数の人気評価に基づいて、前記複数のラックアセンブリにわたる前記複数のビデオゲームからの1つ以上のビデオゲームの分散を決定するためのプログラム命令を有し、
決定された前記1つ以上のビデオゲームの前記分散に基づいて、前記複数のラックアセンブリにわたる前記複数のビデオゲームからの前記1つ以上のビデオゲームを格納するためのプログラム命令を有する、非一時的コンピュータ可読媒体。
【請求項11】
前記複数の計算ノードの前記状態を追跡するための前記プログラム命令は、
前記複数の計算ノードのそれぞれの使用状況を追跡するためのプログラム命令と、
前記複数のラックアセンブリの複数のネットワークストレージにわたる前記複数のビデオゲームの分散を追跡するためのプログラム命令とを含む、請求項10に記載の非一時的コンピュータ可読媒体。
【請求項12】
ビデオゲームの人気評価のトレンドを決定するために人工知能を使用するためのプログラム命令と、
前記トレンドに基づいて前記ビデオゲームを格納するためのラックアセンブリの数を決定するためのプログラム命令と、をさらに含む、請求項10に記載の非一時的コンピュータ可読媒体。
【請求項13】
複数の人気評価を追跡するための前記プログラム命令は、
1つ以上のネットワークを介してアクセス可能な複数のサイトからテレメトリデータを受信するためのプログラム命令を有し、
前記テレメトリデータから特徴を抽出するためのプログラム命令を有し、
前記複数の特徴に基づいてビデオゲームのトレンドを分類するためのプログラム命令を有し、前記トレンドは増加している前記ビデオゲームの人気評価を示し、前記人気評価は前記ビデオゲームのゲームセッションの需要に対応し、
前記トレンドに基づいて前記ビデオゲームを格納するための前記複数のラックアセンブリのうちのラックアセンブリの数を増加させるためのプログラム命令を有する、請求項10に記載の非一時的コンピュータ可読媒体。
【請求項14】
さらに、前記データセンタの前記複数の計算ノードにわたってビデオゲームの1つ以上のゲームセッションを追跡するためのプログラム命令を有し、
追跡される前記ビデオゲームの前記1つ以上のゲームセッションに基づいて前記ビデオゲームの人気評価が増加していることを示す、追跡される前記ビデオゲームの前記1つ以上のゲームセッションに基づいてトレンドを識別するためのプログラム命令を有し、前記人気評価は、前記ビデオゲームのゲームセッションの需要に対応しており、
前記トレンドに基づいて前記ビデオゲームを格納するための前記複数のラックアセンブリのうちのラックアセンブリの数を増加させるためのプログラム命令を有する、請求項10に記載の非一時的コンピュータ可読媒体。
【請求項15】
前記第1のビデオゲームの存在期間の一部について、前記データセンタの前記複数の計算ノードにわたって第1のビデオゲームの第1の人気評価の第1の履歴を追跡するためのプログラム命令を有し、
前記第1のビデオゲームの第1の人気評価が前記第1のビデオゲームの前記存在期間の前記一部で第1の期間にわたって増加していることを示す前記第1の履歴における第1のトレンドを決定するためのプログラム命令を有し、
前記第1のトレンドに基づいて前記第1のビデオゲームを格納するための第1の数のラックアセンブリを決定するためのプログラム命令を有し、
第2の期間にわたる第2のビデオゲームの第2の人気評価が前記第1のビデオゲームの前記第1のトレンドと同様になることを示す第2のトレンドを予測するためのプログラム命令を有し、
前記第2のトレンドに基づいて前記第2のビデオゲームを格納するための第2の数のラックアセンブリをロードするためのプログラム命令を有し、前記第2の数は前記第1の数とほぼ同数である、請求項10に記載の非一時的コンピュータ可読媒体。
【請求項16】
コンピュータシステムであって、
プロセッサを有し、
前記プロセッサに接続されるとともに命令を格納しており、前記コンピュータシステムにより実行されると、前記コンピュータシステムに方法を実行させるメモリを有し、前記方法では、
データセンタの複数の計算ノードの状態を追跡し、前記複数の計算ノードは複数のラックアセンブリにわたって分散され、
複数のビデオゲームの複数の人気評価を追跡し、
前記複数のビデオゲームの前記複数の人気評価に基づいて、前記複数のラックアセンブリにわたる前記複数のビデオゲームからの1つ以上のビデオゲームの分散を決定し、及び
決定された前記1つ以上のビデオゲームの前記分散に基づいて、前記複数のラックアセンブリにわたる前記複数のビデオゲームからの前記1つ以上のビデオゲームを格納する、コンピュータシステム。
【請求項17】
前記方法で、前記複数の計算ノードの前記状態の前記追跡では、
前記複数の計算ノードのそれぞれの使用状況を追跡し、
前記複数のラックアセンブリの複数のネットワークストレージにわたる前記複数のビデオゲームの分散を追跡する、請求項16に記載のコンピュータシステム。
【請求項18】
前記方法において、複数の人気評価の前記追跡では、
1つ以上のネットワークを介してアクセス可能な複数のサイトからテレメトリデータを受信し、
前記テレメトリデータから特徴を抽出し、
前記複数の特徴に基づいてビデオゲームのトレンドを分類し、前記トレンドは増加している前記ビデオゲームの人気評価を示し、前記人気評価は前記ビデオゲームのゲームセッションの需要に対応し、
前記トレンドに基づいて前記ビデオゲームを格納するための前記複数のラックアセンブリのうちのラックアセンブリの数を増加させる、請求項16に記載のコンピュータシステム。
【請求項19】
前記方法では、
前記データセンタの前記複数の計算ノードにわたってビデオゲームの1つ以上のゲームセッションを追跡し、
追跡される前記ビデオゲームの前記1つ以上のゲームセッションに基づいて前記ビデオゲームの人気評価が増加していることを示すトレンドを、追跡される前記ビデオゲームの前記1つ以上のゲームセッションに基づいて識別し、前記人気評価は、前記ビデオゲームのゲームセッションの需要に対応し、
前記トレンドに基づいて前記ビデオゲームを格納するための前記複数のラックアセンブリのうちのラックアセンブリの数を増加させる、請求項16に記載のコンピュータシステム。
【請求項20】
前記方法では、
前記複数のビデオゲームの前記複数の人気評価の前記追跡に基づいて、ビデオゲームの人気評価が上昇していることを示すトレンドを識別し、
前記トレンドに基づいて新しいゲームセッションのために前記複数の計算ノードのうちの1つ以上の計算ノードに前記ビデオゲームをプリロードすることを含む、請求項1に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ビデオゲームの需要及び/または人気を強調するトレンドあるいはトレンドに基づき、人工知能を使用してトレンドを識別することに関する、データセンタにわたるビデオゲームの割り当てに関する。
【背景技術】
【0002】
近年、クラウドゲームサーバとネットワークを介して接続されたクライアントとの間でストリーミング形式のオンラインまたはクラウドゲームを可能にするオンラインサービスが継続的に推進されている。ストリーミング形式はますます人気が出ている。なぜならば、オン需要でゲームタイトルが利用できること、より複雑なゲームが実行できること、マルチプレイヤーゲーミングの場合にプレイヤー間でネットワーク接続できること、プレイヤー間で資産を共有できること、プレイヤー及び/または観戦者の間で瞬時の経験を共有できること、友人がビデオゲームをプレイする様子を友人が観戦できること、友人の進行中のゲームプレイに友人が参加できることなどがあるからである。
【0003】
データセンタは、オンラインまたはクラウドのゲームをサポートするための複数のコンピューティングリソースで構成され得る。例えば、コンピューティングリソースのそれぞれは、ゲームアプリケーションのゲームプレイのためのビデオゲームを実行するように構成可能であり、その後、それがユーザにストリーミングされ得る。コンピューティングリソースの需要は、特定のビデオゲームの需要、需要の期間、需要の地理的領域、求められているゲームの種類などを含む1つ以上のパラメータに応じて変動し得る。
【0004】
データセンタは、ビデオゲームに対するユーザの需要を満たすべく、コンピューティングリソースで実行するためにビデオゲームに対してアクセス可能にするストレージを備えて構成され得る。ストレージは通常、データセンタによってサポートされるビデオゲームのカタログからのビデオゲームがロードされる。ただし、向上したグラフィックス、及びより詳細なゲーム環境をビデオゲームが提供するので、ビデオゲームの各新しい世代で、ますます多くのストレージが必要となる。また、ビデオゲームは、よりいっそう高速なストレージを必要とする。個々のストレージユニットはストレージのコストのためにサイズが制限されるため、ビデオゲームのカタログ全体を個々のストレージユニットに格納することは実用的ではない場合がある。例えば、各ストレージユニットは、ビデオゲームのカタログの約10パーセントを格納できる場合があるが、カタログ内のビデオゲームの数が時間の経過とともに増加するため、さらに少なくなるであろう。これにより、特にビデオゲームのカタログが大きくなっており、また増大し続けているため、ユーザの要求を満たすためにビデオゲームのストレージを管理するという点で、ストレージへの負担は大きくなり得る。
【0005】
本開示の実施形態は、このような背景の下になされたものである。
【発明の概要】
【0006】
本開示の実施形態は、ビデオゲームの使用状況、ゲームクラウドシステムの計算ノードのシステム状態を監視し、使用の履歴パターンに基づいて未来のビデオゲームの使用状況を予測し、人工知能を使用してゲームクラウドシステム及びネットワークデータ(例えば、ソーシャルメディア、ウェブサイト、様々な形態のメディアなどからのデータをスクレイピング)からキャプチャされたデータを分析して、使用するための既存または新規のビデオゲームの人気のトレンドを発見及び/または予測することによって、ゲームクラウドシステムのデータセンタまたはゲームクラウドシステムの全体にわたって、ビデオゲームを効率的に割り当てることに関する。
【0007】
本開示の実施形態は、ゲームクラウドシステムのゲーム割り当てのための方法を開示する。方法は、データセンタの複数の計算ノードの状態を追跡することを含み、複数の計算ノードは、複数のラックアセンブリにわたって分散される。方法は、複数のビデオゲームの複数の人気評価を追跡することを含む。方法は、複数のビデオゲームの複数の人気評価に基づいて、複数のビデオゲームから、複数のラックアセンブリにわたる1つ以上のビデオゲームの分散を特定することを含む。方法は、決定された1つ以上のビデオゲームの分散に基づいて、複数のラックアセンブリにわたる複数のビデオゲームからの1つ以上のビデオゲームを格納することを含む。
【0008】
本開示の他の実施形態は、方法を実行するためのコンピュータプログラムを格納する非一時的コンピュータ可読媒体を開示する。非一時的コンピュータ可読媒体は、データセンタの複数の計算ノードの状態を追跡するためのプログラム命令を含み、複数の計算ノードは、複数のラックアセンブリにわたって分散される。非一時的コンピュータ可読媒体は、複数のビデオゲームの複数の人気評価を追跡するためのプログラム命令を含む。非一時的コンピュータ可読媒体は、複数のビデオゲームの複数の人気評価に基づいて、複数のラックアセンブリにわたる複数のビデオゲームからの1つ以上のビデオゲームの分散を決定するためのプログラム命令を含む。非一時的コンピュータ可読媒体は、決定された1つ以上のビデオゲームの分散に基づいて、複数のラックアセンブリにわたる複数のビデオゲームからの1つ以上のビデオゲームを格納するためのプログラム命令を含む。
【0009】
本開示のさらに他の実施形態は、コンピュータシステムであって、プロセッサと、プロセッサに結合され、命令が記憶されたメモリであって、命令は、コンピュータシステムによって実行されると、コンピュータシステムに方法を実行させるメモリと、を含むコンピュータシステムを開示する。方法は、データセンタの複数の計算ノードの状態を追跡することを含み、複数の計算ノードは、複数のラックアセンブリにわたって分散される。方法は、複数のビデオゲームの複数の人気評価を追跡することを含む。方法は、複数のビデオゲームの複数の人気評価に基づいて、複数のビデオゲームから、複数のラックアセンブリにわたる1つ以上のビデオゲームの分散を決定することを含む。方法は、決定された1つ以上のビデオゲームの分散に基づいて、複数のラックアセンブリにわたる複数のビデオゲームからの1つ以上のビデオゲームを格納することを含む。
【0010】
本開示の他の態様は、本開示の原理の例として示される添付図面と併せて、下記の発明を実施するための形態から明らかになる。
【0011】
本開示は、以下の説明と併せて添付図面を参照することにより最良に理解され得る。
【図面の簡単な説明】
【0012】
【
図1】本開示の一実施形態による、1つ以上のデータセンタに配置された1つ以上の計算ノード間でネットワークを介してゲームを提供するためのシステムの図であり、ユーザの現在の及び新しいビデオゲームをプレイする現在及び未来の需要を満たすためにデータセンタ全体にビデオゲームを効率的に割り当てるようにさらに構成される。
【
図2A】本開示の一実施形態による、ゲームクラウドシステムの代表的なデータセンタにおける複数の計算ノードを含む複数のラックアセンブリの図である。
【
図2B】本開示の一実施形態による、ゲームクラウドシステムの代表的なデータセンタに複数の計算ノードを含む複数のラックアセンブリの図であり、各ネットワークストレージは計算ノードの対応するアレイによってアクセス可能である。
【
図2C】本開示の一実施形態による、処理及び記憶用に構成される複数の計算ノードを含む複数のラックアセンブリの図である。
【
図3】本開示の一実施形態による、現在の及び新しいビデオゲームをプレイするユーザの現在及び未来の需要を満たすために、ゲームクラウドシステム全体でビデオゲームの割り当てを行うように構成された人工知能モデルを実装するように構成されたシステムの図である。
【
図4】本開示の一実施形態による、現在の及び新しいビデオゲームをプレイするユーザの現在及び未来の需要を満たすために、ゲームクラウドシステム全体でビデオゲームを割り当てるための方法におけるステップを示すフロー図である。
【
図5】本開示の様々な実施形態の態様を実行するために使用することができる例示的なデバイスの構成要素を示す。
【発明を実施するための形態】
【0013】
以下の詳細な説明には、説明の目的上、多くの特定の詳細が含まれているが、当業者であれば分かるように、以下の詳細に対する多くの変形及び修正も本開示の範囲内である。したがって、以下に説明する本開示の態様は、この説明に続く特許請求の範囲に対する一般性を何ら失うことなく、また特許請求の範囲に限定を課すことなく、述べられている。
【0014】
一般的に言えば、時間の経過とともに、ビデオゲーム及びゲームカタログのサイズは増加する。さらに、ビデオゲームはいっそう高速のストレージを必要とする。しかしながら、データセンタでより高速なストレージを有することはコストに影響されやすい(すなわち、高価である)ため、高速ストレージの要件を満たすために、ゲームカタログ内の全てのビデオゲームがデータセンタ内の全ネットワークストレージサーバに格納されるとは限らない。
本開示の実施形態は、ビデオゲームの使用状況、ゲームクラウドシステムの計算ノードのシステム状態を監視し、使用の履歴パターンに基づいて未来のビデオゲームの使用状況を予測し、人工知能を使用してゲームクラウドシステム及びネットワークデータ(例えば、ソーシャルメディア、ウェブサイト、様々な形態のメディアなどからのデータをスクレイピング)からキャプチャされたデータを分析して、使用するための既存または新規のビデオゲームの人気のトレンドを発見及び/または予測することによって、ゲームクラウドシステムのデータセンタ(例えば、ネットワークストレージ)全体にわたって、ビデオゲームを効率的に割り当てることを提供する。詳細には、クラウド管理コントローラは、利用可能なすべてのクラウドゲームサーバのインベントリを保持し、クラウドゲームサーバ(例えば、計算ノード)を監視し、クラウドゲームサーバの状態(例えば、使用中または非使用)を追跡するように構成される。さらに、クラウド管理コントローラは、各ラックアセンブリ内の1つ以上のネットワークストレージサーバ及び/またはクラウドゲームサーバ(例えば、計算ノード)に格納されるビデオゲームを監視及び追跡するように構成される。
さらに、実施形態では、クラウド管理コントローラ内の人工知能(AI)層は、ビデオゲームタイトルの人気を追跡するように構成され、さらに、ゲームクラウドシステムの1つ以上のデータセンタのラックアセンブリ全体でビデオゲームの最適な分散をスケジュールするように構成される。例えば、ビデオゲームタイトルに対する現在の及び予測されるユーザの需要を満たすために、ラックアセンブリのそれぞれには、最も人気のあるビデオゲームタイトルがロード可能で、あまり人気のないビデオゲームタイトルが、おそらく1つのラックアセンブリにロード可能であり、他のビデオゲームタイトルは、選択された数のラックアセンブリにロード可能であり、さらに他のビデオゲームタイトルは、そのビデオゲームタイトルをユーザが要求したときに対応するビデオゲームタイトルがラックアセンブリにロードされるだけの状態で、リモートストレージに残り得る。
他の実施形態では、AI層がビデオゲームタイトルの人気の追跡を追跡するとき、AI層はさらに、無名のビデオゲームタイトルが突然流行する(すなわち、非常に短い期間でますます人気が高まる)場合に、追加のラックアセンブリを確実に配置するためにさらに構成され、データセンタは、そのビデオゲームタイトルをプレイするユーザによる需要の急上昇を満たすために、そのビデオゲームタイトルをロードする。
いくつかの実施形態では、ビデオゲームが流行するときのビデオゲームの状態の測定は、クラウドゲームセッションに基づくことが可能だが、ソーシャルメディアサイトのアクティビティ(例えば、ツイッター(登録商標)、フェイスブック(登録商標)など)などの外部の指標、デジタルまたは非デジタルのニュース記事、コミュニケーションプラットフォーム(例えば、テキストメッセージ、音声など)、または過去の経験(例えば、同じフランチャイズ内の新しいビデオゲームは、フランチャイズ内の前回リリースされたビデオゲームと同等かそれ以上ではないものの売上が見込まれるなど)、1つ以上のプラットフォーム(例えば、ゲームネットワーク、オンラインストア、eコマースプラットフォームなど)でのデジタルストア売上(例えば、ビデオゲームの売上など)、その他のeコマースデータ(例えば、消費者の訪問など)、などによって測定することもできる。
【0015】
種々の実施形態の前述した全般的な理解に基づき、次に実施形態の例示的な詳細について、種々の図面を参照して説明する。
【0016】
本明細書全体を通して、「アプリケーション」または「ゲーム」または「ビデオゲーム」または「ゲームアプリケーション」または「ゲームタイトル」に対する言及は、入力コマンドの実行を通して指示されるいずれかのタイプのインタラクティブアプリケーションを表現することを意味する。例示のみを目的として、インタラクティブアプリケーションは、ゲーミング、文書処理、ビデオ処理、ビデオゲーム処理などのためのアプリケーションを含む。さらに、上で導入されている用語は、交換可能である。
【0017】
図1は、本開示の一実施形態による、1つまたは複数のデータセンタに位置付けられた1つまたは複数の計算ノード間でネットワーク150を介してゲームを提供するためのシステム100の図である。システムは、1つ以上のクラウドゲームサーバ間のネットワークを介してゲームを提供するように構成され、より具体的には、現在の及び新しいビデオゲームをプレイするユーザの現在及び未来の需要を満たすために、1つ以上のデータセンタ全体にビデオゲームを効率的に割り当てるように構成され、ゲームカタログのビデオゲームが、ゲームクラウドシステムが需要に追いつくのを待つことなく(例えば、ビデオゲームがネットワークストレージ及び計算ノードにロードされるのを待つことなく)、ユーザが容易かつ即時にアクセスするようにする。クラウドゲームには、サーバにおいてビデオゲームを実行して、ゲームレンダリングされたビデオフレームを生成することが含まれ、これは次に、クライアントに送られて表示される。
【0018】
クラウドゲーム及び/または他のサービスは、様々な実施形態(例えば、クラウドゲーム環境またはスタンドアロンシステム内)で、物理マシン(例えば、中央処理装置--CPU--及びグラフィックス処理装置--GPU)、または仮想マシン、または両方の組み合わせを使用して実行できるということも理解される。例えば、仮想マシン(例えば、インスタンス)は、複数のCPU、メモリモジュール、GPU、ネットワークインターフェース、通信コンポーネントなどのようなハードウェア層の1つ以上のコンポーネントを利用するホストハードウェア(例えば、データセンタに位置付けられている)のハイパーバイザを使用して作成することができる。これらの物理リソースは、CPUのラック、GPUのラック、メモリのラックなどのラックに配置でき、ラックの物理リソースは、インスタンスに使用されるコンポーネントの組み立てとアクセスのためのファブリックを促進するトップオブラック型スイッチを使用してアクセスできる(例えば、インスタンスの仮想化されたコンポーネントを構築するとき)。
一般に、ハイパーバイザは、仮想リソースによって構成される複数のインスタンスの複数のゲストオペレーティングシステムを提示することができる。すなわち、各オペレーティングシステムは、(例えば、対応するデータセンタに配置された)1つ以上のハードウェアリソースによってサポートされる仮想化リソースの対応するセットを用いて構成され得る。例えば、各オペレーティングシステムは、仮想CPU、複数の仮想GPU、仮想メモリ、仮想化された通信コンポーネントなどでサポートされる場合がある。さらに、待ち時間を短縮するためにあるデータセンタから別のデータセンタに転送され得るインスタンスの構成である。ユーザまたはゲームに対して定義された即時使用は、ユーザのゲームセッションを保存するときに使用できる。即時使用は、ゲームセッション用のビデオフレームの高速レンダリングを最適化するために、本明細書で説明する任意の数の構成を含むことができる。一実施形態では、ゲームまたはユーザに対して定義された即時使用は、構成可能な設定としてデータセンタ間で転送することができる。即時使用設定を転送できることにより、ユーザが異なる地理的な位置からゲームをプレイするために接続する場合に、データセンタからデータセンタへのゲームプレイの効率的な移行が可能になる。
【0019】
システム100は、1つまたは複数のデータセンタ(例えば、データセンタ1からN)を通じて実装されるゲームクラウドシステム200を含む。図示されているように、ゲームクラウドシステム200のインスタンスは、管理機能を提供するデータセンタNに位置付けることができ、ゲームクラウドシステム200の管理機能は、各データセンタでゲームクラウドシステム200の複数のインスタンスを通じて分散され得る。一部の実施態様では、ゲームクラウドシステム管理機能は、データセンタのいずれかの外部に位置付けられる場合がある。例えば、ゲームクラウドシステムの管理機能は、
図2A~2Bでさらに説明するように、クラウド管理コントローラによって実行され得る。
【0020】
そのゲームクラウドシステム200は、クライアントデバイス(例えば、1~N)のそれぞれを対応するデータセンタ内の対応するリソースに割り当てるように構成されたアサイナ(assigner)191を含む。特に、クライアントデバイス110がゲームクラウドシステム200にログインするとき、クライアントデバイス110は、データセンタNでゲームクラウドシステム109のインスタンスと接続されてもよく、データセンタNはクライアントデバイス110に地理的に最も近くてもよい。アサイナ191は、診断テストを実行して、クライアントデバイス110への利用可能な送信及び受信帯域幅を決定することができる。また、診断テストは、対応するデータセンタとクライアントデバイス110との間の待ち時間及び/またはラウンドトリップ時間を決定することを含む。テストに基づいて、アサイナ191は、リソースをクライアントデバイス110に非常に特異的に割り当てることができる。
例えば、アサイナ191は、特定のデータセンタをクライアントデバイス110に割り当てることができる。さらに、アサイナ191は、特定の計算スレッドの、特定のストリーミングアレイの、特定のラックアセンブリの、特定の計算ノードをクライアントデバイス110に割り当てることができる。割り当ては、計算ノードで利用可能なアセット(ゲームなど)の知識に基づいて実行され得る。以前は、クライアントデバイスは一般的にデータセンタに割り当てられており、ラックアセンブリにはそれ以上割り当てられていなかった。このようにすると、アサイナ191は、計算集約型の特定のゲームアプリケーションの実行を要求しているクライアントデバイスを、計算集約型アプリケーションを実行していない可能性のある計算ノードに割り当てることができる。さらに、クライアントによって要求された計算集約型ゲームアプリケーションの割り当ての負荷管理は、アサイナ191で実行され得る。例えば、短期間に要求されている同じ計算集約型ゲームアプリケーションは、特定の計算ノード、計算スレッド及び/またはラックアセンブリの負荷を軽減するために、1つのラックアセンブリまたは異なるラックアセンブリ内の異なる計算ノードに分散される場合がある。
【0021】
いくつかの実施形態では、割り当ては、機械学習に基づいて実行され得る。特に、リソースの需要は、特定のデータセンタとそれに対応するリソースについて予測され得る。例えば、データセンタが計算集約型ゲームアプリケーションを実行する多くのクライアントをすぐに処理することが予測できる場合、アサイナ191はその知識についてクライアントデバイス110を割り当て、そのリソースの全能力を現在利用していない可能性のあるリソースを割り当てることができる。別のケースでは、アサイナ191は、データセンタNでの負荷の増加を見越して、クライアントデバイス110を、データセンタNのゲームクラウドシステム200から、データセンタ3で利用可能なリソースに切り替えることができる。さらに、未来のクライアントは、リソースの負荷と需要が、ゲームクラウドシステム全体に、複数のデータセンタにわたり、複数のラックアセンブリにわたり、複数の計算スレッドにわたり、及び/または複数の計算ノードにわたり分散され得るように、分散された方法でリソースに割り当てられることができる。例えば、クライアントデバイス110は、データセンタN(例えばパス1を介して)及びデータセンタ3(例えばパス2を介して)の両方のゲームクラウドシステムからリソースを割り当てられ得る。
【0022】
クライアントデバイス110が、対応するストリーミングアレイの対応する計算スレッドの特定の計算ノードに割り当てられると、クライアントデバイス110は、ネットワークを介して対応するデータセンタに接続する。すなわち、クライアントデバイス110は、データセンタ3など、割り当てを実行するデータセンタとは異なるデータセンタと通信し得る。
【0023】
さらに、ゲームクラウドシステム200は、ゲームアロケータ300を含み、これは、ビデオゲームの現在の及び予測される(例えば、未来)の需要をサポートするために、ゲームクラウドシステムのデータセンタ全体にゲームカタログのビデオゲーム、及びそれらのビデオゲームのゲームセッションを実行するために必要なコンピューティングリソースを割り当てる、及び/または分散するように構成される。例えば、ゲームアロケータ300は、ゲームクラウドシステム内のリソースを管理するように構成されたクラウド管理コントローラ内に実装され得る。
詳細には、ゲームアロケータ300は、ビデオゲームの現在及び未来の需要とその需要を満たすために必要とされるコンピューティングリソースとを決定するために、計算ノード及びネットワークストレージのビデオゲームの使用状況及びシステム状態を監視するように構成され得る。いくつかの実施形態では、人工知能(AI)は、ビデオゲームの人気のトレンド、及びそれらのビデオゲームの人気のためにユーザによるコンピューティングリソースの需要を識別するために適用され得る。
例えば、深層学習及び/または機械学習エンジン190は、AIモデル160を実装するように構成可能であり、これは、ゲームクラウドシステム内でキャプチャされたメトリクス(例えば、1つ以上のビデオゲームのゲームセッション)を含む入力データ、及びネットワークソース(例えば、ソーシャルメディアプラットフォーム、ウェブサイト、ニュースサイトなど)、従来の情報源(例えば、メディアアウトレットなど)、他のデジタルプラットフォーム(例えば、通信媒体(例えば、テキストメッセージ、メッセージングなど))、さらに他の非デジタルプラットフォーム、オンラインストアなどからキャプチャされた他のデータに基づいて、1つ以上のビデオゲームタイトルの人気のトレンド(例えば、現在及び未来の)を分類及び/または識別するように構成される。いくつかの実施形態では、ビデオゲームの人気のトレンド、及びトレンドに基づいて予測されるコンピューティングリソースの需要は、人工知能を適用せずになど、ルールを通じて決定され得る。
【0024】
さらに、ゲームアロケータ300は、1つ以上のビデオゲームの分類及び/または識別されたトレンド(例えば、それらのビデオゲームの人気を示す)を分析することを含む、アナライザ140においてAIモデル160からの結果を分析するように構成される。アナライザ140は、分類された及び/または識別されたトレンドに基づいて、ゲームクラウドシステムの1つ以上のデータセンタ全体にわたるビデオゲームの割り当て及び/または分散を決定するように構成される。さらに他の実施形態では、ゲームクラウドシステムの1つ以上のデータセンタ全体にわたるビデオゲームの割り当て及び/または分散は、人工知能によって、または他のルールを通じて決定されたトレンドに適用されるルールによって決定される。
【0025】
例えば、ゲームクラウドシステムは、世界中に配置された複数のデータセンタを有し得る。1つ以上のデータセンタは、グループで配置されてよく、各グループは、世界の特定の領域にサービスを提供し得る。実施形態では、第1の領域にサービスを提供する第1のグループからのデータの分析(例えば、1つ以上のビデオゲームのトレンドを識別する)は、第2の領域にサービスを提供する第2のグループに有用となり得るもので、分析は第2のグループのデータセンタ(複数可)全体でのビデオゲームの割り当て及び/または分散を含み得る。すなわち、AIの割り当て及び予測層は、ゲームクラウドシステムのデータセンタの異なるグループ間で共有され得る。例示として、第1のグループからのデータ分析は、ビデオゲームが第1の領域(例えば、ヨーロッパ)で流行っているが、同時に、第2の領域(例えば、アメリカ合衆国を含む北米)は、第2の領域の人々が概して睡眠中であるため比較的アクティブではないことを示し得る。第1の領域に関連する第1のグループにおけるビデオゲームのトレンドに関連するデータ分析からの結果は、特にビデオゲームが第2の領域(例えば、北米)でも人気が高い場合、第2の領域に関連する第2のグループに適用され得る。具体的には、ビデオゲームは、北米でもビデオゲームが流行ることを見越して、第2の領域に関連する第2のグループのラックアセンブリ及び/または計算ノードに先制的にインストールされ得る。
【0026】
システム100は、ゲームクラウドシステム200を介してゲームを提供し、本開示の一実施形態によれば、ゲームは、ゲームをプレイしている対応するユーザのクライアントデバイス(例えば、シンクライアント)からリモートで実行されている。システム100は、シングルプレイヤーモードまたはマルチプレイヤーモードのいずれかで、ネットワーク150を介して、クラウドゲームネットワークまたはゲームクラウドシステム200により、1つまたは複数のゲームをプレイする1人または複数のユーザに、ゲームのコントロールを提供し得る。いくつかの実施形態において、クラウドゲームネットワークまたはゲームクラウドシステム200は、ホストマシンのハイパーバイザで実行する複数の仮想マシン(VM)を含むことが可能であり、1つ以上の仮想マシンは、ホストのハイパーバイザに利用可能であるハードウェアリソースを利用するゲームプロセッサモジュールを実行するように構成される。ネットワーク150は、1つまたは複数の通信技術を含み得る。いくつかの実施形態では、ネットワーク150は、高度な無線通信システムを有する第5世代(5G)ネットワーク技術を含んでいてもよい。
【0027】
いくつかの実施形態では、通信は、無線技術を使用して促進され得る。このような技術には、例えば、5G無線通信技術が含まれていてもよい。5Gは第5世代のセルラーネットワーク技術である。5Gネットワークはデジタルセルラーネットワークであり、ここでは、プロバイダがカバーするサービスエリアが、セルと言われる小さい地理的領域に分割される。音及び映像を表すアナログ信号は、電話でデジタル化され、アナログーデジタルコンバータによって変換され、ビットストリームとして伝送される。セル内のすべての5Gワイヤレスデバイスは、他のセルで再利用される周波数プールからトランシーバによって割り当てられた周波数チャネルを介して、セル内のローカルアンテナアレイ及び低電力自動トランシーバ(送信器及び受信機)と電磁波で通信する。ローカルアンテナは、高帯域幅光ファイバまたは無線バックホール接続によって、電話網及びインターネットに接続される。他のセルネットワークと同様に、あるセルから別のセルに移動するモバイルデバイスは、新しいセルに自動的に転送される。当然のことながら、5Gネットワークは単に通信ネットワークのタイプ例であり、本開示の実施形態では、前の世代の無線または有線通信、ならびに5Gの後に来る後の世代の有線または無線技術を用いてもよい。
【0028】
図示のように、ゲームクラウドシステム200を含むシステム100は、複数のゲームアプリケーションへのアクセスを提供することができる。特に、クライアントデバイスのそれぞれは、クラウドゲームネットワークからの異なるゲームアプリケーションへのアクセスを要求している可能性がある。例えば、ゲームクラウドシステム200は、対応するゲームアプリケーションを実行するために1つ以上のホストで実行される1つ以上の仮想マシンとして構成され得る1つ以上のゲームサーバを提供し得る。例えば、ゲームサーバは、ユーザのゲームアプリケーションのインスタンスをインスタンス化するゲームプロセッサをサポートする仮想マシンを管理し得る。よって、複数の仮想マシンに対応付けられた1つ以上のゲームサーバの複数のゲームプロセッサは、複数のユーザのゲームプレイに関連付けられた1つまたは複数のゲームアプリケーションの複数のインスタンスを実行するように構成される。
このように、バックエンドサーバサポートは、複数のゲーミングアプリケーションのゲームプレイの媒体(例えば、ビデオ、オーディオなど)のストリーミングを、複数の対応するユーザに提供する。つまり、ゲームクラウドシステム200のゲームサーバは、ネットワーク150を介して、データ(例えば、対応するゲームプレイのレンダリングされた画像及び/またはフレーム)を対応するクライアントデバイスにストリーミング返信するように構成される。そのようにして、クライアントデバイスによって受信されて転送されたコントローラの入力に応答して、計算の複雑なゲームアプリケーションが、バックエンドサーバで実行し続けることができる。各サーバは画像及び/またはフレームをレンダリングすることができ、これらは次に、エンコード(例えば圧縮)され、対応するクライアントデバイスにストリーミングされて表示される。
【0029】
実施形態では、各仮想マシンは、オペレーティングシステムをサポートできるリソース環境を定義し、その上でゲームアプリケーションを実行することができる。一実施形態では、仮想マシンは、ゲームコンソールのハードウェアリソース環境をエミュレートするように構成することができ、ゲームコンソールに関連するオペレーティングシステムは、仮想マシン上で実行されて、そのゲームコンソール用に開発されたゲームタイトルの実行をサポートする。別の実施形態では、オペレーティングシステムは、ゲームコンソールのネイティブオペレーティングシステム環境をエミュレートするように構成することができるが、基礎となる仮想マシンは、ゲームコンソールのハードウェアをエミュレートするように構成されても、構成されなくてもよい。別の実施形態では、エミュレータアプリケーションは、仮想マシンのオペレーティングシステムの上部で実行され、エミュレーターは、ゲームコンソールのネイティブオペレーティングシステム環境をエミュレートするように構成され、そのゲームコンソール用に設計されたゲームアプリケーション及び/またはビデオゲームをサポートする。様々な現行及び従来のゲームコンソールをクラウドベースのゲームシステムでエミュレートすることができることを認識されたい。このようにして、ユーザは、クラウドゲームシステムを介して、様々なゲームコンソールからゲームタイトルにアクセスすることができる。
【0030】
一実施形態では、ゲームクラウドシステム200のクラウドゲームネットワークは、分散型ゲームサーバシステム及び/またはアーキテクチャである。具体的には、ゲームロジックを実行する分散型ゲームエンジンが、対応するゲームアプリケーションの対応するインスタンスとして構成されている。一般に、分散型ゲームエンジンは、ゲームエンジンの各機能を取り込み、それらの機能を分散させて多数の処理エンティティによって実行する。個々の機能は、さらに1つ以上の処理エンティティにわたって分散させることができる。処理エンティティを異なる構成(例えば、物理ハードウェア)で、及び/または仮想コンポーネントまたは仮想マシンとして、及び/または仮想コンテナとして構成してもよい。コンテナは、仮想化オペレーティングシステム上で実行されるゲーミングアプリケーションのインスタンスを仮想化するため、仮想マシンとは異なる。
処理エンティティは、クラウドゲームネットワークまたはゲームクラウドシステム200の1つ以上のサーバ(計算ノード)上のサーバ及びその基礎となるハードウェアを利用し、及び/またはそれらに依拠してもよく、サーバは1つ以上のラック上に位置付けられ得る。種々の処理エンティティに対するそれらの機能の実行の協調、割り当て、及び管理は、分散同期層によって行われる。このように、これらの機能の実行を分散同期層が制御して、プレイヤーによるコントローラ入力に応じたゲーミングアプリケーションに対する媒体(例えばビデオフレーム、オーディオなど)の生成を可能にする。分散同期層は、重要なゲームエンジンコンポーネント/機能が、より効率的な処理のために分散されて再構築されるように、分散処理エンティティ全体で(例えば、負荷分散を介して)それらの機能を効率的に実行することが可能である。
【0031】
図2Aは、本開示の一実施形態による、ゲームクラウドシステムの代表的なデータセンタ200Aにおける複数の計算ノードを含む複数のラックアセンブリ210の図である。例えば、北米、ヨーロッパ、及び日本など、世界中に複数のデータセンタが分散し得る。
図2Aは、そのラックアセンブリに位置する計算ノードによってアクセス可能なネットワークストレージを含む対応するラックアセンブリの例示的な構成を示すように提示されている。
【0032】
データセンタ200Aは、複数のラックアセンブリ220(例えば、ラックアセンブリ220Aから220N)を含む。ラックアセンブリのそれぞれは、対応するネットワークストレージ及び複数の計算スレッドを含む。例えば、代表的なラックアセンブリ220Nは、ネットワークストレージ211及び複数の計算スレッド230(例えば、スレッド230A~230N)、ならびにラックアセンブリ220Nのコンポーネントの内部及び外部ネットワーク構成用に構成されたラックコントローラ250を含む。他のラックアセンブリは、変更を加えてまたは加えずに同様に構成することができる。特に、計算スレッドのそれぞれは、ハードウェアリソース(例えば、プロセッサ、CPU、GPUなど)を提供する1つまたは複数の計算ノードを含む。例えば、ラックアセンブリ220Nの複数の計算スレッド230における計算スレッド230Nは、4つの計算ノードを含むように示されているが、ラックアセンブリは1つまたは複数の計算ノードを含み得ることが理解される。各ラックアセンブリは、対応するデータセンタの管理用に構成された管理サーバとの通信を提供するように構成されたクラスタスイッチに結合される。例えば、ラックアセンブリ220Nはクラスタスイッチ240Nに結合される。クラスタスイッチは、外部通信ネットワーク(インターネットなど)への通信も提供する。
【0033】
特に、クラスタファブリック(例えば、クラスタスイッチなど)は、1つまたは複数のクラスタのラックアセンブリ、分散ストレージ270、及び通信ネットワークの間の通信を提供する。さらに、クラスタファブリック/スイッチはまた、管理、ロギング、監視、イベント生成、追跡などのデータセンタサポートサービスも提供する。クラスタファブリック/スイッチは、ルータシステム及び通信ネットワーク(例えば、インターネット)を介して外部通信ネットワークへの通信を提供する。また、クラスタファブリック/スイッチは、ストレージ270に通信を提供する。ゲームクラウドシステムの代表的なデータセンタにおけるラックアセンブリのクラスタは、設計上の選択により1つ以上のラックアセンブリを含み得る。一実施形態では、クラスタは、50個のラックアセンブリを含む。他の実施形態では、クラスタは、50を超えるかまたは50未満のラックアセンブリを含み得る。
【0034】
1つのネットワーク構成において、各ラックアセンブリは、ラックアセンブリ内など、対応するネットワークストレージへの高速アクセスを提供する。一実施形態において、高速アクセスは、計算ノードと対応するネットワークストレージ間の直接アクセスを提供するPCIeファブリックを介して提供される。他の実施形態では、高速アクセスは、イーサネット、インフィニバンド、集約型イーサネット(RoCE)上のリモートダイレクトメモリアクセス(RDMA)などを含む他のネットワークファブリックトポロジ及び/またはネットワーキングプロトコルを介して提供される。例えば、ラックアセンブリ220Nにおいて、高速アクセスは、対応するネットワークストレージ(例えば、ストレージ211)に対応する計算スレッドの特定の計算ノード間にデータパス201を提供するように構成される。特に、PCIeファブリックは不揮発性メモリエクスプレス(NVMe)レイテンシでの計算ノード(例えば、ラックアセンブリの)ごとの毎秒4ギガバイト(GB/s)ネットワークストレージ帯域幅(例えば、アクセス)を超えて提供できる。また、制御パス202は、ネットワークストレージ210と計算ノードのそれぞれとの間で制御及び/または管理情報を通信するために構成される。
【0035】
ストリーミングラックアセンブリは、計算ノードの周囲に中心化され、これは、ゲームアプリケーション、ビデオゲームを実行し、及び/または1つ以上のクライアントへゲームセッションのオーディオ/ビデオをストリーミングする。さらに、各ラックアセンブリ内で、ネットワークストレージを提供するストレージサーバにビデオゲームコンテンツを格納することができる。ネットワークストレージには、多くの計算ノードにサービスを提供するために、大量のストレージと高速ネットワークが備えられている。具体的には、ストレージプロトコル(例えば、ネットワークファイルシステムなど)は、ネットワークストレージにアクセスするために使用されるネットワークファブリックトポロジ経由で実装される。データは、実装されている基礎となるストレージプロトコルに部分的に基づいて、ファイルストレージ、ブロックストレージ、またはオブジェクトストレージの技術を使用してネットワークストレージに格納され得る。
例えば、PCIeファブリックストレージプロトコルは、ネットワークストレージからブロックストレージデータにアクセスし得る。ネットワークストレージは、高速アクセスのために構成され得るが、ビデオゲームタイトルの完全なカタログを格納するほど大きくない場合がある。そのため、ネットワークストレージへのビデオゲームの割り当ては、ビデオゲームの現在の需要及び予測されるさらなる需要に基づいて実行される。すなわち、ビデオゲームは、ゲームクラウドシステムのユーザによるビデオゲームに対する需要をサポートするために、対応するラックアセンブリのネットワークストレージに格納される。したがって、ラックアセンブリ内の計算ノードは、ビデオゲームのためのゲームセッションを処理可能で、ビデオゲームは、すぐにアクセスできるようにネットワークストレージに格納され、その後次いで、実行のために計算ノードにロードされる。ライセンス契約に応じて、ビデオゲームは、一度ラックアセンブリ用のネットワークストレージにロードされ、後続のコピーは、マルチユーザの単一コピーライセンスの下で1つ以上の計算ノードにロードされ得る、またはビデオゲームの複数のインスタンスは、ネットワークストレージラックアセンブリにロード可能で、それは次いで、単一ユーザの単一コピーライセンスの下で1つ以上の計算ノードに1対1で効率的に転送され得る。
【0036】
分散ストレージ260は、ラックアセンブリのクラスタ255のそれぞれの計算ノードによってアクセス可能なユーザデータ、ゲームデータ、及びゲームパッケージの集中した記憶を提供する。分散ストレージ260は、要求に応じてサーバを追加または削除できるようにスケーラブルであり、ストレージ260は再分散及び/またはそれ自体を再構成することができる。さらに、分散ストレージは負荷の分散をもたらすように構成されているため、データは複数のストレージサーバにわたって小さなチャンクで保存される。分散ストレージの管理は、ユーザインターフェースから実行できる。
特に、分散ストレージ260は、ゲームクラウドシステム200用のビデオゲームのタイトル(例えば、ゲームアプリケーション)の完全な補足を格納するように構成することができる(例えば、ゲームアプリケーションの完全なカタログを保存するための約200テラバイト[TB]のストレージ)。分散ストレージ260は、ゲームクラウドシステム200のユーザのユーザ及びゲームデータを格納するように構成することもできる。ユーザ及びゲームのデータは、ユーザのセーブデータ、対応するゲームアプリケーションの一時停止/再開データ、ダウンロードデータ、及びその他(画像、写真など)を含み得る。説明のために、各ユーザは各ユーザにつき約50ギガバイト(GB)のストレージを必要とする場合がある。一実施形態では、分散ストレージ260は、対応するゲームタイトルに関連付けられた一時停止/再開情報(例えば、ゲームタイトルごとに8ギガバイト)を格納する。
【0037】
示されるように、データセンタ200のクラウド管理コントローラ210は、アサイナ191(
図1に示される)と通信して、リソースをクライアントデバイス110に割り当てる。特に、クラウド管理コントローラ210は、ゲームクラウドシステム200’のインスタンスと連携し、ゲームクラウドシステム200の最初のインスタンス(例えば、
図1の)と連携して、リソースをクライアントデバイス110に割り当てることができる。実施形態では、割り当ては、どのリソースと帯域幅が必要であるかということ、及びそれがデータセンタに存在することを知るなど、アセットの認識に基づいて実行される。したがって、本開示の実施形態は、説明のために、対応するラックアセンブリ220Bの対応する計算スレッド231Aの特定の計算ノード232Aにクライアントデバイス110Aを割り当てるように構成される。
【0038】
また、クラウド管理コントローラ210は、ゲームクラウドシステムの1つ以上のデータセンタのラックアセンブリ(例えば、ネットワークストレージ、計算ノードなど)全体にビデオゲームを割り当てる目的で、ビデオゲームの人気のトレンドを識別するために、データ(ゲームクラウドシステムに関連する内部データ、ネットワークデータなどの外部データなど)を収集及び分析し、それらのビデオゲームのプレイに対する現在の需要と予測される(例えば、未来の)需要(ゲームセッションなど)を満たすように構成されている。
詳細には、クラウド管理コントローラ210は、利用可能なすべてのクラウドゲームサーバ(例えば、計算ノード)のインベントリを追跡及び管理し、クラウドゲームサーバを監視し、クラウドゲームサーバの状態(例えば、使用中または非使用)を追跡するように構成される。さらに、クラウド管理コントローラは、各ラックアセンブリ内の1つ以上のネットワークストレージサーバ及び/または計算ノードに格納されるビデオゲームを監視及び追跡するように構成される。さらに、クラウド管理コントローラ210は、クラウドゲームサーバ全体で実装されたゲームセッションを追跡するように構成され得る。一実施形態では、ゲームアロケータ300は、後述の
図3においてさらに説明するように、ネットワークストレージ、及び/またはゲームクラウドシステムの1つ以上のデータセンタのラックアセンブリの計算ノードへのビデオゲームの割り当てに必要な動作を実行するために、クラウド管理コントローラ210内に含まれてよい、または通信し得る。
いくつかの実施形態では、人工知能は、ネットワークストレージへのビデオゲームの割り当てに必要な動作を実行するために、ゲームアロケータ300内に含まれる。詳細には、クラウド管理コントローラ210及び/またはゲームアロケータ300内のAI層は、ビデオゲームタイトルの人気を追跡するように構成され、さらに、ゲームクラウドシステムの1つ以上のデータセンタのラックアセンブリ全体でビデオゲームの最適な分散をスケジュールするように構成される。すなわち、AIを使用して、ビデオゲームの人気を決定し、決定した人気に基づいてビデオゲームを格納するためのラックアセンブリの数を決定する。
【0039】
図2Bは、本開示の一実施形態による、ゲームクラウドシステムの代表的なデータセンタ200Bに複数の計算ノードを含む複数のラックアセンブリ221の図であり、各ネットワークストレージは計算ノードの対応するアレイによってアクセス可能である。データセンタ200Bはデータセンタ200Aと類似しており、同様の番号が付けられたコンポーネントは同様の機能を有する。しかし、データセンタ200Bは、データセンタ200Aのラックアセンブリとは異なる構成のラックアセンブリを有し、以下に説明するように、単一のストリーミングアレイの計算ノードによってネットワークストレージがアクセスされる。
【0040】
データセンタ200は、複数のラックアセンブリ221(例えば、ラックアセンブリ221Aから221N)を含む。ラックアセンブリのそれぞれは、1つまたは複数のストリーミングアレイを含み、各ストリーミングアレイは、対応するネットワークストレージ及び複数の計算スレッドを含む。例えば、代表的なラックアセンブリ221Nは、ストリーミングアレイ225Aから225Nを含む。一実施形態では、ラックアセンブリ221Nは2つのストリーミングアレイを含み、各ストリーミングアレイはネットワークストレージ及び複数の計算スレッドを含む。例えば、ストリーミングアレイ225Nは、ネットワークストレージ211-Nにアクセスする複数の計算スレッド235を含む。特に、計算スレッドのそれぞれは、ハードウェアリソース(例えば、プロセッサ、CPU、GPUなど)を提供する1つまたは複数の計算ノードを含む。例えば、ストリーミングアレイ225Nの計算スレッド235Xは4つの計算ノードを含むように示されているが、ラックアセンブリは1つ以上の計算ノードを含むことができることが理解される。
【0041】
各ラックアセンブリは、前述のように、対応するデータセンタの管理用に構成されたクラウド管理コントローラ210との通信を提供するように構成されたクラスタスイッチに結合される。例えば、ラックアセンブリ221Nはクラスタスイッチ240Nに結合される。クラスタスイッチはまた、他のラックアセンブリへの通信(例えば、対応するクラスタスイッチを介して)、及び外部通信ネットワーク(例えば、インターネットなど)への通信を提供する。
【0042】
1つのネットワーク構成において、対応するラックアセンブリの各ストリーミングアレイは、前述のように、対応するネットワークストレージへの高速アクセスを提供する。この高速アクセスは、計算ノードと対応するネットワークストレージ間の直接アクセスを提供するPCIeファブリックを介して提供される。計算ノードは、ゲームアプリケーションを実行し、ゲームセッションのオーディオ/動画を1つまたは複数のクライアントにストリーミングでき、対応するネットワークストレージ(例えば、ストレージサーバ)が、ゲームアプリケーション、ゲームデータ、及びユーザデータを保持する。例えば、ラックアセンブリ221Nのストリーミングアレイ225Aにおいて、高速アクセスは、対応する計算スレッドの特定の計算ノードと対応するネットワークストレージ(例えば、ストレージ211A)との間のデータ及びコントロールパス201Aを提供するように構成される。また、パス201Nは、ネットワークストレージ211Nとストリーミングアレイ225Nの計算ノードのそれぞれとの間の制御及び/または管理情報を通信するように構成されている。
【0043】
前述のように、データセンタ200Bのクラウド管理コントローラ210は、アサイナ191と通信して、ゲームクラウドシステム200’及び/または200をサポートするクライアントデバイス110にリソースを割り当てる。実施形態では、割り当ては、どのリソースと帯域幅が必要であるかということ、及びそれがデータセンタに存在することを知るなど、アセットの認識に基づいて実行される。したがって、本開示の実施形態は、説明のために、ラックアセンブリ221Bの対応するストリーミングアレイの対応する計算スレッド231Bの特定の計算ノード232Bに、クライアントデバイス110Cを割り当てるように構成される。
【0044】
また、クラウド管理コントローラ210及び/またはゲームアロケータ300は、ゲームクラウドシステムの1つ以上のデータセンタのラックアセンブリ(例えば、ネットワークストレージ、計算ノードなど)全体にビデオゲームを割り当てる目的で、ビデオゲームの人気のトレンドを識別するために、データ(ゲームクラウドシステムに関連する内部データ、ネットワークデータなどの外部データなど)を収集及び分析し、それらのビデオゲームのプレイに対する現在の需要と予測される需要(ゲームセッションなど)を満たすように構成されている。いくつかの実施形態では、人工知能は、ゲームクラウドシステムの1つ以上のデータセンタのラックアセンブリのネットワークストレージへのビデオゲームの適切な割り当てを決定する目的で、ビデオゲームの人気のトレンドを識別するためにデータを分析するために実装される。詳細には、クラウド管理コントローラ210及び/またはゲームアロケータ300内のAI層は、ビデオゲームタイトルの人気を追跡するように構成され、さらに、ゲームクラウドシステムの1つ以上のデータセンタのラックアセンブリにわたってビデオゲームの最適な分散をスケジュールするように構成される。すなわち、AIを使用して、ビデオゲームの人気を決定し、決定した人気に基づいて、ビデオゲームを格納するためのラックアセンブリの数を決定する。
【0045】
図2Cは、本開示の一実施形態による、処理及び記憶用に構成される複数の計算ノードを含む複数のラックアセンブリを含むデータセンタ200Cの図である。データセンタ200Cはデータセンタ200A及び200Bと類似しており、同様の番号が付けられたコンポーネントは同様の機能を有する。しかし、データセンタ200Cは、ラックアセンブリの異なる構成を有し、それにより、ラックアセンブリは、各々が専用ストレージ(すなわち、ネットワークストレージに依存しない)を含むスタンドアロン計算ノードで構成される。
【0046】
特に、データセンタ200Cは、複数のラックアセンブリ222(例えば、ラックアセンブリ222Aから222N)を含む。ラックアセンブリのそれぞれは、複数の計算スレッド237を含み、各計算スレッドは、ハードウェアリソースを提供する1つ以上の計算ノードを含む。例えば、ラックアセンブリ222Nの複数の計算スレッド237Xは、4つの計算ノード(計算ノード233を含む)を含むように示されているが、ラックアセンブリは1つまたは複数の計算ノードを含み得ることが理解される。計算ノードは、ゲームアプリケーションを実行し、ゲームセッションのオーディオ/ビデオを1つ以上のクライアントにストリーミングし得る。より具体的には、各計算ノードは、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、計算ノードの動作中に使用される(頻繁にアクセスされるデータ、プログラム、プロセスなどにすばやくアクセスするためなど)ランダムアクセスメモリ(RAM)を含む揮発性メモリ、ローカルまたはシステムメモリを含む不揮発性メモリなどを含むスタンドアロンシステム(例えば、ゲームコンソールなど)として構成され得る。例示の目的で、ラックアセンブリ222Nの計算スレッド237Xの計算ノード233は、部分的に、CPU271及びシステムメモリ272(例えば、不揮発性メモリ)などを含む。
【0047】
各ラックアセンブリは、前述のように、対応するデータセンタの管理用に構成されたクラウド管理コントローラ210との通信を提供するように構成されたクラスタスイッチに結合される。例えば、ラックアセンブリ222Nはクラスタスイッチ240Nに結合される。クラスタスイッチはまた、他のラックアセンブリへの通信(例えば、対応するクラスタスイッチを介して)、及び外部通信ネットワーク(例えば、インターネットなど)への通信を提供する。
【0048】
前述のように、データセンタ200Cのクラウド管理コントローラ210は、アサイナ191と通信して、ゲームクラウドシステム200’及び/または200をサポートするクライアント110にリソースを割り当てる。例えば、クライアントデバイス110Cは、ラックアセンブリ222Bの対応する計算スレッド231Cの特定の計算ノード232Cに割り当てられ得る。また、クラウド管理コントローラ210及び/またはゲームアロケータ300は、データ(例えば、内部及び外部データ)を収集して分析し、ゲームクラウドシステムのデータセンタ(複数可)のラックアセンブリ(例えば、ネットワークストレージ、計算ノードなど)にわたって、ビデオゲームを割り当てる目的で、ビデオゲームの人気のトレンドを識別し、それらのビデオゲームのプレイに対する現在の及び予測される需要を満たすように構成されている。人工知能(例えば、クラウド管理コントローラまたはゲームアロケータ内のAI層)は、ゲームクラウドシステムのデータセンタ(複数可)のラックアセンブリのネットワークストレージ及び/または計算ノードへのビデオゲームの適切な割り当てを決定する目的で、データを分析してゲームのトレンドを識別するように実装され得る。すなわち、AIを使用して、ビデオゲームの人気を決定し、決定した人気に基づいて、ビデオゲームを格納するためのラックアセンブリ及び/または計算ノードの数を決定する。
【0049】
図3は、本開示の一実施形態による、現在の及び新しいビデオゲームをプレイするユーザの現在及び未来の需要を満たすために、ゲームクラウドシステム全体でビデオゲームの割り当てを行うように構成された人工知能モデルを実装するように構成されたシステムの図である。本開示の実施形態では、ビデオゲームの人気を識別するトレンドは、AIモデル160を使用して分類し、アナライザ140を使用して、分析することができ、1つ以上のデータセンタが位置され得るゲームクラウドシステムのラックアセンブリにビデオゲームを割り当てることができるようにする。例示の目的で、
図3は、ゲームアロケータ300の文脈内で説明されているが、
図3のシステム内で実行される動作が
図1、2A、及び2Bのクラウド管理システム210及び/またはゲームアロケータ300によって実行され得ることが理解される。
【0050】
詳細には、ゲームアロケータ300は、ゲームクラウドシステムのデータセンタ(例えば、ネットワークストレージ及び/または計算ノード)全体でビデオゲームの適切な割り当てを提供するように構成され、ゲームクラウドシステムのゲームカタログのビデオゲームに対するユーザの現在の及び予測される需要を満たすようにし、ラックアセンブリは、計算ノードがアクセスするためにネットワークストレージで構成されてもよく、またはネットワークストレージに依存しない多くの個々のコンピュータ及びストレージサーバで構成され得る。一部の実施態様では、1つ以上のデータセンタにわたる、より具体的にはゲームクラウドシステムのラックアセンブリにわたるビデオゲームの分散は、ゲームクラウドシステムがリソースの最も効率的な使用及び/または最適なリソースの使用法を提供することを可能にするように構成され、ゲームクラウドシステムのユーザが要求したビデオゲームへの最も迅速な(例えば、リアルタイムの)アクセスを保証する。
【0051】
詳細には、ゲームアロケータ300のキャプチャエンジン340は、ビデオゲームの人気のトレンドの分類のためにAIモデル160への入力を提供するために、ゲームクラウドネットワークデータ、ネットワークデータ、及び他のデータをキャプチャするように構成され得る。すなわち、キャプチャエンジン340は、ゲームクラウドネットワークのラックアセンブリにわたってビデオゲームを割り当てる方法を決定するために使用され得る任意のデータをキャプチャする、及び/または入力として受信するように構成される。キャプチャされたデータの選択された部分を分析して、ゲームクラウドシステムのラックアセンブリにわたるビデオゲームの適切な割り当てを決定し得る。
【0052】
例えば、キャプチャエンジン340は、ビデオゲームのゲームセッションをユーザに提供するなど、1つ以上のデータセンタを含むゲームクラウドシステム200によって提供されるサービスに関連するデータをキャプチャするように構成される。データは、ビデオゲームの使用状況(例えば、1つ以上のビデオゲームのゲームセッションの履歴)を定義するメトリクス、ゲームクラウドシステム内の計算ノードのシステム状態、ゲームクラウドシステムをサポートするデータセンタのラックアセンブリの各ネットワークストレージのビデオゲームのストレージを含むネットワークストレージの状態を含み得る。ビデオゲームの現在の及び予測される需要を満たすために(例えば、それらのビデオゲームの人気トレンドに基づいて)、ネットワークストレージへのビデオゲームの適切な割り当てを決定するのを支援するのに関連する、さらに他のデータが収集され得る。さらに、データセンタトラッカ343は、ビデオゲームの現在の及び予測される需要を満たすためにビデオゲームの適切な割り当てを決定する目的で、ゲームクラウドシステムからキャプチャされたデータを追跡するように構成される。
【0053】
さらに、キャプチャエンジン340は、様々なソース310a~nからテレメトリデータ315を収集するように構成される。示されるように、テレメトリデータ315のストリームがキャプチャされる。例えば、テレメトリデータは、ソーシャルネットワークプラットフォームデータ(例えば、Twitter、Facebookなど)などのネットワークデータ、ソーシャルメディアデータ、ウェブサイトデータ、メディアデータ、オーディオデータ、音声データ、テキストデータ、メッセージングデータ、キャプチャに適した他の形式のデジタルデータ、及びネットワーク150(例えば、インターネット)を介して受信した他のデータを含み得る。
例えば、ネットワークデータは、任意の通信ネットワーク(例えば、インターネット)を介してアクセスされる、公開されている情報を自動的に収集するために使用されるウェブスクレイピング技術によってキャプチャされ得る。例として、キャプチャされたネットワークデータは、テキストベースのマークアップ言語を使用してフォーマットされ得る。いくつかの実施態様では、ウェブスクレイピング技術は、ウェブサイト及び/またはソーシャルネットワークプラットフォーム、またはネットワークを介してアクセス可能な任意のサービスと通信するために使用されるアプリケーションプログラミングインターフェース(API)を実装する。他の実施態様では、キャプチャエンジン340は、非デジタルデータをキャプチャするように構成される。例えば、データは、マシン及び/または人間によって解析され、デジタル形式に変換されてから、キャプチャエンジン340に入力され得る。
【0054】
特徴抽出器345Aによって識別されたキャプチャされたデータ(例えば、テレメトリデータ315及びゲームクラウドシステムからのデータ305)からの関連する特徴は、深層学習/機械学習エンジン190への入力として提供される。特徴抽出器345Aは、キャプチャされたデータを解析し、データから特徴を識別する、及び/または抽出するように構成され、特徴は、ゲームクラウドシステムのネットワークストレージへのビデオゲームの割り当てでの使用に関連する。例えば、特徴は、パラメータ、時間、ビデオゲーム、ゲーム状態、ゲームセッション、言葉、シンボル、ビデオゲームの人気に関連する関連情報などを含み得る。別の実施形態では、特徴の抽出は、深層/機械学習エンジン190により実行され得る。詳細には、特徴抽出器345Bは、キャプチャされたデータを解析し、データから特徴を識別及び/または抽出するように構成される。すなわち、特徴抽出器345Bはまた、ゲームクラウドシステムのネットワークストレージへのビデオゲームの割り当てに有用であり得る特徴を学習する能力を有する。
【0055】
示されるように、深層/機械学習エンジン190は、データの入力セット(例えば、抽出された特徴)に基づいて、ビデオゲームの人気のトレンドを分類する(例えば、実装段階)実装のために構成されるが、別の段階(例えば、トレーニング段階)でトレーニングのために構成され得る。一実施形態では、AIモデル160は、機械学習を適用してビデオゲームの人気のトレンドを分類するように構成される機械学習モデルである。別の実施形態では、AI学習モデルは、ビデオゲームの人気のトレンドを分類するために深層学習を適用するように構成された深層学習モデルであり、機械学習は人工知能のサブクラスであり、深層学習は機械学習のサブクラスである。
【0056】
純粋に説明目的のためで、深層/機械学習エンジン190は、本開示の一実施形態に従って、AIモデル160を実装するために使用されるニューラルネットワークとして構成され得る。一般に、ニューラルネットワークは、入力(例えば、抽出された特徴)に応答し、出力(例えば、ビデオゲームの人気を示すトレンドの分類)を生成する相互接続されたノードのネットワークを表す。一実施態様では、AIニューラルネットワークは、ノードの階層を含む。例えば、ノードの入力層、ノードの出力層、及びノードの中間層または隠れ層が存在し得る。入力ノードは隠れ層の隠れノードに相互接続され、隠れノードは出力ノードに相互接続される。ノード間の相互接続は、AIモデル160のルールを定義するときなどに、入力と出力の間で複数のノードを一緒にリンクさせ得る数値的な重みを有し得る。
【0057】
特に、AIモデル160は、特徴と出力(例えば、ビデオゲームの人気、ビデオゲームの人気のトレンドなど)との間の関係を定義するルールを適用するように構成されており、特徴は、AIモデル160の1つ以上の階層レベルに位置する1つ以上のノード内で定義され得る。ルールは、階層の層間で特徴(ノードによって定義される)をリンクし、その結果、データの所与の入力セットは、AIモデル160の特定の出力(例えば、トレンド分類350)につながる(例えば、現在を示すトレンド、及び/あるいはビデオゲームの予測される人気)。例えば、ルールは、AIモデル160全体にわたって(例えば、階層レベルにおいて)1つ以上の特徴またはノードを入力と出力との間でリンクさせ得(例えば、重みを含む関係パラメータを使用して)、AIモデル160のトレーニングを通じて学習されるルールを、1つ以上の特徴が作るようにする。つまり、各特徴は、他の層の1つ以上の特徴とリンクされていてもよく、1つ以上の関係パラメータ(例えば、重み)が、AIモデル160の他の層の特徴の間の相互接続を定義する。したがって、各ルールまたはルールセットは、分類された出力に対応する。例えば、AIモデル160のルールに従って結果として生じる出力350は、ビデオゲームの現在の及び/または予測される人気を示すビデオゲームの特定のトレンドを予測し得る。
【0058】
したがって、実装段階の間、AIモデル160は、AIモデル160の構成に基づいて、1つ以上のビデオゲームの人気のトレンドを予測する、及び/または分類するために使用される。すなわち、AIモデル160への入力として提供される抽出された特徴の所与のセットについて、対応するビデオゲームのトレンド分類350は、AIモデルによって出力され得る。
【0059】
さらに、AIモデル160からの出力(例えば、トレンド分類350)は、所与のセットの入力(例えば、抽出された特徴)に対してとるべき一連のアクションを決定するために、アナライザ140によって使用され得る。例えば、アクションは、ゲームカタログ内のビデオゲームをゲームクラウドシステムの1つ以上のデータセンタのラックアセンブリのネットワークストレージに割り当てるための分散パターンを含み得る。
【0060】
具体的には、アナライザ140は、既存または新規のビデオゲームに関する人気のトレンドを発見、確認、及び/または予測するために、トレンド分類350で実行される1つ以上の機能を含み得る。一実施態様では、アナライザ140は、トレンド分析361を実行するように構成される。分析は、ビデオゲームがリリースされた時、ゲームタイトル、任意のフランチャイズ関係、開発者、ビデオゲームをプレイするユーザのタイプ、ユーザの忠誠心など、ゲームセッションの平均持続時間、人口統計など、対応するビデオゲームに関連する関連情報を識別するために実行され得る。この情報は、現在及び近い未来(例えば、その後2~6時間)のビデオゲームの需要を満たすために、ゲームクラウドシステム内のビデオゲームの割り当てを決定する際に有用な場合がある。
【0061】
さらに、アナライザ140は、トレンド予測及び/またはマッチング363を実行するように構成され得る。例えば、ビデオゲームのトレンド分類350は、ビデオゲームの現在の人気を示し得る。トレンド分類及び/または他の関連データ(例えば、トレンド分析361を実行することから提供される情報)のさらなる分析は、人気の持続性を予測するか、または人気が近い未来または遠い未来で上昇するかを予測するか、または未来または遠い未来に人気が低下するかどうかを予測するか、近い未来または遠い未来に人気が安定したままかどうかを予測し得る。
例えば、重要な全国的イベント(例えば、スポーツイベントの観戦、スピーチなど)がその夕方に予定されている場合、全国的イベント(例えば、スポーツイベントの観戦、スピーチなど)に参加するためにユーザがゲームセッションを中止するため、ビデオゲームやその他のビデオゲームの人気は、少なくともイベント前の数時間で低下する可能性があることが予測され得る。さらに、第1のビデオゲームのトレンド分類及び他のデータは、第2のビデオゲームのトレンド分類及び他のデータを厳密にミラーリングし得る。したがって、第1のビデオゲームの経時的な予測される人気は、第2のビデオゲームの経時的な実際の人気と推定される場合がある、及び/または厳密に一致する場合がある。この情報はすべて、現在及び近い未来(例えば、今後2~6時間以内)または遠い未来(今後数日、または数週間、または数ヶ月など)のビデオゲームの需要を満たすために、ゲームクラウドシステム内のビデオゲームの割り当てを決定する際に有用であり得る。
【0062】
さらに、アナライザ140は、履歴トレンド分析365を実行するように構成され得る。例えば、履歴トレンド分析を使用して、履歴パターンに基づいて未来のビデオゲームの使用状況を予測し得る。その場合、ビデオゲームの新しいバージョンの新しいリリースの人気は、ビデオゲームの以前のバージョンの実際の人気に続くか、またはそれと密接に一致する場合がある。例えば、非常に人気のあるビデオゲームフランチャイズでは、後のリリースの人気は、前のリリースと同じであるか、またはそれ以上の人気を得る。この情報は、現在及び近い未来(例えば、今後2~6時間以内)または遠い未来(今後数日、または数週間、または数ヶ月など)のビデオゲームの需要を満たすために、ゲームクラウドシステム全体でビデオゲームの割り当てを決定する際に有用であり得る。
【0063】
また、アナライザ140は、アクション生成器370により追加の応答(例えば、アクション)を実行するように構成され得る。詳細には、アナライザ140は、ゲームクラウドシステムでビデオゲームを割り当てるための分散パターンを決定するために、パターン生成367を実行するように構成され得る。例えば、アナライザは、トレンド分類350、トレンド分析361から取得された情報、トレンド予測及び/またはマッチング363から取得された情報、及び履歴トレンド分析365から取得された情報のうちの1つ以上に基づいて、割り当てパターンを決定し得る。
【0064】
一実施形態では、アクション生成器370は、ラック分散器373を含み、ラック分散器373は、ゲームクラウドシステムの1つ以上のデータセンタのラックアセンブリのネットワークストレージにビデオゲームを割り当てるために、ビデオゲームを割り当てるように構成される。すなわち、パターン生成367によって決定されたパターンに基づいて、クラウド管理コントローラは、対応するビデオゲームを1つ以上の対応するラックアセンブリのネットワークストレージにロードするための命令を送信してよく、ラックアセンブリは、ゲームクラウドシステムの1つ以上のデータセンタに位置し得る。したがって、対応するビデオゲームの現在及び/または人気を示すトレンドに基づいて、そのビデオゲームの分散は、そのビデオゲームをプレイする現在の及び/または予測される需要を満たすように割り当てられ得る。このビデオゲーム割り当ては、AIモデル160から出力されている対応するトレンド分類を有するビデオゲームごとに実行され得る。
【0065】
別の実施形態では、アクション生成器370は、ビデオゲームノードプリローダ375を含み、ビデオゲームノードプリローダ375は、対応するビデオゲームを1つ以上の計算ノードにロードするように構成されることで、そのビデオゲームのプレイを要求する任意の新規ユーザに計算ノードを容易に割り当てることができる。ノードへのビデオゲームのプリロードは、ユーザによるそのビデオゲームのプレイの現在の及び/または予測される需要に対応し得るビデオゲームの現在の及び/または予測される人気を示すトレンド分類に基づいて実行される。計算ノードにビデオゲームをプリロードすることにより、新しいユーザは、そのユーザに割り当てられた計算ノードにビデオゲームがロードされるのを待つ必要がない。ビデオゲームは、より複雑になると、そのビデオゲームに必要なすべてのパッケージを計算ノードにダウンロードするために、このロード時間が重大になる(例えば、10~20分)場合がある。そのようにして、プリロードは、ユーザが、ゲームがロードされるのを待たずに、すぐにビデオゲームをプレイすることを可能にする。
【0066】
図1、2A、2B、及び3のシステム100、データセンタ200A及び200B、ならびにゲームアロケータ300の様々なモジュールの詳細な説明により、フロー
図400は、本開示の一実施形態による、現在の及び新しいビデオゲームをプレイするユーザの現在及び未来の需要を満たすために、ゲームクラウドシステム全体でビデオゲームを割り当てるための方法を開示する。詳細には、フロー
図400は、ビデオゲームの人気に基づいて、ゲームクラウドシステムのデータセンタ(例えば、ネットワークストレージ)全体でビデオゲームの適切な割り当てを提供するために実装され得る。
例えば、ビデオゲームの人気は、ビデオゲームの使用状況、ゲームクラウドシステムの計算ノードのシステム状態を監視し、使用の履歴パターンに基づいて現在の未来のビデオゲームの使用量を予測し、人工知能を使用してゲームクラウドシステム及びネットワークデータ(例えば、ソーシャルメディア、ウェブサイト、様々な形態のメディアなどからのデータをスクレイピング)からキャプチャされたデータを分析して、既存または新規のビデオゲームの人気のトレンドを発見及び/または予測することによって決定され得る。フロー
図400は、上述の、バックエンドサーバ内(例えば、クラウド管理コントローラ210のゲームクラウドシステム200及び/または深層及び/または機械学習エンジン190と組み合わせたゲームアロケータ300内)で実施され得る。
【0067】
410で、方法は、計算ノードの監視を含む、データセンタの複数の計算ノードの状態を追跡することを含む。計算ノードは、複数のラックアセンブリにわたって分散され、ラックアセンブリは、ビデオゲームカタログのビデオゲームへのアクセスを提供するゲームクラウドシステムの1つ以上のデータセンタ内で構成され得る。例えば、ゲームクラウドシステムは、計算ノードでビデオゲームを実行して、それらのビデオゲームをプレイするユーザにゲームセッションを提供するように構成され得る。
【0068】
一実施形態では、追跡は、複数の計算ノードの各々の使用状況(例えば、アクティブまたは非アクティブ)を追跡することを含む。例えば、情報は、対応する計算ノードがアクティブであるか非アクティブであるか、ビデオゲームが対応する計算ノードにロードされるかどうか、対応する計算ノードに割り当てられたユーザとのゲームセッションをサポートするためにゲームセッションがアクティブに実行されているかどうかを含み得る。さらに、追跡は、ゲームクラウドシステム内の計算ノードの数、ゲームセッションをアクティブにサポートしているアクティブな計算ノードの数、対応するビデオゲームをプレイすることを要求する新規ユーザに割り当てることができる利用可能な計算ノードの数を含む、クラウドゲームサーバまたは計算ノードのインベントリの追跡を含む。追跡は、計算ノードの現在の及び/または履歴(例えば、過去)の使用状況を追跡することを含んでもよい。
【0069】
また、追跡は、ゲームクラウドシステムの1つ以上のラックアセンブリ内のラックアセンブリの複数のネットワークストレージにわたるビデオゲームのカタログのビデオゲームの分散の追跡を含み得る。ネットワークストレージは限られているため、各ネットワークストレージ(例えば、対応するラックアセンブリのもの)は、特にネットワークストレージの高速アクセスが重要視される場合(すなわち、高速ストレージがネットワークストレージのコストの増加が必要となり、ネットワークストレージのサイズが制限される可能性がある場合)、ビデオゲームの完全なカタログを格納できない場合がある。また、ビデオゲームのカタログの全てのビデオゲームがネットワークストレージにロードされるわけではない。例えば、古いビデオゲームは、ゲームセッションの需要が少ない場合があり、特定の時点では、需要がない場合がありビデオゲームをロードしているストレージサーバがないか、または最小限の数のストレージサーバ(例えば、1~3)がビデオゲームをロードしている。一方、ビデオゲームのカタログの非常に人気のあるビデオゲームは、ゲームクラウドシステムの1つ以上のデータセンタ内の各ネットワークストレージにロードされ得る。
【0070】
420で、方法は、ゲームクラウドシステムによってサポートされるビデオゲームのカタログ内の複数のビデオゲームの人気を追跡することを含む。より具体的には、人気評価を追跡可能であり、評価は、対応するビデオゲームについての人気の程度を示す。いくつかの実施態様では、ビデオゲームの人気評価は、ビデオゲームのプレイを要求するユーザによるゲームセッションの需要に対応し得る。すなわち、人気評価が増加するにつれて(すなわち、ビデオゲームの人気が向上していることを示す)、ゲームクラウドシステムのユーザが要求するゲームセッションがそれに対応して増加する。一実施形態では、人気評価は、ゲームクラウドシステム内の対応するビデオゲームのゲームセッションを追跡して、現在の人気及び/または予測される人気を決定することによって追跡され、ゲームセッションは、ゲームクラウドシステムの対応する計算ノードによって処理される。
【0071】
他の実施形態では、前述のように、人気の追跡は、ゲームクラウドシステム(例えば、ゲームセッション)から取得された情報、及び/またはソーシャルネットワークプラットフォーム、ウェブサイト、メディアサイト、メディアアウトレットなどからキャプチャされたデータを含むネットワークデータの収集及び/または追跡を含み得る。他の非デジタル形式のデータをキャプチャしてもよく、及び/または追跡してもよい。
【0072】
いくつかの実施形態では、人気の追跡は、ビデオゲームの現在の人気及び/または予測される人気を示すトレンドを決定することを含む。説明のために、キャプチャされた、及び/または追跡された情報に基づいて(例えば、ゲームクラウドシステムの1つ以上のデータセンタの計算ノードにわたってビデオゲームの1つ以上のゲームセッションを追跡する)、人気(例えば、現在の人気または近い未来または遠い未来での予測される人気)を示すトレンドが決定され得る。一実施形態では、トレンドは、ビデオゲームの人気評価に対応し得る。例えば、トレンドは、ビデオゲームの人気評価の増加を示し得る。トレンドは、追跡されるビデオゲームの1つ以上のゲームセッションに基づいて決定されてもよく、人気評価は、そのビデオゲームについてのゲームセッションの需要の増加に対応してもよい。トレンドはまた、前述のように、キャプチャ及び追跡される他の情報に基づいて決定され得る。また、トレンドは、ビデオゲームの人気評価の減少を示すことができ、これは、そのビデオゲームについてのゲームセッションの需要の減少に対応し得る。
【0073】
本開示のいくつかの実施形態では、人工知能は、ゲームカタログ内のビデオゲームの人気を追跡及び/または決定するために実装される。決定した人気に基づいて、ルール及び/またはAIのさらなるアプリケーションを実装して、ゲームクラウドシステムの1つ以上のデータセンタの(例えば、対応するネットワークストレージ内の)ラックアセンブリにわたるビデオゲームの最適な分散を決定及び/またはスケジュールし、それらのビデオゲームの現在の及び/または予測される需要を満たすようにし得る。
【0074】
前述のように、AIを使用して、ゲームクラウドシステムによってサポートされるビデオゲームのカタログ内のビデオゲームの人気を決定及び/または追跡することができる。例えば、ゲームアロケータ300及び/またはクラウド管理システム210は、AIを使用してビデオゲームの人気を決定及び/または追跡するように構成され得る。これらの結果を使用して、さらなるアクション(例えば、ルールまたはAIの追加のアプリケーションを通じて決定される)を取り、これらのビデオゲームの人気に基づいて、ゲームクラウドシステムの1つ以上のデータセンタのラックアセンブリにわたるビデオゲームの最適な分散をスケジュールする。例えば、人気のあるビデオゲームは、そのビデオゲームのゲームセッションをサポートする計算ノードによるアクセスのために、そのビデオゲームをロードするラックアセンブリの数が増加する場合がある。一方、ビデオゲームの人気が低くなると、そのビデオゲームをロードするラックアセンブリの数が減少する場合がある。
【0075】
詳細には、ゲームクラウドシステムからのデータ(例えば、ビデオゲームのゲームセッション)及び/またはネットワークを介してキャプチャされたテレメトリデータ(例えば、1つ以上のネットワークを介して(例えば、APIを使用して)アクセス可能な複数のサイト、ソーシャルネットワークプラットフォームなどからスクレイピングされたデータが、関連する特徴を抽出するためにキャプチャ及び解析され得る。それらの特徴は、対応するビデオゲーム、及び対応するゲームクラウドシステムによってサポートされるビデオゲームのカタログ内の各ビデオゲームの人気のトレンドを分類するように構成されるAIモデルを実装する深層学習及び/または機械学習エンジンに入力される。すなわち、AIモデルは、特徴に基づいてビデオゲームのトレンドを分類するように構成される(例えば、AIモデルはトレンドを出力として提供する)。トレンドは、ビデオゲームの現在の及び/または予測される人気を示し得る。より具体的には、トレンドは、ビデオゲームの人気評価を示す。例えば、トレンドは、ビデオゲームの人気(及び対応する人気評価)が増加していることを示すことができ、それにより、人気評価は、ゲームクラウドシステムのビデオゲームのゲームセッションの需要の増加に対応する。また、トレンドは、ビデオゲームの人気(及び対応する人気評価)が減少していることを示すことができ、それにより、人気評価は、ゲームクラウドシステムのビデオゲームのゲームセッションの需要の減少に対応する。
【0076】
430において、方法は、複数のビデオゲームの複数の人気評価に基づいて、複数のラックアセンブリにわたる複数のビデオゲームからの1つ以上のビデオゲームの分散を決定することを含む。詳細には、ゲームクラウドシステムの1つ以上のデータセンタ内のラックアセンブリのネットワークストレージへのビデオゲームの割り当ては、これらのビデオゲームの人気を示す決定されたトレンドに基づいて、1つ以上のビデオゲームに対する現在の及び予測されるユーザの需要を満たすために実行される。例えば、対応するビデオゲームについて、決定されたトレンドに基づいて(例えば、AIによって決定)、割り当ては、トレンドが人気の上昇を示しているとき、そのビデオゲームをロード及び/または格納するよう構成されるネットワークストレージサーバ及び対応するラックアセンブリの数の増加を示し得るか、または割り当ては、人気の低下を示すトレンドにあるとき、そのビデオゲームをロード及び/または格納するように構成されたネットワークストレージサーバと対応するラックアセンブリの数の減少を示し得る。
【0077】
結果として、ゲームクラウドシステムのネットワークストレージへのビデオゲームの割り当てを示す分散パターンは、1つ以上のデータセンタ内の各ラックアセンブリには、最も人気のあるビデオゲーム(例えば、現在最も話題のビデオゲーム)がロードされるべきで、1つまたは2つのラックアセンブリのみに、あまり人気のないビデオゲーム(古めのビデオゲームなど)をロードするべきであることを指示することができる。前述のように、ビデオゲームのカタログ全体が、ラックアセンブリのネットワークストレージとは別の分散ストレージに格納される。さらに他のビデオゲームは、その人気評価に基づいて選択された数及び/または決定された数のラックアセンブリにロードされ得る。したがって、需要がある、または需要があると予測されるビデオゲームは、ネットワークストレージにロードされるが、残りのビデオゲームは、それらのビデオゲームの需要が増加したときにネットワークストレージにダウンロードするために、分散ストレージに格納される。
【0078】
440において、方法は、決定された1つ以上のビデオゲームの分散に基づいて、複数のラックアセンブリにわたるゲームカタログに複数のビデオゲームからの1つ以上のビデオゲームを格納することを含む。そのようにして、ビデオゲームの適切な割り当てにより、現在の及び/または新しいビデオゲームのゲームセッションに対する現在及び未来の需要が、ゲームクラウドシステムによってサポートされ得ることが保証される。例えば、人気のあるビデオゲームを適切に割り当てることで、そのビデオゲームを要求する全てのユーザが、そのビデオゲームのゲームセッションを実行する計算ノードに割り当てられることが保証される。また、人気の低いビデオゲームを適切に割り当てることで、そのビデオゲームへのリソースの過剰な割り当てを防止すると同時に、そのビデオゲームを要求するユーザが、そのビデオゲーム用に確立されたゲームセッションを実行する計算ノードに割り当てられ得ることを確実にする。そのようにして、あまり人気のないビデオゲームコンピューティングリソース(例えば、ネットワークストレージ)を過剰にプロビジョニングしないことにより、他のより人気のあるビデオゲームを処理するために利用可能なままであり得る。
【0079】
一実施形態では、分類された及び/または識別されたトレンド及び後続のビデオゲームの割り当ては、無名のビデオゲームタイトルが突然流行する(すなわち、非常に短い期間でますます人気が高まる)場合に、追加のラックアセンブリを確実に配置するために実行され、データセンタは、そのビデオゲームタイトルをプレイするユーザによる需要の急上昇を満たすために、そのビデオゲームタイトルをロードする。これにより、対応する非強調化されるビデオゲームをサポートするラックアセンブリの数が減少するように、一部のビデオゲームをラックアセンブリから除去することによってそれら一部のビデオゲームを非強調化することが必要となる場合もある。ネットワークストレージで回復したスペースは、流行ると予測される、または流行ると特定されたビデオゲームをロードするために使用できる。
【0080】
別の実施態様では、人工知能は、ビデオゲームの需要の増加を予測するために実装され得る。例えば、ビデオゲームのアクティブなゲームセッションを、ゲームクラウドシステムの複数の計算ノードにわたって追跡して、ビデオゲームの人気を示すトレンドを決定することができる。このトレンドはまた、ビデオゲームのゲームセッションの需要が高い未来の期間を予測し得る。そのようにして、ビデオゲームは、ビデオゲームをプレイしたいユーザによる高い需要をサポートするために、増加している数のラックアセンブリにわたってロードされ得る。
【0081】
別の実施態様では、ビデオゲームの人気は、決定され、及び/または関連するビデオゲームの人気にマッチングされ得る。すなわち、第2のビデオゲームの需要は、第1のビデオゲームの需要から推測され得る。例えば、第2のビデオゲームは、ビデオゲームフランチャイズの新しいバージョンであってよい。第2のビデオゲーム(新たなリリース)は、以前の人気の追跡に基づいて、フランチャイズ内の最後にリリースされたビデオゲームまたは第1のビデオゲーム以上ではないものの、同程度に実行される(例えば、同じ程度の人気がある)ことが予測される。
より具体的には、第1のビデオゲームの第1の人気評価の第1の履歴は、第1のビデオゲームの存在期間の少なくとも一部分について、データセンタ内の複数の計算ノードにわたって追跡される。その第1のビデオゲームについて第1のトレンドが決定され、第1のトレンドは、第1のビデオゲームの第1の人気評価が、第1のビデオゲームの存在期間の一部において第1の期間にわたって増加していることを示し得る。第1の数のラックアセンブリは、以前にまたは新たに決定され、第1の履歴に示されるように、第1のトレンドに基づいて第1のビデオゲームを格納するように構成され得る。
その後、第2の期間にわたる第2のビデオゲームの第2の人気評価が第1のビデオゲームの第1のトレンドと同様になることを示す第2のトレンドが、決定され得る。例えば、2つのトレンドがAIモデルを介して実装されるマッチングパラメータを有してもよく、または第1のビデオゲーム及び第2のビデオゲームがビデオゲームフランチャイズの一部分であってもよく、前のリリース以上ではないにしても、後続のリリースも同様に人気が出ると推測できる。そのようにして、第2のビデオゲームを格納するための適切なラックアセンブリの数(例えば、第2の数のラックアセンブリ)は、第2のトレンドに基づいて決定でき、第2の数のラックアセンブリは、第1のビデオゲームのゲームセッションをサポートするべく使用される第1の数とほぼ同じである。
【0082】
さらに別の実施形態では、AIは、ゲームクラウドデータ及び/またはネットワークデータなどのキャプチャ及び追跡に基づいて、ビデオゲームの人気評価が増加していることを示すトレンドを識別するために実装され、トレンドは、AIまたはルールの実装によって決定され得る。ユーザの要求を満たし、ユーザにビデオゲームへのリアルタイムのアクセスを提供するために(すなわち、ビデオゲームのゲームセッションを要求した直後、またはすぐ後にビデオゲームをプレイする)、ビデオゲームは、ラックアセンブリのネットワークストレージ(すなわち、そのラックアセンブリのノードを計算するためにビデオゲームにすぐにアクセスできるようにする)にロードでき、かつ、ラックアセンブリの計算ノードにプリロードできる。
そのようにして、ゲームセッションを要求するユーザは、ビデオゲームがプリロードされている計算ノードに直ちに割り当てられ得る。ロード時間においては、ネットワークストレージから計算ノードにビデオゲームをロードする必要があり、これには数分またはそれ以上かかる場合があるが、ユーザは、このロード時間のために待機する必要はない。ビデオゲームは、ラックアセンブリの1つ以上の計算ノードにプリロードされてよく、また、複数のラックアセンブリのネットワークストレージにロード可能で、その後、複数のラックアセンブリの複数の計算ノードに順番にプリロードでき、ビデオゲームの予測される需要を満たすことが理解される。
【0083】
図5は、本開示の様々な実施形態の態様を実行するために使用することができる、例示的なデバイス500の構成要素を示す。例えば、
図5は、本開示の実施形態による、現在の及び新しいビデオゲームをプレイするユーザの現在及び未来の需要を満たすために、ゲームクラウドシステムのデータセンタ全体でビデオゲームの割り当てを提供するのに適した例示的なハードウェアシステムを示す。このブロック図は、各々が本発明の実施形態を実施するために適した、パーソナルコンピュータ、サーバコンピュータ、ゲーム機、モバイル機器、または他のデジタルデバイスを組み込むことができる、またはそれらである場合があるデバイス500を示す。デバイス500は、ソフトウェアアプリケーション及び任意選択でオペレーティングシステムを実行するための中央演算処理装置(CPU)502を含む。CPU502は、1つ以上の同種または異種の処理コアで構成され得る。
【0084】
様々な実施形態によれば、CPU502は、1つ以上の処理コアを有する1つ以上の汎用マイクロプロセッサである。さらなる実施形態を、ゲームの実行中にグラフィックス処理を行うように構成されたアプリケーションの高並列で計算集約型のアプリケーション(例えば、媒体及びインタラクティブエンターテインメントアプリケーション)に具体的に適応されたマイクロプロセッサアーキテクチャを伴う1つ以上のCPUを用いて実施することができる。
【0085】
メモリ504は、CPU502及びGPU516が使用するアプリケーション及びデータを記憶する。ストレージ506は、アプリケーション及びデータ用の不揮発性ストレージ及び他のコンピュータ可読媒体を提供し、かつ、固定ディスクドライブ、取り外し可能ディスクドライブ、フラッシュメモリデバイス、及びCD-ROM、DVD-ROM、Blu-ray(登録商標)、HD-DVD、または他の光学記憶デバイス、ならびに信号伝送及び記憶媒体を含み得る。
ユーザ入力デバイス508は、1人以上のユーザからのユーザ入力をデバイス500に伝達するものであり、その例としては、キーボード、マウス、ジョイスティック、タッチパッド、タッチスクリーン、スチルまたはビデオレコーダ/カメラ、及び/またはマイクロフォンがあり得る。ネットワークインターフェース509は、デバイス500が電子通信ネットワークを介して他のコンピュータシステムと通信することを可能にし、ローカルエリアネットワーク、及びインターネットなどの広域ネットワークにわたる有線通信または無線通信を含み得る。オーディオプロセッサ512は、CPU502、メモリ504、及び/またはストレージ506により提供される命令及び/またはデータから、アナログまたはデジタルのオーディオ出力を生成するように適合される。CPU502、GPU516を含むグラフィックスサブシステム、メモリ504、データストレージ506、ユーザ入力デバイス508、ネットワークインターフェース509、及びオーディオプロセッサ512を含むデバイス500の構成要素は、1つ以上のデータバス522を介して接続される。
【0086】
グラフィックサブシステム514が、データバス522及びデバイス500の構成要素とさらに接続されている。グラフィックサブシステム514は、少なくとも1つのグラフィック処理ユニット(GPU)516とグラフィックメモリ518とを含む。グラフィックメモリ518は、出力画像の各ピクセルに対するピクセルデータを記憶するために用いるディスプレイメモリ(例えば、フレームバッファ)を含む。グラフィックメモリ518は、GPU516と同じデバイスに統合されてもよく、GPU516と別個のデバイスとして接続されてもよく、及び/またはメモリ504内に実装されてもよい。画素データは、CPU502から直接グラフィックメモリ518に提供することができる。
あるいは、CPU502は、所望の出力画像を定義するデータ及び/または命令をGPU516に提供し、これを基に、GPU516は、1つ以上の出力画像の画素データを生成する。所望の出力画像を定義するデータ及び/または命令は、メモリ504及び/またはグラフィックメモリ518に記憶することができる。実施形態では、GPU516は、シーンの幾何学的構造、照明、陰影、質感、モーション、及び/またはカメラのパラメータを定義する命令及びデータから、出力画像の画素データを生成する3Dレンダリング機能を含む。GPU516はさらに、シェーダプログラムを実行することができる1つ以上のプログラム可能実行ユニットを含み得る。
【0087】
グラフィックサブシステム514は、ディスプレイデバイス510に表示されるように、または投影システム(図示せず)によって投影されるように、グラフィックメモリ518から画像用の画素データを定期的に出力する。ディスプレイデバイス510は、デバイス500からの信号に応じて視覚情報を表示することができる任意のデバイスであってもよく、これにはCRT、LCD、プラズマ、及びOLEDディスプレイが含まれる。デバイス500は、ディスプレイデバイス510に、例えばアナログ信号またはデジタル信号を提供することができる。
【0088】
他の実施形態では、グラフィックスサブシステム514は複数のGPUデバイスを含んでいる。これらは、対応するCPU上で実行されている単一アプリケーションに対するグラフィックス処理を実行するために結合される。例えば、複数のGPUは、画像フレームに対するオブジェクトをレンダリングする前にスクリーン領域(交互配置され得る)に対してジオメトリを事前テストすることによって、アプリケーションに対するジオメトリのマルチGPUレンダリングを実行することができる。
他の例では、複数のGPUは交互形式のフレームレンダリングを実行することができる。ここでは、GPU1が第1のフレームをレンダリングし、GPU2が第2のフレームをレンダリングして、これを連続的なフレーム周期で行うことなどを、最後のGPUに達するまで続ける。その上で、最初のGPUが次のビデオフレームをレンダリングする(例えば、2つのGPUのみが存在する場合には、GPU1が第3のフレームをレンダリングする)。すなわち、フレームをレンダリングするときにGPUが回転する。レンダリング操作は重複する可能性があり、GPU1が第1のフレームのレンダリングを終了する前に、GPU2が第2のフレームのレンダリングを開始し得る。
別の実施態様では、レンダリング及び/またはグラフィックスパイプラインでの異なるシェーダ操作を複数のGPUデバイスに割り当てることができる。マスタGPUが主なレンダリング及び合成を行っている。例えば、3つのGPUを含むグループでは、マスタGPU1は、メインレンダリング(例えば、第1のシェーダ操作)と、スレーブGPU2及びスレーブGPU3からの出力の合成とを実行することができ、スレーブGPU2は、第2のシェーダ(例えば、川などの流体効果)操作を実行することができ、スレーブGPU3は、第3のシェーダ(例えば、粒子噴霧)操作を実行することができ、マスタGPU1は、GPU1、GPU2、及びGPU3のそれぞれからの結果を合成する。
そのようにして、様々なGPUを割り当てて、様々なシェーダ操作(例えば、フラグ立ち、風、噴霧、火など)を実行して、ビデオフレームをレンダリングすることができる。さらに別の実施形態では、3つのGPUのそれぞれを、ビデオフレームに対応するシーンの異なるオブジェクト及び/または部分に割り当てることができる。前述の実施形態及び実施態様では、これらの動作を同じフレーム周期(同時に並列)でまたは異なるフレーム周期(順次に並列)で行うことができる。
【0089】
したがって、本開示は、現在の及び新しいビデオゲームをプレイするユーザの現在及び未来の需要を満たすために、ゲームクラウドシステム全体でビデオゲームを割り当てるように構成された方法及びシステムを説明する。
【0090】
本明細書で定義される様々な実施形態は、本明細書で開示される様々な特徴を使用する特定の実施態様に組み合わされてもよく、または組み立てられてもよいことを、理解されたい。したがって、提供される例は、可能な例の一部にすぎず、様々な要素を組み合わせて、より多くの実施態様を規定することによって可能である様々な実施態様に制限を加えるものではない。一部の例では、一部の実施態様は、開示されたまたは同等の実施態様の趣旨から逸脱することなく、より少ない要素を含んでもよい。
【0091】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースもしくはプログラム可能な家庭用電化製品、ミニコンピュータ、及びメインフレームコンピュータなどを含む様々なコンピュータシステム構成で実践され得る。本開示の実施形態はまた、有線ベースネットワークまたは無線ネットワークを介してリンクされる遠隔処理デバイスによりタスクが行われる分散コンピューティング環境においても、実施することができる。
【0092】
前述の実施形態を念頭において、当然のことながら、本開示の実施形態は、コンピュータシステムに記憶されたデータを伴う種々のコンピュータ実装動作を用いることができる。これらの動作は、物理量の物理的操作を必要とする動作である。本開示の実施形態の一部を形成する、本明細書で説明される動作のうちのいずれも、有用な機械動作である。また本開示の実施形態は、これらの動作を行うためのデバイスまたは装置に関する。装置は必要な目的に対して特別に構成することもできるし、または装置を、コンピュータに記憶されたコンピュータプログラムによって選択的に作動または構成される汎用コンピュータとすることもできる。詳細には、本明細書の教示にしたがって書かれたコンピュータプログラムと共に様々な汎用マシンを使用することができる。または、必要な動作を実行するためにさらに特化した装置を構築するほうがより好都合な場合もある。
【0093】
また本開示を、コンピュータ可読媒体上のコンピュータ可読コードとして具体化することができる。コンピュータ可読媒体は、データを記憶することができる任意のデータ記憶装置とすることができる。データはその後にコンピュータシステムによって読み取ることができる。コンピュータ可読媒体の例は、ハードドライブ、ネットワーク接続ストレージ(NAS)、読み出し専用メモリ、ランダムアクセスメモリ、CD-ROM、CD-R、CD-RW、磁気テープ、ならびに他の光学及び非光学データストレージデバイスを含む。コンピュータ可読媒体には、コンピュータ可読コードが分散方式で格納され実行されるように、ネットワーク接続されたコンピュータシステムにわたり分散されたコンピュータ可読有形媒体が含まれ得る。
【0094】
方法動作が特定の順序で説明されたが、他のハウスキーピング操作が動作の間に実行されてもよく、または動作が、わずかに異なる時刻に生じるように調整されてもよく、もしくはオーバーレイ動作の処理が所望の手法で実行される限り、処理に関連する様々な間隔で処理動作の発生を可能にするシステム内に分散され得ることが理解されるべきである。
【0095】
前述の開示は、理解を明確にするためにある程度詳細に説明されたが、添付の特許請求の範囲内で特定の変更及び修正を実施できることは明らかであろう。したがって、本実施形態は、限定ではなく例示としてみなされるべきであり、本開示の実施形態は、本明細書に提供される詳細に限定されるものではなく、添付の特許請求の範囲内及び均等物内で変更され得る。
【手続補正書】
【提出日】2024-08-07
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
データセンタの複数の計算ノードの状態を追跡し、前記複数の計算ノードは複数のラックアセンブリにわたって分散されており、
複数のビデオゲームの複数の人気評価を追跡し、
前記データセンタの外部から収集されたネットワークデータに基づいて前記複数のビデオゲームの前記複数の人気評価を追跡し、追跡される前記複数の人気評価のそれぞれは、対応するビデオゲームに対する一般人口の関心度を示し、前記ネットワークデータは、少なくとも1つのアプリケーションプログラミングインタフェースを使用してアクセスされるソーシャルネットワークプラットフォームデータを含み、
前記複数のビデオゲームの前記複数の人気評価に基づいて、前記複数のラックアセンブリにわたる前記複数のビデオゲームからの1つ以上のビデオゲームの分散を決定し、
決定された前記1つ以上のビデオゲームの前記分散に基づいて、前記複数のラックアセンブリにわたる前記複数のビデオゲームからの前記1つ以上のビデオゲームを格納
し、
前記複数の人気評価の前記追跡では、
1つ以上のネットワークを介してアクセス可能な複数のサイトからテレメトリデータを受信し、
前記テレメトリデータから複数の特徴を抽出し、
前記複数の特徴に基づいてビデオゲームのトレンドを分類し、前記トレンドは、増加している前記ビデオゲームの人気評価を示し、前記人気評価は前記ビデオゲームの複数のゲームセッションの需要に対応し、
前記トレンドに基づいて前記ビデオゲームを格納するための前記複数のラックアセンブリのうちのラックアセンブリの数を増加させることを含む、方法。
【請求項2】
前記複数の計算ノードの前記状態の前記追跡では、
前記複数の計算ノードのそれぞれの使用状況を追跡し、
前記複数のラックアセンブリの複数のネットワークストレージにわたる前記複数のビデオゲームの分散を追跡する、請求項1に記載の方法。
【請求項3】
さらに、人工知能を使用して
前記ビデオゲームの
前記人気評価
に関連する前記トレンドを決定し、
前記トレンドに基づいて前記ビデオゲームを格納するためのラックアセンブリの数を決定する、請求項1に記載の方法。
【請求項4】
前記複数の人気評価の前記追跡では、
前記データセンタの前記複数の計算ノードにわたって前記複数のビデオゲームのそれぞれの1つ以上のゲームセッションを追跡する、請求項1に記載の方法。
【請求項5】
さらに、前記データセンタの前記複数の計算ノードにわたって
前記ビデオゲームの1つ以上のゲームセッションを追跡し、
追跡される前記ビデオゲームの前記1つ以上のゲームセッションに基づいて前記ビデオゲームの
前記人気評価が増加していることを示す
前記トレンドを、追跡される前記ビデオゲームの前記1つ以上のゲームセッションに基づいて識別し、前記人気評価は、前記ビデオゲームの
前記複数のゲームセッションの
前記需要に対応
する、請求項
4に記載の方法。
【請求項6】
前記データセンタの前記複数の計算ノードにわたって
前記ビデオゲームの
前記複数のゲームセッションを追跡し、
前記ビデオゲームの
前記複数のゲームセッションの高い需要の期間を予測し、
前記期間の間に、前記高い需要をサポートするための前記複数のラックアセンブリのうちのラックアセンブリの数にわたり前記ビデオゲームをロードする、請求項
4に記載の方法。
【請求項7】
第1のビデオゲームの存在期間の一部について、前記データセンタの前記複数の計算ノードにわたって
前記第1のビデオゲームの第1の人気評価の第1の履歴を追跡し、
前記第1のビデオゲームの
前記第1の人気評価が前記第1のビデオゲームの前記存在期間の前記一部で第1の期間にわたって増加していることを示す前記第1の履歴における第1のトレンドを決定し、
前記第1のトレンドに基づいて前記第1のビデオゲームを格納するための第1の数のラックアセンブリを決定し、
第2の期間にわたる第2のビデオゲームの第2の人気評価が前記第1のビデオゲームの前記第1のトレンドと同様になることを示す第2のトレンドを予測し、
前記第2のトレンドに基づいて前記第2のビデオゲームを格納するための第2の数のラックアセンブリをロードし、前記第2の数
のラックアセンブリは前記第1の数
のラックアセンブリとほぼ同じ
数である、請求項1に記載の方法。
【請求項8】
さらに、前記複数のビデオゲームの前記複数の
前記人気評価の前記追跡に基づいて、
前記ビデオゲームの
前記人気評価が上昇していることを示す
前記トレンドを識別し、
前記トレンドに基づいて新しいゲームセッションのために前記複数の計算ノードのうちの1つ以上の計算ノードに前記ビデオゲームをプリロードする、請求項1に記載の方法。
【請求項9】
方法を実行するためのコンピュータプログラムを格納する
コンピュータ可読媒体であって、
前記コンピュータ可読媒体は、
データセンタの複数の計算ノードの状態を追跡するためのプログラム命令を有し、前記複数の計算ノードは複数のラックアセンブリにわたって分散されており、
前記データセンタの外部から収集されたネットワークデータに基づいて複数のビデオゲームの複数の人気評価を追跡するためのプログラム命令を有し、追跡される前記複数の人気評価のそれぞれは、対応するビデオゲームに対する一般人口の関心度を示し、前記ネットワークデータは、少なくとも1つのアプリケーションプログラミングインタフェースを使用してアクセスされるソーシャルネットワークプラットフォームデータを含み、
前記複数のビデオゲームの前記複数の人気評価に基づいて、前記複数のラックアセンブリにわたる前記複数のビデオゲームからの1つ以上のビデオゲームの分散を決定するためのプログラム命令を有し、
決定された前記1つ以上のビデオゲームの前記分散に基づいて、前記複数のラックアセンブリにわたる前記複数のビデオゲームからの前記1つ以上のビデオゲームを格納するためのプログラム命令を有
し、
前記複数の人気評価を追跡する前記プログラム命令は、
1つ以上のネットワークを介してアクセス可能な複数のサイトからテレメトリデータを受信し、
前記テレメトリデータから複数の特徴を抽出するプログラム命令を有し、
前記複数の特徴に基づいてビデオゲームのトレンドを分類するプログラム命令を有し、前記トレンドは、増加している前記ビデオゲームの人気評価を示し、前記人気評価は前記ビデオゲームの複数のゲームセッションの需要に対応し、
前記トレンドに基づいて前記ビデオゲームを格納するための前記複数のラックアセンブリのうちのラックアセンブリの数を増加させるプログラム命令を含む、コンピュータ可読媒体。
【請求項10】
前記複数の計算ノードの前記状態を追跡するための前記プログラム命令は、
前記複数の計算ノードのそれぞれの使用状況を追跡するためのプログラム命令と、
前記複数のラックアセンブリの複数のネットワークストレージにわたる前記複数のビデオゲームの分散を追跡するためのプログラム命令とを含む、請求項
9に記載のコンピュータ可読媒体。
【請求項11】
前記ビデオゲームの
前記人気評価
に関連する前記トレンドを決定するために人工知能を使用するためのプログラム命令と、
前記トレンドに基づいて前記ビデオゲームを格納するためのラックアセンブリの数を決定するためのプログラム命令と、をさらに含む、請求項
9に記載のコンピュータ可読媒体。
【請求項12】
さらに、前記データセンタの前記複数の計算ノードにわたって
前記ビデオゲームの1つ以上のゲームセッションを追跡するためのプログラム命令を有し、
追跡される前記ビデオゲームの前記1つ以上のゲームセッションに基づいて前記ビデオゲームの
前記人気評価が増加していることを示す
前記トレンドを、追跡される前記ビデオゲームの前記1つ以上のゲームセッションに基づいて識別するためのプログラム命令を有し、前記人気評価は、前記ビデオゲームの
前記複数のゲームセッションの
前記需要に対応して
いる、請求項
9に記載のコンピュータ可読媒体。
【請求項13】
第1のビデオゲームの存在期間の一部について、前記データセンタの前記複数の計算ノードにわたって
前記第1のビデオゲームの第1の人気評価の第1の履歴を追跡するためのプログラム命令を有し、
前記第1のビデオゲームの
前記第1の人気評価が前記第1のビデオゲームの前記存在期間の前記一部で第1の期間にわたって増加していることを示す前記第1の履歴における第1のトレンドを決定するためのプログラム命令を有し、
前記第1のトレンドに基づいて前記第1のビデオゲームを格納するための第1の数のラックアセンブリを決定するためのプログラム命令を有し、
第2の期間にわたる第2のビデオゲームの第2の人気評価が前記第1のビデオゲームの前記第1のトレンドと同様になることを示す第2のトレンドを予測するためのプログラム命令を有し、
前記第2のトレンドに基づいて前記第2のビデオゲームを格納するための第2の数のラックアセンブリをロードするためのプログラム命令を有し、前記第2の数
のラックアセンブリは前記第1の数
のラックアセンブリとほぼ同数である、請求項
9に記載のコンピュータ可読媒体。
【請求項14】
コンピュータシステムであって、
プロセッサを有し、
前記プロセッサに接続されるとともに命令を格納しており、前記コンピュータシステムにより実行されると、前記コンピュータシステムに方法を実行させるメモリを有し、前記方法では、
データセンタの複数の計算ノードの状態を追跡し、前記複数の計算ノードは複数のラックアセンブリにわたって分散され、
前記データセンタの外部から収集されたネットワークデータに基づいて前記複数のビデオゲームの複数の人気評価を追跡し、追跡される前記複数の人気評価のそれぞれは、対応するビデオゲームに対する一般人口の関心度を示し、前記ネットワークデータは、少なくとも1つのアプリケーションプログラミングインタフェースを使用してアクセスされるソーシャルネットワークプラットフォームデータを含み、
前記複数のビデオゲームの前記複数の人気評価に基づいて、前記複数のラックアセンブリにわたる前記複数のビデオゲームからの1つ以上のビデオゲームの分散を決定し、
決定された前記1つ以上のビデオゲームの前記分散に基づいて、前記複数のラックアセンブリにわたる前記複数のビデオゲームからの前記1つ以上のビデオゲームを格納
し、
前記複数の人気評価の前記追跡では、
1つ以上のネットワークを介してアクセス可能な複数のサイトからテレメトリデータを受信し、
前記テレメトリデータから複数の特徴を抽出し、
前記複数の特徴に基づいてビデオゲームのトレンドを分類し、前記トレンドは、増加している前記ビデオゲームの人気評価を示し、前記人気評価は前記ビデオゲームの複数のゲームセッションの需要に対応し、
前記トレンドに基づいて前記ビデオゲームを格納するための前記複数のラックアセンブリのうちのラックアセンブリの数を増加させることを含む、コンピュータシステム。
【請求項15】
前記方法で、前記複数の計算ノードの前記状態の前記追跡では、
前記複数の計算ノードのそれぞれの使用状況を追跡し、
前記複数のラックアセンブリの複数のネットワークストレージにわたる前記複数のビデオゲームの分散を追跡する、請求項
14に記載のコンピュータシステム。
【請求項16】
前記方法では、
前記データセンタの前記複数の計算ノードにわたって
前記ビデオゲームの1つ以上のゲームセッションを追跡し、
追跡される前記ビデオゲームの前記1つ以上のゲームセッションに基づいて前記ビデオゲームの
前記人気評価が増加していることを示す
前記トレンドを、追跡される前記ビデオゲームの前記1つ以上のゲームセッションに基づいて識別し、前記人気評価は、前記ビデオゲームの
前記複数のゲームセッションの
前記需要に対応
する、請求項
14に記載のコンピュータシステム。
【請求項17】
前記方法では、
前記複数のビデオゲームの前記複数の人気評価の前記追跡に基づいて、
前記ビデオゲームの
前記人気評価が上昇していることを示す
前記トレンドを識別し、
前記トレンドに基づいて新しいゲームセッションのために前記複数の計算ノードのうちの1つ以上の計算ノードに前記ビデオゲームをプリロードすることを含む、請求項
14に記載のコンピュータシステム。
【国際調査報告】