JP2017119171A - Online gaming - Google Patents
Online gaming Download PDFInfo
- Publication number
- JP2017119171A JP2017119171A JP2017073700A JP2017073700A JP2017119171A JP 2017119171 A JP2017119171 A JP 2017119171A JP 2017073700 A JP2017073700 A JP 2017073700A JP 2017073700 A JP2017073700 A JP 2017073700A JP 2017119171 A JP2017119171 A JP 2017119171A
- Authority
- JP
- Japan
- Prior art keywords
- game
- viewport
- rendering
- client
- game element
- 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.)
- Granted
Links
- 238000009877 rendering Methods 0.000 claims abstract description 205
- 238000000034 method Methods 0.000 claims abstract description 138
- 230000009471 action Effects 0.000 claims description 47
- 230000033001 locomotion Effects 0.000 claims description 30
- 230000001419 dependent effect Effects 0.000 claims description 22
- 230000008859 change Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 description 37
- 238000012545 processing Methods 0.000 description 27
- 238000004891 communication Methods 0.000 description 25
- 230000015654 memory Effects 0.000 description 20
- 238000013459 approach Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008054 signal transmission Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000238876 Acari Species 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Landscapes
- Processing Or Creating Images (AREA)
Abstract
Description
本明細書に特に記載していない限り、本項に記述した手法は、本出願の特許請求の範囲に対する従来技術ではなく、本項に含めることによって従来技術であることを認めるものでもない。 Unless otherwise stated herein, the techniques described in this section are not prior art to the claims of this application and are not admitted to be prior art by inclusion in this section.
現在のマルチプレイヤーオンラインゲームでは、キャラクタを実行し、シーンをレンダリングするクライアント側を持つことができ、また、ゲーム世界の対話を実行するサーバ側を持つことができる。オンラインゲームがサーバ側でレンダリングを実行させる方向に変化するにつれて、現在の処理手法は、サーバ内において背景およびキャラクタを幾重にも完全に配布することを必要とする場合がある。そのような手法では、オンラインゲームの経験を向上させる際に禁止的な要素となる可能性があるシステム内データトラフィックの段階を作り出す可能性がある。 Current multiplayer online games can have a client side that executes characters and renders scenes, and can also have a server side that performs game world interactions. As online games change in the direction of rendering on the server side, current processing techniques may require multiple and complete distribution of backgrounds and characters within the server. Such an approach can create an in-system data traffic phase that can be a forbidden factor in improving the online gaming experience.
ある実施形態では、本開示は、ゲームクライアントにオンラインゲーム経験を提供する例示的な方法について記述する。例示的な方法は、複数のゲーム要素のそれぞれをサーバシステムの対応する複数のゲーム要素リソースに割り当てることと、複数のゲームクライアントに対してゲーム世界を規定するゲーム世界の状態への更新に基づいて、レンダリングタスクが必要な可能性があることを決定することと、複数のゲームクライアントの第1のゲームクライアントに対するゲーム世界のビューの第1のビューポートを決定することと、複数のゲーム要素の第1のゲーム要素が第1のビューポートから見えるかどうかを決定することと、複数のゲーム要素の第1のゲーム要素が第1のビューポートから見える場合に、第1のゲーム要素に対応する第1のゲーム要素リソースで、第1のビューポートに対して第1のゲーム要素のレンダリングを生成することと、第1のゲームクライアントに第1にゲーム要素のレンダリングを送信することとを含むことができる。 In certain embodiments, the present disclosure describes an exemplary method for providing an online gaming experience to game clients. An exemplary method is based on assigning each of a plurality of game elements to a corresponding plurality of game element resources of a server system and updating to a game world state that defines a game world for a plurality of game clients. Determining that a rendering task may be necessary; determining a first viewport of a view of the game world for the first game client of the plurality of game clients; and Determining whether one game element is visible from the first viewport and, if the first game element of the plurality of game elements is visible from the first viewport, the first game element corresponding to the first game element; Generating a rendering of a first game element for a first viewport with one game element resource; It can be the game client and transmitting the rendering of game element to the first.
ある実施形態では、本開示は、また、実行されたときに、サーバシステムにオンラインゲーム経験をゲームクライアントへ提供させる命令を格納した例示的な機械可読の非一時的な媒体について記述する。例示的な機械可読の非一時的な媒体は、複数のゲーム要素のそれぞれをサーバシステムの対応する複数のゲーム要素リソースに割り当てることと、複数のゲームクライアントに対してゲーム世界を規定するゲーム世界の状態への更新に基づいて、レンダリングタスクが必要な可能性があることを決定することと、複数のゲームクライアントの第1のゲームクライアントに対するゲーム世界のビューの第1のビューポートを決定することと、複数のゲーム要素の第1のゲーム要素が第1のビューポートから見えるかどうかを決定することと、複数のゲーム要素の第1のゲーム要素が第1のビューポートから見える場合に、第1のゲーム要素に対応する第1のゲーム要素リソースで、第1のビューポートに対して第1のゲーム要素のレンダリングを生成することと、第1のゲーム要素のレンダリングを第1のゲームクライアントに送信することとによって、実行されたときに、サーバシステムにオンラインゲーム経験をゲームクライアントへ提供させる命令を格納することができる。 In certain embodiments, the present disclosure also describes an exemplary machine-readable non-transitory medium that stores instructions that, when executed, cause a server system to provide an online gaming experience to a game client. An exemplary machine-readable non-transitory medium is a game world that assigns each of a plurality of game elements to a corresponding plurality of game element resources of a server system and defines a game world for a plurality of game clients. Determining that a rendering task may be necessary based on the update to the state; determining a first viewport of a view of the game world for the first game client of the plurality of game clients; Determining whether the first game element of the plurality of game elements is visible from the first viewport, and if the first game element of the plurality of game elements is visible from the first viewport, A first game element with respect to a first viewport with a first game element resource corresponding to the game element of By generating and sending a rendering of the first game element to the first game client, instructions can be stored that, when executed, cause the server system to provide an online gaming experience to the game client. .
ある実施形態では、本開示は、また、例示的なシステムについて記述する。例示的なシステムは、プロセッサと、複数のゲーム要素のそれぞれをサーバシステムの対応する複数のゲーム要素リソースに割り当てることと、複数のゲームクライアントに対してゲーム世界を規定するゲーム世界の状態への更新に基づいて、レンダリングタスクが必要な可能性があることを決定することと、複数のゲームクライアントの第1のゲームクライアントに対するゲーム世界のビューの第1のビューポートを決定することと、複数のゲーム要素の第1のゲーム要素が第1のビューポートから見えるかどうかを決定することと、複数のゲーム要素の第1のゲーム要素が第1のビューポートから見える場合に、第1のゲーム要素に対応する第1のゲーム要素リソースで、第1のビューポートに対して第1のゲーム要素のレンダリングを生成することと、第1のゲーム要素のレンダリングを第1のゲームクライアントに送信することとによって、実行されたときに、サーバシステムにオンラインゲーム経験をゲームクライアントへ提供させる命令を格納した機械可読媒体とを含むことができる。 In certain embodiments, the present disclosure also describes an exemplary system. An exemplary system includes a processor, assigning each of a plurality of game elements to a corresponding plurality of game element resources of a server system, and updating to a game world state that defines a game world for a plurality of game clients. Determining that a rendering task may be necessary, determining a first viewport of a view of the game world for the first game client of the plurality of game clients, and a plurality of games Determining whether the first game element of the element is visible from the first viewport, and if the first game element of the plurality of game elements is visible from the first viewport, Rendering the first game element for the first viewport with the corresponding first game element resource A machine-readable medium storing instructions that, when executed, cause the server system to provide an online gaming experience to the game client by executing and sending a rendering of the first game element to the first game client Can be included.
前述の概要は例を示すものであり、いかなる形においても限定することを意図するものではない。図面および以下の詳細な説明を参照することによって、上に記述した例として示す態様、実施形態、および機能に加えて、他の態様、実施形態、および機能が明白になるだろう。 The foregoing summary is an example and is not intended to be limiting in any way. In addition to the aspects, embodiments, and functions shown by way of example above, other aspects, embodiments, and functions will become apparent by reference to the drawings and the following detailed description.
主題については、明細書の結論部分に特に指摘して明確に請求する。本開示の前述および他の機能は、添付図面に関して、以下の記述および添付の請求項からより完全に明白になるだろう。これらの図は本開示に従って単に複数の実施形態を描写するものであり、したがって、その範囲の限定するものではないことを理解して、添付図面を使用して追加の特異性および詳細を用いて本開示について記述する。 The subject matter is specifically claimed, particularly in the conclusions of the specification. The foregoing and other features of the present disclosure will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. These figures depict only a number of embodiments in accordance with the present disclosure and are therefore not intended to limit the scope thereof, and are used with additional specificity and detail using the accompanying drawings. This disclosure is described.
主題については、明細書の結論部分に特に指摘し明確に請求する。本開示の前述および他の機能は、添付図面に関して、以下の記述および添付の請求項からより完全に明白になるだろう。これらの図は本開示に従って単に複数の実施形態を描写するものであり、したがって、その範囲の限定するものではないことを理解して、添付図面を使用して追加の特異性および詳細を用いて本開示について記述する。 The subject matter is specifically pointed out and specifically claimed in the conclusions of the specification. The foregoing and other features of the present disclosure will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. These figures depict only a number of embodiments in accordance with the present disclosure and are therefore not intended to limit the scope thereof, and are used with additional specificity and detail using the accompanying drawings. This disclosure is described.
以下の記述では、請求される主題について完全な理解を促すために、特定の詳細と共に、様々な例について説明している。しかし、請求される主題は、本明細書に開示した特定の詳細の一部またはそれ以上がなくても実施できることを当業者は理解されるであろう。さらに、一部の状況では、よく知られている方法、手順、システム、コンポーネント、および/または回路については、請求される主題を不必要に不明瞭にすることを避けるために詳細には記述していない。 In the following description, various examples are set forth with specific details in order to facilitate a thorough understanding of the claimed subject matter. However, one of ordinary skill in the art appreciates that the claimed subject matter can be practiced without some or more of the specific details disclosed herein. Further, in some situations, well-known methods, procedures, systems, components, and / or circuits have been described in detail to avoid unnecessarily obscuring the claimed subject matter. Not.
以下の詳細な説明では、その一部を形成する添付図面について言及する。図面では、文脈において指示されていない限り、類似の記号は、典型的には類似したコンポーネントを特定するものである。詳細な説明、図、および請求項に記述した例示的な実施形態は、限定を目的とするものではない。本明細書に提示された主題の精神または範囲から逸脱することなく、他の実施形態を利用し、他の変更を行うことができる。本明細書に一般的に記述し、図に示した本開示の態様は、多種多様の異なる構成において配置、交換、結合、および設計することができ、それらすべてが明示的に意図するものであり、本開示の一部を構成していることを容易に理解されるだろう。 In the following detailed description, references are made to the accompanying drawings that form a part hereof. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, figures, and claims are not meant to be limiting. Other embodiments may be utilized and other changes may be made without departing from the spirit or scope of the subject matter presented herein. The aspects of the disclosure generally described herein and illustrated in the figures may be arranged, interchanged, combined, and designed in a wide variety of different configurations, all of which are expressly intended. It will be readily understood that it forms part of the present disclosure.
本開示は、とりわけ、ゲームクライアントにオンラインゲーム経験を提供することに関係する方法、デバイス、システム、およびコンピュータ可読媒体について説明している。 The present disclosure describes, among other things, methods, devices, systems, and computer-readable media related to providing an online gaming experience to game clients.
一部の例では、オンラインゲーム経験を提供するために、オブジェクト指向のゲームサーバシステムを提供することができる。一部の例では、オンラインゲームは、マッシブリーマルチプレイヤーオンラインゲームでもよい。一部の例では、アーキテクチャは、サーバシステムでリソースまたはサービスにそれぞれ割り当てるためにゲーム要素を提供することができる。そのようなアーキテクチャでは、ゲーム要素のモデルは、リソースまたはサービスで本質的に局所化することができるため、サーバシステムでモデルデータをほとんど移動させないことが可能であるため、サーバシステムのリソースを効率的に利用することができる。一部の例では、ゲームサーバは、サービス指向でもよいため、割り当てられたリソースまたはサービスでゲームの動作を解決できるため、同様のサーバシステムのリソース節約を達成することができる。 In some examples, an object-oriented game server system can be provided to provide an online gaming experience. In some examples, the online game may be a massively multiplayer online game. In some examples, the architecture can provide game elements for allocation to resources or services, respectively, in the server system. In such an architecture, the model of the game element can be inherently localized with resources or services, so that it is possible to move little model data in the server system, thus making the resource of the server system efficient. Can be used. In some examples, the game server may be service-oriented, so that game operations can be resolved with assigned resources or services, and similar server system resource savings can be achieved.
レンダリングタスクが必要な可能性があるという決定に応じて、ゲーム入力、ゲームのビューポート情報、および/または他の情報は、全体的にまたは部分的に、サーバの複数のリソースに供給することができる。記述したように、たとえば、サーバのリソースは、動作の解決またはゲーム要素に割り当てるか、かつ/または専用に用いることができる。一部の例では、1つまたは複数の動作解決リソースは、受信されたゲーム入力に関係するゲームの動作を解決し、ゲーム世界の状態を更新することができる。これは、サーバシステムに維持することができる。ゲーム世界の状態の更新に応じて、割り当てられたゲーム要素リソースは、ゲームクライアントに送信されるゲーム要素をレンダリングすることができる。一部の例では、割り当てられたゲーム要素リソースでレンダリングされるゲーム要素は、効率的な並列のゲームサーバアーキテクチャを提供することができる。 Depending on the determination that a rendering task may be required, game input, game viewport information, and / or other information may be provided in whole or in part to multiple resources of the server. it can. As described, for example, server resources can be allocated to action resolutions or game elements and / or dedicated. In some examples, the one or more action resolution resources may resolve game actions related to the received game input and update the state of the game world. This can be maintained in the server system. In response to an update of the game world state, the assigned game element resource can render a game element that is sent to the game client. In some examples, game elements rendered with assigned game element resources can provide an efficient parallel game server architecture.
一部の例では、ゲームクライアントのビューポートは、ビューポートから見ることができる可能性がある1つまたは複数のゲーム要素を決定するために評価することができる。一般的に、ビューポートは、ゲーム世界の表示領域を含むことができ、また、ビューポートは、任意の適切な形状を含むことができる。一部の例では、ビューポートは、3次元シーンの2次元投影を規定することができる。一部の例では、ビューポートは、ゲームクライアントに対する表示可能な領域を含むことができる。一部のゲーム要素は、複数のゲームクライアントのビューポートに含めることができることを理解されたい。一部の例では、ゲームクライアント依存しないレンダリングに基づいて各ビューポートに対して実行される最終的なゲームクライアントに依存するレンダリングを用いて、複数のビューポートで共通して、ゲームクライアントに依存しないレンダリングを使用することができるように、ゲーム要素をレンダリングすることができる。そのような手法およびアーキテクチャは、無駄が多い反復的なゲーム要素のレンダリングを本質的に減らすことができる。本明細書に記述したシステムアーキテクチャおよび方法は、映画品質のゲーム要素を持つマッシブリーマルチプレイヤーオンラインゲームを提供することができる。 In some examples, the game client's viewport may be evaluated to determine one or more game elements that may be viewable from the viewport. In general, the viewport can include a display area of the game world, and the viewport can include any suitable shape. In some examples, the viewport can define a two-dimensional projection of a three-dimensional scene. In some examples, the viewport can include a displayable area for the game client. It should be understood that some game elements can be included in multiple game client viewports. Some examples are common to multiple viewports and do not rely on game clients, with final game client dependent rendering performed on each viewport based on game client independent rendering Game elements can be rendered so that rendering can be used. Such an approach and architecture can inherently reduce the rendering of wasted and repetitive game elements. The system architecture and methods described herein can provide massively multiplayer online games with movie quality game elements.
図1は、本開示の少なくとも一部の実施形態に従って配置された、オンラインゲーム経験を提供するための例示的なシステム100を示すブロック図である。図示するように、システム100は、ゲーム世界の状態120、ゲームサーバリソース130、動作解決リソース112、114、116、ゲーム要素リソース142、144、146を含むことができる。また図示するように、システム100は、1つまたは複数のゲームクライアント102、104、106と通信することができる。一般的に、システム100は、特に以下に図4を用いて記述したように、本明細書に記述した任意の適切な方法で実装することができる。システム100は、ゲームクライアント102、104、106にオンラインゲーム経験を提供するために、本明細書に記述した手法を実装することができる。 FIG. 1 is a block diagram illustrating an exemplary system 100 for providing an online gaming experience arranged in accordance with at least some embodiments of the present disclosure. As shown, the system 100 can include a game world state 120, a game server resource 130, action resolution resources 112, 114, 116, and game element resources 142, 144, 146. Also as shown, the system 100 can communicate with one or more game clients 102, 104, 106. In general, system 100 may be implemented in any suitable manner as described herein, particularly as described below using FIG. System 100 may implement the techniques described herein to provide an online gaming experience to game clients 102, 104, 106.
一般的に、ゲームまたはゲーム環境において、ゲーム要素はそれぞれ、システム100の対応するゲーム要素リソースに割り当てることができる。割り当てられたゲーム要素は、任意の適切なゲーム要素を含むことができる。一部の例では、本明細書にさらに記述したように、ゲーム要素は、システム100の割り当てられたゲーム要素リソース142、144、146を使用して、個々にレンダリングすることができる。一部の例では、割り当てられたゲーム要素は、ゲームキャラクタ、ゲームキャラクタの一部、ゲームオブジェクト、ゲームオブジェクトの一部、ゲームシーンの一部、またはゲームシーンなどでもよい。図示するように、ゲーム要素は、それぞれのゲーム要素リソース142、144、146に割り当てることができる。一般的に、ゲーム要素リソース142、144、146は、任意の適切なコンピューティング要素を含むことができる。一部の例では、ゲーム要素リソース142、144、146は、コンピュータ、複数のコンピュータ、サーバ、コンピュータリソース、バーチャルマシン、またはコンピュータクラスタなどを含むことができる。一部のゲーム要素は、専用のゲーム要素リソースに割り当てられない場合があることを理解されたい。一部の例では、そのようなゲーム要素は、ゲームクライアントまたはゲームサーバリソース130でレンダリングすることができる。 Generally, in a game or game environment, each game element can be assigned to a corresponding game element resource in system 100. The assigned game element can include any suitable game element. In some examples, game elements may be rendered individually using the assigned game element resources 142, 144, 146 of the system 100, as further described herein. In some examples, the assigned game element may be a game character, a part of a game character, a game object, a part of a game object, a part of a game scene, a game scene, or the like. As shown, game elements can be assigned to respective game element resources 142, 144, 146. In general, game element resources 142, 144, 146 may include any suitable computing element. In some examples, game element resources 142, 144, 146 may include computers, multiple computers, servers, computer resources, virtual machines, computer clusters, or the like. It should be understood that some game elements may not be assigned to dedicated game element resources. In some examples, such game elements can be rendered on a game client or game server resource 130.
図示するように、一部の例では、ゲームの動作解決はそれぞれ、動作解決リソース112、114、116に割り当てることができる。一般的に、割り当てられたゲームの動作解決は、任意の適切なゲームの動作解決を含むことができる。一部の例では、本明細書にさらに記述したように、ゲームの動作解決は、システム100の動作解決リソース112、114、116を使用して、個々に処理することができる。一部の例では、割り当てられたゲームの動作解決は、戦闘解決リソース、動き解決リソース、オブジェクト解決リソース、または衝突解決リソースなどを含むことができる。図示するように、ゲームの動作解決は、それぞれの動作解決リソース112、114、116に割り当てることができる。一般的に、動作解決リソース112、114、116は、任意の適切なコンピューティング要素を含むことができる。一部の例では、動作解決リソース112、114、116は、コンピュータ、複数のコンピュータ、サーバ、コンピュータリソース、バーチャルマシン、またはコンピュータクラスタなどを含むことができる。一部のゲームの動作解決は、専用の解決動作リソースに割り当てられない場合があることを理解されたい。一部の例では、動作解決は、ゲームクライアントまたはゲームサーバリソース130でレンダリングすることができる。 As shown, in some examples, game action resolutions may be assigned to action resolution resources 112, 114, 116, respectively. In general, the assigned game motion resolution may include any suitable game motion resolution. In some examples, game motion resolution may be handled individually using the motion resolution resources 112, 114, 116 of the system 100, as further described herein. In some examples, assigned game motion resolution may include combat resolution resources, motion resolution resources, object resolution resources, collision resolution resources, or the like. As shown, game action resolution can be assigned to each action resolution resource 112, 114, 116. In general, the operation resolution resources 112, 114, 116 may include any suitable computing element. In some examples, the operation resolution resources 112, 114, 116 may include computers, multiple computers, servers, computer resources, virtual machines, computer clusters, or the like. It should be understood that motion resolution for some games may not be assigned to dedicated resolution motion resources. In some examples, the behavioral solution can be rendered at a game client or game server resource 130.
図示するように、一部の例では、システム100は、ゲーム世界の状態120を含むことができる。一般的に、ゲーム世界の状態120は、提供されているオンラインゲームの状態を含むことができる。一部の例では、ゲーム世界の状態は、ゲームサーバで維持および更新することができる。一部の例では、ゲーム世界の状態120は、ゲームクライアント102、104、106に対してゲーム世界を規定することができる。一部の例では、ゲーム世界の状態は、ゲーム要素の場所、ゲーム要素の姿勢、またはゲームの照明などを含むことができる。ゲーム世界の状態120は、システム100に任意の適切な方法で実装することができる。一部の例では、ゲーム世界の状態120は、データベースとして実装することができる。図示するように、動作解決リソース112、114、116、ゲーム要素リソース142、144、146、およびゲームサーバリソース130は、ゲーム世界の状態120に通信するように結合することができる。 As shown, in some examples, the system 100 can include a game world state 120. In general, the game world state 120 may include the state of the online game being provided. In some examples, the state of the game world can be maintained and updated at the game server. In some examples, game world state 120 may define a game world for game clients 102, 104, 106. In some examples, the state of the game world may include game element location, game element attitude, game lighting, or the like. Game world state 120 may be implemented in system 100 in any suitable manner. In some examples, the game world state 120 may be implemented as a database. As shown, behavior resolution resources 112, 114, 116, game element resources 142, 144, 146, and game server resources 130 can be coupled to communicate to game world state 120.
図示するように、ゲームクライアント102、104、106は、システム100に通信するように結合することができる。本明細書にさらに記述したように、ゲームクライアント102、104、106は、システム100にゲーム入力、ビューポート情報、および/または他の情報を提供または送信することができる。一般的に、ゲーム入力は、任意の適切なゲーム入力を含むことができる。一部の例では、ゲーム入力は、ゲーム要素の動き、ゲーム要素の選択、ゲームリソースの選択、ゲーム選択肢の選択、ゲームの動きなどを含むことができる。一般的に、ビューポート情報は、任意の適切な情報を含むことができる。一部の例では、ビューポート情報は、ゲーム世界内の場所、ゲーム世界内のビュー、ゲーム世界の座標などを含むことができる。ゲーム入力、ビューポート、および他の情報は、任意の適切な通信手法を使用してサーバ100と通信することができる。一部の例では、ゲーム入力は、オンライン通信を介してサーバ100と通信することができる。 As shown, game clients 102, 104, 106 can be communicatively coupled to system 100. As described further herein, game clients 102, 104, 106 may provide or send game input, viewport information, and / or other information to system 100. In general, game inputs can include any suitable game input. In some examples, game input can include game element movement, game element selection, game resource selection, game option selection, game movement, and the like. In general, viewport information can include any suitable information. In some examples, the viewport information may include a location within the game world, a view within the game world, coordinates of the game world, and so on. Game input, viewports, and other information can be communicated with server 100 using any suitable communication technique. In some examples, the game input can communicate with server 100 via online communication.
一般的に、サーバ100で、ゲーム入力、ビューポート情報、および/または他の情報は、任意の適切なリソースまたはリソースに通信することができる。一部の例では、ゲーム入力は、ゲームサーバリソース130に通信することができる。一部の例では、ゲーム入力はゲームの動作を含むことができ、ゲーム入力のすべてまたは一部は、動作解決リソース112、114、116の1つまたは複数に通信することができる。一部の例では、ゲーム入力は、ゲーム要素への変更を含むことができ、ゲーム入力のすべてまたは一部は、ゲーム要素リソース142、144、146の1つまたは複数に通信することができる。一部の例では、ビューポート情報は、ゲーム要素リソース142、144、146の1つまたは複数に送信することができる。一部の例では、ゲーム入力は、必要なリソースにすべて提供することができる。一部の例では、ゲーム入力は、部分的に必要なリソースに提供できるため、リソースによって必要とされる情報だけを含むゲーム入力データまたは信号を送信することができる。そのような手法は、システム100内のデータ転送を減らすことができる。 In general, at server 100, game input, viewport information, and / or other information can be communicated to any suitable resource or resource. In some examples, the game input can be communicated to the game server resource 130. In some examples, the game input can include game actions, and all or a portion of the game input can be communicated to one or more of action resolution resources 112, 114, 116. In some examples, the game input can include changes to the game element, and all or a portion of the game input can be communicated to one or more of the game element resources 142, 144, 146. In some examples, viewport information may be sent to one or more of game element resources 142, 144, 146. In some examples, game input can be provided to all necessary resources. In some examples, game input can be provided to partially required resources, so game input data or signals that include only the information required by the resources can be transmitted. Such an approach can reduce data transfer within the system 100.
記述したように、一部の例では、ゲーム入力、ビューポート情報、および/または他の情報は、動作解決リソース112、114、116の1つまたは複数に通信することができる。一般的に、1つまたは複数の動作解決リソース112、114、116は、ゲーム入力に関係するゲームの動作を処理することができ、ゲーム世界の状態120は、処理されたゲームの動作に応じて更新することができる。記述したように、動作解決リソース112、114、116は、リソースに割り当てられたゲームの動作を個々に処理することができる。一部の例では、動作解決リソース112、114、116は、必要に応じて相互に通信することができる。ゲーム世界の状態が更新されると、結果としてゲーム世界のビューが変更または更新される場合があることを理解されたい。ここで、ゲーム世界のビューは、ゲーム世界の状態の視覚的な描写または表現の場合がある。そのため、更新されたゲーム世界のビューは、1つまたは複数のゲーム要素の更新されたレンダリングを必要とする場合がある。そのような更新されたレンダリングは、更新されたゲーム世界の状態120およびゲーム世界のビューへの対応する更新に応じて、ゲーム要素リソース142、144、146で実行することができる。 As described, in some examples, game input, viewport information, and / or other information may be communicated to one or more of motion resolution resources 112, 114, 116. In general, one or more action resolution resources 112, 114, 116 can process game actions related to game input, and game world state 120 depends on the processed game actions. Can be updated. As described, the action resolution resources 112, 114, 116 can individually process the actions of the game assigned to the resources. In some examples, the operation resolution resources 112, 114, 116 can communicate with each other as needed. It should be understood that when the game world state is updated, the game world view may change or be updated as a result. Here, the view of the game world may be a visual depiction or representation of the state of the game world. As such, an updated view of the game world may require an updated rendering of one or more game elements. Such updated rendering may be performed on the game element resources 142, 144, 146 in response to the updated game world state 120 and corresponding updates to the view of the game world.
本明細書にさらに記述したように、一部の例では、ゲーム世界の状態への更新によって影響を受けたゲーム要素は、更新されたレンダリングを必要とする場合がある。たとえば、ゲームクライアント102、104、106の1つまたは複数が、ゲームクライアントのビューポートからゲーム要素またはゲーム要素の一部のビューを持っている可能性がある場合、ゲーム要素は、更新されたレンダリングを必要とする場合がある。ここでビューポートは、ゲームクライアントによって見えるゲーム世界のビュー全体の領域でもよい。そのような例では、更新されたレンダリングを必要とする可能性があるゲーム要素は、割り当てられたゲーム要素リソースでレンダリングすることができる。そのようなレンダリングは、ゲームクライアントに依存しないレンダリングおよび続くゲームクライアントに依存するレンダリングを含むことができる。一部の例では、ゲームクライアントに依存しないレンダリングは、ゲーム要素のビューに依存しない可能性がある1つまたは複数のレンダリングパスを含むことができる。一部の例では、ゲームクライアントに依存するレンダリングは、ゲーム要素のビューに依存する可能性がある1つまたは複数のレンダリングパスを含むことができ、ゲームクライアントに依存するレンダリングは、ゲームクライアントに依存しないレンダリングに基づいて行うことができる。 As described further herein, in some examples, game elements that are affected by an update to the state of the game world may require an updated rendering. For example, if one or more of the game clients 102, 104, 106 may have a view of the game element or a portion of the game element from the game client viewport, the game element is updated to May be required. Here, the viewport may be an area of the entire view of the game world as seen by the game client. In such an example, game elements that may require updated rendering can be rendered with the assigned game element resources. Such rendering may include game client independent rendering and subsequent game client dependent rendering. In some examples, game client independent rendering may include one or more rendering passes that may be independent of the view of the game element. In some examples, game client dependent rendering may include one or more rendering passes that may depend on the view of the game element, and game client dependent rendering is game client dependent. Not based on rendering.
一部の例では、ゲーム要素は、ゲームクライアント102、104、106の2つ以上によって見ることができる。そのような例では、ゲーム要素のゲームクライアントに依存しないレンダリングは、ゲーム要素リソースで一度だけ行うことができる。一部の例では、ゲーム要素の各ゲームクライアントに依存するレンダリングは、同じゲームクライアントに依存しないレンダリングに基づいて行うことができる。そのような手法は、システム100でかなりの処理リソースを節約するという長所を持つ場合がある。記述したように、ゲーム要素リソース142、144、146は、関係する割り当てられたゲーム要素のレンダリングを個々に処理することができる。一部の例では、ゲーム要素リソース142、144、146は、必要に応じて相互に通信することができる。 In some examples, game elements can be viewed by two or more of game clients 102, 104, 106. In such an example, game client independent rendering of game elements can be performed only once with game element resources. In some examples, each game client dependent rendering of a game element may be based on the same game client independent rendering. Such an approach may have the advantage of saving significant processing resources in the system 100. As described, the game element resources 142, 144, 146 can individually handle the rendering of the associated assigned game element. In some examples, the game element resources 142, 144, 146 can communicate with each other as needed.
そのようなレンダリングおよび/または処理の手法は、ゲームクライアント102、104、106のビューポートに対して必要なすべてのゲーム要素をレンダリングするために、必要に応じてシステム100で実行することができる。一般的に、レンダリングされたゲーム要素は、任意の適切な方法でゲームクライアント102、104、106に送信することができる。一部の例では、各レンダリングされたゲーム要素は、別々に送信することができる。一部の例では、各要素のゲームクライアント特定の部分は、ゲームクライアント102、104、106に別々に送信することができる。一部の例では、1つまたは複数のレンダリングされたゲーム要素を含むレンダリングされたシーンは、合成されたシーンとして送信することができる。一部の例では、複数のレンダリングされたゲーム要素は、レンダリングされたゲーム要素の再合成に関係するメタデータと共にゲームクライアントに送信することができる。一部の例では、メタデータは、トラッキング表示条件、ラインオブサイト計算、または境界ボックストラッキングなどを含むことができる。 Such rendering and / or processing techniques may be performed in the system 100 as needed to render all necessary game elements for the game client 102, 104, 106 viewports. In general, rendered game elements can be transmitted to game clients 102, 104, 106 in any suitable manner. In some examples, each rendered game element can be sent separately. In some examples, the game client specific portion of each element may be sent separately to the game clients 102, 104, 106. In some examples, a rendered scene that includes one or more rendered game elements can be sent as a synthesized scene. In some examples, a plurality of rendered game elements can be sent to the game client along with metadata related to the resynthesis of the rendered game elements. In some examples, the metadata can include tracking display conditions, line-of-sight calculations, bounding box tracking, or the like.
記述したように、本明細書に記述した手法は、ゲームクライアント102、104、106にオンラインゲーム経験を提供するために使用することができる。一般的に、記述した手法は、任意の数のゲームクライアントにゲーム経験を提供することができる。さらに、システム100は、任意の数のゲーム要素リソース142、144、146、および動作解決リソース112、114、116を含むことができる。記述したシステムおよび手法は並列化を提供できるため、システム100内で転送されるデータの量を減らすことができる。一部の例では、本明細書に記述したゲーム要素は、映画品質でレンダリングすることができる。そのような品質は、たとえば、約1GBを超えるメモリを占有する可能性があるゲームキャラクタを提供することができる。記述したシステムおよび手法は、不必要なレンダリングを排除するために、ゲームクライアントに依存しないレンダリングの再利用およびインテリジェントなレンダリング決定を用いて効率的なゲーム要素レンダリングを提供することができる。記述した手法は、特に図2に関して本明細書に詳細に記述している。 As described, the techniques described herein can be used to provide an online gaming experience to game clients 102, 104, 106. In general, the described techniques can provide a gaming experience to any number of game clients. Further, the system 100 can include any number of game element resources 142, 144, 146 and action resolution resources 112, 114, 116. The described systems and techniques can provide parallelism, thereby reducing the amount of data transferred within the system 100. In some examples, the game elements described herein can be rendered with movie quality. Such quality can provide, for example, a game character that can occupy more than about 1 GB of memory. The described systems and techniques can provide efficient game element rendering using game client independent rendering reuse and intelligent rendering decisions to eliminate unnecessary rendering. The described approach is described in detail herein with particular reference to FIG.
図2は、本開示の少なくとも一部の実施形態に従って配置された、オンラインゲーム経験を提供するための例示的な方法200を示す流れ図である。一般的に、方法200は、本明細書に記述したような任意の適切なデバイス、複数のデバイス、またはシステムによって実行することができる。一部の例では、方法200は、サーバシステムによって実行することができる。一部の例では、方法200は、データセンターまたはデータセンタークラスタによって実行することができる。方法200は、処理ステップ、機能操作、イベント、および/または動作として記述できる様々な機能ブロックまたは動作を説明するものであり、これらは、ハードウェア、ソフトウェア、および/またはファームウェアによって実行することができる。様々な実装において、図2に示す機能ブロックの多数の代替案を実施することができる。たとえば、請求された主題の範囲から逸脱することなく、図2に図示していない干渉動作および/または図2に図示していない追加の動作を用いることができ、かつ/または図2に示す動作の一部を排除することができる。一部の例では、図2に示す動作は、並列処理手法を使用して運用することができる。方法200は、ブロック205、210、215、220、225、230、235、240、245、250、255、および/または260の1つまたは複数によって示すような機能操作の1つまたは複数を含むことができる。方法200のプロセスは、ブロック205で開始することができる。 FIG. 2 is a flow diagram illustrating an exemplary method 200 for providing an online gaming experience arranged in accordance with at least some embodiments of the present disclosure. In general, method 200 may be performed by any suitable device, devices, or systems as described herein. In some examples, the method 200 can be performed by a server system. In some examples, method 200 may be performed by a data center or data center cluster. The method 200 describes various functional blocks or operations that can be described as processing steps, functional operations, events, and / or operations, which can be performed by hardware, software, and / or firmware. . In various implementations, numerous alternatives to the functional blocks shown in FIG. 2 can be implemented. For example, interference actions not shown in FIG. 2 and / or additional actions not shown in FIG. 2 may be used and / or actions shown in FIG. 2 without departing from the scope of the claimed subject matter. A part of can be eliminated. In some examples, the operations shown in FIG. 2 can be operated using parallel processing techniques. Method 200 includes one or more of the functional operations as indicated by one or more of blocks 205, 210, 215, 220, 225, 230, 235, 240, 245, 250, 255, and / or 260. Can do. The process of method 200 may begin at block 205.
ブロック205「対応するゲーム要素リソースにゲーム要素を割り当てる」で、多数のゲーム要素のそれぞれは、サーバシステムの対応する多数のゲーム要素リソースに割り当てることができる。一般的に、サーバシステムは、本明細書に記述したように任意の方法で実装することができる。記述したように、割り当てられたゲーム要素は、任意の適切なゲーム要素を含むことができる。一部の例では、割り当てられたゲーム要素は、ゲームキャラクタ、ゲームキャラクタの一部、ゲームオブジェクト、ゲームオブジェクトの一部、ゲームシーンの一部、またはゲームシーンなどでもよい。ゲーム要素は、ゲーム要素リソース142、144、146など、それぞれのゲーム要素リソースに割り当てることができる。一般的に、ゲーム要素リソースは、たとえば、コンピュータ、複数のコンピュータ、サーバ、コンピュータリソース、バーチャルマシン、またはコンピュータクラスタなど、任意の適切なコンピューティング要素を含むことができる。一部のゲーム要素は、専用のゲーム要素リソースに割り当てられない場合があることを理解されたい。方法200のプロセスは、ブロック210で継続することができる。 At block 205 "assign game elements to corresponding game element resources", each of a number of game elements can be assigned to a corresponding number of game element resources of the server system. In general, the server system can be implemented in any manner as described herein. As described, the assigned game elements can include any suitable game elements. In some examples, the assigned game element may be a game character, a part of a game character, a game object, a part of a game object, a part of a game scene, a game scene, or the like. Game elements can be assigned to respective game element resources, such as game element resources 142, 144, 146. In general, a game element resource may include any suitable computing element, such as, for example, a computer, multiple computers, servers, computer resources, virtual machines, or computer clusters. It should be understood that some game elements may not be assigned to dedicated game element resources. The process of method 200 may continue at block 210.
ブロック210「レンダリングタスクが必要であることを決定する」では、サーバシステムは、レンダリングタスクが必要な可能性があると決定することができる。一般的に、サーバシステムは、任意の適切な方法でレンダリングタスクが必要であると決定することができる。一部の例では、サーバシステムは、ゲーム世界の状態への更新に基づいてレンダリングタスクが必要であると決定することができる。一部の例では、サーバシステムは、ゲーム変更に基づいてゲーム世界の状態への更新に基づいてレンダリングタスクが必要な可能性があると決定することができる。そのようなゲーム変更は、ゲームのルール、ゲームアルゴリズム、またはゲーム世界の状態に適用されるゲームからのゲーム物理学に基づいてもよい。一部の例では、サーバシステムは、タイムチックまたは時間経過など、時間の経過に基づいてレンダリングタスクが必要であると決定することができる。 In block 210 “Determine that a rendering task is required”, the server system may determine that a rendering task may be required. In general, the server system can determine that a rendering task is required in any suitable manner. In some examples, the server system may determine that a rendering task is needed based on an update to the game world state. In some examples, the server system may determine that a rendering task may be required based on an update to a game world state based on a game change. Such game changes may be based on game rules, game algorithms, or game physics from the game applied to the game world state. In some examples, the server system may determine that a rendering task is needed based on the passage of time, such as time ticks or passage of time.
一部の例では、サーバシステムはレンダリングタスクを決定することができ、サーバシステムは、ゲームクライアントから受信したゲーム入力に基づいてゲーム世界の状態へのゲーム変更に基づいて、レンダリングタスクが必要であると決定することができる。一般的に、サーバシステムは、任意の適切な方法でゲームクライアントから入力を受信することができる。一般的に、任意の数のゲームクライアントは、サーバシステムに通信するように結合することができ、任意のゲームクライアントは、サーバシステムにゲーム入力を送信することができる。一般的に、ゲーム入力は、たとえば、要求されたキャラクタの動き、要求されたキャラクタの動作、ゲームビューの変更、またはゲームトランザクションなど、任意の適切なゲーム入力の場合がある。一部の例では、多数のゲーム入力は、1つまたは複数ゲームクライアントから収集することができる。 In some examples, the server system can determine a rendering task, and the server system requires a rendering task based on a game change to a game world state based on game input received from a game client. Can be determined. In general, the server system can receive input from the game client in any suitable manner. In general, any number of game clients can be communicatively coupled to the server system, and any game client can send game input to the server system. In general, the game input may be any suitable game input such as, for example, requested character movement, requested character motion, game view change, or game transaction. In some examples, multiple game inputs can be collected from one or more game clients.
本明細書に記述したように、一部の例では、1つのゲーム入力または多数のゲーム入力を受信することができる。一部の例では、1つまたは複数のゲーム入力は、ゲーム世界の状態を更新するために使用することができる。一般的に、ゲーム世界の状態は、ゲームサーバで維持および更新することができる。一部の例では、ゲーム世界の状態は、ゲーム要素の場所、ゲーム要素の姿勢、またはゲームの照明などを含むことができる。ゲーム世界の状態は、任意の適切な1つまたは複数の手法を使用して更新することができる。一部の例では、ゲーム世界の状態は、データベースとして維持することができ、ゲーム世界の更新は、データベース更新を含むことができる。一部の例では、ゲーム世界の状態の更新は、ゲーム入力に対する動作解決を決定することと、ゲーム世界の状態に動作解決を適用することとを含むことができる。一部の例では、ゲーム世界の状態の更新は、動作解決リソースまたはゲームサーバによって管理されているオブジェクトまたはイベントの動作を解決することを含むことができる。一部の例では、多数のゲームの動作解決のそれぞれは、サーバシステムの対応する多数の動作解決リソースに割り当てることができる。そのような例では、動作解決は、受信されたゲーム入力に関係する多数の動作解決リソースの動作解決リソースで決定することができる。一般的に、ゲームの動作解決は、任意の適切なゲームの動作解決を含むことができる。一部の例では、動作解決リソースは、戦闘解決リソース、動き解決リソース、オブジェクト解決リソース、または衝突解決リソースでもよい。方法200のプロセスは、ブロック215で継続することができる。 As described herein, in some examples, one game input or multiple game inputs may be received. In some examples, one or more game inputs can be used to update the state of the game world. In general, the state of the game world can be maintained and updated on the game server. In some examples, the state of the game world may include game element location, game element attitude, game lighting, or the like. The state of the game world can be updated using any suitable technique or techniques. In some examples, the game world state may be maintained as a database, and the game world updates may include database updates. In some examples, updating the game world state may include determining a motion resolution for the game input and applying the motion resolution to the game world state. In some examples, updating the game world state may include resolving the behavior of an object or event managed by a motion resolution resource or game server. In some examples, each of a number of game action resolutions may be assigned to a corresponding number of action resolution resources of the server system. In such an example, action resolution may be determined with action resolution resources of a number of action resolution resources related to the received game input. In general, game motion resolution may include any suitable game motion resolution. In some examples, the motion resolution resource may be a battle resolution resource, a motion resolution resource, an object resolution resource, or a collision resolution resource. The process of method 200 may continue at block 215.
ブロック215「ゲームクライアントのビューポートを決定する」では、ゲームクライアントのゲーム世界のビューのビューポートを決定することができる。一般的に、ビューポートは、任意の適切な手法を使用して決定することができる。一部の例では、ゲーム世界のビューのビューポートは、ゲームクライアントからビューポートパラメータを受信することによって決定することができる。一部の例では、ゲーム世界のビューのビューポートは、サーバシステムでビューポートパラメータを生成することによって決定することができる。一部の例では、ゲーム世界のビューはゲーム世界の状態の視覚的な描写または表現の場合がある。一部の例では、ビューポートは、ゲームクライアントによって見えるゲーム世界のビュー全体の領域の場合がある。記述したように、ビューポートはゲームクライアントに関係する場合がある。一部の例では、ビューポートは、第1のゲームクライアントに関係する第1のビューポートの場合がある。方法200のプロセスは、ブロック220で継続することができる。 In block 215 “determine the viewport of the game client”, the viewport of the game client's view of the game world may be determined. In general, the viewport can be determined using any suitable technique. In some examples, the viewport of the game world view may be determined by receiving viewport parameters from the game client. In some examples, the viewport of the game world view may be determined by generating viewport parameters at the server system. In some examples, the game world view may be a visual depiction or representation of the state of the game world. In some examples, the viewport may be an area of the entire view of the game world that is visible by the game client. As described, viewports may relate to game clients. In some examples, the viewport may be a first viewport associated with the first game client. The process of method 200 may continue at block 220.
判定ブロック220「ゲーム要素は見えるか?」では、多数のゲーム要素のゲーム要素がビューポートから見えるかどうかを決定することができる。一般的に、任意の適切な手法を使用して、ゲーム要素がビューポートから見える可能性があるかどうかを決定することができる。一部の例では、ゲーム要素の1つまたは複数のポリゴンが、ビューポート内で見え、他のゲーム要素によって不明瞭にならない可能性があるかどうかを決定することによって、ゲーム要素がビューポートから見える可能性があるかどうかを決定することができる。ゲーム要素がビューポートから見えない場合、方法200のプロセスは、ブロック235で継続することができる。ゲーム要素がビューポートから見える場合、方法200のプロセスは、ブロック225で継続することができる。 In decision block 220 “Can the game element be seen?”, It may be determined whether the game elements of the multiple game elements are visible from the viewport. In general, any suitable technique can be used to determine whether a game element may be visible from a viewport. In some examples, the game element is removed from the viewport by determining whether one or more polygons of the game element are visible in the viewport and may not be obscured by other game elements. It can be determined whether it can be seen. If the game element is not visible from the viewport, the process of method 200 may continue at block 235. If the game element is visible from the viewport, the method 200 process may continue at block 225.
ブロック235「ゲーム要素をレンダリングしない」では、ゲーム要素はレンダリングされない。一般的に、ゲーム要素がゲームクライアントのビューポートから見えなくてもよい場合、そのビューポートから見られるようにゲーム要素をレンダリングすることは、サーバリソースを浪費している可能性があることを理解されたい。ゲーム要素がレンダリングされなくてもよい場合、本明細書で下にさらに詳しく記述したように、方法200のプロセスは、ブロック255で継続することができる。 In block 235 “Do not render game elements”, no game elements are rendered. In general, if a game element does not have to be visible from the game client's viewport, it should be understood that rendering the game element as seen from that viewport may be wasting server resources. I want to be. If the game element need not be rendered, the process of method 200 may continue at block 255 as described in further detail herein below.
判定ブロック225「ゲーム要素のレンダリングは必要か?」では、ゲーム要素をレンダリングする必要があるかどうかを決定することができる。一般的に、任意の適切な手法を使用して、ゲーム要素をレンダリングする必要があるかどうかを決定することができる。一部の例では、ゲーム要素は見える可能性があるが、要素をレンダリングする必要がない可能性があるようにビューの範囲にある可能性があるため(たとえば、ビューポートにおいて小さい場合がある)、ゲーム要素をレンダリングする必要がない場合がある。一部の例では、望まれるレンダリングは以前に完了されており、サーバシステムのメモリに保存(たとえばキャッシュ)されているため、ゲーム要素をレンダリングする必要がない場合がある。ゲーム要素をレンダリングする必要がない可能性がある場合、方法200のプロセスは、ブロック235で継続することができる。ゲーム要素をレンダリングする必要がある場合、方法200のプロセスは、ブロック230で継続することができる。 Decision block 225 “Does Game Element Render Needed?” Can determine whether a game element needs to be rendered. In general, any suitable technique can be used to determine whether a game element needs to be rendered. In some cases, the game element may be visible, but may be in view so that the element may not need to be rendered (eg, may be small in the viewport) , You may not need to render game elements. In some examples, it may not be necessary to render the game element because the desired rendering has been previously completed and stored in memory (eg, cached) in the server system. If the game element may not need to be rendered, the process of method 200 may continue at block 235. If a game element needs to be rendered, the process of method 200 can continue at block 230.
記述したように、ブロック235「ゲーム要素をレンダリングしない」では、本明細書で下にさらに詳しく記述したように、ゲーム要素はレンダリングされず、方法200のプロセスはブロック255で継続することができる。 As described, at block 235 “Do not render game element”, the game element is not rendered and the process of method 200 may continue at block 255 as described in more detail herein below.
判定ブロック230「ゲームクライアントに依存しないレンダリングは必要か?」では、ゲーム要素のゲームクライアントに依存しないレンダリングが必要かどうかを決定することができる。一般的に、ゲームクライアントに依存しないレンダリングが完了しておらず、サーバシステムに保存されていない場合、ゲーム要素のゲームクライアントに依存しないレンダリングは必要な場合がある。本明細書に記述したように、方法200のプロセスは、任意の数のゲームクライアントおよび/またはゲームクライアントのビューポートに対して完了することができ、ゲーム要素は見ることができ、1つまたは複数のゲームクライアントのビューポートに対してレンダリングすることを必要とする場合がある。一般的に、ゲーム要素の第1のレンダリングに対して、ゲーム要素またはゲーム要素の一部のゲームクライアントに依存しないレンダリングが必要な場合がある。一部の例では、そのレンダリングは、サーバシステムに保存することができ、ゲーム要素の続くレンダリングに対して(他のゲームクライアントのビューポートに対して)、ゲームクライアントに依存しないレンダリングは繰り返されなくてもよく、代わりに、保存されたゲームクライアントに依存しないレンダリングを使用することができる。そのような手法により、サーバシステムでかなりの処理リソースを節約することができる。ゲームクライアントに依存しないレンダリングをレンダリングする必要がない場合、方法200のプロセスは、ブロック245で継続することができる。ゲームクライアントに依存しないレンダリングをレンダリングする必要がある場合、方法200のプロセスは、ブロック240で継続することができる。 At decision block 230 “Is Game Client Independent Rendering Required?”, It may be determined whether game element independent rendering of the game element is required. In general, if the game client independent rendering is not completed and not stored in the server system, the game client independent rendering of the game element may be necessary. As described herein, the process of method 200 can be completed for any number of game clients and / or game client viewports, game elements can be viewed, and one or more You may need to render to the game client's viewport. In general, a first rendering of a game element may require rendering that is independent of the game element or part of the game element of the game client. In some examples, the rendering can be saved to the server system, and for game element subsequent renderings (for other game client viewports), game client independent rendering is not repeated. Alternatively, a saved game client independent rendering can be used. Such an approach can save significant processing resources in the server system. If there is no need to render a game client independent rendering, the process of method 200 may continue at block 245. If a game client independent rendering needs to be rendered, the process of method 200 may continue at block 240.
ブロック240「ゲームクライアントに依存しないレンダリングを実行する」では、ゲーム要素のゲームクライアントに依存しないレンダリングを実行することができる。一般的に、ゲームクライアントに依存しないレンダリングは、特に図1に関して本明細書に記述したように、ゲーム要素に割り当てられたサーバリソースで完了することができる。一般的に、ゲームクライアントに依存しないレンダリングは、ゲーム要素全体、またはゲーム要素の1つまたは複数のアクティブなポリゴンに対して実行できるため、アクティブなポリゴンは、更新されたレンダリングを必要とするゲーム要素レンダリングのポリゴンを含むことができる。一部の例では、アクティブなポリゴンは、ゲームクライアントビューポートから見えるポリゴンを含むことができる。一部の例では、更新されたレンダリングを必要としない可能性があるポリゴンは、非アクティブと考えられる可能性があり、レンダリングされない可能性がある。一般的に、ゲームクライアントに依存しないレンダリングは、任意の適切な手法を使用して実行することができる。一部の例では、ゲーム要素の1つまたは複数のアクティブなポリゴンのゲームクライアントに依存しないレンダリングを実行することができる。一部の例では、ゲームクライアントに依存しないレンダリングは、複数のレンダリングパスを含むことができる。記述したように、一部の例では、ゲーム要素全体またはゲーム要素の1つまたは複数のアクティブなポリゴンのゲームクライアントに依存しないレンダリングは、サーバシステムで将来の使用のためにキャッシュすることができる。 At block 240 “Perform Game Client Independent Rendering”, game client independent rendering of game elements may be performed. In general, game client independent rendering can be completed with server resources assigned to game elements, particularly as described herein with respect to FIG. In general, game client independent rendering can be performed on the entire game element or on one or more active polygons of the game element, so that active polygons are game elements that require updated rendering. Rendering polygons can be included. In some examples, active polygons may include polygons that are visible from the game client viewport. In some examples, polygons that may not require updated rendering may be considered inactive and may not be rendered. In general, rendering independent of the game client can be performed using any suitable technique. In some examples, game client independent rendering of one or more active polygons of game elements may be performed. In some examples, game client independent rendering may include multiple rendering passes. As described, in some examples, the game element independent rendering of the entire game element or one or more active polygons of the game element may be cached for future use at the server system.
記述したように、ゲームクライアントに依存しないレンダリングは、1つまたは複数のレンダリングパスを含むことができる。一般的に、レンダリングパスは、任意の適切なレンダリング手法を含むことができる。一部の例では、レンダリングパスは、通常のレンダリング、拡散レンダリング、鏡面レンダリング、カラーレンダリング、シャドーレンダリング、アンビエントオクルージョン(AO)レンダリング、ジオメトリレンダリング、ディスプレースメントレンダリング、ワイヤーフレームレンダリング、アルティチュードレンダリング、Z深度レンダリング、またはアルファレンダリング、などを含むことができる。一般的に、レンダリングパスの1つまたは複数を実行することができる。レンダリングパスが多ければゲーム要素レンダリングを改善できる可能性があるが、サーバシステムのリソースをより多く必要とする可能性があることを理解されたい。一部の例では、サーバシステムは、サーバリソース負荷、ゲーム要素の場所もしくは隆起(prominence)、ゲームクライアントに依存しないレンダリングの使用数、またはゲーム要素の重要性などの1つまたは複数の要素に基づいて、レンダリングパスのタイプを実行するべきかどうかを決定することができる。方法200のプロセスは、ブロック245で継続することができる。 As described, game client independent rendering may include one or more rendering passes. In general, a rendering pass can include any suitable rendering technique. In some examples, the rendering pass is normal rendering, diffuse rendering, specular rendering, color rendering, shadow rendering, ambient occlusion (AO) rendering, geometry rendering, displacement rendering, wireframe rendering, altitude rendering, Z depth Rendering, or alpha rendering, etc. In general, one or more of the rendering passes can be performed. It should be appreciated that more rendering passes may improve game element rendering, but may require more server system resources. In some examples, the server system is based on one or more factors such as server resource load, game element location or prominence, game client independent rendering usage, or game element importance. To determine whether the type of rendering pass should be performed. The process of method 200 may continue at block 245.
ブロック245「ビューポートに依存するレンダリングを実行する」では、ゲーム要素全体またはゲーム要素の1つもしくは複数のアクティブなポリゴンのゲームクライアントに依存するレンダリングを実行することができる。一般的に、ゲームクライアントに依存するレンダリングは、特に図1に関して本明細書に記述したように、ゲーム要素に割り当てられたサーバリソースで完了することができる。一般的に、ゲームクライアントに依存するレンダリングはゲームクライアントに依存しないレンダリングおよびゲームクライアントのビューポートに基づいてもよい。一般的に、ゲームクライアントに依存するレンダリングは、任意の適切な手法を使用して実行することができる。一部の例では、ゲームクライアントに依存するレンダリングは、1つまたは複数のレンダリングパスを含むことができる。一般的に、レンダリングパスは、任意の適切なレンダリング手法を含むことができる。一部の例では、レンダリングパスは、通常のレンダリング、拡散レンダリング、鏡面レンダリング、カラーレンダリング、シャドーレンダリング、アンビエントオクルージョン(AO)レンダリング、ジオメトリレンダリング、ディスプレースメントレンダリング、ワイヤーフレームレンダリング、アルティチュードレンダリング、Z深度レンダリング、またはアルファレンダリングなどを含むことができる。一般的に、レンダリングパスの1つまたは複数を実行することができる。ゲームクライアントに依存しないレンダリングに関して記述したように、レンダリングパスが多ければゲーム要素レンダリングを改善できる可能性があるが、サーバシステムのリソースをより多く必要とする可能性がある。一部の例では、サーバシステムは、サーバリソース負荷、ゲーム要素の場所もしくはプロミネンス、ゲームクライアントに依存しないレンダリングの使用数、またはゲーム要素の重要性などの1つまたは複数の要素に基づいて、レンダリングパスのタイプを実行するべきかどうかを決定することができる。 At block 245 “Perform Viewport Dependent Rendering”, the game client dependent rendering of the entire game element or one or more active polygons of the game element may be performed. In general, game client dependent rendering can be completed with server resources assigned to game elements, particularly as described herein with respect to FIG. In general, game client dependent rendering may be based on game client independent rendering and game client viewports. In general, rendering that relies on game clients can be performed using any suitable technique. In some examples, game client dependent rendering may include one or more rendering passes. In general, a rendering pass can include any suitable rendering technique. In some examples, the rendering pass is normal rendering, diffuse rendering, specular rendering, color rendering, shadow rendering, ambient occlusion (AO) rendering, geometry rendering, displacement rendering, wireframe rendering, altitude rendering, Z depth Rendering, alpha rendering, etc. can be included. In general, one or more of the rendering passes can be performed. As described with respect to rendering independent of the game client, a large number of rendering passes may improve game element rendering, but may require more server system resources. In some examples, the server system renders based on one or more factors such as server resource load, game element location or prominence, game client independent rendering usage, or game element importance. It can be determined whether the type of pass should be performed.
一般的に、方法200のブロック240、245に関して記述した手法は、ゲームクライアントに対してゲーム要素のレンダリングを提供することができることを理解されたい。一般的に、ゲームクライアントにゲーム要素のレンダリングを提供するために、任意の手法を使用することができる。一部の例では、ゲームクライアントに依存しないレンダリングは実行されなくてもよく、ビューポートに依存するレンダリングだけを実行することができる。そのような手法により、実装を簡潔にすることができ、本明細書に記述したように並列化およびリソース割り当ての利点を提供することができる。方法200のプロセスは、ブロック250で継続することができる。 In general, it should be understood that the techniques described with respect to blocks 240, 245 of method 200 can provide rendering of game elements to a game client. In general, any technique can be used to provide a rendering of game elements to a game client. In some examples, game client independent rendering may not be performed, and only viewport dependent rendering may be performed. Such an approach can simplify implementation and provide the benefits of parallelization and resource allocation as described herein. The process of method 200 may continue at block 250.
ブロック250「送信する」では、ゲーム要素またはゲーム要素の一部のレンダリングをゲームクライアントに送信することができる。一般的に、ゲーム要素またはゲーム要素の一部は、任意の適切な通信手法を使用して、ゲームクライアントに送信することができる。一部の例では、レンダリングされたゲーム要素またはゲーム要素の一部は、ゲームクライアントだけに送信することができる。そのような例では、ゲームシーンの合成は、ゲームクライアントによって完了することができる。一部の例では、ゲームクライアントは、それらのビューポートで2つ以上のゲーム要素のレンダリングを必要とする場合がある。一部の例では、2つ以上のゲーム要素は、ゲームクライアントに別々に送信することができる。一部の例では、2つ以上のゲーム要素の再合成に関係するメタデータは、2つ以上のゲーム要素のレンダリングと共にゲームクライアントに送信することができる。 In block 250 “send”, a rendering of the game element or a portion of the game element may be sent to the game client. In general, a game element or a portion of a game element can be transmitted to a game client using any suitable communication technique. In some examples, the rendered game element or part of the game element can be sent only to the game client. In such an example, the composition of the game scene can be completed by the game client. In some examples, a game client may need to render more than one game element in their viewport. In some examples, two or more game elements can be sent separately to the game client. In some examples, metadata related to the recombination of two or more game elements can be sent to the game client along with the rendering of the two or more game elements.
一部の例では、サーバは、合成されたゲームシーンまたは合成されたゲームシーンの一部をゲームクライアントに送信することができる。一部の例では、第1のゲーム要素レンダリングが完了すると、2つ以上のゲーム要素をレンダリングできるまで、第1のゲーム要素はゲームサーバに保存することができる。一部の例では、すべてのゲーム要素のレンダリングは、同時にまたは本質的に同時に完了することができる。そのような手法では、たとえば、本明細書に記述したようにマップリデュース手法を使用して、並列処理を提供することができる。ゲームクライアントのビューポートですべてのゲーム要素のレンダリングを完了すると、ゲームシーンを合成し、ゲームクライアントに送信することができる。記述したように、一般的に、各ゲーム要素は、ゲーム要素に割り当てられた対応するゲーム要素リソースでレンダリングすることができる。一部の例では、ゲームシーンの合成は、サーバシステムのゲーム全般ゲームサーバリソースで実行することができる。一部の例では、ゲームシーンの合成は、サーバシステムのゲーム専用合成リソースで実行することができる。方法200のプロセスは、ブロック255で継続することができる。 In some examples, the server may send the synthesized game scene or a portion of the synthesized game scene to the game client. In some examples, once the first game element rendering is complete, the first game element can be stored on the game server until two or more game elements can be rendered. In some examples, rendering of all game elements can be completed simultaneously or essentially simultaneously. Such an approach can provide parallel processing using, for example, a map reduce approach as described herein. Once all game elements have been rendered in the game client's viewport, the game scene can be synthesized and sent to the game client. As described, in general, each game element can be rendered with a corresponding game element resource assigned to the game element. In some examples, the composition of the game scene can be performed on a game general game server resource of the server system. In some examples, the composition of the game scene can be performed with a game-specific composition resource of the server system. The process of method 200 may continue at block 255.
判定ブロック255「他のゲーム要素?」では、ブロック230で他のゲーム要素を評価する必要がある可能性があるかどうかを決定することができる。一般的に、任意の適切な方法で他のゲーム要素を評価する必要がある可能性があるかどうかを決定することができる。一部の例では、ゲームクライアントのビューポートにある可能性があるゲーム要素のリストを維持することができ、ブロック220、225、230、235、240、245、および/または250に関係するプロセスを完了することができるため、各ゲーム要素にフラグを発行することができる。他のゲーム要素を評価する必要がある可能性がある場合、方法のプロセスは、ブロック220で継続することができる。他のゲーム要素を評価する必要がない可能性がある場合、そのプロセスは、判定ブロック260で継続することができる。 At decision block 255 “other game elements?”, It may be determined at block 230 whether other game elements may need to be evaluated. In general, it can be determined whether other game elements may need to be evaluated in any suitable manner. In some examples, a list of game elements that may be in the game client's viewport may be maintained, and processes related to blocks 220, 225, 230, 235, 240, 245, and / or 250 may be performed. Since it can be completed, a flag can be issued to each game element. If other game elements may need to be evaluated, the method process may continue at block 220. If it may not be necessary to evaluate other game elements, the process can continue at decision block 260.
一部の例では、他のゲーム要素を評価する必要がある可能性がある場合、本明細書に記述したようなプロセスおよび手法は、ゲーム要素に対して本質的に繰り返すことができる。一部の例では、第1のゲーム要素を完了することができ、ブロック220に戻ったときに、第2のゲーム要素に対してプロセスを実行することができる。一部の例では、方法200のプロセスは、第2のゲーム要素が第1のビューポートから見える可能性があるかどうかを決定することができ、第2のゲーム要素が第1のビューポートから見える可能性がある場合、第2のゲーム要素に対応するゲーム要素リソースで、ビューポートに対して第2のゲーム要素のレンダリングを生成し、ゲームクライアントに第2のゲーム要素のレンダリングを送信する。 In some examples, if other game elements may need to be evaluated, the processes and techniques as described herein can be essentially repeated for game elements. In some examples, the first game element can be completed, and the process can be performed on the second game element when returning to block 220. In some examples, the process of method 200 may determine whether a second game element may be visible from the first viewport, where the second game element is from the first viewport. If so, a rendering of the second game element is generated for the viewport with the game element resource corresponding to the second game element and the rendering of the second game element is sent to the game client.
一部の例では、他のゲーム要素の評価は、第1のゲーム要素と同時にまたは本質的に同時に実行できるため、並列処理手法を利用することができる。一般的に、方法200は、任意の数のゲーム要素に対して同時にまたは本質的に同時に実行することができる。一部の例では、並列処理手法は、本明細書に記述したようにマップリデュースアーキテクチャを使用することができる。 In some examples, the evaluation of other game elements can be performed concurrently or essentially simultaneously with the first game element, so a parallel processing approach can be utilized. In general, the method 200 can be performed on any number of game elements simultaneously or essentially simultaneously. In some examples, the parallel processing approach may use a map reduce architecture as described herein.
判定ブロック260「他のゲームクライアント?」では、ブロック215で他のゲームクライアントのゲームクライアントビューポートを評価する必要がある可能性があるかどうかを決定することができる。一般的に、任意の適切な手法を使用して、他のゲームクライアントを評価する必要がある可能性があるかどうかを決定することができる。一部の例では、受信されるゲーム入力によって影響を受ける可能性があるゲームクライアントのリストを作成および/または維持することができ、ブロック215、220、225、230、235、240、245、および/または250に関係するプロセスを完了することができるため、各ゲームクライアントにフラグを発行することができる。他のゲームクライアントを評価する必要がある可能性がある場合、方法のプロセスは、ブロック215で継続することができる。他のゲーム要素を評価する必要がない可能性がある場合、プロセスは、ブロック210で継続することができる。 At decision block 260 “other game clients?”, It may be determined at block 215 whether there may be a need to evaluate the game client viewports of other game clients. In general, any suitable technique can be used to determine whether other game clients may need to be evaluated. In some examples, a list of game clients that may be affected by the received game input may be created and / or maintained, blocks 215, 220, 225, 230, 235, 240, 245, and Since a process related to / or 250 can be completed, a flag can be issued to each game client. If it may be necessary to evaluate other game clients, the method process may continue at block 215. If it may not be necessary to evaluate other game elements, the process can continue at block 210.
一部の例では、他のゲームクライアントを評価する必要がある可能性がある場合、本明細書に記述したようなプロセスおよび手法は、ゲームクライアントに対して本質的に繰り返すことができる。一部の例では、第1のゲームクライアントを完了することができ、ブロック225に戻ると、第2のゲームクライアントに対してプロセスを実行することができる。一部の例では、方法200のプロセスは、第2のゲームクライアントに対してゲーム世界のビューの第2のビューポートを決定することができる。第2のゲームクライアントに対して、ゲーム要素が第2のゲームクライアントのビューポートから見える可能性があるかどうかを決定することができる。一部の例では、第1のゲームクライアントに関して以前にレンダリングされたゲーム要素が、また、第2のゲームクライアントのビューポートから見える可能性があることを理解されたい。一部の例では、第1のゲームクライアントに関して実行されたゲームクライアントに依存しないレンダリングが保存されている可能性がある。そのような例では、ゲーム要素のゲームクライアントに依存するレンダリングは、第2のビューポートおよび以前に実行および/または保存されたゲームクライアントに依存しないレンダリングに基づいて、第2のゲームクライアントのビューポートから生成することができる。そのような手法により、サーバシステムでかなりの処理リソースを節約することができる。 In some examples, if other game clients may need to be evaluated, processes and techniques as described herein can be essentially repeated for game clients. In some examples, the first game client can be completed, and returning to block 225, the process can be performed for the second game client. In some examples, the process of method 200 may determine a second viewport of a game world view for a second game client. For the second game client, it can be determined whether the game element may be visible from the view port of the second game client. It should be appreciated that in some examples, previously rendered game elements for the first game client may also be visible from the second game client's viewport. In some examples, a game client independent rendering performed with respect to the first game client may be stored. In such an example, the game client dependent rendering of the game element is based on the second viewport and the previously executed and / or saved game client independent rendering based on the second game client viewport. Can be generated from Such an approach can save significant processing resources in the server system.
一部の例では、他のゲームクライアントの評価は、第1のゲーム要素と同時にまたは本質的に同時に実行できるため、並列処理手法を利用することができる。記述したように、一般的に、方法200は、任意の数のビューポートに対して同時にまたは本質的に同時に実行することができる。一部の例では、並列処理手法は、本明細書に記述したようなマップリデュースアーキテクチャを使用することができる。そのような手法は、レンダリングタスクに必要なシステム内のデータ移動の量を減らすことによって、サーバシステムで本質的に効率的な処理を提供することができる。 In some examples, the parallel processing approach can be utilized because the evaluation of other game clients can be performed concurrently or essentially simultaneously with the first game element. As described, in general, the method 200 can be performed on any number of viewports simultaneously or essentially simultaneously. In some examples, the parallel processing approach may use a map reduce architecture as described herein. Such an approach can provide essentially efficient processing at the server system by reducing the amount of data movement in the system required for rendering tasks.
他のゲームクライアントを評価する必要がない可能性がある場合、またはすべてのゲームクライアントが完了すると、方法200のプロセスは、ブロック210で継続することができ、ここでサーバシステムは、レンダリングタスクの要求を待つことができる。一般的に、レンダリングタスクが必要な可能性があるため、方法200のプロセスは何度も繰り返すことができる。 If it may not be necessary to evaluate other game clients, or when all game clients are complete, the process of method 200 may continue at block 210 where the server system requests a rendering task. Can wait. In general, the process of method 200 can be repeated many times because a rendering task may be required.
方法200のプロセスは、1つまたは複数のゲームクライアントに関係するゲームビューを完了させるためにループ内に入れ子にされたビューポートに1つまたは複数のゲーム要素のためのレンダリングを完了されるためにループに関係する入れ子にされたループを含むことを理解されたい。そのような入れ子にされたループは、必要なレンダリングタスクの各決定に対して完了することができる。そのようなレンダリングタスクは、必要なレンダリングまたはフレームレンダリングなどを規定することができる。一部の例では、そのような入れ子にされたループは、サーバシステムで効率を提供するため活用することができる。たとえば、ゲーム要素のレンダリングループは、時間の経過を通じてアクティブなゲーム要素またはポリゴンを予測することができる。一部の例では、ゲームクライアントに依存しないレンダリングとして人気のあるゲーム要素の多くの姿勢を保存またはキャッシュできるため、それらのレンダリングは、再び繰り返す必要がない場合がある。 The process of method 200 is to complete rendering for one or more game elements in a viewport nested in a loop to complete a game view related to one or more game clients. It should be understood that nested loops involving loops are included. Such a nested loop can be completed for each determination of the required rendering task. Such a rendering task can define the required rendering or frame rendering, etc. In some examples, such nested loops can be exploited to provide efficiency in the server system. For example, a game element rendering loop may predict active game elements or polygons over time. In some examples, many poses of popular game elements can be saved or cached as game client independent renderings, so those renderings may not need to be repeated again.
さらに、図1に関して、および本明細書の他の場所に記述した並列アーキテクチャは、サーバシステムで効率化のために活用することができる。一般的に、方法200の図示するループおよび/または入れ子にされたループは、サーバシステムで本質的に並列に実行することができる。たとえば、ブロック215、220、225、230、235、240、245、250、255、および/または260は、並列処理手法を使用して、任意の数のビューポートおよび/またはゲームクライアントに対して、同時にまたは本質的に同時に実行することができる。一般的に、方法200の任意の連続する記述は、直列または並列の処理手法のいずれかを使用して本質的に実装することができる。 Further, the parallel architecture described with respect to FIG. 1 and elsewhere herein can be utilized for efficiency in server systems. In general, the illustrated loops and / or nested loops of method 200 can be executed essentially in parallel on the server system. For example, blocks 215, 220, 225, 230, 235, 240, 245, 250, 255, and / or 260 may be performed for any number of viewports and / or game clients using parallel processing techniques. It can be performed simultaneously or essentially simultaneously. In general, any contiguous description of method 200 can be implemented essentially using either serial or parallel processing techniques.
図3は、本開示の少なくとも一部の実施形態に従って配置された、オンラインゲーム経験を提供するための例示的な実装300を示すブロック図である。図示するように、実装300は、ゲーム要素リソース142、144、146、動作解決リソース112、114、116、ゲームサーバリソース、および/または本明細書に記述したようなゲーム世界の状態120を含むことができるシステム100を含むことができる。一般的に、システム100は、本明細書に記述したようなゲームクライアント(明瞭さのために図示せず)に通信するように結合することができる。図示するように、実装300は、システム100にビューポート入力310および/または動作入力320を受信することを含むことができる。一般的に、ビューポート入力310および/または動作入力320は、ゲームクライアントの1つまたは複数から受信することができ、特に図1に関して本明細書に記述したように任意の適切な入力でもよい。一部の例では、ビューポート入力310は、1つまたは複数のゲームクライアントのビューポート情報を含むことができ、動作入力320は、1つまたは複数のゲームクライアントのアクション情報を含むことができる。 FIG. 3 is a block diagram illustrating an example implementation 300 for providing an online gaming experience arranged in accordance with at least some embodiments of the present disclosure. As shown, implementation 300 includes game element resources 142, 144, 146, action resolution resources 112, 114, 116, game server resources, and / or game world state 120 as described herein. A system 100 capable of In general, system 100 can be coupled to communicate to a game client (not shown for clarity) as described herein. As shown, implementation 300 can include receiving viewport input 310 and / or motion input 320 into system 100. In general, viewport input 310 and / or action input 320 may be received from one or more of the game clients, and may be any suitable input, particularly as described herein with respect to FIG. In some examples, the viewport input 310 can include viewport information for one or more game clients, and the motion input 320 can include action information for one or more game clients.
図3に示すように、実装300は、収集/マップブロック330、340を含むことができる。一般的に、収集/マップブロック330は、ゲーム要素リソース142、144、146への情報を収集および/またはマッピングすることができ、収集/マップブロック340は、動作解決リソース112、114、116への情報を収集および/またはマッピングすることができる。一般的に、収集/マップブロック330、340は、任意の適切な要求に応じて、そのような収集および/またはマッピングを実行することができる。一部の例では、たとえば、要求は、ゲームサーバリソース130によって生成することができる。一般的に、収集/マップブロック330、340は、任意の適切な手法を使用して、情報を収集およびマッピングすることができる。一部の例では、収集/マップブロック330は、ゲーム要素リソース142、144、146にマッピングするために、ビューポート入力310を含むゲームクライアント(図示せず)から情報を収集することができる。一部の例では、収集/マップブロック340は、動作解決リソース112、114、116にマッピングするために、動作入力320を含むゲームクライアント(図示せず)から情報を収集することができる。一般的に、収集/マップブロック330、340は、システム100で任意の適切な方法で実装することができる。一部の例では、収集/マップブロック330、340は、システム100のゲームサーバリソースの一部または部分として実装することができる。一部の例では、収集/マップブロック330、340は、コンピュータ、多数のコンピュータ、サーバ、コンピュータリソース、バーチャルマシン、またはコンピュータクラスタなどとして実装することができる。 As shown in FIG. 3, the implementation 300 can include collection / map blocks 330, 340. In general, the collect / map block 330 can collect and / or map information to the game element resources 142, 144, 146, and the collect / map block 340 can access the action resolution resources 112, 114, 116. Information can be collected and / or mapped. In general, the collection / map blocks 330, 340 may perform such collection and / or mapping according to any suitable request. In some examples, for example, the request can be generated by the game server resource 130. In general, the collection / map blocks 330, 340 may collect and map information using any suitable technique. In some examples, the collect / map block 330 can collect information from a game client (not shown) that includes a viewport input 310 to map to game element resources 142, 144, 146. In some examples, the collect / map block 340 can collect information from a game client (not shown) that includes action inputs 320 for mapping to action resolution resources 112, 114, 116. In general, the collection / map blocks 330, 340 may be implemented in the system 100 in any suitable manner. In some examples, the collect / map blocks 330, 340 can be implemented as part or part of the game server resources of the system 100. In some examples, the collection / map blocks 330, 340 may be implemented as a computer, multiple computers, servers, computer resources, virtual machines, computer clusters, or the like.
図3に示すように、実装300は、結合/送信ブロック350を含むことができる。一般的に、結合/送信ブロック350は、情報を結合および/または送信することができる。一部の例では、結合/送信ブロック350は、たとえば、ゲーム要素リソース142、144、146からゲーム要素のレンダリングなどの情報を結合し、ゲームクライアント(図示せず)に情報を送信することができる。一般的に、結合/送信ブロック350は、任意の適切な要求に応じて、そのような結合および/または送信を実行することができる。一部の例では、たとえば、要求はゲームサーバリソース130によって生成することができる。一般的に、結合/送信ブロック350は、任意の適切な手法を使用して、情報を結合および/または送信することができる。一部の例では、結合/送信ブロック350は、ゲーム要素リソース142、144、146からゲーム要素のレンダリングを収集することができる。一部の例では、結合/送信ブロック350は、ゲームクライアント(図示せず)に送信する。本明細書に記述したように、一部の例では、ゲーム要素のレンダリングは、合成されたシーンとして送信することができ、他の実施形態では、ゲーム要素のレンダリングは、別に送信することができる。一般的に、結合/送信ブロック350は、システム100で任意の適切な方法で実装することができる。一部の例では、結合/送信ブロック350は、ゲームサーバリソースの一部または部分として実装することができる。一部の例では、結合/送信ブロック350は、コンピュータ、多数のコンピュータ、サーバ、コンピュータリソース、バーチャルマシン、またはコンピュータクラスタなどとして実装することができる。 As shown in FIG. 3, the implementation 300 may include a combine / transmit block 350. In general, combine / send block 350 may combine and / or transmit information. In some examples, the combine / send block 350 can combine information, such as rendering of game elements from the game element resources 142, 144, 146, for example, and send the information to a game client (not shown). . In general, combining / transmitting block 350 may perform such combining and / or transmission in response to any suitable request. In some examples, for example, the request can be generated by the game server resource 130. In general, combine / send block 350 may combine and / or transmit information using any suitable technique. In some examples, the join / send block 350 may collect game element renderings from the game element resources 142, 144, 146. In some examples, the join / send block 350 sends to a game client (not shown). As described herein, in some examples, rendering of game elements can be sent as a synthesized scene, and in other embodiments, rendering of game elements can be sent separately. . In general, combining / transmitting block 350 may be implemented in system 100 in any suitable manner. In some examples, the join / send block 350 can be implemented as part or part of a game server resource. In some examples, join / send block 350 may be implemented as a computer, multiple computers, servers, computer resources, virtual machines, computer clusters, or the like.
一般的に、収集/マップブロック340および結合/送信ブロック350は、動作解決およびゲーム要素のレンダリングのために並列処理を提供することができる。一部の例では、収集/マップブロック340および結合/送信ブロック350は、マップリデュース手法を使用して、並列処理を提供することができる。一部の例では、収集/マップブロック340および結合/送信ブロック350は、動作解決およびゲーム要素のレンダリングのために並列処理を個別に提供できるため、それらは同じタイミングおよび/または需要スケジュールになくてもよい。一部の例では、収集/マップブロック340および結合/送信ブロック350は、動作解決およびゲーム要素のレンダリングのために並列処理を提供できるため、それらは同じタイミングおよび/または需要スケジュールにあってもよい。 In general, the collect / map block 340 and the join / send block 350 can provide parallel processing for motion resolution and game element rendering. In some examples, the gather / map block 340 and the join / send block 350 can provide parallel processing using a map reduce approach. In some examples, the gather / map block 340 and the join / send block 350 can provide parallel processing separately for motion resolution and game element rendering so that they are not at the same timing and / or demand schedule. Also good. In some examples, the collect / map block 340 and the combine / send block 350 can provide parallel processing for motion resolution and game element rendering, so they may be at the same timing and / or demand schedule. .
本明細書に記述したように、動作解決リソース112、114、116はそれぞれ、ゲームの動作に割り当てることができる。さらに、本明細書に記述したように、そのようなゲームの動作は、実装300に示すような並列処理手法を使用して実行することができる。一部の例では、事前に定めたとき、1つまたは複数の動作入力320の受信時、ゲームのルール、ゲームアルゴリズム、またはゲーム世界の状態に適用されているゲームからのゲーム物理学などに基づいてゲームの変更が必要な可能性があるなどの決定時などに、ゲーム世界の状態120への更新が必要な可能性があるという指示を決定することができる。一部の例では、ゲーム世界の状態120への更新が必要な可能性があるという指示に応じて、収集/マップブロック340は、ゲームサーバリソース130から多数の収集動作入力320および他の情報を収集し(ある場合)、動作解決リソース112、114、116に入力および/または他の情報をマッピングすることができる。一部の例では、動作解決リソース112、114、116は、入力および/または他の情報に基づいてゲームの動作を解決し、ゲーム世界の状態120に更新を提供することができる。そのような収集/マップ手法およびゲーム世界の状態の更新は、必要に応じて実施することができる。 As described herein, each action resolution resource 112, 114, 116 can be assigned to a game action. Further, as described herein, the operation of such a game can be performed using a parallel processing technique as shown in implementation 300. In some examples, based on pre-determined, upon receipt of one or more action inputs 320, game rules, game algorithms, or game physics from a game applied to a game world state, etc. An instruction that the game world state 120 may need to be updated can be determined, for example, when it is determined that the game may need to be changed. In some examples, in response to an indication that an update to the game world state 120 may be required, the collect / map block 340 obtains a number of collect action inputs 320 and other information from the game server resource 130. Gathering (if any) and mapping input and / or other information to action resolution resources 112, 114, 116. In some examples, behavior resolution resources 112, 114, 116 may resolve game behavior based on input and / or other information and provide updates to game world state 120. Such collection / map techniques and game world state updates can be implemented as needed.
本明細書に記述したように、ゲーム要素リソース142、144、146はそれぞれ、ゲーム要素に割り当てることができる。さらに、本明細書に記述したように、レンダリングタスクが必要な可能性があることをシステム100で決定することができる。レンダリングタスクが必要な可能性があるという決定は、たとえば、ゲーム世界の状態120への更新に基づいてもよい。特に図2に関して本明細書に記述したように、システム100は、ゲーム要素が見える可能性があるかどうかを決定し、必要に応じてゲームクライアントに依存しないレンダリングを実行し、必要に応じてゲームクライアントに依存するレンダリングを実行し、かつ/または必要に応じて完了されたゲームクライアントに依存するレンダリングを送信することができる。記述したように、そのような手法は、実装300に示すような並列処理を使用して実行することができる。一部の例では、レンダリングタスクが必要であると決定されたときに、収集/マップブロック330は、ゲームクライアント(図示せず)からもしくはシステム100内で行われた決定から、またはそれらの組み合わせから、多数のビューポート入力310を収集することができる。収集されたビューポート情報および/または他の情報は、ゲーム要素リソース142、144、146にマッピングすることができる。一部の例では、ゲーム要素リソース142、144、146は、本明細書に記述したように1つまたは複数のゲームクライアントにゲーム要素のレンダリングを提供することができる。一部の例では、ゲームクライアントに依存するレンダリングなど、ゲームクライアントのレンダリングは、結合/送信ブロック350で結合することができる。記述したように、結合されたレンダリングは、合成されたシーン、または個別のレンダリングとしてゲームクライアント(図示せず)に送信することができる。そのような収集/マップ手法および結合/送信手法は、必要に応じて繰り返すことができる。一部の例では、レンダリングタスクが必要な可能性があるたびに、それらを繰り返すことができる。 As described herein, game element resources 142, 144, 146 can each be assigned to a game element. Further, as described herein, the system 100 can determine that a rendering task may be necessary. The determination that a rendering task may be necessary may be based on an update to the game world state 120, for example. In particular, as described herein with respect to FIG. 2, the system 100 determines whether game elements may be visible, performs game client independent rendering as needed, and game as needed. Client dependent rendering can be performed and / or a completed game client dependent rendering can be sent as needed. As described, such an approach can be performed using parallel processing as shown in implementation 300. In some examples, when it is determined that a rendering task is needed, the collect / map block 330 may be from a game client (not shown) or from a decision made within the system 100, or a combination thereof. Multiple viewport inputs 310 can be collected. The collected viewport information and / or other information can be mapped to game element resources 142, 144, 146. In some examples, game element resources 142, 144, 146 may provide rendering of game elements to one or more game clients as described herein. In some examples, game client rendering, such as game client dependent rendering, may be combined in a combine / send block 350. As described, the combined rendering can be sent to the game client (not shown) as a composite scene or as a separate rendering. Such collection / map techniques and combining / transmission techniques can be repeated as needed. In some examples, rendering tasks can be repeated whenever they may be needed.
一般的に、図1、図2、および/または図3に関して記述したシステムアーキテクチャおよび方法は、任意の適切なサーバおよび/またはコンピューティングシステムで実装することができる。例示的なシステムについて、図5に関して、および本明細書の他の場所に記述している。一部の例では、本明細書に記述したようなオンラインゲームシステム、データセンター、もしくデータクラスタ、または他のシステムは、複数の物理的なサイトまたは場所を通じて実装することができる。一部の例では、オンラインゲームシステムは、複数のゲームにオンラインゲーム経験を提供するように構成することができる。 In general, the system architecture and methods described with respect to FIGS. 1, 2, and / or 3 may be implemented on any suitable server and / or computing system. An exemplary system is described with respect to FIG. 5 and elsewhere herein. In some examples, an online gaming system, data center, or data cluster, or other system as described herein can be implemented through multiple physical sites or locations. In some examples, the online gaming system can be configured to provide an online gaming experience for multiple games.
図4は、本開示の少なくとも一部の実施形態に従って配置された、例示的なコンピュータプログラム製品400を示している。コンピュータプログラム製品400は、実行されたときに、本明細書に記述したプロセスおよび方法によるオンラインゲーム経験を機械へ提供させる複数の命令を格納した機械可読の非一時的な媒体を含むことができる。コンピュータプログラム製品400は、信号伝達媒体402を含むことができる。信号伝達媒体402は、1つまたは複数のプロセッサによって実行されたときに、コンピューティングデバイスが、本明細書に記述した機能を提供できるように効果的にできる、1つまたは複数の機械可読の命令404を含むことができる。様々な例において、機械可読の命令の一部またはすべては、本明細書に記述したデバイスによって使用することができる。 FIG. 4 illustrates an example computer program product 400 arranged in accordance with at least some embodiments of the present disclosure. The computer program product 400 may include a machine-readable non-transitory medium that stores a plurality of instructions that, when executed, cause the machine to provide an online gaming experience according to the processes and methods described herein. Computer program product 400 may include a signal transmission medium 402. The signal transmission medium 402 is one or more machine-readable instructions that, when executed by one or more processors, may effectively enable the computing device to provide the functionality described herein. 404 can be included. In various examples, some or all of the machine readable instructions can be used by the devices described herein.
一部の実装では、信号伝達媒体402は、ハードディスクドライブ、コンパクトディスク(CD)、デジタルバーサタイルディスク(DVD)、デジタルテープ、メモリなど、コンピュータ可読媒体406を包含することができるが、それらに限定されない。一部の実装では、信号伝達媒体402は、メモリ、読み取り/書き込み(R/W)CD、R/W DVDなど、記録可能な媒体408を包含することができるが、それらに限定されない。一部の実装では、信号伝達媒体402は、デジタルおよび/またはアナログの通信媒体(たとえば、光ファイバーケーブル、導波路、有線通信リンク、ワイヤレス通信リンクなど)など、通信媒体410を包含することができるが、それらに限定されない。一部の例では、信号伝達媒体402は、機械可読の非一時的な媒体を包含することができる。 In some implementations, signaling media 402 can include, but is not limited to, computer readable media 406, such as a hard disk drive, compact disc (CD), digital versatile disc (DVD), digital tape, memory, and the like. . In some implementations, signaling media 402 can include, but is not limited to, recordable media 408, such as memory, read / write (R / W) CD, R / W DVD, and the like. In some implementations, the signaling medium 402 can include a communication medium 410, such as a digital and / or analog communication medium (eg, fiber optic cable, waveguide, wired communication link, wireless communication link, etc.). , But not limited to them. In some examples, signaling medium 402 can include machine-readable non-transitory media.
図5は、本開示の少なくとも一部の実施形態に従って配置された、例示的なコンピューティングデバイス500を示すブロック図である。様々な例において、コンピューティングデバイス500は、本明細書に記述したようなオンラインゲーム経験を提供するように構成することができる。様々な例において、コンピューティングデバイス500は、本明細書に記述するようなサーバシステムとしてオンラインゲーム経験を提供するように構成することができる。一例である基本構成501では、コンピューティングデバイス500は、1つまたは複数のプロセッサ510およびシステムメモリ520を含むことができる。メモリバス530は、プロセッサ510とシステムメモリ520との間で通信するために使用することができる。 FIG. 5 is a block diagram illustrating an example computing device 500 arranged in accordance with at least some embodiments of the present disclosure. In various examples, the computing device 500 can be configured to provide an online gaming experience as described herein. In various examples, the computing device 500 may be configured to provide an online gaming experience as a server system as described herein. In the example basic configuration 501, the computing device 500 may include one or more processors 510 and system memory 520. Memory bus 530 can be used to communicate between processor 510 and system memory 520.
望まれる構成に依存して、プロセッサ510は、マイクロプロセッサ(μP)、マイクロコントローラ(μC)、デジタル信号プロセッサ(DSP)、またはそれらの任意の組み合わせを含む任意のタイプでもよいが、これらに限定されない。プロセッサ510は、レベル1キャッシュ511およびレベル2キャッシュ512、プロセッサコア513、およびレジスタ514など、1つまたは複数レベルのキャッシュを含むことができる。プロセッサコア513は、論理演算ユニット(ALU)、浮動小数点ユニット(FPU)、デジタル信号処理コア(DSPコア)、またはそれらの任意の組み合わせを含むことができる。メモリコントローラ515は、また、プロセッサ510と共に使用することができるか、または一部の実装では、メモリコントローラ515は、プロセッサ510の内部部品でもよい。 Depending on the configuration desired, the processor 510 may be any type including, but not limited to, a microprocessor (μP), a microcontroller (μC), a digital signal processor (DSP), or any combination thereof. . The processor 510 may include one or more levels of cache, such as a level 1 cache 511 and a level 2 cache 512, a processor core 513, and a register 514. The processor core 513 can include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP core), or any combination thereof. The memory controller 515 can also be used with the processor 510 or, in some implementations, the memory controller 515 may be an internal component of the processor 510.
望まれる構成に依存して、システムメモリ520は、揮発性メモリ(RAMなど)、不揮発性メモリ(ROM、フラッシュメモリなど)、またはそれらの任意の組み合わせを含む任意のタイプでもよいが、これらに限定されない。システムメモリ520は、オペレーティングシステム521、1つまたは複数のアプリケーション522、およびプログラムデータ524を含むことができる。アプリケーション522は、本明細書に記述した機能ブロック、動作、および/または操作を含む、本明細書に記述した機能、動作、および/または操作を実行するために配置できるオンラインゲームアプリケーション523を含むことができる。プログラムデータ524は、オンラインゲームアプリケーション523で使用するためにオンラインゲームデータ525を含むことができる。一部の例示実施形態では、アプリケーション522は、オペレーティングシステム521でプログラムデータ524を用いて動作するように配置することができる。この記述した基本構成は、破線501内のそれらのコンポーネントによって図5に示している。 Depending on the configuration desired, the system memory 520 may be any type including, but not limited to, volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.), or any combination thereof. Not. The system memory 520 can include an operating system 521, one or more applications 522, and program data 524. Application 522 includes an online game application 523 that can be arranged to perform the functions, operations, and / or operations described herein, including the functional blocks, operations, and / or operations described herein. Can do. Program data 524 may include online game data 525 for use with online game application 523. In some exemplary embodiments, application 522 may be arranged to operate with operating system 521 using program data 524. This described basic configuration is illustrated in FIG. 5 by those components within dashed line 501.
コンピューティングデバイス500は、基本構成501と任意の必要なデバイスおよびインターフェースとの間で通信を促進するために、追加的な特徴または機能、および追加的なインターフェースを備えることができる。たとえば、バス/インターフェースコントローラ540は、記憶装置インターフェースバス541を介して、基本構成501と1つまたは複数のデータ記憶装置550との間の通信を促進するために使用することができる。データ記憶装置550は、取外し式記憶装置551、非取外し式記憶装置552、またはそれらの組み合わせでもよい。取外し式記憶装置および非取外し式記憶装置の例を2、3挙げると、フレキシブルディスクドライブおよびハードディスクドライブ(HDD)などの磁気ディスク装置、コンパクトディスク(CD)ドライブまたはデジタルバーサタイルディスク(DVD)ドライブなどの光ディスクドライブ、ソリッドステートドライブ(SSD)、およびテープドライブなどが含まれる。例示的なコンピュータ記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、または他のデータなど、情報を格納するための任意の方法または技術で実装された揮発性および不揮発性、取外し式および非取外し式の媒体を含むことができる。 The computing device 500 may include additional features or functions and additional interfaces to facilitate communication between the base configuration 501 and any necessary devices and interfaces. For example, the bus / interface controller 540 can be used to facilitate communication between the base configuration 501 and one or more data storage devices 550 via the storage device interface bus 541. The data storage device 550 may be a removable storage device 551, a non-removable storage device 552, or a combination thereof. Examples of removable storage devices and non-removable storage devices include a magnetic disk device such as a flexible disk drive and a hard disk drive (HDD), a compact disk (CD) drive, or a digital versatile disk (DVD) drive. Examples include optical disk drives, solid state drives (SSD), and tape drives. Exemplary computer storage media are volatile and non-volatile, removable and implemented in any method or technique for storing information, such as computer readable instructions, data structures, program modules, or other data. Non-removable media can be included.
システムメモリ520、取外し式ストレージ551、および非取外し式ストレージ552は、すべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ、もしくは他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)、もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶装置、または望まれる情報を格納するために使用でき、コンピューティングデバイス500によってアクセスできる他の媒体を含むがそれらに限定されない。任意のそのようなコンピュータ記憶媒体は、デバイス500の一部でもよい。 System memory 520, removable storage 551, and non-removable storage 552 are all examples of computer storage media. The computer storage medium may be RAM, ROM, EEPROM, flash memory, or other memory technology, CD-ROM, digital versatile disk (DVD), or other optical storage device, magnetic cassette, magnetic tape, magnetic disk storage device, or This includes, but is not limited to, other magnetic storage devices or other media that can be used to store the desired information and that can be accessed by computing device 500. Any such computer storage media may be part of device 500.
コンピューティングデバイス500は、また、バス/インターフェースコントローラ540を介して、様々なインターフェースデバイス(たとえば出力インターフェース、周辺インターフェース、および通信インターフェース)から基本構成501への通信を促進するためのインターフェースバス542を含むことができる。例示的な出力インターフェース560は、グラフィック処理ユニット561および音声処理ユニット562を含むことができ、これは1つまたは複数のA/Vポート563を介してディスプレイまたはスピーカなど、様々な外部デバイスと通信するように構成することができる。例示的な周辺インターフェース570は、シリアルインターフェースコントローラ571またはパラレルインターフェースコントローラ572を含むことができ、これは1つまたは複数のI/Oポート573を介して入力デバイス(たとえばキーボード、マウス、ペン、音声入力機器、タッチ入力装置など)または他の周辺機器(たとえばプリンタ、スキャナなど)など外部デバイスと通信するように構成することができる。例示的な通信インターフェース580は、ネットワークコントローラ581を含み、これは1つまたは複数の通信ポート582を介してネットワーク通信を通じて1つまたは複数のその他のコンピューティングデバイス583との通信を促進するように配置することができる。通信接続は、通信媒体の一例である。通信メディアは、典型的には、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、または搬送波もしくは他の移送機構など、変調されたデータ信号の他のデータによって具体化することができ、任意の情報配送媒体を含むことができる。「変調されたデータ信号」は、信号の情報を符号化する方法で設定または変更された、1つまたは複数のその特性を持つ信号でもよい。限定を目的とせずに例を挙げると、通信メディアは、有線ネットワークまたは直接的な有線接続などの有線媒体、ならびに音響、無線周波数(RF)、赤外線(IR)、および他の無線媒体などの無線媒体を含むことができる。本明細書に使用するコンピュータ可読媒体という用語は、記憶媒体および通信媒体の両方を含むことができる。 The computing device 500 also includes an interface bus 542 for facilitating communication from various interface devices (eg, output interfaces, peripheral interfaces, and communication interfaces) to the base configuration 501 via the bus / interface controller 540. be able to. The exemplary output interface 560 can include a graphics processing unit 561 and an audio processing unit 562 that communicate with various external devices such as a display or speakers via one or more A / V ports 563. It can be constituted as follows. The exemplary peripheral interface 570 may include a serial interface controller 571 or a parallel interface controller 572, which is an input device (eg, keyboard, mouse, pen, voice input) via one or more I / O ports 573. Devices, touch input devices, etc.) or other peripheral devices (eg, printers, scanners, etc.) can be configured to communicate with external devices. The exemplary communication interface 580 includes a network controller 581 that is arranged to facilitate communication with one or more other computing devices 583 through network communication via one or more communication ports 582. can do. A communication connection is an example of a communication medium. Communication media typically may be embodied by computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and any information A delivery medium can be included. A “modulated data signal” may be a signal with one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct wired connection, and wireless, such as acoustic, radio frequency (RF), infrared (IR), and other wireless media. Media can be included. The term computer readable media as used herein may include both storage media and communication media.
コンピューティングデバイス500は、セル式電話、モバイル電話、タブレットデバイス、ラップトップ型コンピュータ、パーソナルデータアシスタント(PDA)、パーソナルメディアプレイヤーデバイス、ワイヤレスウェブウォッチデバイス、個人用ヘッドセットデバイス、アプリケーション固有のデバイス、または上記の機能のいずれかを含むハイブリッドデバイスなど、スモールフォームファクタのポータブル(またはモバイル)電子デバイスの一部として実装することができる。コンピューティングデバイス500は、また、ラップトップ型コンピュータおよび非ラップトップ型コンピュータの構成の両方を含むパーソナルコンピュータとして実装することができる。さらに、コンピューティングデバイス500は、ワイヤレス基地局または他のワイヤレスのシステムもしくはデバイスの一部として実装することができる。 The computing device 500 is a cellular phone, mobile phone, tablet device, laptop computer, personal data assistant (PDA), personal media player device, wireless webwatch device, personal headset device, application specific device, or It can be implemented as part of a small form factor portable (or mobile) electronic device, such as a hybrid device including any of the above functions. The computing device 500 can also be implemented as a personal computer including both laptop and non-laptop computer configurations. Further, computing device 500 may be implemented as part of a wireless base station or other wireless system or device.
前述の詳細な記述の一部は、コンピュータメモリなど、コンピューティングシステムのメモリ内に格納されたデータビットまたは2値デジタル信号において操作のアルゴリズムまたは記号表現に関して提示される。これらのアルゴリズム的な記述または表現は、他の当業者に仕事の本質を伝達するために、データ処理分野における当業者によって使用される手法の例である。本明細書において、および一般的に、アルゴリズムは、望ましい結果につながる首尾一貫した連続する操作または類似の処理であると考えられる。この状況において、操作または処理は、物理量の物理的な操作を含む。典型的には、必須ではないが、そのような量は、格納、転送、結合、比較、あるいは操作することができる電気的または磁気的な信号の形をとることができる。主に一般的に使用する理由から、そのような信号は、ビット、データ、値、要素、記号、キャラクタ、条件、数、数字などと呼ぶことが便利なことがあると分かっている。しかし、これらおよび同様の用語はすべて、適切な物理量に関連しており、便利なラベルにすぎないことを理解されるだろう。特に明記しない限り、以下の説明から明白なように、本明細書の全体にわたって「処理(processing)」、「コンピューティング(computing)」、「計算(calculating)」、「決定(determining)」などの用語を利用した議論は、メモリ、レジスタもしくは他の情報記憶装置、送信デバイス、またはコンピューティングデバイスのディスプレイデバイス内で物理電子的また磁気的な量として表されるデータを操作または変形するコンピューティングデバイスの動作またはプロセスを示すものであることを理解されたい。 Some of the foregoing detailed description is presented in terms of algorithms or symbolic representations of operations on data bits or binary digital signals stored within a memory of a computing system, such as a computer memory. These algorithmic descriptions or representations are examples of the techniques used by those skilled in the data processing arts to convey the substance of their work to others skilled in the art. In this specification and in general, an algorithm is considered a consistent and continuous operation or similar process that leads to a desired result. In this situation, the operation or processing includes physical manipulation of physical quantities. Typically, although not required, such quantities can take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, or manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to such signals as bits, data, values, elements, symbols, characters, conditions, numbers, numbers, or the like. It will be understood, however, that all of these and similar terms are associated with the appropriate physical quantities and are merely convenient labels. Unless stated otherwise, as will be apparent from the following description, “processing”, “computing”, “calculating”, “determining”, etc. A terminology discussion is a computing device that manipulates or transforms data represented as physical electronic or magnetic quantities in a memory, register or other information storage device, transmission device, or display device of a computing device. It should be understood that this is indicative of the operation or process.
前述の詳細な説明では、ブロック図、フローチャート、および/または例の使用によって、装置および/またはプロセスの様々な実施形態を説明してきた。そのようなブロック図、フローチャート、および/または例が1つまたは複数の機能および/または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および/または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組み合わせにより、個別におよび/または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、1つまたは複数のコンピュータ上で動作する1つまたは複数のコンピュータプログラムとして(たとえば、1つまたは複数のコンピュータシステム上で動作する1つまたは複数のプログラムとして)、1つまたは複数のプロセッサ上で動作する1つまたは複数のプログラムとして(たとえば、1つまたは複数のマイクロプロセッサ上で動作する1つまたは複数のプログラムとして)、ファームウェアとして、あるいは実質上それらの任意の組み合わせとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに/またはソフトウェアおよび/もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。さらに、本明細書に記載された主題のメカニズムを様々な形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フレキシブルディスク、ハードディスクドライブ(HDD)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、デジタルテープ、コンピュータメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および/またはアナログ通信媒体(たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど)の通信タイプの媒体が含まれるが、それらには限定されない。 In the foregoing detailed description, various embodiments of apparatus and / or processes have been described through the use of block diagrams, flowcharts, and / or examples. As long as such a block diagram, flowchart, and / or example includes one or more functions and / or operations, each function and / or operation in such a block diagram, flowchart, or example may include: Those skilled in the art will appreciate that a wide range of hardware, software, firmware, or virtually any combination thereof can be implemented individually and / or collectively. In certain embodiments, some portions of the subject matter described herein include application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), digital signal processors (DSPs), or other integration schemes. Can be implemented. However, some aspects of the embodiments disclosed herein may be in whole or in part as one or more computer programs (eg, one or more) running on one or more computers. As one or more programs running on one computer system), as one or more programs running on one or more processors (eg, one or more running on one or more microprocessors) Those skilled in the art will recognize that they can be equivalently implemented in an integrated circuit (as multiple programs), as firmware, or virtually any combination thereof, as well as electrical circuit design and / or software and / or Or firmware coding That it is well within the skill of one in the art in light of the ordinary skill in the art will recognize. Further, those skilled in the art will appreciate that the mechanisms of the subject matter described herein can be distributed as various types of program products, and exemplary embodiments of the subject matter described herein. Will be understood regardless of the specific type of signaling medium used to actually perform the distribution. Examples of signal transmission media include recordable type media such as flexible disks, hard disk drives (HDDs), compact disks (CDs), digital versatile disks (DVDs), digital tapes, computer memories, and digital communications. Communication type media include, but are not limited to, media and / or analog communication media (eg, fiber optic cables, waveguides, wired communication links, wireless communication links, etc.).
本明細書に記載された主題は、様々なコンポーネントをしばしば例示しており、これらのコンポーネントは、他の様々なコンポーネントに包含されるか、または他の様々なコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の2つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的にかみ合わせ可能な、および/もしくは物理的に相互作用するコンポーネント、ならびに/またはワイヤレスに相互作用可能な、および/もしくはワイヤレスに相互作用するコンポーネント、ならびに/または論理的に相互作用する、および/もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。 The subject matter described herein often illustrates various components, which are encompassed by or otherwise connected to various other components. It will be appreciated that the architecture so illustrated is merely an example, and in practice many other architectures that implement the same functionality can be implemented. In a conceptual sense, any configuration of components that achieve the same function is effectively “associated” to achieve the desired function. Thus, any two components herein combined to achieve a particular function are “associated” with each other so that the desired function is achieved, regardless of architecture or intermediate components. You can see that. Similarly, any two components so associated may be considered “operably connected” or “operably coupled” to each other to achieve the desired functionality, and as such Any two components that can be associated with can also be considered "operably coupled" to each other to achieve the desired functionality. Examples where it can be operatively coupled include physically interlockable and / or physically interacting components, and / or wirelessly interacting and / or wirelessly interacting components, And / or components that interact logically and / or logically interact with each other.
本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。様々な単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。 For the use of substantially all plural and / or singular terms herein, those skilled in the art will recognize from the plural to the singular and / or singular as appropriate to the situation and / or application. You can convert from shape to plural. Various singular / plural permutations can be clearly described herein for ease of understanding.
通常、本明細書において、特に添付の特許請求の範囲(たとえば、添付の特許請求の範囲の本体部)において使用される用語は、全体を通じて「オープンな(open)」用語として意図されていることが、当業者には理解されよう(たとえば、用語「含む(including)」は、「含むがそれに限定されない(including but not limited to)」と解釈されるべきであり、用語「有する(having)」は、「少なくとも有する(having at least)」と解釈されるべきであり、用語「含む(includes)」は、「含むがそれに限定されない(includes but is not limited to)」と解釈されるべきである、など)。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含む場合であっても、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む発明に限定する、ということを示唆していると解釈されるべきではない(たとえば、「a」および/または「an」は、通常、「少なくとも1つの」または「1つまたは複数の」を意味すると解釈されるべきである)。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、通常、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう(たとえば、他の修飾語なしでの「2つの記載(two recitations)」の単なる記載は、通常、少なくとも2つの記載、または2つ以上の記載を意味する)。さらに、「A、BおよびC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、およびCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。「A、B、またはC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、またはCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方(one of the terms)、当該用語のいずれか(either of the terms)、または両方の用語(both terms)を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「AまたはB」は、「A」または「B」あるいは「AおよびB」の可能性を含むことが理解されよう。 In general, terms used herein, particularly in the appended claims (eg, the body of the appended claims), are intended throughout as “open” terms. Will be understood by those skilled in the art (eg, the term “including” should be construed as “including but not limited to” and the term “having”). Should be interpreted as “having at least,” and the term “includes” should be interpreted as “including but not limited to”. ,Such). Where a specific number of statements is intended in the claims to be introduced, such intentions will be explicitly stated in the claims, and in the absence of such statements, such intentions It will be further appreciated by those skilled in the art that is not present. For example, as an aid to understanding, the appended claims use the introductory phrases “at least one” and “one or more” to guide the claim description. May include that. However, the use of such phrases may be used even if the same claim contains indefinite articles such as the introductory phrases “one or more” or “at least one” and “a” or “an”. The introduction of a claim statement by the indefinite article “a” or “an” shall include any particular claim, including the claim statement so introduced, to an invention containing only one such statement. Should not be construed as suggesting limiting (eg, “a” and / or “an” are to be interpreted as generally meaning “at least one” or “one or more”. It should be). The same applies to the use of definite articles used to introduce claim recitations. Further, even if a specific number is explicitly stated in the description of the claim to be introduced, such a description should normally be interpreted to mean at least the stated number, As will be appreciated by those skilled in the art (e.g., mere description of "two descriptions" without other modifiers usually means at least two descriptions, or more than one description). Further, in cases where a conventional expression similar to “at least one of A, B and C, etc.” is used, such syntax usually means that one skilled in the art would understand the conventional expression. Contemplated (eg, “a system having at least one of A, B, and C” means A only, B only, C only, A and B together, A and C together, B and C together And / or systems having both A, B, and C together, etc.). In cases where a customary expression similar to “at least one of A, B, or C, etc.” is used, such syntax is usually intended in the sense that one skilled in the art would understand the customary expression. (Eg, “a system having at least one of A, B, or C” includes A only, B only, C only, A and B together, A and C together, B and C together, And / or systems having both A, B, and C together, etc.). Any disjunctive word and / or phrase that presents two or more alternative terms may be either one of the terms, anywhere in the specification, claims, or drawings. It will be further understood by those skilled in the art that it should be understood that the possibility of including either of the terms (both terms), or both of them. For example, it will be understood that the phrase “A or B” includes the possibilities of “A” or “B” or “A and B”.
様々な方法およびシステムを使用して、特定の例示的な手法について本明細書に記述および図示したが、請求された主題から逸脱することなく、様々な他の変更を行えること、および等価物で代用できることを当業者は理解されるだろう。さらに、本明細書に記述した主要な概念から逸脱することなく、請求された主題の教示に特定の状況を適応させるために、多数の変更を行うことができる。したがって、請求された主題は、開示された特定の例に限定されるものではなく、そのような請求された主題は、また、添付した請求項の範囲内にあるすべての実装、およびその等価物を含むことが意図される。
Although various exemplary methods have been described and illustrated herein using various methods and systems, various other modifications can be made and equivalents without departing from claimed subject matter. Those skilled in the art will appreciate that substitutions can be made. In addition, many modifications may be made to adapt a particular situation to the teachings of claimed subject matter without departing from the main concepts described herein. Accordingly, the claimed subject matter is not limited to the specific examples disclosed, and such claimed subject matter is also intended to be within the scope of the appended claims and all equivalents thereof. It is intended to include.
Claims (29)
サーバシステムで、複数のゲーム要素のそれぞれを対応する複数のゲーム要素リソースに割り当てることと、
前記サーバシステムで、複数のゲームクライアントに対してゲーム世界を規定するゲーム世界の状態への更新に少なくとも部分的に基づいてレンダリングタスクが必要であることを決定することと、
前記複数のゲームクライアントの第1のゲームクライアントに対するゲーム世界のビューの第1のビューポートを決定することと、
前記第1のビューポートについて、前記複数のゲーム要素の第1のゲーム要素が前記第1のビューポートから見えるかどうかを決定することと、
前記複数のゲーム要素の前記第1のゲーム要素が前記第1のビューポートから見える場合に、
前記第1のゲーム要素に対応する第1のゲーム要素リソースで、前記第1のビューポートに対して前記第1のゲーム要素のレンダリングを生成することと、
前記第1のゲーム要素の前記レンダリングを前記第1のゲームクライアントに送信することと
を含む方法。 A method for providing an online gaming experience to a game client,
Assigning each of a plurality of game elements to a corresponding plurality of game element resources in the server system;
Determining in the server system that a rendering task is required based at least in part on an update to a game world state defining a game world for a plurality of game clients;
Determining a first viewport of a view of the game world for the first game client of the plurality of game clients;
Determining, for the first viewport, whether a first game element of the plurality of game elements is visible from the first viewport;
When the first game element of the plurality of game elements is visible from the first viewport;
Generating a rendering of the first game element for the first viewport with a first game element resource corresponding to the first game element;
Transmitting the rendering of the first game element to the first game client.
レンダリングを必要とする前記第1のゲーム要素の1つまたは複数のアクティブなポリゴンを決定することと、
前記第1のゲーム要素の前記1つまたは複数のアクティブなポリゴンのゲームクライアントに依存しないレンダリングを実行することと、
前記ゲームクライアントに依存しないレンダリングおよび前記第1のビューポートに少なくとも部分的に基づいて、前記第1のゲーム要素の前記1つまたは複数のアクティブなポリゴンのゲームクライアントに依存するレンダリングを実行することと
を含む請求項1に記載の方法。 Generating the rendering of the first game element for the first viewport;
Determining one or more active polygons of the first game element that require rendering;
Performing a game client independent rendering of the one or more active polygons of the first game element;
Performing game client dependent rendering of the one or more active polygons of the first game element based at least in part on the game client independent rendering and the first viewport; The method of claim 1 comprising:
前記第2のビューポートについて、前記複数のゲーム要素の前記第1のゲーム要素が前記第2のビューポートから見えるかどうかを決定することと、
前記複数のゲーム要素の前記第1のゲーム要素が前記第2のビューポートから見える場合に、前記ゲームクライアントに依存しないレンダリングおよび前記第2のビューポートに少なくとも部分的に基づいて、前記第1のゲーム要素に対応する前記第1のゲーム要素リソースで、前記第2のビューポートに対して前記第1のゲーム要素の第2のゲームクライアントに依存するレンダリングを生成することと
をさらに含む請求項2に記載の方法。 Determining a second viewport of the view of the game world for a second game client of the plurality of game clients;
Determining, for the second viewport, whether the first game element of the plurality of game elements is visible from the second viewport;
When the first game element of the plurality of game elements is visible from the second viewport, based on the game client-independent rendering and at least in part based on the second viewport, Generating a second game client dependent rendering of the first game element for the second viewport with the first game element resource corresponding to the game element. The method described in 1.
前記複数のゲーム要素の前記第2のゲーム要素が前記第1のビューポートから見える場合に、
前記第2のゲーム要素に対応する第2のゲーム要素リソースで、前記第1のビューポートに対して前記第2のゲーム要素のレンダリングを生成することと、
前記第1のゲームクライアントに前記第2のゲーム要素の前記レンダリングを送信することと
をさらに含む請求項1に記載の方法。 Determining, for the first viewport, whether a second game element of the plurality of game elements is visible from the first viewport;
When the second game element of the plurality of game elements is visible from the first viewport;
Generating a rendering of the second game element for the first viewport with a second game element resource corresponding to the second game element;
The method of claim 1, further comprising: transmitting the rendering of the second game element to the first game client.
前記ゲーム入力に対する動作解決を決定することと、
前記ゲーム世界の状態に前記動作解決を適用することと
をさらに含む請求項1に記載の方法。 Receiving a game input from one of the plurality of game clients in the server system;
Determining an action solution for the game input;
The method of claim 1, further comprising: applying the motion solution to the game world state.
請求項12に記載の方法。 Further comprising assigning each of a plurality of action resolutions to a corresponding plurality of action resolution resources of the server system, wherein the action resolution is a first action of the plurality of action resolution resources related to the received game input. The method of claim 12, determined by a resolution resource.
複数のゲームクライアントに対してゲーム世界を規定するゲーム世界の状態への更新に少なくとも部分的に基づいてレンダリングタスクが必要であることを決定することと、
前記複数のゲームクライアントの第1のゲームクライアントに対するゲーム世界のビューの第1のビューポートを決定することと、
前記第1のビューポートについて、前記複数のゲーム要素の第1のゲーム要素が前記第1のビューポートから見えるかどうかを決定することと、
前記複数のゲーム要素の前記第1のゲーム要素が前記第1のビューポートから見える場合に、
前記第1のゲーム要素に対応する第1のゲーム要素リソースで、前記第1のビューポートに対して前記第1のゲーム要素のレンダリングを生成することと、
前記第1のゲーム要素の前記レンダリングを前記第1のゲームクライアントに送信することと
によって、実行されたときに、サーバシステムにオンラインゲーム経験を前記ゲームクライアントへ提供させる命令を格納した機械可読の非一時的な媒体。 Assigning each of a plurality of game elements to a corresponding plurality of game element resources;
Determining that a rendering task is required based at least in part on an update to a game world state that defines a game world for multiple game clients;
Determining a first viewport of a view of the game world for the first game client of the plurality of game clients;
Determining, for the first viewport, whether a first game element of the plurality of game elements is visible from the first viewport;
When the first game element of the plurality of game elements is visible from the first viewport;
Generating a rendering of the first game element for the first viewport with a first game element resource corresponding to the first game element;
Sending the rendering of the first game element to the first game client, when executed, storing instructions that cause a server system to provide the game client with an online game experience when executed. Temporary medium.
レンダリングを必要とする前記第1のゲーム要素の1つまたは複数のアクティブなポリゴンを決定することと、
前記第1のゲーム要素の前記1つまたは複数のアクティブなポリゴンのゲームクライアントに依存しないレンダリングを実行することと、
前記ゲームクライアントに依存しないレンダリングおよび前記第1のビューポートに少なくとも部分的に基づいて、前記第1のゲーム要素の前記1つまたは複数のアクティブなポリゴンのゲームクライアントに依存するレンダリングを実行することと
を含む請求項20に記載の機械可読の非一時的な媒体。 Generating the rendering of the first game element for the first viewport;
Determining one or more active polygons of the first game element that require rendering;
Performing a game client independent rendering of the one or more active polygons of the first game element;
Performing game client dependent rendering of the one or more active polygons of the first game element based at least in part on the game client independent rendering and the first viewport; 21. The machine-readable non-transitory medium of claim 20, comprising:
前記第2のビューポートについて、前記複数のゲーム要素の前記第1のゲーム要素が前記第2のビューポートから見えるかどうかを決定することと、
前記複数のゲーム要素の前記第1のゲーム要素が前記第2のビューポートから見える場合に、前記ゲームクライアントに依存しないレンダリングおよび前記第2のビューポートに少なくとも部分的に基づいて、前記第1のゲーム要素に対応する前記第1のゲーム要素リソースで、前記第2のビューポートに対して前記第1のゲーム要素の第2のゲームクライアントに依存するレンダリングを生成することと
によって、実行されたときに、前記サーバシステムにゲームデータをゲームクライアントへ提供させる他の命令を格納した請求項21に記載の機械可読の非一時的な媒体。 Determining a second viewport of the view of the game world for a second game client of the plurality of game clients;
Determining, for the second viewport, whether the first game element of the plurality of game elements is visible from the second viewport;
When the first game element of the plurality of game elements is visible from the second viewport, based on the game client-independent rendering and at least in part based on the second viewport, When executed on the first game element resource corresponding to a game element by generating a second game client dependent rendering of the first game element for the second viewport The machine-readable non-transitory medium of claim 21, further storing other instructions that cause the server system to provide game data to a game client.
前記複数のゲーム要素の前記第2のゲーム要素が前記第1のビューポートから見える場合に、
前記第2のゲーム要素に対応する第2のゲーム要素リソースで、前記第1のビューポートに対して前記第2のゲーム要素のレンダリングを生成することと、
前記第1のゲームクライアントに前記第2のゲーム要素の前記レンダリングを送信することと
によって、実行されたときに、前記サーバシステムにゲームデータをゲームクライアントへ提供させる他の命令を格納した請求項20に記載の機械可読の非一時的な媒体。 Determining, for the first viewport, whether a second game element of the plurality of game elements is visible from the first viewport;
When the second game element of the plurality of game elements is visible from the first viewport;
Generating a rendering of the second game element for the first viewport with a second game element resource corresponding to the second game element;
21. Stores other instructions that, when executed, cause the server system to provide game data to the game client by sending the rendering of the second game element to the first game client. A machine-readable non-transitory medium as described in.
前記複数の動作解決リソースの第1の動作解決リソースで受信されたゲーム入力に対する第1の動作解決を決定することと、
前記ゲーム世界の状態に前記動作解決を適用することと
によって、実行されたときに、前記サーバシステムにゲームデータをゲームクライアントへ提供させる他の命令を格納した請求項20に記載の機械可読の非一時的な媒体。 Assigning each of a plurality of behavior resolutions to a corresponding plurality of behavior resolution resources of the server system;
Determining a first action resolution for a game input received at a first action resolution resource of the plurality of action resolution resources;
21. The machine-readable non-transitory of claim 20, wherein other instructions are stored that, when executed, cause the server system to provide game data to a game client by applying the action resolution to the game world state. Temporary medium.
ゲーム世界の状態への更新に少なくとも部分的に基づいてレンダリングタスクが必要であることを決定することであって、前記ゲーム世界の状態は、複数のゲームクライアントに対してゲーム世界を規定することと、
前記複数のゲームクライアントの第1のゲームクライアントに対するゲーム世界のビューの第1のビューポートを決定することと、
前記第1のビューポートについて、前記複数のゲーム要素の第1のゲーム要素が前記第1のビューポートから見えるかどうかを決定することと、
前記複数のゲーム要素の前記第1のゲーム要素が前記第1のビューポートから見える場合に、
前記第1のゲーム要素に対応する第1のゲーム要素リソースで、前記第1のビューポートに対して前記第1のゲーム要素のレンダリングを生成することと、
前記第1のゲームクライアントに前記第1のゲーム要素の前記レンダリングを送信することと
によって、実行されたときに、前記サーバシステムにオンラインゲーム経験をゲームクライアントへ提供させる命令を格納した機械可読媒体と、
前記命令を実行するために前記機械可読媒体に結合されたプロセッサと
を含むサーバシステム。 Assigning each of a plurality of game elements to a corresponding plurality of game element resources;
Determining that a rendering task is required based at least in part on an update to a game world state, wherein the game world state defines a game world for a plurality of game clients; ,
Determining a first viewport of a view of the game world for the first game client of the plurality of game clients;
Determining, for the first viewport, whether a first game element of the plurality of game elements is visible from the first viewport;
When the first game element of the plurality of game elements is visible from the first viewport;
Generating a rendering of the first game element for the first viewport with a first game element resource corresponding to the first game element;
A machine readable medium storing instructions that, when executed, cause the server system to provide an online gaming experience to the game client by sending the rendering of the first game element to the first game client. ,
A server system coupled to the machine-readable medium for executing the instructions.
レンダリングを必要とする前記第1のゲーム要素の1つまたは複数のアクティブなポリゴンを決定することと、
前記第1のゲーム要素の前記1つまたは複数のアクティブなポリゴンのゲームクライアントに依存しないレンダリングを実行することと、
前記ゲームクライアントに依存しないレンダリングおよび前記第1のビューポートに少なくとも部分的に基づいて、前記第1のゲーム要素の前記1つまたは複数のアクティブなポリゴンのゲームクライアントに依存するレンダリングを実行することと
を含む請求項25に記載のサーバシステム。 Generating the rendering of the first game element for the first viewport;
Determining one or more active polygons of the first game element that require rendering;
Performing a game client independent rendering of the one or more active polygons of the first game element;
Performing game client dependent rendering of the one or more active polygons of the first game element based at least in part on the game client independent rendering and the first viewport; The server system according to claim 25.
前記第2のビューポートについて、前記複数のゲーム要素の前記第1のゲーム要素が前記第2のビューポートから見えるかどうかを決定することと、
前記複数のゲーム要素の前記第1のゲーム要素が前記第2のビューポートから見える場合に、前記ゲームクライアントに依存しないレンダリングおよび前記第2のビューポートに少なくとも部分的に基づいて、前記第1のゲーム要素に対応する前記第1のゲーム要素リソースで、前記第2のビューポートに対して前記第1のゲーム要素の第2のゲームクライアントに依存するレンダリングを生成することと
によって、前記機械可読媒体は、実行されたときに、前記サーバシステムにゲームデータをゲームクライアントへ提供させる他の命令を格納した請求項25に記載のサーバシステム。 Determining a second viewport of the view of the game world for a second game client of the plurality of game clients;
Determining, for the second viewport, whether the first game element of the plurality of game elements is visible from the second viewport;
When the first game element of the plurality of game elements is visible from the second viewport, based on the game client-independent rendering and at least in part based on the second viewport, Generating a second game client dependent rendering of the first game element for the second viewport with the first game element resource corresponding to the game element; 26. The server system according to claim 25, which stores other instructions that, when executed, cause the server system to provide game data to game clients.
前記複数のゲーム要素の前記第2のゲーム要素が前記第1のビューポートから見える場合に、
前記第2のゲーム要素に対応する第2のゲーム要素リソースで、前記第1のビューポートに対して前記第2のゲーム要素のレンダリングを生成することと、
前記第1のゲームクライアントに前記第2のゲーム要素の前記レンダリングを送信することと
によって、前記機械可読媒体は、実行されたときに、前記サーバシステムにゲームデータをゲームクライアントへ提供させる他の命令を格納した請求項25に記載のサーバシステム。 Determining, for the first viewport, whether a second game element of the plurality of game elements is visible from the first viewport;
When the second game element of the plurality of game elements is visible from the first viewport;
Generating a rendering of the second game element for the first viewport with a second game element resource corresponding to the second game element;
By sending the rendering of the second game element to the first game client, the machine-readable medium causes the server system to provide game data to the game client when executed. The server system according to claim 25, wherein:
前記複数の動作解決リソースの第1の動作解決リソースで受信されたゲーム入力に対する第1の動作解決を決定することと、
前記ゲーム世界の状態に前記動作解決を適用することと
によって、前記機械可読媒体は、実行されたときに、前記サーバシステムにゲームデータをゲームクライアントへ提供させる他の命令を格納した請求項25に記載のサーバシステム。 Assigning each of a plurality of behavior resolutions to a corresponding plurality of behavior resolution resources of the server system;
Determining a first action resolution for a game input received at a first action resolution resource of the plurality of action resolution resources;
26. The machine-readable medium stores other instructions that, when executed, cause the server system to provide game data to a game client by applying the motion resolution to the game world state. The server system described.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017073700A JP6550418B2 (en) | 2017-04-03 | 2017-04-03 | online game |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017073700A JP6550418B2 (en) | 2017-04-03 | 2017-04-03 | online game |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2014556520A Division JP6333180B2 (en) | 2012-02-07 | 2012-02-07 | online game |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2017119171A true JP2017119171A (en) | 2017-07-06 |
| JP6550418B2 JP6550418B2 (en) | 2019-07-24 |
Family
ID=59271178
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017073700A Expired - Fee Related JP6550418B2 (en) | 2017-04-03 | 2017-04-03 | online game |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6550418B2 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004348702A (en) * | 2002-09-06 | 2004-12-09 | Sony Computer Entertainment Inc | Image processing method, its apparatus, and its processing system |
| JP2006280757A (en) * | 2005-04-04 | 2006-10-19 | Hewlett-Packard Development Co Lp | Moving picture display system, moving picture processor, and method for both |
| JP2008538620A (en) * | 2005-01-25 | 2008-10-30 | ルーシッド インフォメイション テクノロジー リミテッド | Graphics processing and display system using multiple graphics cores on a monolithic silicon chip |
| JP2012245347A (en) * | 2011-05-25 | 2012-12-13 | Square Enix Holdings Co Ltd | Rendering control apparatus, control method of the same, program, recording medium, rendering server, and rendering system |
-
2017
- 2017-04-03 JP JP2017073700A patent/JP6550418B2/en not_active Expired - Fee Related
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004348702A (en) * | 2002-09-06 | 2004-12-09 | Sony Computer Entertainment Inc | Image processing method, its apparatus, and its processing system |
| JP2008538620A (en) * | 2005-01-25 | 2008-10-30 | ルーシッド インフォメイション テクノロジー リミテッド | Graphics processing and display system using multiple graphics cores on a monolithic silicon chip |
| JP2006280757A (en) * | 2005-04-04 | 2006-10-19 | Hewlett-Packard Development Co Lp | Moving picture display system, moving picture processor, and method for both |
| JP2012245347A (en) * | 2011-05-25 | 2012-12-13 | Square Enix Holdings Co Ltd | Rendering control apparatus, control method of the same, program, recording medium, rendering server, and rendering system |
Also Published As
| Publication number | Publication date |
|---|---|
| JP6550418B2 (en) | 2019-07-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6333180B2 (en) | online game | |
| CN103582509B (en) | Load balancing between general purpose processors and graphics processors | |
| KR101600726B1 (en) | Crowd-sourced video rendering system | |
| US12406324B2 (en) | Accessing local memory of a GPU executing a first kernel when executing a second kernel of another GPU | |
| US9396564B2 (en) | Atlas generation based on client video configuration | |
| KR102381945B1 (en) | Graphic processing apparatus and method for performing graphics pipeline thereof | |
| JP2017505931A (en) | System and method for dynamically throttling CPU frequency for gaming workloads | |
| WO2024027286A1 (en) | Rendering method and apparatus, and device and storage medium | |
| US9189448B2 (en) | Routing image data across on-chip networks | |
| JP6550418B2 (en) | online game | |
| KR102907225B1 (en) | Flexible multi-user graphics architecture | |
| US20250339768A1 (en) | Way to launch a large number of game instances in different levels on a cloud platform | |
| US12511043B2 (en) | GPU memory copy on write strategy for cloud gaming and computing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170405 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170405 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180326 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180328 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20180620 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180816 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181128 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190128 |
|
| 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: 20190618 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190701 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6550418 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |