JP2020503969A - マルチプレーヤ・オンラインゲーム内のイベントデータを管理するためのシステムおよび方法 - Google Patents
マルチプレーヤ・オンラインゲーム内のイベントデータを管理するためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2020503969A JP2020503969A JP2019537782A JP2019537782A JP2020503969A JP 2020503969 A JP2020503969 A JP 2020503969A JP 2019537782 A JP2019537782 A JP 2019537782A JP 2019537782 A JP2019537782 A JP 2019537782A JP 2020503969 A JP2020503969 A JP 2020503969A
- Authority
- JP
- Japan
- Prior art keywords
- event
- user
- game
- client device
- initiated
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000002123 temporal effect Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 238000009877 rendering Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000004568 cement Substances 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/33—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
- A63F13/335—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/34—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/352—Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/358—Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/5526—Game data structure
- A63F2300/5533—Game data structure using program state or machine event data, e.g. server keeps track of the state of multiple players on in a multiple player game
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Child & Adolescent Psychology (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本開示の実装は、マルチプレーヤ・オンラインゲーム内のイベントデータを管理するための、コンピュータにより実行される方法、システム、および製品に向けられる。方法は、たとえば、仮想環境を含むマルチプレーヤ・オンラインゲームのための複数のクライアントデバイスにおいてユーザ入力を受信することと、ユーザ入力に基づきクライアントデバイス上でオンラインゲームのためのユーザ開始イベントを生成することと、各クライアントデバイス上で生成された任意のユーザ開始イベントを複数のクライアントデバイスのうちの他のクライアントデバイスに配信することと、各クライアントデバイスにおいてユーザ開始イベントに基づき複数の派生ゲームイベントを決定することと、各クライアントデバイス上でユーザ開始イベントおよび派生ゲームイベントを1つまたは複数のイベントキュー内に保存することと、保存されたユーザ開始イベントおよび派生ゲームイベントに従って、各クライアントデバイスにおいて仮想環境の経時的状態を決定することとを含むことができる。
Description
関連出願の相互参照
本出願は、2017年11月29日付出願の米国特許出願第15/825,581号、および2017年1月12日付出願の米国仮特許出願第62/445,364号の優先権を主張し、その各々の内容全体は参照によりここに組み込まれる。
本出願は、2017年11月29日付出願の米国特許出願第15/825,581号、および2017年1月12日付出願の米国仮特許出願第62/445,364号の優先権を主張し、その各々の内容全体は参照によりここに組み込まれる。
背景
本開示は、マルチプレーヤ・オンラインゲームに関し、特に、マルチプレーヤ・オンラインゲーム内のイベントデータを管理するためのシステムおよび方法に関する。
本開示は、マルチプレーヤ・オンラインゲームに関し、特に、マルチプレーヤ・オンラインゲーム内のイベントデータを管理するためのシステムおよび方法に関する。
一般に、マルチプレーヤ・オンラインゲームは、オンラインゲームのための仮想環境と対話するためにクライアントデバイスを使用する何十万あるいは何百万ものプレーヤによってプレイされることができる。通常プレーヤは、タスクを達成し、資産を取得し、またはオンラインゲーム内のあるスコアを達成するために取り組んでいる。いくつかのゲームは、プレーヤに対して他のプレーヤまたはプレーヤのグループと対戦可能なグループまたはチームを形成することを要求または奨励する。
プレーヤがゲームに入力を提供し、入力の結果さまざまなイベントが展開するときに、マルチプレーヤ・オンラインゲームおよび/またはその仮想環境の状態は経時的に変化することができる。ゲームの状態が任意の所与の時間においてすべてのプレーヤに対して一貫し、これにより各プレーヤがゲームアクティビティを知らされた状態を維持し、どのプレーヤも不公平な優位性を有さないことが望ましい。
概要
ここで説明されるシステムおよび方法の実装は、マルチプレーヤ・オンラインゲーム内のイベントデータを管理するために使用されることができる。イベントデータは、ユーザ(代替的にここで「プレーヤ」とも称される)が入力をオンラインゲームまたはオンラインゲームのための仮想環境と対話するためのクライアントデバイスに提供するときに作成されるゲームイベントを含むことができる。代替的にまたは追加的に、ゲームイベントの少なくとも一部は、クライアントデバイスと通信するサーバによって作成されることができる。イベントデータはまた、派生ゲームイベントを含むことができ、これはたとえば、1つまたは複数のゲームイベントおよび/または他の派生ゲームイベントの結果発生すると予測されるイベントであることができ、またはこれを含むことができる。さまざまな例では、各ゲームイベントおよび各派生ゲームイベントは、オンラインゲーム内のそれぞれの時間において発生するように予定される。サーバおよび複数のクライアントデバイスは、イベントデータをそれぞれのキュー内に保存し、イベントが発生するときにオンラインゲームの状態を更新することができる。イベントは、決定論的に好ましくは処理され、これによりゲームの状態は、クライアントデバイスおよびサーバにわたって任意の所与の時間において同一である。これは、時間経過とともにすべてのプレーヤが同じゲームの状態を経験することを確実にする。
ここで説明されるシステムおよび方法の実装は、マルチプレーヤ・オンラインゲーム内のイベントデータを管理するために使用されることができる。イベントデータは、ユーザ(代替的にここで「プレーヤ」とも称される)が入力をオンラインゲームまたはオンラインゲームのための仮想環境と対話するためのクライアントデバイスに提供するときに作成されるゲームイベントを含むことができる。代替的にまたは追加的に、ゲームイベントの少なくとも一部は、クライアントデバイスと通信するサーバによって作成されることができる。イベントデータはまた、派生ゲームイベントを含むことができ、これはたとえば、1つまたは複数のゲームイベントおよび/または他の派生ゲームイベントの結果発生すると予測されるイベントであることができ、またはこれを含むことができる。さまざまな例では、各ゲームイベントおよび各派生ゲームイベントは、オンラインゲーム内のそれぞれの時間において発生するように予定される。サーバおよび複数のクライアントデバイスは、イベントデータをそれぞれのキュー内に保存し、イベントが発生するときにオンラインゲームの状態を更新することができる。イベントは、決定論的に好ましくは処理され、これによりゲームの状態は、クライアントデバイスおよびサーバにわたって任意の所与の時間において同一である。これは、時間経過とともにすべてのプレーヤが同じゲームの状態を経験することを確実にする。
ここで説明されるシステムおよび方法の例は、イベントデータを管理し、オンラインゲームまたはその一部のための一貫した状態を決定するするために使用されることができる。たとえば、プレーヤが他のプレーヤと対話しまたは対抗して競い合うときに(たとえば、アドベンチャゲームにおけるバトルまたは戦闘シナリオにおいて)、ゲームの状態がゲーム内の時間経過とともに各プレーヤに対して同じまたは同一であることが重要である。ゲームの状態は、たとえば、ゲームのための仮想環境の状態、ゲーム内の仮想アイテム、キャラクタ、またはプレーヤの現在位置、および/またはプレーヤによって所有されるまたは保持される現在の資産であることができ、またはこれを含むことができる。いくつかの例では、ゲーム状態は、ゲーム内の物体またはキャラクタのためのあるプロパティの表示を含む。ゲーム状態は、たとえば、仮想環境内の物体が選択可能、移動可能、ダメージ可能、および/または変換可能かどうかの表示を含むことができる。有利に、システムおよび方法は、一貫したゲーム状態をゲーム全体に対してまたはゲームの1つまたは複数の部分(たとえば、バトルまたはプレーヤ間の他の競争中)に対してすべてのクライアントデバイスにわたって提供することができる。これは、公平なゲームプレイを促進し、任意のプレーヤが不公平な優位性を有することを阻止する。手法はまた、(たとえば、高いレイテンシのために)サーバへの貧弱な接続を有するユーザがゲームに参加することを容易にする。その理由は、たとえば、ユーザのクライアントデバイスが、ゲーム状態決定のためにサーバに頼ることなく、ゲーム状態をそれ自体で決定することができるためである。
1つの局面では、この明細書で記載される主題は、コンピュータにより実行される方法に関する。方法は、たとえば、仮想環境を含むマルチプレーヤ・オンラインゲームのための複数のクライアントデバイスにおいてユーザ入力を受信することと、ユーザ入力に基づきクライアントデバイス上でオンラインゲームのためのユーザ開始イベント(たとえば、ゲームイベント)を生成することと、各クライアントデバイス上で生成された任意のユーザ開始イベントを複数のクライアントデバイスのうちの他のクライアントデバイスに配信することと、各クライアントデバイスにおいてユーザ開始イベントに基づき複数の派生ゲームイベントを決定することと、各クライアントデバイス上でユーザ開始イベントおよび派生ゲームイベントを1つまたは複数のイベントキュー内に保存することと、保存されたユーザ開始イベントおよび派生ゲームイベントに従って、各クライアントデバイスにおいて仮想環境の経時的状態を決定することとを含む。
ある例では、ユーザは、クライアントデバイスを使用して仮想環境と対話する。各ユーザ開始イベントは、仮想環境内でユーザ開始イベントが発生する時間を含むことができる。ユーザ開始イベントを配信することは、ユーザ開始イベントをクライアントデバイスからサーバに送信することと、各クライアントデバイスにおいて、サーバから、複数のクライアントデバイスのうちの他のクライアントデバイスによって生成されたユーザ開始イベントを受信することを含むことができる。ユーザ開始イベントを配信した後に、各クライアントデバイスは、各ユーザ開始イベントを含むことができる。各派生ゲームイベントは、仮想環境内で派生ゲームイベントが発生する時間を含むことができる。
いくつかの実装では、ユーザ開始イベントおよび派生ゲームイベントは、ユーザ開始イベントおよび派生ゲームイベントのための時間に従って各クライアントデバイス上に保存される。各クライアントデバイスは、仮想環境の経時的状態について同一の決定を行うことができる。方法は、仮想環境の少なくとも一部を各クライアントデバイス上に表示することを含むことができる。方法は、サーバにおいてクライアントデバイスからユーザ開始イベントを受信することと、サーバにおいてユーザ開始イベントに基づき複数の派生ゲームイベントを決定することと、サーバ上でユーザ開始イベントおよび派生ゲームイベントを1つまたは複数のサーバイベントキュー内に保存することと、保存されたユーザ開始イベントおよび派生ゲームイベントに従って、サーバ上で仮想環境の経時的状態を決定することを含むことができる。
別の局面では、この明細書に記載された主題は、システムに関する。システムは、動作を実行するようにプログラムされた1つまたは複数のコンピュータプロセッサを含み、動作は、仮想環境を有するマルチプレーヤ・オンラインゲームのための複数のクライアントデバイスにおいてユーザ入力を受信することと、ユーザ入力に基づきクライアントデバイス上でオンラインゲームのためのユーザ開始イベント(たとえば、ゲームイベント)を生成することと、各クライアントデバイス上で生成された任意のユーザ開始イベントを当該複数のクライアントデバイスのうちの他のクライアントデバイスに配信することと、各クライアントデバイスにおいてユーザ開始イベントに基づき複数の派生ゲームイベントを決定することと、各クライアントデバイス上でユーザ開始イベントおよび派生ゲームイベントを1つまたは複数のイベントキュー内に保存することと、保存されたユーザ開始イベントおよび派生ゲームイベントに従って、各クライアントデバイスにおいて仮想環境の経時的状態を決定することとを含む。
ある例では、ユーザは、クライアントデバイスを使用して仮想環境と対話する。各ユーザ開始イベントは、仮想環境内でユーザ開始イベントが発生する時間を含むことができる。ユーザ開始イベントを配信することは、ユーザ開始イベントをクライアントデバイスからサーバに送信することと、各クライアントデバイスにおいて、サーバから、複数のクライアントデバイスのうちの他のクライアントデバイスによって生成されたユーザ開始イベントを受信することとを含むことができる。ユーザ開始イベントを配信した後に、各クライアントデバイスは、各ユーザ開始イベントを含むことができる。各派生ゲームイベントは、仮想環境内で派生ゲームイベントが発生する時間を含むことができる。
いくつかの例では、ユーザ開始イベントおよび派生ゲームイベントは、ユーザ開始イベントおよび派生ゲームイベントのための時間に従って各クライアントデバイス上に保存されることができる。各クライアントデバイスは、仮想環境の経時的状態について同一の決定を行うことができる。動作は、サーバにおいてクライアントデバイスからユーザ開始イベントを受信することと、サーバにおいてユーザ開始イベントに基づき複数の派生ゲームイベントを決定することと、サーバ上でユーザ開始イベントおよび派生ゲームイベントを1つまたは複数のサーバイベントキュー内に保存することと、保存されたユーザ開始イベントおよび派生ゲームイベントに従って、サーバ上で仮想環境の経時的状態を決定することとを含むことができる。
別の局面では、この明細書に記載された主題は、製品に関する。製品は、1つまたは複数のコンピュータプロセッサによって実行されると、コンピュータプロセッサに動作を実行させる命令を格納した非一時的コンピュータ可読媒体を含み、動作は、仮想環境を有するマルチプレーヤ・オンラインゲームのための複数のクライアントデバイスにおいてユーザ入力を受信することと、ユーザ入力に基づきクライアントデバイス上でオンラインゲームのためのユーザ開始イベント(たとえば、ゲームイベント)を生成することと、各クライアントデバイス上で生成された任意のユーザ開始イベントを複数のクライアントデバイスのうちの他のクライアントデバイスに配信することと、各クライアントデバイスにおいてユーザ開始イベントに基づき複数の派生ゲームイベントを決定することと、各クライアントデバイス上でユーザ開始イベントおよび派生ゲームイベントを1つまたは複数のイベントキュー内に保存することと、保存されたユーザ開始イベントおよび派生ゲームイベントに従って、各クライアントデバイスにおいて仮想環境の経時的状態を決定することとを含む。
本発明の所与の局面に関して説明される実施形態の要素は、本発明の他の局面のさまざまな実施形態において使用されることができる。たとえば、1つの独立請求項に従属する従属請求項の特徴は、他の独立請求項のいずれかの装置、システム、および/または方法において使用されることができると考えられる。
詳細な説明
図1は、マルチプレーヤ・オンラインゲームのためのクライアントデバイスにわたってイベントデータを管理し一貫したゲーム状態を維持するための例示的システム100を示す。サーバシステム112は、経時的に、ゲームイベントを処理し、派生ゲームイベントを計算し、ゲーム状態を更新し、および/またはゲームプレイを監視するための機能を提供する。サーバシステム112は、ソフトウェアコンポーネントおよびストレージデバイスまたはたとえば1つまたは複数の地理的場所内の1つまたは複数のデータセンタ114において配備されることができるデータベースを含む。サーバシステム112のソフトウェアコンポーネントは、たとえば、ゲームイベントモジュール116a、派生ゲームイベントモジュール118a、およびゲーム状態モジュール120aを含むことができる。ソフトウェアコンポーネントは、同じまたは異なる個々のデータ処理装置上で実行することができるサブコンポーネントを含むことができる。サーバシステム112のデータベースは、たとえば、ゲームデータ・データベース122aを含むことができる。ストレージデバイスは、1つまたは複数の物理ストレージシステムに属することができる。ソフトウェアコンポーネントおよびデータは、以下にさらに記載される。
図1は、マルチプレーヤ・オンラインゲームのためのクライアントデバイスにわたってイベントデータを管理し一貫したゲーム状態を維持するための例示的システム100を示す。サーバシステム112は、経時的に、ゲームイベントを処理し、派生ゲームイベントを計算し、ゲーム状態を更新し、および/またはゲームプレイを監視するための機能を提供する。サーバシステム112は、ソフトウェアコンポーネントおよびストレージデバイスまたはたとえば1つまたは複数の地理的場所内の1つまたは複数のデータセンタ114において配備されることができるデータベースを含む。サーバシステム112のソフトウェアコンポーネントは、たとえば、ゲームイベントモジュール116a、派生ゲームイベントモジュール118a、およびゲーム状態モジュール120aを含むことができる。ソフトウェアコンポーネントは、同じまたは異なる個々のデータ処理装置上で実行することができるサブコンポーネントを含むことができる。サーバシステム112のデータベースは、たとえば、ゲームデータ・データベース122aを含むことができる。ストレージデバイスは、1つまたは複数の物理ストレージシステムに属することができる。ソフトウェアコンポーネントおよびデータは、以下にさらに記載される。
たとえば、ウェブベースアプリケーションといったアプリケーションは、ユーザがサーバシステム112と対話することを可能とするためにエンドユーザアプリケーションとして提供されることができる。エンドユーザアプリケーションは、ネットワーク124(たとえば、インターネット)を介して、スマートフォン126、パーソナルコンピュータ128、スマートフォン130、タブレットコンピュータ132、およびラップトップコンピュータ134といったクライアントデバイスのユーザによってアクセスされることができる。他のクライアントデバイスが可能である。各クライアントデバイスは、ゲーム機能を提供するための適したソフトウェアコンポーネントおよびストレージデバイスまたはデータベースを含むことができる。クライアントデバイスソフトウェアコンポーネントは、たとえば、ユーザインタフェースモジュール138、ゲームイベントモジュール116b、派生ゲームイベントモジュール118b、およびゲーム状態モジュール120bを含むことができる。ストレージまたはデータベースコンポーネントは、ゲームデータ・データベース122bを含むことができる。図1は、ユーザインタフェースモジュール138、ゲームイベントモジュール116b、派生ゲームイベントモジュール118b、ゲーム状態モジュール120b、およびゲームデータ・データベース122bをクライアントデバイス130と関連付けられたものとして描写するが、各クライアントデバイス126,128,130,132,134は、ユーザインタフェースモジュール138、ゲームイベントモジュール116b、派生ゲームイベントモジュール118b、ゲーム状態モジュール120b、および/またはゲームデータ・データベース122bを含むことができるということが理解される。
図2は、2ユーザ202および204がそれぞれのクライアントデバイス126および130を使用してオンラインゲーム内でサーバシステム112と対話する例示的システム200を描写する。各ユーザ202および204は、入力をそれぞれのクライアントデバイス126および130に提供することができる。入力は、たとえば、タッチスクリーン上のタップまたはスワイプ、マウスを用いるポイントおよびクリック、および/または1つまたは複数のキーボード上の入力であることができ、またはこれを含むことができる。入力に対応するデータは、ユーザインタフェースモジュール138から経路202に沿ってゲームイベントモジュール116bに送信され、これは、ゲームのためのゲームイベントをユーザ入力に基づきを決定しおよび/または管理する。ゲームイベントは一般に、オンラインゲームのための仮想環境内のプレーヤまたはプレーヤのキャラクタまたはアバタによって取られるアクションまたは動きである。いくつかの実装では、ゲームイベントの少なくとも一部は、サーバシステム112上で生成されることができる。たとえば、サーバシステム112は、ランダムにまたは特定の時間におよび/または仮想環境内の場所でゲームイベントを作成することができる。クライアントデバイス126および130上および/またはサーバシステム112上で生成されたゲームイベントは、たとえば、プレーヤの動き、別のプレーヤとの対話、リソース(たとえば、兵士、武器、または守備)の配備、仮想物体との対話、および/または仮想環境内のキャラクタとの対話であることができ、またはこれを含むことができる。その他のゲームイベントが、可能である。
好ましい例では、各クライアントデバイス上で(および/またはサーバシステム112上で)生成されたゲームイベントは、他のクライアントデバイスおよびオンラインゲームに参加している任意の他のクライアントデバイスと共有される。たとえば、ゲームイベントは、各クライアントデバイス126または130上のゲームイベントモジュール116bから経路204に沿ってサーバ112上のゲームイベントモジュール116aに送信されることができる。サーバ112上のゲームイベントモジュール116aは、(クライアントデバイス126および130上でおよび/またはサーバシステム112上で生成された)各ゲームイベントを他のクライアントデバイス上のゲームイベントモジュールに(たとえば、経路204を使用して)転送することができる。さらに他のゲームプレイ中に追加的なゲームイベントが生成され、サーバ112上のゲームイベントモジュール116aに送信されるときに、追加的なゲームイベントは、他のクライアントデバイスに配信されることができる。このようにして、各クライアントデバイス126および130は、ゲームまたはその一部に参加しているすべてのクライアントデバイスおよび/または任意のサーバによって生成されたゲームイベントの完全な組を得ることができる。
ある実装では、各ゲームイベントは、イベントが発生するように予定される時間と関連付けられることができる。予定される時間に達したときに、各クライアントデバイス126または130上のゲームイベントモジュール116bは、ゲームイベントを経路206に沿ってゲーム状態モジュール120bに転送することができる。ゲーム状態モジュール120bは、ゲームイベントに従いゲームの状態を更新することができる。たとえば、ゲームイベントがある時間においてプレーヤの位置の移動を伴う場合、ゲーム状態モジュール120bは、その時間にプレーヤの位置を移動させることによってゲームの状態を更新することができる。
追加的にまたは代替的に、各ゲームイベントは、オンラインゲームのためのある派生ゲームイベントをトリガすることができる。派生ゲームイベントは、たとえば、仮想環境内の物体またはキャラクタの動き、仮想環境内の物体またはキャラクタの状態における変化、仮想環境内の物体(たとえば、コインまたは他の報酬)またはキャラクタ(たとえば、新たな兵士)の追加、および/または仮想環境内の物体(たとえば、破壊された建物)またはキャラクタ(たとえば、殺された兵士)の除去であることができ、またはこれを含むことができる。たとえば、プレーヤが仮想環境内で位置を変えるときに、仮想物体は、仮想環境内に出現し得、または他の物体(たとえば、仮想キャラクタ、人、または動物)は、プレーヤ動きに応じて動き得る。そのような派生ゲームイベントは、クライアントデバイス126および130上で派生ゲームイベントモジュール118bを使用して決定されることができる。ゲーム状態モジュール120bがゲームイベントをゲームイベントモジュール116bから受信するときに、たとえば、ゲームイベントは、経路208に沿って派生ゲームイベントモジュール118bに転送されることができる。代替的にまたは追加的に、ゲームイベントは、ゲームイベントモジュール116bから派生ゲームイベントモジュール118bに直接的に転送されることができる。派生ゲームイベントモジュール118bはそして、ゲームイベントに対応する任意の派生ゲームイベントを決定することができ、ゲーム内でそのような派生ゲームイベントが発生する時間を予定することができる。代替的にまたは追加的に、派生ゲームイベントモジュール118bは、たとえば、他の介入ゲームイベントまたは派生ゲームイベントのためにゲーム内でもはや発生することが予測されない任意の派生ゲームイベントを再計算または削除することができる。派生ゲームイベントのために予定される時間に達したときに、派生ゲームイベントモジュール118bは、派生ゲームイベントを経路208に沿ってゲーム状態モジュール120bに送信することができる。ゲーム状態モジュール120bは、派生ゲームイベントに従いゲーム状態を更新することができる。
ゲーム状態モジュール120bがゲーム状態を更新するときに、ゲームイベントおよび派生ゲームイベントに従って、ゲーム状態モジュール120bは、更新されたゲーム状態をユーザインタフェースモジュール138に送信することができる。更新されたゲーム状態および/または仮想環境のレンダリングは、ユーザインタフェースモジュール138によって生成され、クライアントデバイス126および130のユーザ202および204に提示されることができる。レンダリングは、たとえば、テキスト、画像、ビデオ、オーディオ、および/または触覚フィードバックを含むことができる。各ユーザ202および204は、更新されたゲーム状態のレンダリングに対してユーザインタフェースモジュール138にさらに他の入力を提供することによって応答することができる。ここで説明されるように、さらに他の入力は、処理され、ゲーム状態をさらに更新するために使用されることができる。
さまざまな例では、クライアントデバイス126および130がゲームイベントおよび派生ゲームイベントに従ってゲーム状態を更新すると、サーバ112は、ゲーム状態のサーバのバージョンをゲームイベントおよび派生ゲームイベントを処理することによって更新することができる。たとえば、ゲームイベントが発生するように予定されるときに、サーバ112上のゲームイベントモジュール116aは、ゲームイベントを経路210に沿ってゲーム状態モジュール120aに転送することができる。ゲーム状態モジュールは、ゲームの状態をゲームイベントに従い更新することができる。追加的にまたは代替的に、ゲームイベントは、経路212に沿って派生ゲームイベントモジュール118aに転送されることができ、これは、ゲームイベントに対応する任意の派生ゲームイベントを決定することができる。派生ゲームイベントのために予定される時間に達したときに、派生ゲームイベントモジュール118aは、派生ゲームイベントを経路212に沿ってゲーム状態モジュール120aに送信することができる。ゲーム状態モジュール120aは、ゲーム状態を派生ゲームイベントに従い更新することができる。
さまざまな例では、ゲーム状態のサーバのバージョンは、ゲーム状態の公式バージョンであることができ、各クライアントデバイス上のゲーム状態を監視しまたは確証するために使用されることができる。 ゲーム状態のサーバのバージョンは、たとえば、クライアントデバイス126および130上で任意の不正が発生することを阻止するために、またはクライアントデバイス126および130上でゲーム状態を更新するために使用されることができる。たとえば、サーバ112は、サーバの過去、現在、および/または未来のゲームイベントおよび/または派生ゲームイベントの一覧をクライアントデバイス126および130上の過去、現在、および/または未来のゲームイベントおよび/または派生ゲームイベントの一覧と比較することができる。追加的にまたは代替的に、サーバ112は、ゲーム状態のサーバのバージョンをクライアントデバイス126および130によって決定されたゲーム状態と比較するために、経路214を使用することができる。クライアントデバイス126および130上のイベントおよび/またはゲーム状態を検査することで、サーバ112は、イベントが許可可能でありゲームの任意のルールの範囲内であることおよび/またはゲーム状態が正確であることを検証することができる。サーバ112によるこの独立チェックがなければ、たとえば、ハッカーは、ゲームにおいて不公平な優位性および/または不正を得る目的で悪意のあるおよび/または詐欺のイベントを生成しサブミットしかねない。
ゲーム状態のサーバの公式バージョンはまた、ゲームに遅れて到着したクライアントデバイスを加えるために使用されることができる。従来のアプローチでは、最新にされるために、遅れて到着したクライアントデバイスは、クライアントデバイスの到着前にゲームまたはその一部において発生したすべてのイベントを処理することを要求され得る。しかし、ここで説明されるシステムおよび方法を用いることで、サーバ112は、現在ゲーム状態のスナップショットを遅れて到着したクライアントデバイスに送信することができ、これによりクライアントデバイスは、ゲームおよび/または他のクライアントデバイスと同期されることができる。これは、任意の、遅れて到着したクライアントデバイスをゲームまたはその一部に追加する処理を大分容易にする。
好ましい実装では、クライアントデバイス126および130およびサーバ112は、イベントデータを一貫した方法で管理し処理するように構成され、これにより各クライアントデバイス126および130並びにサーバ112は、各イベントが処理された後に同一のゲーム状態に到達する。このすべてのクライアントデバイスおよびサーバ112にわたってゲーム状態の一貫性および単一性を達成するために、ゲームイベントモジュール116aおよび116b、派生ゲームイベントモジュール118aおよび118b、並びにゲーム状態モジュール120aおよび120bは、イベントを処理しゲーム状態を決定論的に更新するように構成されることができる。これは、たとえば、すべてのデバイスにわたってイベントを処理するための一貫したルールの組を使用することによっておよび/またはランダムイベントまたは結果を避けることによって達成されることができ、これにより各イベントは、同一に決定され処理される。そのような手法を用いて、各イベントは、クライアントデバイス126および130並びにサーバ112を含む各デバイスにおいてゲーム状態へ同一の影響を有することができる。イベントの一貫したタイミングを確実にするために、ゲームクロックは、すべてのデバイスが同じ時間に設定されるように、サーバ112並びにクライアントデバイス126および130(および任意の他のクライアントデバイス)にわたって同期されることができる。
図3を参照して、さまざまな例では、クライアントデバイス130は、ユーザインタフェースモジュール138、ゲームイベントモジュール116b、派生ゲームイベントモジュール118b、およびゲーム状態モジュール120bを使用してオンラインゲームのためのイベントデータを処理しおよび/または管理する。ユーザ204は、入力をユーザインタフェースモジュール138のユーザ入力デバイス302に提供することができる。ユーザ入力デバイス302は、たとえば、タッチスクリーン、キーボード、マウス、ジョイスティック、または他のゲームコントローラであることができ、またはこれを含むことができる。ユーザ入力デバイス302は、ユーザ入力を処理し、ユーザ入力に対応するデータを生成することができる。このデータは、ここではユーザ入力データとも称され、たとえば、ユーザ入力および/またはオンラインゲームのためのゲームイベントから導出される情報またはこれを記述する情報であることができ、またはこれを含むことができる。ユーザ入力データは、ユーザ入力デバイス302からゲームイベントモジュール116b内のゲームイベントプロセッサ304に送信されることができる。追加的にまたは代替的に、他のクライアントデバイスからのユーザ入力データ(たとえば、ゲームイベント)は、サーバ112からゲームイベントプロセッサ304に送信されることができる。ゲームイベントプロセッサ304は、ユーザ入力データを処理し、ユーザ入力データに基づきおよび/またはサーバ112上で生成された任意のゲームイベントに基づきオンラインゲームのための任意のゲームイベントを決定するすることができる。たとえば、ゲームイベントプロセッサ304は、1つまたは複数のゲームイベントがオンラインゲーム内で発生する時間を決定することができる。1つまたは複数のゲームイベントは、たとえば、各ゲームイベントに対する固有の識別番号に従いおよび/または時系列順に従いゲームイベントキュー306内に保存されることができる。ゲームイベント送信機308は、オンラインゲームのためのゲーム時間を監視することができ、ゲームイベントが発生するように予定されるときに、ゲームイベントをゲームイベントキュー306から検索することができる。たとえば、ゲームイベントに関連付けられるゲーム時間に達したときに、ゲームイベント送信機308は、ゲームイベントをゲームイベントキュー306から除去し、ゲームイベントをゲーム状態モジュール120b内のゲーム状態プロセッサ310に転送することができる。
ゲーム状態モジュール120bは一般に、オンラインゲームの状態をゲームイベントおよび派生ゲームイベントに従い更新するように構成される。たとえば、ゲームイベント送信機308がゲームイベントをゲーム状態プロセッサ310に送信するときに、ゲーム状態プロセッサ310は、ゲームイベントがゲーム状態を変更する方法を決定することができ、それに従ってゲーム状態を更新することができる。現在のゲームの状態は、ゲーム状態キュー312内に、1つまたは複数の過去のゲームの状態とともに保存されたされることができる。たとえば、ゲーム状態キュー312は、ゲーム状態の履歴を保存することができる。これは、たとえば、ユーザ204および/またはゲーム管理者が後にゲーム状態を再確認または再生することを可能とする。
ゲーム状態プロセッサ310がゲーム状態をゲームイベントに従い更新するときに、更新されたゲーム状態および/またはゲームイベントは、派生ゲームイベントモジュール118bに送信されることができ、これは、ゲームイベントおよび/または更新されたゲーム状態のために発生する任意の派生ゲームイベントを決定し処理することができる。たとえば、派生ゲームイベントプロセッサ314は、更新されたゲーム状態および/またはゲームイベントを受信し、更新されたゲーム状態および/またはゲームイベントの結果として、オンラインゲーム内で1つまたは複数の派生ゲームイベントが発生する時間を決定することができる。代替的にまたは追加的に、派生ゲームイベントプロセッサ314は、派生ゲームイベントを再計算し、および/または他の介入イベントのためにもはや発生しないある派生ゲームイベントを削除することができる。1つまたは複数の派生ゲームイベントは、派生ゲームイベントキュー316内に、たとえば、各派生ゲームイベントのための固有の識別番号に従いおよび/または時系列順に従い保存されることができる。派生ゲームイベント送信機318は、オンラインゲームに対するゲーム時間を監視することができ、派生ゲームイベントが発生するように予定されるときに、派生ゲームイベントを派生ゲームイベントキュー316から検索することができる。たとえば、派生ゲームイベントと関連付けられたゲーム時間に達すると、派生ゲームイベント送信機318は、派生ゲームイベントを派生ゲームイベントキュー316から除去し、派生ゲームイベントをゲーム状態プロセッサ310に転送することができ、ゲーム状態プロセッサ310は、それに従ってゲーム状態を更新することができる。ゲーム状態が経時的に更新されると、追加的な派生ゲームイベントは、派生ゲームイベントモジュール118bを使用して処理され、ゲーム状態モジュール120bを使用してオンラインゲームへと実装されることができる。いくつかの実装では、派生ゲームイベントモジュール118bは、ゲームイベントをゲームイベント送信機308から直接的に受信することができ、受信されたゲームイベントに基づき派生ゲームイベントを決定し処理することができる。
ゲーム状態が更新され、ゲーム状態キュー312内に保存されると、現在のゲーム状態またはそのレンダリングは、ゲーム状態モジュール120bからユーザインタフェースモジュール138上のユーザ出力デバイス320に送信されることができる。ユーザ出力デバイス320は、たとえば、表示画面、グラフィカルユーザインタフェース、スピーカ、および/または触覚フィードバックデバイスであることができ、またはこれを含むことができる。好ましい実装では、現在のゲーム状態のレンダリングは、ユーザインタフェースモジュール138および/またはゲーム状態モジュール120bによって決定されることができ、ユーザ出力デバイス320を使用してユーザ204に提供される。これに応じて、ユーザ204は、追加的なユーザ入力をユーザ入力デバイス302に提供することができ、任意の対応するゲームイベントおよび/または派生ゲームイベントは、それに従ってゲーム状態を更新するために決定され処理されることができる。ゲームイベントおよび派生ゲームイベントに基づきゲーム状態を更新する処理は、ゲーム(またはその一部)が終わるまで継続することができる。
図4は、仮想環境を含むマルチプレーヤ・オンラインゲームのためのイベントデータを管理するためのコンピュータにより実行される例示的方法400を示す。ユーザ入力は、仮想環境を含むマルチプレーヤ・オンラインゲームのための複数のクライアントデバイスにおいて受信される(ステップ402)。ユーザ開始イベント(たとえば、ゲームイベント)は、オンラインゲームのためのクライアントデバイス上でユーザ入力に基づき生成される(ステップ404)。各クライアントデバイス上で生成された任意のユーザ開始イベントは、複数のクライアントデバイスのうちの他のクライアントデバイスに配信される(ステップ406)。複数の予測または派生ゲームイベントは、各クライアントデバイスにおいてユーザ開始イベントに基づき決定される(ステップ408)。ユーザ開始イベントおよび派生ゲームイベントは、イベントキュー(または複数のイベントキュー)内に、たとえば、時系列で各クライアントデバイス上に保存される(ステップ410)。各クライアントデバイスにおいて、仮想環境の状態は、保存されたユーザ開始イベントおよび派生ゲームイベントに従って経時的に決定される(ステップ412)。
この明細書に記載の主題の実装および動作は、この明細書に開示される構造およびそれらの構造上の均等物を含む、デジタル電子回路、あるいはコンピュータソフトウェア、ファームウェア、またはハードウェア、またはそれらの1つまたは複数の組み合わせにおいて実装されることができる。この明細書に記載の主題の実装は、データ処理装置による実行のために、またはデータ処理装置の動作を制御するためにコンピュータストレージ媒体上に符号化された1つまたは複数のコンピュータプログラム、すなわち、コンピュータプログラム命令の1つまたは複数のモジュールとして実装されることができる。代替的にまたは追加的に、プログラム命令は、たとえばデータ処理装置による実行のために適切な受信装置に伝送するための情報を符号化するために生成された機械生成電気信号、光信号、又は電磁信号といった、人工的に生成された伝搬信号に符号化されることができる。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムまたはシリアルアクセスメモリアレイまたはデバイス、またはそれらの1つまたは複数の組み合わせであるか、それらに含められることができる。さらに、コンピュータストレージ媒体は伝搬信号ではないが、コンピュータストレージ媒体は、人工的に生成された伝搬信号に符号化されたコンピュータプログラム命令の送信元または宛先になることができる。コンピュータストレージ媒体は、1つまたは複数の別々の物理的構成要素または媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)であることができ、またはそれらに含められることができる。
この明細書で記載の動作は、1つまたは複数のコンピュータ可読ストレージデバイスに記憶される、または他のソースから受信されたデータに対して、データ処理装置によって実行される動作として実装することができる。
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、チップ上のシステム、またはこれらの複数のもの、あるいはそれらの組み合わせを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの特殊目的論理回路を含むことができる。装置はまた、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作成するコード、たとえばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらの1つ以上の組み合わせを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなどのさまざまな異なるコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも称される)は、コンパイル済み言語またはインタプリタ言語、宣言型言語または手続き型言語を含む任意の形式のプログラミング言語で作成されることができ、それは、独立型プログラム、またはモジュール、コンポーネント、サブルーチン、オブジェクト、あるいはコンピューティング環境での使用に適した他のユニットを含む任意の形式で配備されることができる。コンピュータプログラムは、必ずしもそうである必要はないが、ファイルシステム内のファイルに対応し得る。プログラムは、他のプログラムまたはデータを保持するファイルの一部(たとえば、マークアップ言語文書に格納されている1つまたは複数のスクリプト)、問題のプログラム専用の単一ファイル、または複数の協調ファイル(たとえば、1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に保存されることができる。コンピュータプログラムは、1つのコンピュータ、または1つのサイトに配置されたまたは複数のサイトにわたって分散されて通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配備することができる。
この明細書に記載処理および論理フローは、入力データを操作して出力を生成することによって動作を実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行されることができる。プロセスおよび論理フローはまた、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの特殊目的論理回路によって実行されることもでき、装置はまたこれとして実装されることもできる。
コンピュータプログラムの実行に適したプロセッサは、例として、汎用および特殊用途の両方のマイクロプロセッサ、ならびに任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリ、ランダムアクセスメモリ、またはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令に従って動作を実行するためのプロセッサと、命令およびデータを格納するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば磁気ディスク、光磁気ディスク、光ディスク、またはソリッドステートドライブから、データを受信する、またはそれらにデータを転送するように結合されるしかしながら、コンピュータはそのようなデバイスを必須としない。さらに、コンピュータを、数例を挙げると、たとえば携帯電話、携帯情報端末(PDA)、携帯オーディオまたはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)受信機、または携帯型ストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)といった別のデバイスに組み込むことができる。コンピュータプログラムの命令およびデータを格納するのに適したデバイスは、例として、たとえばEPROM、EEPROM、およびフラッシュメモリデバイスを含む半導体メモリデバイス、たとえば内蔵ハードディスクまたはリムーバブルディスクを含む磁気ディスク、CD−ROMおよびDVD−ROMディスクを含む光磁気ディスクを含むあらゆる形式の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、特殊目的論理回路によって補完されるか、またはその中に組み込まれることができる。
ユーザとの対話を可能にするために、この明細書に記載の主題の実装は、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタといったユーザに情報を表示するための表示デバイスと、キーボードと、たとえば、マウス、トラックボール、タッチパッド、またはスタイラスといったユーザがコンピュータに入力を提供することができるポインティングデバイスとを有するコンピュータ上で実装されることができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもできる。たとえば、ユーザに提供されるフィードバックは、たとえば視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなどの任意の形態の感覚的フィードバックであり得。ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形式で受け取られることができる。加えて、コンピュータは、たとえば、Webブラウザから受信した要求に応答して、Webページをユーザのクライアントデバイス上のWebブラウザに送信するなど、ユーザによって使用されるデバイスに文書を送受信することによってユーザと対話することができる。
この明細書で説明される主題の実装は、たとえばデータサーバとしてのバックエンドコンポーネントを含むか、またはたとえばアプリケーションサーバなどのミドルウェアコンポーネントを含むか、またはたとえばこの明細書に記載の主題の実装とユーザが対話することができるグラフィカルユーザインタフェース、またはウェブブラウザを有するクライアントコンピュータといったフロントエンドコンポーネントを含むかまたはそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの1つまたは複数の任意の組み合わせを含むコンピューティングシステムで実装されることができる。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続されることができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえばインターネット)、およびピアツーピアネットワーク(たとえばアドホックピアツーピアネットワーク)を含む。
コンピューティングシステムはクライアントおよびサーバを含むことができる。クライアントとサーバとは一般に互いに離れており、通信ネットワークを介して典型的に対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアント−サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実装では、サーバは、データ(たとえば、HTMLページ)を(たとえば、クライアントデバイスと対話しているユーザにデータを表示し、ユーザからユーザ入力を受け取るために)クライアントデバイスに送信する。クライアントデバイスで生成されたデータ(たとえば、ユーザとの対話の結果)は、サーバのクライアントデバイスから受信されることができる。
この明細書は多くの具体的な実装の詳細を含むが、これらはいかなる発明の範囲または特許請求の範囲の限定と考えられるべきではなく、むしろ特定の発明の特定の実装に特有な特徴の説明として解釈されるべきである。この明細書において別々の実装の文脈において説明されている特定の特徴は、単一の実装において組み合わせて実装されこともできる。逆に、単一の実装の文脈で説明されているさまざまな特徴は、複数の実装で別々にまたは任意の適切な部分的組み合わせにおいて実装されることもできる。さらに、特徴は特定の組み合わせにおいて作用するものとして上述されることができ、当初の特許請求の範囲に記載されていても、記載された組み合わせからの1つ以上の特徴は、組み合わせから除外されることができ、記載された組み合わせは、部分的組み合わせまたは部分的組み合わせの変形に向けられることができる。
同様に、動作は特定の順序で図面に描かれているが、望ましい結果を達成するために、そのような動作が示された特定の順序または順次に実行されること、または示されたすべての動作が実行されることが必要であると解されるべきではない。特定の状況では、マルチタスキングおよび並列処理が有利であり得る。さらに、上述の実装におけるさまざまなシステム構成要素の分離は、すべての実装においてそのような分離を必要とすると理解されるべきではなく、説明されたプログラム構成要素およびシステムは、単一のソフトウェア製品に一般的に統合されるかまたは複数のソフトウェア製品へとパッケージ化され得る。
このようにして、主題の特定の実装が説明された。他の実装は添付の特許請求の範囲内にある。場合によっては、請求項に記載されている動作は、異なる順序で実行されることができ、それでも望ましい結果を達成することができる。さらに、添付の図面に示された処理は、望ましい結果を達成するために、示された特定の順序、または順次順序を必ずしも必要としない。特定の実装では、マルチタスク処理および並列処理が有利であり得る。
Claims (20)
- コンピュータにより実行される方法であって、
仮想環境を備えるマルチプレーヤ・オンラインゲームのための複数のクライアントデバイスにおいてユーザ入力を受信することと、
前記ユーザ入力に基づき前記クライアントデバイス上で前記オンラインゲームのためのユーザ開始イベントを生成することと、
各クライアントデバイス上で生成された任意のユーザ開始イベントを前記複数のクライアントデバイスのうちの他のクライアントデバイスに配信することと、
各クライアントデバイスにおいて前記ユーザ開始イベントに基づき複数の派生ゲームイベントを決定することと、
各クライアントデバイス上で前記ユーザ開始イベントおよび前記派生ゲームイベントを1つまたは複数のイベントキュー内に保存することと、
前記保存されたユーザ開始イベントおよび前記派生ゲームイベントに従って、各クライアントデバイスにおいて前記仮想環境の経時的状態を決定することとを備える、方法。 - ユーザは、前記クライアントデバイスを使用して前記仮想環境と対話する、請求項1に記載の方法。
- 各ユーザ開始イベントは、前記仮想環境内で前記ユーザ開始イベントが発生する時間を備える、請求項1に記載の方法。
- 前記ユーザ開始イベントを配信することは、
前記ユーザ開始イベントを前記クライアントデバイスからサーバに送信することと、
各クライアントデバイスにおいて、前記サーバから、前記複数のクライアントデバイスのうちの他のクライアントデバイスによって生成された前記ユーザ開始イベントを受信することとを備える、請求項1に記載の方法。 - 前記ユーザ開始イベントを配信した後に、各クライアントデバイスは、各ユーザ開始イベントを備える、請求項1に記載の方法。
- 各派生ゲームイベントは、前記仮想環境内で前記派生ゲームイベントが発生する時間を備える、請求項1に記載の方法。
- 前記ユーザ開始イベントおよび前記派生ゲームイベントは、前記ユーザ開始イベントおよび前記派生ゲームイベントのための時間に従って各クライアントデバイス上に保存される、請求項1に記載の方法。
- 各クライアントデバイスは、前記仮想環境の前記経時的状態について同一の決定を行う、請求項1に記載の方法。
- 前記仮想環境の少なくとも一部を各クライアントデバイス上に表示することをさらに備える、請求項1に記載の方法。
- サーバにおいて前記クライアントデバイスから前記ユーザ開始イベントを受信することと、
前記サーバにおいて前記ユーザ開始イベントに基づき前記複数の派生ゲームイベントを決定することと、
前記サーバ上で前記ユーザ開始イベントおよび前記派生ゲームイベントを1つまたは複数のサーバイベントキュー内に保存することと、
前記保存されたユーザ開始イベントおよび前記派生ゲームイベントに従って、前記サーバ上で前記仮想環境の前記経時的状態を決定することとをさらに備える、請求項1に記載の方法。 - システムであって、
動作を実行するようにプログラムされた1つまたは複数のコンピュータプロセッサを備え、前記動作は、
仮想環境を備えるマルチプレーヤ・オンラインゲームのための複数のクライアントデバイスにおいてユーザ入力を受信することと、
前記ユーザ入力に基づき前記クライアントデバイス上で前記オンラインゲームのためのユーザ開始イベントを生成することと、
各クライアントデバイス上で生成された任意のユーザ開始イベントを前記複数のクライアントデバイスのうちの他のクライアントデバイスに配信することと、
各クライアントデバイスにおいて前記ユーザ開始イベントに基づき複数の派生ゲームイベントを決定することと、
各クライアントデバイス上で前記ユーザ開始イベントおよび前記派生ゲームイベントを1つまたは複数のイベントキュー内に保存することと、
前記保存されたユーザ開始イベントおよび前記派生ゲームイベントに従って、各クライアントデバイスにおいて前記仮想環境の経時的状態を決定することとを備える、システム。 - ユーザは、前記クライアントデバイスを使用して前記仮想環境と対話する、請求項11に記載のシステム。
- 各ユーザ開始イベントは、前記仮想環境内で前記ユーザ開始イベントが発生する時間を備える、請求項11に記載のシステム。
- 前記ユーザ開始イベントを配信することは、
前記ユーザ開始イベントを前記クライアントデバイスからサーバに送信することと、
各クライアントデバイスにおいて、前記サーバから、前記複数のクライアントデバイスのうちの他のクライアントデバイスによって生成された前記ユーザ開始イベントを受信することとを備える、請求項11に記載のシステム。 - 前記ユーザ開始イベントを配信した後に、各クライアントデバイスは、各ユーザ開始イベントを備える、請求項11に記載のシステム。
- 各派生ゲームイベントは、前記仮想環境内で前記派生ゲームイベントが発生する時間を備える、請求項11に記載のシステム。
- 前記ユーザ開始イベントおよび前記派生ゲームイベントは、前記ユーザ開始イベントおよび前記派生ゲームイベントのための時間に従って各クライアントデバイス上に保存される、請求項11に記載のシステム。
- 各クライアントデバイスは、前記仮想環境の前記経時的状態について同一の決定を行う、請求項11に記載のシステム。
- 前記動作は、
サーバにおいて前記クライアントデバイスから前記ユーザ開始イベントを受信することと、
前記サーバにおいて前記ユーザ開始イベントに基づき前記複数の派生ゲームイベントを決定することと、
前記サーバ上で前記ユーザ開始イベントおよび前記派生ゲームイベントを1つまたは複数のサーバイベントキュー内に保存することと、
前記保存されたユーザ開始イベントおよび前記派生ゲームイベントに従って、前記サーバ上で前記仮想環境の前記経時的状態を決定することとをさらに備える、請求項11に記載のシステム。 - 製品であって、
1つまたは複数のコンピュータプロセッサによって実行されると、前記コンピュータプロセッサに動作を実行させる命令を格納した非一時的コンピュータ可読媒体を備え、前記動作は、
仮想環境を備えるマルチプレーヤ・オンラインゲームのための複数のクライアントデバイスにおいてユーザ入力を受信することと、
前記ユーザ入力に基づき前記クライアントデバイス上で前記オンラインゲームのためのユーザ開始イベントを生成することと、
各クライアントデバイス上で生成された任意のユーザ開始イベントを前記複数のクライアントデバイスのうちの他のクライアントデバイスに配信することと、
各クライアントデバイスにおいて前記ユーザ開始イベントに基づき複数の派生ゲームイベントを決定することと、
各クライアントデバイス上で前記ユーザ開始イベントおよび前記派生ゲームイベントを1つまたは複数のイベントキュー内に保存することと、
前記保存されたユーザ開始イベントおよび前記派生ゲームイベントに従って、各クライアントデバイスにおいて前記仮想環境の経時的状態を決定することとを備える、製品。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762445364P | 2017-01-12 | 2017-01-12 | |
US62/445,364 | 2017-01-12 | ||
US15/825,581 US11058946B2 (en) | 2017-01-12 | 2017-11-29 | System and method for managing event data in a multi-player online game |
US15/825,581 | 2017-11-29 | ||
PCT/US2018/012909 WO2018132356A1 (en) | 2017-01-12 | 2018-01-09 | System and method for managing event data in a multi-player online game |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020503969A true JP2020503969A (ja) | 2020-02-06 |
Family
ID=62782549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019537782A Pending JP2020503969A (ja) | 2017-01-12 | 2018-01-09 | マルチプレーヤ・オンラインゲーム内のイベントデータを管理するためのシステムおよび方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11058946B2 (ja) |
EP (1) | EP3568220A1 (ja) |
JP (1) | JP2020503969A (ja) |
CN (1) | CN110430924A (ja) |
AU (1) | AU2018207077A1 (ja) |
WO (1) | WO2018132356A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9675889B2 (en) | 2014-09-10 | 2017-06-13 | Zynga Inc. | Systems and methods for determining game level attributes based on player skill level prior to game play in the level |
US11058946B2 (en) * | 2017-01-12 | 2021-07-13 | Mz Ip Holdings, Llc | System and method for managing event data in a multi-player online game |
CN108379837A (zh) * | 2018-02-01 | 2018-08-10 | 网易(杭州)网络有限公司 | 信息处理方法及装置、存储介质、电子设备 |
CN111318023B (zh) * | 2020-02-17 | 2023-04-14 | 网易(杭州)网络有限公司 | 游戏数据处理方法、装置、存储介质与电子设备 |
CN113181629B (zh) * | 2021-05-10 | 2024-06-21 | 海南珞麟网络科技有限公司 | Vr/ar多用户格斗类软件的时延补偿方法及系统 |
CN113398570B (zh) * | 2021-06-30 | 2023-07-21 | 上海完美时空软件有限公司 | 服务器分组方法、设备、存储介质和服务器集群 |
US20230016152A1 (en) * | 2021-07-16 | 2023-01-19 | Niantic, Inc. | Reducing latency in anticheat dataflow |
CN113769388B (zh) * | 2021-09-18 | 2024-06-28 | 上海完美时空软件有限公司 | 游戏事件的控制方法及装置、存储介质、电子装置 |
WO2023084523A1 (en) * | 2021-11-11 | 2023-05-19 | Ludeo Inc | User-generated replayable gaming content utilizing regamification data |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7690043B2 (en) * | 1994-12-19 | 2010-03-30 | Legal Igaming, Inc. | System and method for connecting gaming devices to a network for remote play |
US6020885A (en) * | 1995-07-11 | 2000-02-01 | Sony Corporation | Three-dimensional virtual reality space sharing method and system using local and global object identification codes |
US7590739B2 (en) | 1999-11-22 | 2009-09-15 | Akamai Technologies, Inc. | Distributed on-demand computing system |
US6628287B1 (en) | 2000-01-12 | 2003-09-30 | There, Inc. | Method and apparatus for consistent, responsive, and secure distributed simulation in a computer network environment |
US8024481B2 (en) | 2000-04-17 | 2011-09-20 | Circadence Corporation | System and method for reducing traffic and congestion on distributed interactive simulation networks |
JP2003006127A (ja) | 2001-06-18 | 2003-01-10 | Cyberstep Inc | 分散処理システム、分散処理方法、およびその方法を利用可能なクライアント端末 |
US7788223B2 (en) | 2005-12-05 | 2010-08-31 | Microsoft Corporation | Resource freshness and replication |
EP2044543A4 (en) | 2006-04-13 | 2012-07-04 | Yosef Mizrachi | METHOD AND DEVICE FOR PROVIDING GAME SERVICES AND MOVING WITH VIDEO CONTENT |
US8370423B2 (en) | 2006-06-16 | 2013-02-05 | Microsoft Corporation | Data synchronization and sharing relationships |
US8832676B2 (en) * | 2009-09-30 | 2014-09-09 | Zynga Inc. | Apparatuses, methods and systems for a social networking application updater |
US8290920B2 (en) * | 2009-09-30 | 2012-10-16 | Zynga Inc. | System and method for remote updates |
US8328642B2 (en) * | 2010-06-16 | 2012-12-11 | Zynga Inc. | Game based incentives for commerce |
WO2012158620A1 (en) * | 2011-05-13 | 2012-11-22 | Addmired, Inc. | Systems and methods for a support game |
US8496532B1 (en) * | 2011-06-30 | 2013-07-30 | Zynga Inc. | Clan wars |
US9682315B1 (en) * | 2011-09-07 | 2017-06-20 | Zynga Inc. | Social surfacing and messaging interactions |
US8133116B1 (en) * | 2011-09-26 | 2012-03-13 | Zynga Inc. | Social supply harvest mechanic for interactive social games |
US9032022B1 (en) * | 2011-10-01 | 2015-05-12 | Zynga Inc. | Sending and receiving configurable buckets of communications |
US10148762B2 (en) * | 2011-10-18 | 2018-12-04 | Facebook, Inc. | Platform-specific notification delivery channel |
US8808093B1 (en) * | 2012-01-23 | 2014-08-19 | Zynga Inc. | Asynchronous social events in computer-implemented games |
US8944920B1 (en) * | 2012-02-09 | 2015-02-03 | Zynga Inc. | Push messaging architecture for online games |
US20130339473A1 (en) * | 2012-06-15 | 2013-12-19 | Zynga Inc. | Real time analytics via stream processing |
US10456686B2 (en) * | 2012-09-05 | 2019-10-29 | Zynga Inc. | Methods and systems for adaptive tuning of game events |
US8529354B1 (en) * | 2012-12-12 | 2013-09-10 | Kabam, Inc. | System and method for facilitating data model substitutions for pre-existing data objects |
CN106034129B (zh) * | 2015-03-18 | 2019-04-12 | 广州四三九九信息科技有限公司 | 一种用于游戏同步的fbsg方法 |
AU2018208489A1 (en) * | 2017-01-11 | 2019-08-29 | Mz Ip Holdings, Llc | System and method for managing dynamic design data for a virtual environment |
US11058946B2 (en) * | 2017-01-12 | 2021-07-13 | Mz Ip Holdings, Llc | System and method for managing event data in a multi-player online game |
US10668374B2 (en) * | 2017-01-25 | 2020-06-02 | Mz Ip Holdings, Llc | System and method for binding global objects in a client-server architecture |
WO2018140515A1 (en) * | 2017-01-27 | 2018-08-02 | Mz Ip Holdings, Llc | System and methods for determining events of interest in a multi-player online game |
US20180337989A1 (en) * | 2017-05-17 | 2018-11-22 | Mz Ip Holdings, Llc | System and method for synchronizing data between computer devices |
US20190299103A1 (en) * | 2018-03-29 | 2019-10-03 | Mz Ip Holdings, Llc | System and method for updating an application client |
-
2017
- 2017-11-29 US US15/825,581 patent/US11058946B2/en active Active
-
2018
- 2018-01-09 AU AU2018207077A patent/AU2018207077A1/en not_active Abandoned
- 2018-01-09 CN CN201880017987.4A patent/CN110430924A/zh active Pending
- 2018-01-09 JP JP2019537782A patent/JP2020503969A/ja active Pending
- 2018-01-09 WO PCT/US2018/012909 patent/WO2018132356A1/en unknown
- 2018-01-09 EP EP18709147.5A patent/EP3568220A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP3568220A1 (en) | 2019-11-20 |
US11058946B2 (en) | 2021-07-13 |
CN110430924A (zh) | 2019-11-08 |
WO2018132356A1 (en) | 2018-07-19 |
AU2018207077A1 (en) | 2019-08-29 |
US20180193742A1 (en) | 2018-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2020503969A (ja) | マルチプレーヤ・オンラインゲーム内のイベントデータを管理するためのシステムおよび方法 | |
US10668374B2 (en) | System and method for binding global objects in a client-server architecture | |
KR102541580B1 (ko) | 멀티플레이어 게임 세션들을 관리하기 위한 방법 및 시스템 | |
US10279272B2 (en) | Initiate events through hidden interactions | |
US20140364238A1 (en) | Dynamically generated in-game objectives | |
US10807006B1 (en) | Behavior-aware player selection for multiplayer electronic games | |
US11465059B2 (en) | Non-player game communication | |
US20190299103A1 (en) | System and method for updating an application client | |
JP2021072965A (ja) | ゲームリプレイ方法およびシステム | |
JP2023516523A (ja) | ピアツーピアマルチプレイヤークラウドゲーミングアーキテクチャ | |
US20180337989A1 (en) | System and method for synchronizing data between computer devices | |
US10717007B2 (en) | System and method for managing bonuses in a multi-player online game | |
US9101840B2 (en) | User assembly of lightweight user interface for games | |
WO2015197838A1 (en) | Systems and methods for managing data | |
CN109316753A (zh) | 一种组队的方法、装置及电子设备 | |
Shurov et al. | Blockchain network threats: the case of PoW and ethereum | |
US10786744B1 (en) | Messaging service | |
US11654363B1 (en) | Interaction management for virtual environments | |
Huynh et al. | An analysis of continuous consistency models in real time peer-to-peer fighting games | |
CN110831677A (zh) | 用于在多玩家在线游戏中管理内容呈现的系统和方法 | |
US9692803B2 (en) | Computer device, system and methods for controlling an exchange of objects between devices | |
WO2019222577A1 (en) | System and method for dynamically and selectively releasing features and content in an application client | |
Font Calvo | Network traffic characterisation, analysis, modelling and simulation for networked virtual environments | |
Estrela | Microservices Architecture for Gaming Industry Companies | |
JP2016119977A (ja) | 街づくりゲーム・プログラム |