JP7259033B2 - 機械学習によって推進されるリソース配分 - Google Patents
機械学習によって推進されるリソース配分 Download PDFInfo
- Publication number
- JP7259033B2 JP7259033B2 JP2021531532A JP2021531532A JP7259033B2 JP 7259033 B2 JP7259033 B2 JP 7259033B2 JP 2021531532 A JP2021531532 A JP 2021531532A JP 2021531532 A JP2021531532 A JP 2021531532A JP 7259033 B2 JP7259033 B2 JP 7259033B2
- Authority
- JP
- Japan
- Prior art keywords
- game
- online
- processing
- resources
- data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/352—Details 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an MPEG-stream for transmitting to a mobile phone or a thin client
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/33—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
- A63F13/335—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/40—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
- A63F2300/407—Data transfer via internet
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/531—Server assignment
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/538—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5013—Request control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
Description
機械学習アルゴリズムでは、オンラインゲームの開発者からの最初の入力を用いて配分モデルを作成する。作成した配分モデルを次に、ユーザ(プレーヤ、観戦者など)からの入力、以前及び現在のゲームプレイに対するオンラインゲームのゲーム状態(サーバのネットワークから集めた)を用いてトレーニングする。機械学習アルゴリズムは、オンラインゲームに対して規定した成功基準と照らし合わせてゲーム状態を分析して、オンラインゲーム用のゲームエンジンの機能部分を処理するリソースを有する適切な処理ノードの最適量を特定する。作成したリソース配分モデルには、複数の相互接続された処理ノードが含まれており、1つ以上の処理ノードが、ゲームエンジンの特定の機能部分を処理するために割り当てられている。各処理ノードはサーバによって表される。サーバは、スタンドアロン物理サーバ、またはデータセンタの一部である物理サーバ、仮想クラウドシステムの一部である仮想サーバ、またはコンテナサーバ、またはそれらの任意の組み合わせとすることができる。データセンタ内の物理サーバは、単一サーバとすることもできるし、またはラックルータ(たとえば、トップオブラックルータ)を通してアクセスされるデータセンタ内のサーバのラックの一部とすることもできる。
こうして、アルゴリズムは、規定した成功基準に対してユーザ入力に対する出力パターンをマッピングして、AIモデルを作成及び/またはトレーニングする。トレーニングしたAIモデルのマッピングを用いて、オンラインゲームの以後のゲームプレイの間に生じる入力セットに対して、リソースに対する予測される需要を決定してもよい。異なる成功基準を満たすユーザの入力に対する異なる出力のマッピングを提供するようにAIモデルをトレーニングしてもよく、アルゴリズムは異なるマッピングを用いて、規定した成功基準に関するオンラインゲームに対するリソース需要を予測することができる。
その結果、トレーニングしたAIモデル内のマッピングを用いて、アルゴリズムは以下のこと、すなわち、以前のゲームプレイ(複数可)の1つ以上において、処理リソースのうち、ゲームデータを処理し、ゲームデータをエンコードし、ゲームデータを速くて効率的な方法でフレームにアセンブルしたより速いCPUを伴うものを用いたということを特定できてもよい。クライアントデバイスにフレームを伝送するためのより高い帯域幅をもたらしたさらなるリソースを特定してもよい。この情報に基づいて、アルゴリズムは、極めて最小の遅れでクライアントデバイスにゲームデータをもたらすためにゲームプレイはこれらのリソースを必要とし得ると予想して、処理リソースを特定し、これらの処理リソースをプロビジョンしてもよい。オンラインゲームにプロビジョンするためにアルゴリズムが特定するリソースは、オンラインゲームにこれまでに割り当てられた同じリソースであってもよいし、または同様もしくはより良好な能力を有するリソースであってもよい。
トレーニングしたAIモデルは、成功基準によって規定されたルールに基づいて、入力を異なる出力にマッピングする。ユーザが以後のゲームプレイを開始したときに、トレーニングしたAIモデルを用いて、所望の結果をもたらすために必要なリソースを、現在のゲーム状態(複数可)とオンラインゲームに対して規定した成功基準とに基づいて特定することができる。AIモデルをトレーニングして、異なる成功基準を満たすための種々の結果を特定する。こうして、AIモデルを用いて、特定の成功基準を満たす特定のタイプのリソースに対する需要を予測することができ、オンラインゲームを以後に実行する間に、成功基準を満たすためにリソースの適切なタイプ及び量を迅速にプロビジョンすることができる。
バックエンドサーバは、1つ以上のゲームの1つ以上のインスタンスを実行するように構成されたゲームサーバである。ゲームサーバは、ゲームクラウドシステムにおいて利用可能な任意のタイプのサーバコンピューティングデバイスであってもよい。たとえば、ゲームサーバは、ホスト上でユーザに対するオンラインゲームのインスタンスを実行するゲームプロセッサをサポートする仮想マシンを管理してもよい。クライアントデバイスは、ネットワーク200にアクセスすることによってバックエンドサーバと相互に作用するためにメモリ、プロセッサ、及びネットワークインターフェースを含む任意のコンピューティングデバイス(たとえば、携帯電話、タブレットコンピュータ、パーソナルコンピュータなど)とすることもできるし、またはバックエンドサーバと相互に作用して計算機能を得るためのインターフェースをもたらすシンクライアントとすることもできる。
またゲーム状態は、現時点でレンダリングしている実行可能コードの部分と、ゲームプレイを継続するためにロードする必要がある実行可能コードの部分とを特定する。ゲーム状態に含まれるプレーヤに対するユーザ保存データには、プレーヤのユーザプロファイル、ゲームオブジェクトに対するユーザカスタマイゼーション、ゲームタイプ、プレーヤが選択したゲームレベル/難易度、ゲームツールの量/勝利/ポイント/キャッシュ/賞などが含まれていてもよい。またゲーム状態には、オンラインゲームのゲームプレイに対応付けられるゲーム詳細を理解する際に有用なランダムに発生させた特徴またはAIオーバーレイまたはゲーム複雑さが含まれていてもよい。
ユーザ入力はゲームロジックによって処理されて、ゲームのゲーム状態に影響を与え、ユーザのクライアントデバイスに伝送するためのゲームプレイデータを生成する。オンラインゲームのゲーム状態が分析されて、ユーザのユーザ評価基準とオンラインゲームのゲーム状態評価基準とが特定される。ユーザ評価基準モジュール310cはユーザのユーザ評価基準によって更新される。ユーザ評価基準モジュール310cに更新されるユーザ評価基準の一部には、ゲーム識別子、ユーザがオンラインゲームにアクセスした時間、ユーザがゲームのプレイに費やした時間、プレイしたゲームレベル、各ゲームレベルで費やした時間、各ゲームレベル内で打開した問題の数、各問題の打開を試みた数、ゲームスコア/勝利、ユーザの技術レベルなどが含まれる。同様に、ゲーム状態評価基準モジュール310dは、オンラインゲームのゲームプレイデータからオンラインゲームのゲーム状態評価基準を抽出する。
ゲームエンジンフレームワークには、オンラインゲームを盛り上げるオンラインゲーム用のいくつかの機能部分(すなわち、基本的な特徴)を処理するための複数の再利用可能なコンポーネントが含まれる。ゲームエンジンによって処理される基礎となる基本的な特徴には、物理(たとえば、衝突検出、衝突応答、軌跡、重力に基づいたオブジェクトの動き、摩擦など)、グラフィックス、オーディオ、人工知能、スクリプティング、アニメーション、ネットワーキング、ストリーミング、最適化、メモリ管理、スレッディング、ローカリゼーションサポート、その他多くが含まれていてもよい。
再利用可能なコンポーネントには、オンラインゲームに対して特定された基本的な特徴を処理するために用いるプロセスエンジンが含まれる。ゲーム実行時の間、ゲームエンジンは、オンラインゲームのゲームロジックを管理し、ゲームデータを処理するためにゲームエンジンの機能部分の配分及び同期を最適な方法で管理し、レンダリングするためにクライアントデバイスに伝送して戻されるゲームデータのフレームを作成する。現在利用できる種々のゲームエンジンによって、異なるコア機能が得られ、オンラインゲームを実行するために利用可能な機能に基づいて適切なゲームエンジンを選択してもよい。
他の実施形態では、MMOゲーム環境に対して開発されるオンラインゲームのすべてが、オンラインゲームの対応するものを盛り上げるために同じタイプの機能部分を必要としてもよい。すべてのオンラインゲームが同じタイプの機能部分を特定する実施形態では、オンラインゲームのうち特定のものが、機能部分のうち選ばれたものを他のものよりも強調してもよい。この強調は、オンラインゲームにアクセスするユーザのタイプ、ゲームのタイプ、オンラインゲームのゲーム状態、及びオンラインゲームに対して規定した成功基準に基づくものであってもよい。たとえば、ユーザはプレーヤタイプまたは観戦者タイプであってもよい。したがって、オンラインゲームにプレーヤがアクセスしたときには、この強調は、ゲームデータを速くて効率的な方法で提供することができる機能部分(すなわち、ゲームデータをクライアントデバイスに最小待ち時間で提供するために物理、アセンブリング/エンコーディング、及び帯域幅に関係する機能部分)に関するものであってもよい。
オンラインゲームに観戦者がアクセスしたときには、強調は、観戦者が追うことを選んだ特定のプレーヤのゲームプレイまたは全般的なオンラインゲームにアクセスすることができる機能部分(たとえば、高品質なゲームデータをもたらすために物理、オーディオ、スクリプティング、及びシーングラフに関係する機能部分)に基づいてもよい。他の形態では、オンラインゲームは高い強度のタイプまたは低い強度のタイプであってもよい。したがって、オンラインゲームが高い強度タイプであるときには、強調は、物理、より速い処理、アセンブリング及び伝送に対しであってもよく、一方で低い強度のゲームの場合には、強調は、物理、テクスチャリング、シェーディング、アニメーション、シーングラフ、スクリプティング及び/または音に対してであってもよい。同様に、プレーヤは高レベルプレーヤまたは初心者または中間レベルプレーヤであってもよい。したがって、プレーヤが高レベルプレーヤであるときには、強調は、より速い処理、アセンブリング/エンコーディング及び帯域幅に対してであってもよく、一方で中間レベルまたは初心者レベルプレーヤの場合には、強調は、異なる機能部分に対してであってもよい。他の実施形態では、異なるMMOゲームは、異なるタイプの機能部分を強調してもよい。
図2に例示する単純化した実施例では、ゲームエンジン、オンラインゲームのゲームロジック、ゲーム1のインスタンスは、6サーバ(サーバ1~6)上でインスタンス化されている。各サーバは、オンラインゲームのゲーム1に対するゲームデータの特定の特徴に関するゲームエンジンの特定の機能部分を処理するために用いられている。たとえば、サーバ1(すなわち、処理ノード1)を用いて物理エンジンと連結してオンラインゲーム用のゲームデータのゲーム物理特徴を処理してもよく、サーバ2(すなわち、処理ノード1)を用いてテクスチャリングを処理してもよく、サーバ3(すなわち、処理ノード1)をシェーディングに対して用いる等してもよい。ゲームエンジンのインスタンスは、第2のサーバに対する入力として働く第1のサーバからの出力(すなわち、機能部分の処理からの結果)、第3のサーバに対する(または第1のサーバに対する)入力として働く第2のサーバからの出力などを有することによって、ゲームデータの反復処理をもたらす。
図2に例示する実施形態では、単一サーバ(すなわち、処理ノード)が、ゲームエンジンの特定の機能部分を処理するために用いるゲームエンジン及びゲームロジックのインスタンスを実行するために割り当てられている。他の実施形態では、複数のサーバ(それぞれ、ゲームエンジン及びゲームロジックのインスタンスを実行する)が、ユーザ入力及び成功基準が指示する処理に対して予測される需要に基づいて特定の機能部分を処理するために割り当てられていてもよい。ゲームエンジン及びゲームロジックは、オンラインゲームを盛り上げるために必要なゲームエンジンの異なる機能部分を処理するために複数のサーバ上でインスタンス化されているため、ゲームエンジンは「分散されている」と言われる。したがって、本出願で用いる分散ゲームエンジンに対するいかなる言及も、ゲームエンジンとゲームロジックの対応部分とが複数のサーバ上でインスタンス化される構成を指している。
分散ゲームエンジン310は、複数のユーザのクライアントデバイス100と、ネットワークインターフェースを用いてネットワーク200を介して、オンラインゲームのゲームプレイ(たとえば、ゲーム1)中に通信し、オンラインゲームに対するユーザの入力を受け取る。ユーザの入力に応じて、ビデオゲームデータのフレームが作成され、エンコードされ、クライアントデバイス100に戻されて、レンダリングが行われる。分散ゲームエンジン310にはグルーロジック306が含まれている。グルーロジック306は、異なるクライアントデバイスから異なるユーザの入力を受け取り、それに応じて、各クライアントデバイスを対象とすべきゲームデータのフレームを特定し、ゲームデータを共に束ねて、ユーザのクライアントデバイスにゲームデータのフレームを転送する。
少なくとも1つの処理ノードは、種々の処理ノードによって出力される種々のゲームエンジンタスクの結果をアセンブリし、処理ノードからの結果をエンコードしてストリーミングゲームデータ135のビデオフレームを作成して、レンダリング用に個々のクライアントデバイスに前方伝送するように構成されている。少なくとも1つの処理ノードはさらに、ビデオフレームが、ユーザの異なるクライアントデバイスに対する共通フォーマットとなるように、ビデオフレームをフォーマットするよう構成されている。いくつかの実施形態では、ビデオフレームのフォーマッティングを、ビデオフレームを伝送するために用いる利用可能な帯域幅及びプロトコルを決定するために処理ノードが行うテストに基づいて行う。
ストリーミングゲームデータ135のビデオフレームをグルーロジック306によって処理して、各クライアントデバイスを対象とするビデオフレームを特定し、それに応じてビデオフレームをルーティングする。さらなるノード(たとえば、マスタサーバノード304)を分散ゲームエンジン310内に設けて、異なる処理ノード(すなわち、サーバ)に割り当てられたゲームエンジンタスクの同期を調整し、及び/またはゲームエンジンタスクの待ち行列を管理してもよい。新しいユーザがゲームクラウドシステムに参加すると、分散ゲームエンジンは、ゲームクラウドシステムの処理ノードにおいて実行するオンラインゲームのインスタンスに新しいユーザをルーティングするようにも構成されている。
リソース配分エージェントを用いて、現時点で提供されているオンラインゲーム用のリソースのタイプ及び量と成功基準を達成するために必要なリソースのタイプ及び量とを決定し、また「エラスティックコンピュート」コンセプトに従って、構成エージェントに信号を送り、リソースのうちオンラインゲームに対する変化する需要を満たす特定のものを拡大または縮小する。リソース配分エージェントによって、ゲームプレイ中の任意の時点におけるゲーム状態及び成功基準に基づいてリソースのプロビジョニング及びプロビジョン解除を制御することによって、作業負荷変化に適合する柔軟性がもたらされて、システムは、システムリソースの現在の需要にできるだけ厳密にマッチするように利用可能な十分なリソースを有する。第4の管理ノード(ノードm4)302-m4(1つ以上の分類子エンジン314を伴う)は、ユーザ入力及びシステム入力を含むトレーニングデータを用いて、オンラインゲームに対して規定した成功基準により、オンラインゲーム用のリソース配分モデル315を作成及びトレーニングするように構成されている。リソース配分モデル315をリソース配分エージェントが用いて構成エージェントに信号を送って、オンラインゲームに対して配分されたリソースを調整する。
トレーニングされたモデル315を分散ゲームエンジンが用いて、ゲームデータの異なる特徴を処理するために必要なゲームエンジンの異なる機能部分、ならびに異なる特徴を処理するために必要なリソースのタイプ及び各タイプの量を決定する。リソースのタイプ及び各タイプの量は、オンラインゲームのゲームプレイの異なる時点に対して規定した成功基準によって推進され、成功基準自体は、ユーザのタイプ、ユーザのユーザ評価基準のうち特定のもの、オンラインゲームのゲーム状態などに依存する。たとえば、オンラインゲームをプレイするプレーヤに対して規定した成功基準は、特定のプレーヤのゲームプレイまたは全般的なオンラインゲームのゲームプレイを追っている観戦者に対して規定した成功基準とは異なり得る。同様に、経験豊富または極めて熟練したプレーヤに対して規定した成功基準は、初心者または中間レベルプレーヤに対して規定した成功基準とは異なり得る。
AIモデルを構築/トレーニングするために用いる分類子エンジンは、処理したゲームデータ内のこれらの特徴を特定すること、ゲームエンジンの機能部分を用いて処理したゲームデータのこれらの特徴を分析すること(AIモデルにおいて用いるゲームデータは、過去のユーザ入力及びゲーム状態を処理することによって生成された)、分析から得た情報を伴う相互接続されたノードの層内のノードを更新すること、相互接続を用いて特定の成功基準に対する出力を得ること、を学習する。成功基準には、許容できる待ち時間、または各サーバに対する許容できる負荷、または待ち行列の好ましい長さ、または待ち行列タイミング、またはゲームデータの品質、または伝送の速度など、またはそれらの任意の組み合わせが含まれていてもよい。異なる成功基準の前述のリストは単なる例として示しており、これらに限定されるものではない。
前述したように、ゲームエンジンの機能部分によって処理されるゲームデータのいくつかの特徴例には、いくつか例を挙げると、物理、テクスチャリング、シェーディング、アセンブリング/エンコーディング、オーディオ、スクリプティング、アニメーション、メモリ管理、シーングラフが含まれる。当然のことながら、ゲームデータ内で処理するために特定することができるより少ないまたはより多い特徴があってもよい。したがって、ゲームエンジンの機能部分は、ゲームデータ内で特定される特徴を処理する関連するゲームエンジンタスクを実行する。その結果、前述のゲームデータの特徴を実行するために用いられ得るゲームエンジンのいくつかの機能部分には、物理エンジン、テクスチャリングモジュール/エンジン、シェーディングモジュール/エンジン、アセンブリングモジュール、オーディオエンジン、スクリプティングエンジン、アニメーションエンジンなどが含まれていてもよい。前述の機能部分は単なる例として示しており、これらに限定されるものではない。
第1及び第2のノードは、ゲームデータを処理する間に従った手順に基づいて特定する。たとえば、ゲームデータは、最初に、物理コンポーネントを処理するために物理エンジンによる処理を受けてもよい。物理エンジン処理からの情報を第1のノードにアップロードしてもよく、処理した物理コンポーネントを伴うゲームデータを、テクスチャリングに関する接続した第2のノードに入力として提供してもよく、物理及びテクスチャリングコンポーネントを伴うゲームデータを、シェーディング用の接続した第3のノードに提供してもよい。ゲームデータが、相互接続されたノードの多層を通って進むにつれ、それぞれの処理された特徴からの知識が集められて、出力が生成される。生成された出力は特定の成功基準に関する。入力ノードから出力ノードへの経路は、特定の成功基準と相関する1つ以上の所定のルールによって決定してもよい。
リソース配分モデル315は、入力ノードと出力ノードとの間のAIモデルの相互接続されたノードの異なる経路をたどることによって複数の出力を生成してもよい。各出力は、特定の成功基準を満たすように規定された対応する所定のルールによって推進される。分類子エンジンからの出力は、オンラインゲームに対して規定された所定の成功基準を出力(すなわち、リソース配分)が満たすかどうかを判定するのに必要な情報を提供する。たとえば、リソース配分モデル315から出力された情報は、ユーザXがゲーム1をレベルJでプレイしていて、xレベルの性能、yレベルの待ち時間、及びzレベルの品質を受け取ったと特定してもよい。さらに、成功基準を最小待ち時間であると規定してもよい。すなわち、ゲームデータを速く処理し、迅速にアセンブル及びエンコードして伝送して、ゲームデータがクライアントデバイスにリアルタイムで与えられたことを明らかにしなければならない。
リソース配分モデル315からの出力を、成功基準を規定する予め規定されたルールに従ってリソース配分エージェントが分析して、成功基準を満たすために用いたリソース構成のタイプを決定してもよい。この情報を用いて、異なるリソースに対する予測をオンラインゲームに対して行ってもよい。たとえば、提供されるかまたは特定されるリソース構成は、オンラインゲームに対して受け取った特定のゲーム状態及びゲーム入力に基づいて、以後のゲームプレイセッションに対して微調整する必要があるか否かである。微調整には、オンラインゲームが成功基準を達成するために、「いつ」どんなタイプ(複数可)のリソースを調整する(すなわち、弾性的に拡大または縮小する)必要があるかの決定が含まれていてもよい。
このようなストレスはオンラインゲームのゲーム状態に基づいて変化する可能性がある。機械学習アルゴリズムは、ノードのニューラルネットワークを伴うAIモデルを作成し、これらのノードにオンラインゲームのゲームプレイの種々の段階で用いるリソースを実装して、(a)異なるゲームデータの特徴はどのように互いに関係づけられているか、及び(b)配分されたリソースを用いて異なる特徴を処理することによって生成された出力が、オンラインゲームに対して規定した成功基準にどのように関係しているかを学習する。分類子エンジンを用いて、異なる特徴を特定し、AIモデルの異なるノードを実装する。
配分されたリソースを用いて異なる特徴が処理されると、対応するノードがゲームデータの具体的な特徴の処理の出力によって更新される。機械学習は、異なる特徴の処理からの出力を分析して、処理から生じるパターンを特定し、オンラインゲームに対して規定した成功基準にAIモデルの出力を関係づける。分析は、成功基準を規定する予め規定されたルールを用いて行う。分析に基づいて、機械学習は、現在の配分が最適であるかどうか、または特徴のうち特定のものを処理するために配分されたリソースの選ばれたものを、選択的にスケール変更(拡大または縮小)して、全体的なパターンを改善し、出力を成功基準により良好に合わせる必要があるかどうかを判定する。
たとえば、成功基準は、オンラインゲームのプレーヤ(すなわち、ゲームプレイに参加しているユーザ)に、オンラインゲームの以後のゲームプレイ中に最小待ち時間でゲームデータを提供する必要があると特定してよい。特定された成功基準に基づいて、リソース配分モデルからの異なる出力を分析して、ゲーム入力の組に対して規定される出力を特定する。これは、ゲームのゲーム状態に対して特定された成功基準をこれまでに満たしたシステムリソース構成を用いて行う。リソース配分モデルが提供する情報を用いて、リソース配分エージェントは、現在のゲームプレイ中のリソースの配分が、特定された成功基準を満たすのに十分であるかどうか、またはシステムリソースを拡大もしくは縮小する必要があるかどうかを判定する。
現在のゲームプレイに対するリソース配分が、成功基準を達成するために予測される需要を満たすのに十分でないと判定されたときには、リソース配分エージェントが構成エージェントに信号を送って、システムリソースのうちオンラインゲームに対するゲームプレイの現在のセッション用の特定のものを、予測したリソース需要に基づいて予防的に拡大または縮小してもよい。プレーヤの現在のゲームプレイセッションに対する成功基準が、ゲームデータの品質のフレームとは関係なく、高レベルプレーヤに対する最小待ち時間を特定する前述の例の場合には、高レベルプレーヤのゲーム入力にマッチするゲーム入力に対する最小待ち時間の成功基準を満たす出力を、リソース配分モデルから特定して、現在のリソース配分を決定するために用いる。
現在のリソース配分を決定したら、機械学習アルゴリズムは、出力をさらに分析して、オンラインゲームに対して配分されたリソース(たとえば、ゲーム及び通信帯域幅に配分されたCPUリソースの量)を、現在のゲームプレイが同じ成功基準を満たすために調整する必要があるかどうかを判定する。同様に、クライアントデバイスに戻されるゲームデータの品質を成功基準が特定する場合には、ゲームデータの品質に対応する出力を用いて、リソースのうちオンラインゲームの現在のセッションに割り当てられた特定のものを、成功基準を満たすために拡大または縮小する必要があるかどうかを判定してもよい。判定に基づいて、リソース配分エージェントは信号を生成して構成エージェントに転送して、オンラインゲームに対して配分されたリソースを調整する。
具体的には、プロセス同期層304aは、異なる処理ノードへのゲームエンジンタスクの割当てを管理し、ゲームエンジンタスクのうちの特定のものを選ばれた処理ノードに分散させ、処理結果を選ばれた処理ノード(すなわち、相互接続されたノード)間及び選ばれた処理ノードと構成エージェントとの間でルーティングする。構成エージェントに提供される結果を、ゲームエンジンタスクを処理するために割り当てられたリソースを、出力が成功基準を満たすように弾性的にスケール変更するために用いる。弾性的にスケール変更することには、特定の特徴を処理するためにさらなる処理ノード(たとえば、さらなるサーバ)を加えること、またはプロビジョンした処理ノード内でリソースを拡大する(たとえば、サーバノードのさらなるCPUコアを加えるかまたは取り除く)ことが含まれていてもよい。ゲームエンジンタスクの同期には、各ゲームエンジンタスクのプロセスタイミングを考慮に入れてタスク待ち行列を管理することが含まれる。
したがって、いくつか例を挙げると、ノードp1は、サーバ1のリソースを用いてゲームデータの物理コンポーネントを処理するために用いられ、ノードp2は、サーバ2のリソースを用いてゲームデータのテクスチャリングコンポーネントを処理するために用いられ、ノードp3は、サーバ3のリソースを用いてシェーディングコンポーネントを処理するために用いられ、ノードp4は、サーバkのリソースを用いて異なる処理ノードから受け取ったゲームデータをアセンブリ及びエンコードするために用いられ、ノードp5は、サーバmのリソースを用いてオーディオコンポーネント(すなわち、音)を処理するために用いられ、ノードp6は、サーバm+1のリソースを用いてスクリプティングコンポーネントを処理するために用いられ、ノードp7は、サーバm+2のリソースを用いてアニメーションコンポーネントを処理するために用いられ、ノードp8は、サーバpのリソースを用いてメモリ管理を行うために用いられ、ノードp9は、サーバp+1のリソースを用いてシーングラフコンポーネントを処理するために用いられる。
図4Aで特定したゲームエンジンタスクのタイプは、例示を目的として与えており、網羅的または限定であると考えてはならない。より少ないまたはさらなるタイプのゲームエンジンタスクを、異なるサーバ上で実行されるゲームエンジンのインスタンスを用いて特定及び処理してもよい。処理ノードはそれぞれ、他の処理ノードと相互に作用してもよく、このような相互作用は、仮想バスとして働くプロセス同期層を通して行ってもよい。同様に、各管理ノードは、仮想バスを通してまたは直接に、互いと相互に作用してもよい。また、各管理ノードは、プロセス同期層を通して、1つ以上の処理ノードと相互に作用してもよい。図4Aに例示した例では、各サーバは1つのゲームエンジンタスクのみを行うように構成されている。代替的な例では、複数のゲームエンジンタスクを単一サーバによって行ってもよい。同様に、複数のサーバを連結させてゲームエンジンタスクを行ってもよい。
処理ノードにはそれぞれ、シングルコアプロセッサもしくはマルチコアプロセッサ、規定された帯域幅、または対応するコンポーネントを処理するための単一のサブコンポーネントもしくは複数のサブコンポーネントが含まれていてもよい。ゲームデータの残りのコンポーネントを、個々の単一の処理ノードに対応付けられるサーバの処理リソースを用いて処理してもよい。
たとえば、高い強度のゲームをエキスパートプレイヤーがプレイする場合、成功基準を、最小待ち時間でゲームデータをプロビジョンしていることに規定してもよい。観戦者に対しては、成功基準は、オンラインゲームのゲームプレイを見るためにすべての観戦者に提供される共通のビューウィンドウ、またはゲームプレイのゲームシーンを通って独立してナビゲートするためのカスタマイズされたビューウィンドウ、または観戦者がエキスパートプレイヤーのゲームプレイを独立して追うことができる別個のビューウィンドウ、またはエキスパートプレイヤーが観戦者として機能し、初心者プレーヤのゲームプレイを追ってガイダンスを提供することができるビューウィンドウなどを提供することであってもよい。
成功基準に基づいて、配分モデル315から出力を特定し、オンラインゲームの各ユーザに対して所望のゲームプレイ経験を提供するようにシステムのリソースを調整する。図4Cに例示した例では、リソース配分エージェントは、リソース配分モデル315の出力を分析して、オンラインゲームの現在の構成370を得てもよく、またオンラインゲームに対して規定した成功基準を満たすために、オンラインゲームの現在のゲーム状態及び現在の構成370に基づいて信号に構成更新372を提供してもよい。
図示したように、リソース配分エージェント313が構成エージェント311に伝達した信号は、物理コンポーネント、スクリプティングコンポーネント、アニメーションコンポーネントを処理するため、及びアセンブリングするために用いる処理ノードをもっと生成する必要があり、一方で、シェーディング、音、メモリ管理、及びシーングラフに対して配分された処理ノードの量を現在のレベルに維持すべきであり、テクスチャリングコンポーネントを処理するために用いる処理ノードの数を縮小する必要があることを示してもよい。
リソース配分エージェントが伝送する信号は、AIモデルの分析から特定した異なるリソースに対して予測される需要に基づき、成功基準に基づくとともに、予測される需要を見越して、必要なリソースがオンラインゲームに対してタイムリーにプロビジョンされることを確実にするために用いられる。その結果、ユーザがオンラインゲームと相互に作用するときに、ゲームデータが、配分されたリソースを用いて、ユーザのユーザ評価基準及びオンラインゲームのゲーム状態評価基準に対して規定した成功基準により処理され、示されたユーザのクライアントデバイスに戻される。
ユーザは、異なるジオロケーションからオンラインゲームにアクセスしてもよく、ゲームクラウドシステムは、地理的に分散されたサーバのネットワークにわたってオンラインゲームをインスタンス化することによってオンラインゲームへのアクセスを提供する。分散ゲームエンジン310を用いて、オンラインゲームのゲームロジックを実行する。オンラインゲームをインスタンス化することには、サーバのネットワークの各1つ上でゲームエンジン310e及びゲームロジック310fのインスタンスを実行することが含まれる。ゲームエンジンは、ゲームエンジンの異なる機能部分を処理するために必要なエンジン/モジュールを提供する。各機能部分はゲームデータの対応する特徴を処理するように構成されている。たとえば、ゲームデータの物理コンポーネントを処理するために物理エンジンを提供してもよく、シェーディングコンポーネントを処理するためにシェーディングエンジンを提供してもよい等である。
ゲームエンジンの再利用可能なコンポーネントによって処理される基本的な特徴としては、いくつか例を挙げると、グラフィックス、オーディオ、物理、人工知能、スクリプティング、アニメーション、ネットワーキング、ストリーミング、最適化、メモリ管理、スレッディング、ローカリゼーションサポートが挙げられる。ゲームロジックは、ユーザから受け取った入力に基づいて、ゲームのゲーム状態(すなわち、結果)を決定する。オンラインゲームを実行することから生成されるゲームデータには、ゲームを盛り上げる処理された特徴、ならびにゲームの結果が含まれる。
処理された情報は、ゲームデータと一緒に下流に他の分類子へ転送されて、さらなる処理に備える。たとえば、分類子は物理特徴の品質を決定するように構築されてもよい。別のものは、シェーディングの品質を決定するように構築されてもよい。さらに別のものは、スレッディングを管理する(すなわち、存在する異なる特徴を処理するゲームスライスの数及びそれらがどのように相互接続されているか、異なる特徴に対応付けられるゲームスライスの処理時間、待ち行列における具体的な特徴に対するゲームスライスの数などを特定する)ように構築されてもよい。他の分類子は、いくつか例を挙げると、テクスチャリング、メモリ管理、スクリプティング、シーングラフ、アニメーションの品質を特定するように構築されてもよい。
たとえば、パターンは、物理またはテクスチャリングまたはシェーディングの品質は最適であった/なかった、オーディオは常に明瞭であった/なかった、ゲームスライスのスレッディングからの待ち時間は許容できた/容認できなかった等を示してもよい。リソース配分エージェント313は、所定の分析器ルール313aの組を用いてAIモデルの分類子が提供するパターンを分析して、出力を得る。出力は、特定の成功基準を満たしていたか満たしていなかったか、及び提供されたリソースは十分であったかまたは拡大/縮小する必要があったかどうかを示す。AIモデルは、相互接続されたノードの異なる経路をたどること及びパターンを特定することによって、異なる出力に対するゲームデータのマッピングをもたらす。異なる経路からの出力は、ゲーム状態に対して満たされたかまたは満たされなかったオンラインゲームの成功基準に関してもよい。さらに、出力はそれぞれ、対応する経路に沿って処理されたゲームデータの各特徴を処理するために提供された各タイプのリソースのタイプ及び量を特定する。分析に基づいて、リソース配分エージェントは、分散ゲームエンジン構成エージェント311に対する信号を生成して、リソースをスピンアップまたはスピンダウンする。
一実施形態では、ゲームデータにより速くアクセスするために、分散ゲームエンジンのインスタンスを、単一のデータセンタの一部である異なるサーバ上で実行してもよい。この構成は効率的に機能する。なぜならば、データセンタ内の異なるサーバ間で、それほどの待ち時間なくデータを交換することができるからである。単一のデータセンタのサーバ間でデータを交換する際に用いるネットワークアーキテクチャの詳細について、図7を参照してより詳細に説明する。代替的な実施形態では、分散ゲームエンジン及びゲームロジックのインスタンスを実行する複数のサーバは、地理的に分散された複数のデータセンタの一部であってもよい。このような実施形態では、ユーザにゲームシーンの彼らの独自視野を提供することができるように、オンラインゲームのゲームプレイから得られるゲーム状態を異なるサーバ内のサーバ間で交換する。ゲーム状態の交換中に含まれる待ち時間はほとんどない場合があるが、待ち時間を減らすためにリソースを提供してもよい。
ユーザの入力に応じてオンラインゲームによって生成されたゲームデータはアセンブルされ、エンコードされ、ゲームデータのストリーミングフレームとしてユーザのクライアントデバイスに転送されて、レンダリングされる。またユーザの入力を用いて、AIモデルをトレーニングするためのトレーニングデータを生成する。これを用いてオンラインゲーム用のリソースを管理する。各仮想マシンには、ホストマシンの仮想化層(すなわち、ハイパーバイザ)にとって利用可能なハードウェアリソースを用いてオペレーティングシステムが実行する1つ以上のアプリケーション(たとえば、1つ以上のオンラインゲームアプリケーション)が含まれていてもよい。
コンテナは、タスクを行う(たとえば、オンラインゲーム用のゲームエンジン及びゲームロジックのインスタンスを実行する)ために、最小量のリソースを用いて動作することができる。リソース(すなわち、物理ハードウェアリソース)は仮想化されている。クラウドコンテナは、異なるサーバに対して十分に展開することができるため、持ち運び可能である。一実施形態では、コンテナによってアプリケーション分離が、プロセス及び名前空間分離技術を介して、コンテナホストとカーネルを共有することによって得られる。代替的な実施では、コンテナホストのカーネルを共有せず、その結果、コンテナ化されたアプリケーションを仮想マシンから実行することによって分離が強化される。前述のタイプのサーバは単なる例として示しており、限定であると考えてはならない。ゲームエンジン及びゲームロジックをインスタンス化するためのリソースを提供するサーバまたはコンピューティングデバイスの他の形態を用いてもよい。
たとえば、オンラインゲーム用のゲームデータの処理を、データセンタ内でラック1内のサーバ1(308-r11)からラック3内のサーバ3(308-r33)まで移動させて(赤実線で示す)、オンラインゲームのゲームプレイから生成された他のデータに近づける必要があるときには、転送プロセスは以下のように進む。(a)サーバ308-r33をスピンアップする(すでにアップして実行されてはいない場合)。(b)ラック1のサーバ1(308-r11)内のデータをラック3のサーバ3(308-r33)に転送して、データをサーバ1 308-r11とサーバ3 308-r33との間で同期させる。データの転送及び同期は、対応するトップオブラックルータ350-a及び350-cを介して操作する。(c)制御をサーバ3に引き渡す(図7の赤い点線を参照)。トップオブラックデザインアプローチを用いる利点の1つは、特定のラックのすべてのサーバが特定のラックの対応するトップオブラックルータに接続されるためにケーブリングの複雑さが最小限になり、限定された数のケーブルのみが他のラック及び集約スイッチまで延びて接続されることである。他の利点、たとえば、各データセンタラックに固有のケーブリングが備わっているために、必要となるケーブル量、データセンタラックのモジュラ展開が少ないことなどを、当業者であれば証明することができる。
ISOモデルには、アプリケーション層(アプリケーション層、プレゼンテーション層、セッション層)及びデータフロー層(トランスポート層、ネットワーク層、データリンク層、及び物理層)の組が含まれる。アプリケーション層は、送受信エンティティを特定し、送受信エンティティ間でオンラインゲームなどのアプリケーションのデータを対応するエンティティが理解する方法で転送し、送受信エンティティ間の通信を管理して最小のデータ損失と同期させるように構成されている。データフロー層は、データ送信を順次経路で行うべきかまたは並列経路で行うべきか、データをパケット化するために従うべきプロトコルを決定して、パケット化データをフレーム内にアセンブリし、データのフレームを好ましいルートに沿って伝送するように構成されている。なお、前述した説明は、オンラインゲーム用のサーバのネットワークを通してデータを通信する際に用いるISOモデルの概略のみを与えており、種々の層の役割のより細かい詳細については当業者であれば理解する。したがってより詳しく説明することはしないことに注意されたい。
これらのゲームプレイに関するデータを、オンラインゲームアプリケーションのゲームプレイに関係するAIモデルを構築及び/またはトレーニングするために用いるトレーニングデータとして提供してもよい。詳細には、システム300Aには、GCS300、1つ以上のソーシャルメディアプロバイダ240、及びクライアントデバイス100が含まれている。これらはすべて、ネットワーク200(たとえば、インターネット)を介して接続されている。複数のユーザに対応付けられる複数のクライアントデバイスをネットワーク200に接続して、GCS300及びソーシャルメディアプロバイダ240が提供するサービスにアクセスしてもよい。ユーザは、プレーヤ、または特定のプレーヤまたはオンラインゲームのゲームプレイを追う観戦者であってもよい。
一実施形態では、GCS300は、オンラインゲームアプリケーション、サービス、ゲーミング関連デジタルコンテンツ、及びシステム間の相互接続性、アプリケーション、ユーザ、及びソーシャルネットワークを提供することができるシステムである。GCS300は、ユーザデバイス100及びソーシャルメディアプロバイダ240と、ソーシャル接続マネージャ295を通して、ネットワークインターフェース290を介して通信してもよい。ソーシャル接続マネージャ295は1人以上の友人に関係するように構成してもよい。一実施形態では、各ソーシャルメディアプロバイダ240には、ユーザソーシャルネットワーク接続を示す少なくとも1つのソーシャルグラフ245が含まれている。
出力は、所与の組のゲームデータに対して予想または予測される結果を表している。所与の組のトレーニングデータには特定の組のユーザの入力及びオンラインゲームのゲーム状態が含まれる。次にAIモデルからの出力を用いて、処理ノード(すなわち、ゲームデータの特定の特徴を処理するためのサーバリソース)の配分を精緻なものにして、オンラインゲームを以後に実行する間に、成功基準を満たすことができる。AIモデルをトレーニングするために用いるゲームデータはオンラインゲームのゲームプレイに関するために、AIモデルをトレーニングして、異なる成功基準に対応付けられるオンラインゲームのゲームプレイの異なる出力を得るために用い得るリソースの可能なすべての構成を学習する。したがって、AIモデルに、オンラインゲームの以後のゲームプレイに関係するゲームデータの組(たとえば、ユーザの入力、ゲーム状態など)を提供すると、AIモデルはそのゲームプレイに対する成功基準とほとんど合っている出力を提供することができる。
AIモデルを、種々の機械学習(すなわち、AI)アルゴリズムを通して作成してもよい。たとえば、深層学習(すなわち、機械学習)、強化学習、教師あり学習、教師なし学習、半教師あり学習、増分学習、報酬ベースの学習などである。前述で列記したAIアルゴリズムのタイプは、単に説明を目的として与えたものであり、網羅的でも限定でもない。分類子エンジンを用いてAIモデルのノードに対する特徴を特定し、ルールによって、ノードに関連付けられる所与の組の特徴が特定の出力にリンクされる。たとえば、教師あり学習環境では、所与の組の特徴に対して出力が予め決定され、深層学習エンジンは、特徴の組を出力にリンクするルールを学習する。各ルールは出力に関連付けられ、成功基準を適用してルールを規定する。教師なし学習環境では、所与の組の特徴が出力に自動的に結合されるわけではないが、類似性、または他の同様の組の特徴に関係するデータ点のクラスタを探すことによってルールを学習し得る。深層学習は、教師あり学習を用いて最初のAIモデルを構築し、教師なし学習を用いてAIモデルを精緻なものにし得る。トレーニングしたAIモデルを用いて、オンラインゲームに対する現在のリソース配分及び所与の成功基準に対して予測されるリソース配分を決定し、オンラインゲームに対して配分されるリソースを弾性的に調整してオンラインゲームのゲームプレイ中に所望の結果を得る。
プレーヤに加えて、複数の観戦者がオンラインゲームにアクセスして、特定のプレーヤのゲームプレイまたはオンラインゲームのゲームプレイを追ってもよい。ゲームプレイ中のユーザの入力が、ゲームクラウドシステムのゲームサーバによって複数のプレーヤから集められ、オンラインゲームのゲーム状態に影響を与えるように、またゲームデータを生成するように処理される。トレーニングデータには、ユーザの入力及びオンラインゲームのゲーム状態、ならびにオンラインゲームに対して規定された成功基準が含まれる。
深層学習エンジンには、オンラインゲーム及び/またはオンラインゲームのゲームプレイに関する種々の機能をもたらすように構成されたAIモデルを構築及び/またはトレーニングするように構成されたモデラー120が含まれていてもよい。さらに、CPU602には、AIモデルを作成してレーニングするように構成された分析器140が含まれている。トレーニングしたAIモデルは、特定の組のユーザの入力に応じて出力をもたらす。出力は、トレーニングしたAIモデルの所定の機能に依存している。トレーニングしたAIモデルを用いて、オンラインゲームに対して規定した成功基準を満たすようにゲームプレイ中に実施すべきリソース配分を決定してもよい。分析器140は、オンラインゲーム及び/またはオンラインゲームのゲームプレイに関連する種々の機能を行い(たとえば、所与の入力(たとえば、コントローラ入力、ゲーム状態データ、成功基準)に対してトレーニングしたAIモデル160からの出力を分析する)、応答を提供するように構成されている。
ネットワークインターフェース614は、デバイス600が電子通信ネットワークを介して他のコンピュータシステムと通信することを可能にし、ローカルエリアネットワーク及びワイドエリアネットワーク(たとえば、インターネット)を介した有線または無線通信を含んでもよい。オーディオプロセッサ612は、CPU602、メモリ604、及び/または記憶装置606が与える命令及び/またはデータから、アナログまたはデジタルオーディオ出力を生成するように構成されている。デバイス600のコンポーネント(たとえば、CPU602、メモリ604、データ記憶装置606、ユーザ入力デバイス608、ネットワークインターフェース610、及びオーディオプロセッサ612)は、1つ以上のデータバス622を介して接続されている。
グラフィックスメモリ618は、GPU616と同じデバイス内に組み込むことができ、別個のデバイスとしてGPU616と接続することができ、及び/またはメモリ604内で実施され得る。画素データを、CPU602から直接グラフィックスメモリ618に提供することができる。
他の形態では、CPU602は、GPU616に、所望の出力画像を規定するデータ及び/または命令を提供する。このデータ及び/または命令から、GPU616は1つ以上の出力画像の画素データを生成する。所望の出力画像を規定するデータ及び/または命令を、メモリ604及び/またはグラフィックスメモリ618内に記憶することができる。一実施形態では、GPU616には、シーンに対するジオメトリ、照明、シェーディング、テクスチャリング、動き、及び/またはカメラパラメータを規定する命令及びデータから出力画像に対する画素データを生成するための3Dレンダリング能力が含まれている。GPU616にはさらに、シェーダープログラムを実行することができる1つ以上のプログラム可能な実行ユニットを含めることができる。一実施形態では、GPU616をAIエンジン内で実施して、たとえばAIまたは深層学習機能用のさらなる処理能力を提供してもよい。
Claims (20)
- オンラインゲーム用のリソースのプロビジョニングを行うための分散ゲームエンジンであって、
前記分散ゲームエンジンの機能部分を複数の処理ノードにわたって分散させるように構成された複数の管理ノードを有し、
ゲームプレイトレーニングデータから構築されたリソース配分モデルを有し、前記ゲームプレイトレーニングデータは、前記オンラインゲームのゲームプレイからユーザから受け取った入力、前記オンラインゲームのゲーム状態、及び成功基準を含むものであり、
前記リソース配分モデルにアクセスし、構成エージェントと通信して前記機能部分のうち前記オンラインゲーム用の特定のものを処理するために必要な前記複数の各処理ノードのリソースを、前記リソース配分モデルが指示するリソース配分に基づいて特定するためのリソース配分エージェントを有し、
前記分散ゲームエンジンは、プロセス同期層を有し、前記プロセス同期層は、前記複数の各処理ノード及び前記複数の各管理ノードと接続して機能して、前記ユーザのクライアントデバイスにおいてレンダリングするためのビデオフレームを生成する前記オンラインゲーム用の前記機能部分を実行するためのリソースを提供するものである、分散ゲームエンジン。 - 前記リソース配分モデルは、前記分散ゲームエンジンの前記機能部分のうち前記特定のものを処理するために必要な各タイプの処理ノードのタイプ及び数を特定する、請求項1に記載の分散ゲームエンジン。
- 前記入力は前記ユーザの前記ゲームプレイから連続的に集められ、前記リソース配分モデルは前記集められた入力及び成功基準に基づいてリアルタイムで更新され、前記更新では、前記分散ゲームエンジンの前記機能部分のうち特定のものを処理するために必要な各タイプの処理ノードの前記タイプ及び前記数を、前記オンラインゲームのゲーム状態に基づいて調整する、請求項2に記載の分散ゲームエンジン。
- 各機能部分は、前記分散ゲームエンジンの特定のゲームエンジンタスクを特定し、前記プロセス同期層は仮想バスを有し、
前記仮想バスは、
ゲームエンジンタスクのうち前記オンラインゲーム用の特定のものを処理するために前記複数の処理ノードのうち選ばれた処理ノードの割当てを管理し、
前記ゲームエンジンタスクのうち前記特定のものを前記選ばれた処理ノードに分散させて処理し、
処理結果を、前記複数の処理ノードのうち前記選ばれた処理ノードと残りのものとの間で、及び前記選ばれた処理ノードと前記構成エージェントとの間でルーティングし、
前記複数の処理ノードの間に分散された前記ゲームエンジンタスクの処理を同期させ、前記同期では、前記ゲームエンジンタスクのそれぞれの処理タイミングにより前記ゲームエンジンタスクの待ち行列を管理する、請求項1に記載の分散ゲームエンジン。 - 前記処理ノードのうち少なくとも1つは、前記複数の処理ノードからのゲームデータをアセンブリし、前記ゲームデータを処理し、前記ゲームデータを圧縮し、前記ゲームデータをエンコードして、前記ユーザのクライアントデバイスに伝送するためのビデオフレームを作成するように構成され、
前記圧縮及びエンコードは、前記ビデオフレームを、前記ビデオフレームが転送される前記ユーザの前記クライアントデバイスのうち対応するものと適合するようにフォーマットするように行われ、前記ビデオフレームの前記フォーマットは、前記クライアントデバイスのうち前記対応するものに伝送するために用いられる利用可能な帯域幅及び伝送プロトコルを決定するために行われるテストに基づいて行われる、請求項1に記載の分散ゲームエンジン。 - 前記複数の各管理ノード及び前記複数の各処理ノードは、実行用にサーバを明確に分離するために割り当てられる、請求項1に記載の分散ゲームエンジン。
- 前記サーバは、単一のデータセンタ内にまたは地理的に分散した複数のデータセンタにわたって分散される、請求項6に記載の分散ゲームエンジン。
- 前記サーバは、スタンドアロン物理サーバ、または1つ以上のデータセンタの一部である物理サーバ、または仮想サーバ、またはコンテナサーバ、またはそれらの任意の組み合わせである、請求項6に記載の分散ゲームエンジン。
- ユーザから受け取った入力は、ゲーム開発者から受け取った入力とゲームプレイの間に取得したプレーヤから受け取った入力とを含む、請求項1に記載の分散ゲームエンジン。
- 前記リソース配分モデルは機械学習アルゴリズムを用いて構築される、請求項1に記載の分散ゲームエンジン。
- 前記リソース配分モデルは、前記オンラインゲームにアクセスするユーザのタイプに基づいて前記リソース配分を特定するように構築される、請求項1に記載の分散ゲームエンジン。
- ユーザの前記タイプは、プレーヤ、観戦者、またはプレーヤ及び観戦者の組み合わせを含む、請求項11に記載の分散ゲームエンジン。
- 前記分散ゲームエンジンの前記機能部分は、前記オンラインゲームの実行中に行うべき特定のゲームエンジンタスクに対応するゲームロジックを含む、請求項1に記載の分散ゲームエンジン。
- オンラインゲーム用のリソースのプロビジョニングを行うための方法であって、
前記オンラインゲーム用のトレーニングデータを受け取り、前記トレーニングデータは、前記オンラインゲームのゲームプレイの間に受け取ったユーザ入力、前記オンラインゲームに対するゲーム状態及び成功基準を特定するものであり、
前記トレーニングデータを用いて前記オンラインゲーム用のリソース配分モデルを作成し、前記リソース配分モデルは、分散ゲームエンジンの機能部分を処理するように構成された複数の処理ノードを特定し、前記複数の処理ノードのうち選ばれた処理ノードは、前記分散ゲームエンジンの特定の機能部分を処理する処理リソースを提供するように構成されるものであり、
前記リソース配分モデルが指示するリソース配分により前記オンラインゲーム用の前記機能部分を処理するように前記複数の処理ノードを配分し、前記特定の機能部分はゲームエンジンタスクのうち選ばれたものを実行し、前記配分では、前記配分されたリソースを弾性的に調整し、
前記方法の動作はクラウドゲームシステムのサーバのプロセッサによって行われる、方法。 - 前記配分では、
前記特定の機能部分に関連付けられる前記ゲームエンジンタスクのうち前記選ばれたものを処理するように前記選ばれた処理ノードの割当てを管理し、
前記ゲームエンジンタスクのうち前記選ばれたものを前記選ばれた処理ノードに分散させて処理し、
処理結果を、前記複数の処理ノードのうち前記選ばれた処理ノードと残りのものとの間で、及び前記選ばれた処理ノードと、前記処理ノードに対して配分された前記リソースを弾性的に調整するために用いられる構成エージェントとの間でルーティングし、
前記複数の処理ノードの間で分散された前記ゲームエンジンタスクの処理を同期させる、請求項14に記載の方法。 - 前記配分では、前記分散ゲームエンジンの前記特定の機能部分を処理するための選ばれた処理ノードにプロビジョンする必要があるタイプのリソースの前記タイプ及び量を特定する、請求項15に記載の方法。
- トレーニングデータの受け取りでは、
前記オンラインゲームのゲームプレイの間に連続的に複数のユーザから前記ユーザ入力を集め、前記ユーザ入力は前記トレーニングデータを更新するものであ
り、
前記更新されたトレーニングデータと前記成功基準とに基づいて前記リソース配分モデルをリアルタイムで更新し、前記更新では、前記オンラインゲームに対して、前記分散ゲームエンジンの前記特定の機能部分を処理するための前記選ばれた処理ノードにプロビジョンする必要があるタイプのリソースの前記タイプ及び量を動的に調整する、請求項15に記載の方法。 - 前記複数の各処理ノードは別個のサーバに割り当てられ、前記別個のサーバは、そこに割り当てられた前記特定の機能部分を処理するために必要なリソースを提供する、請求項14に記載の方法。
- ユーザ入力は、前記オンラインゲームの開発者からの入力、または前記オンラインゲームのプレーヤからの入力、または前記オンラインゲームのゲームプレイを観察する観戦者からの入力、またはそれらの任意の組み合わせを含む、請求項14に記載の方法。
- 前記リソース配分モデルは、前記オンラインゲームにアクセスするユーザのタイプに基づいてリソース配分を特定し、ユーザの前記タイプは、プレーヤ、または観戦者、またはプレーヤ及び観戦者の組み合わせを含む、請求項14に記載の方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023061569A JP2023089076A (ja) | 2018-12-03 | 2023-04-05 | コンピューティングシステム及び方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/208,461 US11077362B2 (en) | 2018-12-03 | 2018-12-03 | Machine learning driven resource allocation |
US16/208,461 | 2018-12-03 | ||
PCT/US2019/061320 WO2020117442A1 (en) | 2018-12-03 | 2019-11-13 | Machine learning driven resource allocation |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023061569A Division JP2023089076A (ja) | 2018-12-03 | 2023-04-05 | コンピューティングシステム及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022509882A JP2022509882A (ja) | 2022-01-24 |
JP7259033B2 true JP7259033B2 (ja) | 2023-04-17 |
Family
ID=69646028
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021531532A Active JP7259033B2 (ja) | 2018-12-03 | 2019-11-13 | 機械学習によって推進されるリソース配分 |
JP2023061569A Pending JP2023089076A (ja) | 2018-12-03 | 2023-04-05 | コンピューティングシステム及び方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023061569A Pending JP2023089076A (ja) | 2018-12-03 | 2023-04-05 | コンピューティングシステム及び方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11077362B2 (ja) |
EP (1) | EP3891607A1 (ja) |
JP (2) | JP7259033B2 (ja) |
KR (1) | KR102322941B1 (ja) |
CN (1) | CN111249724A (ja) |
TW (1) | TWI716201B (ja) |
WO (1) | WO2020117442A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020232467A1 (en) * | 2019-05-10 | 2020-11-19 | Slovak Christopher | Artificial intelligence based video game state detection |
CN111951366B (zh) * | 2020-07-29 | 2021-06-15 | 北京蔚领时代科技有限公司 | 一种云原生3d场景游戏方法和系统 |
US20220129295A1 (en) * | 2020-10-25 | 2022-04-28 | Meta Platforms, Inc. | Server-side hosted environment for a cloud gaming system |
US11018938B1 (en) | 2020-11-06 | 2021-05-25 | Salesforce.Com, Inc. | Auditing metadata representation of a cloud-computing platform based datacenter |
US11609794B2 (en) | 2020-11-10 | 2023-03-21 | Oracle International Corporation | Techniques for modifying cluster computing environments |
US20220171960A1 (en) * | 2020-11-30 | 2022-06-02 | Sony Interactive Entertainment Inc. | Reaction track for different spectator groups within an audience |
KR102484455B1 (ko) * | 2020-12-04 | 2023-01-02 | 손동우 | 클라우드 게이밍 시스템 및 이를 제어하는 방법 |
US20220214917A1 (en) * | 2021-01-07 | 2022-07-07 | Quanta Computer Inc. | Method and system for optimizing rack server resources |
CN113368504B (zh) * | 2021-06-09 | 2023-10-17 | 咪咕互动娱乐有限公司 | 云游戏服务系统、交互方法、存储介质 |
CN113730902A (zh) * | 2021-08-13 | 2021-12-03 | 许磊 | 一种用于游戏的免下载运行方法 |
US11826644B2 (en) * | 2021-10-05 | 2023-11-28 | Sony Interactive Entertainment Inc. | Bifurcation of gameplay between mobile and non-mobile play with intelligent game state saving, and startups |
US11848842B2 (en) * | 2021-12-08 | 2023-12-19 | Sony Interactive Entertainment Inc. | Network storage game allocation based on artificial intelligence |
KR20230087319A (ko) * | 2021-12-09 | 2023-06-16 | 국민대학교산학협력단 | 인공지능 기반 클라우드 학습장치 및 방법 |
CN114880107A (zh) * | 2021-12-09 | 2022-08-09 | 许磊 | 一种高效低成本的云游戏系统 |
US11745109B2 (en) * | 2022-02-08 | 2023-09-05 | Sony Group Corporation | Methods for controlling use of computing resources, such as virtual game consoles |
CN114760639A (zh) * | 2022-03-30 | 2022-07-15 | 深圳市联洲国际技术有限公司 | 资源单元分配方法、装置、设备及存储介质 |
CN114826917B (zh) * | 2022-04-25 | 2023-12-08 | 中国农业银行股份有限公司 | 一种基于博弈的网络资源分配方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100113159A1 (en) | 2008-11-06 | 2010-05-06 | International Business Machines Corporation | Method and apparatus for partitioning virtual worlds using prioritized topic spaces in virtual world systems |
US20130254417A1 (en) | 2012-03-21 | 2013-09-26 | Jason Nicholls | System method device for streaming video |
US20140228108A1 (en) | 2013-02-12 | 2014-08-14 | Microsoft Corporation | Dynamic allocation of computing resources in remote gaming environment |
US20160019094A1 (en) | 2014-07-18 | 2016-01-21 | Thomson Reuters Global Resources (Trgr) | System and method for electronic work prediction and dynamically adjusting server resources |
US20180024868A1 (en) | 2016-07-25 | 2018-01-25 | Accenture Global Solutions Limited | Computer resource allocation to workloads in an information technology environment |
US20180093191A1 (en) | 2016-09-30 | 2018-04-05 | Electronics And Telecommunications Research Institute | Apparatus for generating game management scenario and method using the same |
WO2018187032A1 (en) | 2017-04-03 | 2018-10-11 | Sony Interactive Entertainment America Llc | Systems and methods for using a distributed game engine |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8840475B2 (en) * | 2002-12-10 | 2014-09-23 | Ol2, Inc. | Method for user session transitioning among streaming interactive video servers |
US9138644B2 (en) | 2002-12-10 | 2015-09-22 | Sony Computer Entertainment America Llc | System and method for accelerated machine switching |
US20120102185A1 (en) * | 2010-10-20 | 2012-04-26 | Sony Computer Entertainment America Inc. | Resource management of server hosts in online game environment |
CN102262534B (zh) | 2011-07-12 | 2013-10-02 | 红石娱动网络科技(北京)有限公司 | 基于互联网b/s结构的计算机网络游戏开发系统及方法 |
US9628332B2 (en) * | 2013-05-20 | 2017-04-18 | Microsoft Technology Licensing, Llc | Resource allocation to game titles in a remote gaming environment |
EP3075136A1 (en) | 2013-12-01 | 2016-10-05 | Interdigital Patent Holdings, Inc. | Quality of experience optimization using policy-based decision engines |
EP3084605B1 (en) * | 2013-12-18 | 2019-06-12 | Telefonaktiebolaget LM Ericsson (publ) | Method and network node for selecting a media processing unit |
US10296391B2 (en) * | 2014-06-30 | 2019-05-21 | Microsoft Technology Licensing, Llc | Assigning a player to a machine |
US9675889B2 (en) | 2014-09-10 | 2017-06-13 | Zynga Inc. | Systems and methods for determining game level attributes based on player skill level prior to game play in the level |
CN104363277A (zh) * | 2014-11-13 | 2015-02-18 | 上海交通大学 | 云游戏分布式系统中带宽资源分配管理系统及其管理方法 |
CN104598292B (zh) * | 2014-12-15 | 2017-10-03 | 中山大学 | 一种应用于云游戏系统的自适应流适配和资源优化方法 |
EP3265191B1 (en) * | 2015-03-06 | 2020-12-09 | Sony Interactive Entertainment LLC | Predictive instant play for an application over the cloud |
US10200261B2 (en) * | 2015-04-30 | 2019-02-05 | Microsoft Technology Licensing, Llc | Multiple-computing-node system job node selection |
US11003499B1 (en) * | 2017-06-14 | 2021-05-11 | Amazon Technologies, Inc. | Resource allocation based on agent behavior in a simulation environment |
US10579494B2 (en) * | 2018-01-05 | 2020-03-03 | Nec Corporation | Methods and systems for machine-learning-based resource prediction for resource allocation and anomaly detection |
US10841236B1 (en) * | 2018-03-30 | 2020-11-17 | Electronic Arts Inc. | Distributed computer task management of interrelated network computing tasks |
US10918941B2 (en) * | 2019-03-27 | 2021-02-16 | Electronic Arts Inc. | Predictive execution of distributed game engines |
-
2018
- 2018-12-03 US US16/208,461 patent/US11077362B2/en active Active
-
2019
- 2019-11-13 JP JP2021531532A patent/JP7259033B2/ja active Active
- 2019-11-13 WO PCT/US2019/061320 patent/WO2020117442A1/en unknown
- 2019-11-13 EP EP19853275.6A patent/EP3891607A1/en active Pending
- 2019-11-21 TW TW108142314A patent/TWI716201B/zh active
- 2019-12-03 CN CN201911218760.9A patent/CN111249724A/zh active Pending
- 2019-12-03 KR KR1020190158872A patent/KR102322941B1/ko active IP Right Grant
-
2021
- 2021-08-03 US US17/393,344 patent/US20210362049A1/en active Pending
-
2023
- 2023-04-05 JP JP2023061569A patent/JP2023089076A/ja active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100113159A1 (en) | 2008-11-06 | 2010-05-06 | International Business Machines Corporation | Method and apparatus for partitioning virtual worlds using prioritized topic spaces in virtual world systems |
US20130254417A1 (en) | 2012-03-21 | 2013-09-26 | Jason Nicholls | System method device for streaming video |
US20140228108A1 (en) | 2013-02-12 | 2014-08-14 | Microsoft Corporation | Dynamic allocation of computing resources in remote gaming environment |
US20160019094A1 (en) | 2014-07-18 | 2016-01-21 | Thomson Reuters Global Resources (Trgr) | System and method for electronic work prediction and dynamically adjusting server resources |
US20180024868A1 (en) | 2016-07-25 | 2018-01-25 | Accenture Global Solutions Limited | Computer resource allocation to workloads in an information technology environment |
US20180093191A1 (en) | 2016-09-30 | 2018-04-05 | Electronics And Telecommunications Research Institute | Apparatus for generating game management scenario and method using the same |
WO2018187032A1 (en) | 2017-04-03 | 2018-10-11 | Sony Interactive Entertainment America Llc | Systems and methods for using a distributed game engine |
Also Published As
Publication number | Publication date |
---|---|
US20200171382A1 (en) | 2020-06-04 |
WO2020117442A1 (en) | 2020-06-11 |
JP2022509882A (ja) | 2022-01-24 |
KR102322941B1 (ko) | 2021-11-08 |
TW202023665A (zh) | 2020-07-01 |
CN111249724A (zh) | 2020-06-09 |
JP2023089076A (ja) | 2023-06-27 |
US20210362049A1 (en) | 2021-11-25 |
KR20200067109A (ko) | 2020-06-11 |
US11077362B2 (en) | 2021-08-03 |
TWI716201B (zh) | 2021-01-11 |
EP3891607A1 (en) | 2021-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7259033B2 (ja) | 機械学習によって推進されるリソース配分 | |
Hong et al. | Placing virtual machines to optimize cloud gaming experience | |
JP7259037B2 (ja) | マッシブマルチプレーヤコンピュート | |
CN113710335A (zh) | 事务存储器同步 | |
US20220280867A1 (en) | Server load prediction and advanced performance measures | |
WO2023107283A1 (en) | Network storage game allocation based on artificial intelligence | |
JP2023540936A (ja) | 視線追跡に基づくヘッドアップディスプレイの自動位置決め | |
WO2024026205A1 (en) | Impaired player accessability with overlay logic providing haptic responses for in-game effects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210729 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220823 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221117 |
|
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: 20230307 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230405 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7259033 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |