JP2010525423A - 人工環境に動的コンテンツを導入する分散ネットワークアーキテクチャ - Google Patents

人工環境に動的コンテンツを導入する分散ネットワークアーキテクチャ Download PDF

Info

Publication number
JP2010525423A
JP2010525423A JP2009552746A JP2009552746A JP2010525423A JP 2010525423 A JP2010525423 A JP 2010525423A JP 2009552746 A JP2009552746 A JP 2009552746A JP 2009552746 A JP2009552746 A JP 2009552746A JP 2010525423 A JP2010525423 A JP 2010525423A
Authority
JP
Japan
Prior art keywords
data
game
server
universal
artificial environment
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.)
Withdrawn
Application number
JP2009552746A
Other languages
English (en)
Inventor
ロバート, イー. リー,
ジェイソン マルトゼン,
デーヴィッド オルドリッジ,
ブライアン, ジョセフ ファリーナ,
カネゲム, ジョン, エドワード ヴァン
Original Assignee
トライオン ワールド ネットワーク インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by トライオン ワールド ネットワーク インコーポレイテッド filed Critical トライオン ワールド ネットワーク インコーポレイテッド
Publication of JP2010525423A publication Critical patent/JP2010525423A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • A63F13/12
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/60Methods for processing data by generating or executing the game program
    • A63F2300/6009Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Tourism & Hospitality (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Primary Health Care (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Processing Or Creating Images (AREA)
  • Stored Programmes (AREA)

Abstract

本発明の実施形態は、全般的にはコンピュータベースのシミュレーション及び人工環境生成に関し、より具体的には、とりわけ動的コンテンツを導入するために分散アーキテクチャ内で人工環境を生成するシステム、コンピュータ可読媒体、方法、及び装置に関する。
【選択図】 図1A

Description

[0001]本発明の実施形態は、全般的にはコンピュータベースのシミュレーション及び人工環境(synthetic environment)生成に関し、より具体的には、とりわけ動的コンテンツを導入するために分散アーキテクチャ内で人工環境を生成するシステム、コンピュータ可読媒体、方法、及び装置に関する。
[0002]多人数参加型オンライン(massively multiplayer online、「MMO」)ゲーム内の仮想世界などのコンピュータ生成される環境を設計し、シミュレートする伝統的な技法は、新しい又は変更された仮想世界の効率的な開発及び制作をたやすくは容易にしない。さらに、仮想世界を生成するための従来のゲームプラットフォームは、特に多人数参加型オンラインゲームに関して、仮想世界の開発及び制作をさらに妨げる。一般に、従来のゲームプラットフォームは、ゲームサーバのセットを使用して仮想世界を作成し、ゲームサーバの各追加のセットが、仮想世界のコピーを作成するのに使用される。そのようなコピーを、通常、「シャード(shard)」と称する。従来のゲームプラットフォームは、通常、各仮想世界の地理をパーティションに分割し、各単一パーティションを生成するために1つのゲームサーバを割り振る。仮想世界のパーティションを生成するように構成されたゲームサーバを、一般に、「エリアサーバ」と称する。さらに、いくつかの従来のゲームサーバは、モノリシックであり、これは、仮想世界のパーティションを生成するすべてのゲームプロセスが、単一のプロセス及び/又はサーバ内に設けられることを意味する。機能はするが、従来のゲームプラットフォーム並びにコンピュータ生成された世界の開発に対する伝統的手法に関連する様々な欠点がある。
[0003]従来のゲームプラットフォームの欠点は、仮想世界のパーティションのために1つのゲームサーバを割り振ることである。したがって、ゲームサーバ及びその機能性は、通常、パーティション及びそのアクティビティに直接にリンクされる。したがって、地理的にリンクされたゲームサーバの性能は、そのパーティションのプレイヤの人数並びにそこで実行されるアクティビティの種類の関数である。さらに、モノリシックゲームサーバを使用する従来のゲームプラットフォームは、需要の増加を満たすためにハードウェア機能を調整する能力のなさによって多少制限される。したがって、より多くのプレイヤが特定のパーティションに移動する時に、そのパーティションをサポートするゲームサーバが、ますます重荷を負うようになる。これが、対応する仮想世界パーティションと相互作用できるプレイヤの人数を制限する。救済策として、いくつかの多人数参加型オンラインゲームは、非常に人口の多いゲームサーバから比較的人口の少ないゲームサーバへプレイヤを移動するように動作する。これが、プレイヤ経験に大きく影響する場合がある。
[0004]伝統的なゲームプラットフォームのもう1つの欠点は、各ゲームサーバが、通常、同一の仮想世界内の他のゲームサーバとは別々の、仮想世界パーティションを生成するためのプロセス空間を有することである。プレイヤが、2つの仮想世界部分を画定する地理的境界にまたがって相互作用することは、珍しくない。したがって、パーティション境界に起因して問題が生じ、従来のゲームプラットフォームは、一般に、クロスパーティション相互作用を管理することを試みるために計算リソースを必要とする。例えば、あるパーティション内のあるプレイヤに関連するゲームサーバは、一般に、他の仮想世界パーティション内の他のプレイヤとのそのプレイヤの相互作用を追跡するために、ある種のトラッキング機能性を必要とする。もう1つの例として、計算リソースが、一般に、異なるプロセス空間内のプロキシとしてプレイヤを維持するのに必要であることを検討されたい。伝統的に、プロキシとしてのプレイヤの実施は、キャラクタ識別子などのある仮想世界パーティションのプレイヤ固有情報のある表現を、別の仮想世界パーティションの別々のプロセス空間と共に使用される別の表現に変換することを必要とする。さらに、ゲームサーバは、通常、例えばリモートプロシージャ呼出しを使用してプレイヤ相互作用に関してそれら自体の間で通信し、このリモートプロシージャ呼出しが、通信の複雑さ並びにクロスパーティション相互作用の待ち時間を増やす。
[0005]従来のゲームプラットフォームのさらなる欠点は、異なる仮想世界パーティションにまたがって相互作用するプレイヤ(又はプレイヤのプロキシ)が、それら自体を不公平に豊かにするためにトランザクションをたやすく中断できることである。例示のために、ある仮想世界パーティションの第1プレイヤが、別の仮想世界パーティションの第2プレイヤが所有する黄金と武器を交換することを申し出ると考えられたい。次に、第1プレイヤが黄金を受け取るが、武器を引き渡す前に、第1プレイヤが、異なる仮想世界パーティションにあるゲームサーバの間の接続を破壊すると考えられたい。その結果、第1プレイヤは、武器を交換せずに黄金を受け取る。
[0006]モノリシックゲームサーバを使用することの1つの欠点は、モノリシックゲームサーバの、物理プロセスなど、ゲームサブプロセスのうちの1つがつまずくかシャットダウンする場合に、そのゲームサブプロセスが存在するゲームサーバ全体も、つまずき又はシャットダウンを許すことである。
[0007]多人数参加型オンラインゲームのコンピュータ生成される環境を設計し、シミュレートするのに現在のクライアント−サーバアーキテクチャを使用することの他の欠点がある。新しい又は変更された仮想世界の新しいコンテンツを作成するのに必要な開発アクティビティと一緒に、ゲームデザイナ及び開発者が、新しいコンテンツ及びそのデータに対処するために実行可能命令をも定期的に変更することを考慮されたい。実行可能命令の変更は、通常、特にバグ及び他の問題を取り除くための品質保証及び信頼性テスティング中に、開発時間を増やす。さらに、多人数参加型オンラインゲームは、一般に、新しいコンテンツとの相互作用の前に、変更された実行可能コードをクライアントにダウンロードすることを必要とする。例えば、多人数参加型オンラインゲームプラットフォームが、変更された実行可能コードを含むことのできる大量データダウンロード(例えば、250MB)を実施することが珍しくはない。
[0008]前述を考慮すると、とりわけ人工環境に動的コンテンツを導入するため、及び新しい又は変更された人工環境の効率的な開発及び制作をさらに実現するために、分散アーキテクチャ内で人工環境を生成するシステム、コンピュータ可読媒体、方法、及び装置を提供することが望ましい。
[0009]本発明の実施形態は、全般的にはコンピュータベースのシミュレーション及び人工環境生成に関し、より具体的には、とりわけ動的コンテンツを導入するために、分散アーキテクチャ内で人工環境を生成するシステム、コンピュータ可読媒体、方法、及び装置に関する。一実施形態では、人工環境生成プラットフォームは、人工環境の生成を容易にするためにユニバーサルデータ構造及びメッセージングシステムを実施することができる。
[0010]本発明は、添付図面と共に解釈される次の詳細な説明に関連してより十分に了解される。
本発明の少なくとも1つの実施形態による人工環境を生成するシステムを示す図である。 本発明の少なくとも1つの実施形態による擬似集約プロセス空間に関して人工環境を全体的に又は部分的に生成するゲーム管理サーバを示す図である。 本発明の少なくとも1つの実施形態によるメッセージングシステムの例を示す図である。 本発明の少なくとも1つの実施形態によるユニバーサルメッセージングインターフェースを実施する人工環境を生成するシステムを示す図である。 本発明の少なくとも1つの実施形態による、動的コンテンツを人工環境に導入する方法を示す図である。 本発明の少なくとも1つの実施形態による、動的コンテンツを人工環境に導入するように構成された人工環境生成プラットフォームを示す図である。 本発明の少なくとも1つの実施形態による、人工環境の生成に使用される擬似集約プロセス空間を示す図である。 本発明の少なくとも1つの実施形態による、圧縮ユニバーサルメッセージを実施するメッセージングシステムの一部の例を示す図である。 本発明の少なくとも1つの実施形態による、マスタスケーリングサーバを実施する人工環境を生成するシステムを示す図である。 本発明の少なくとも1つの実施形態による、スケーラブルゲームサブプロセスサーバを追加するマスタスケーリングサーバの例を示す図である。 本発明の少なくとも1つの実施形態による、ゲームサブプロセスサーバの特定の実装を実施する人工環境生成プラットフォームを示す図である。 本発明の少なくとも1つの実施形態による、物理プロセスの実装を示す図である。 本発明の少なくとも1つの実施形態による、可視性を判定する技法を示す図である。 本発明の少なくとも1つの実施形態による、追加のタイプのゲームサブプロセスサーバを実施する人工環境生成プラットフォームを示す図である。 本発明の少なくとも1つの実施形態による、パッチ中にゲームプレイを可能にする技法を示す図である。 本発明の少なくとも1つの実施形態による、イベントサーバ及びイベントエディタを実施する人工環境生成プラットフォームを示す図である。 本発明の少なくとも1つの実施形態による、様々な度合の動的コンテンツを導入するイベントを作成する流れを示す図である。 本発明の少なくとも1つの実施形態による、ユニバーサルデータ構造の特定の実装を示す図である。 本発明の少なくとも1つの実施形態による、プロパティクラスシステムの要素を示す図である。 本発明の少なくとも1つの実施形態による、ユニバーサルメッセージを作成する流れを示す図である。 本発明の少なくとも1つの実施形態による、ユニバーサルメッセージを作成するプロパティクラスシステムの要素を示す図である。 本発明の少なくとも1つの実施形態による、プラグを作成するプロパティクラスシステムの要素を示す図である。 本発明の少なくとも1つの実施形態による、圧縮ユニバーサルメッセージを実施するメッセージングシステムの部分の例を示す図である。 本発明の少なくとも1つの実施形態による、人工環境生成プラットフォームと相互作用するユニバーサルメッセージングインターフェースを実施する複数のクライアントを示す図である。
[0035]図中、同様の符号は、図面の複数の図を通じて対応する部分を指す。符号のほとんどが、その符号が初めて導入される図を全般的に識別する1つ又は2つの左端桁を含むことに留意されたい。
[0036]図1Aに、本発明の少なくとも1つの実施形態による人工環境を生成するシステムを示す。そのようなシステムの一例は、人工環境生成プラットフォーム100であり、この人工環境生成プラットフォーム100は、クライアント150が相互作用する人工環境を生成するために一緒にネットワーク化されたノード(及びノードプロセス)を含む。人工環境生成プラットフォーム100は、クライアント−サーバネットワークアーキテクチャ内のサーバ側の構造及び/又は機能性を表し、クライアント150は、クライアント側の構造及び/又は機能性を表す。ノードは、ゲームサブプロセスサーバ104、データベース112、及びゲーム管理サーバ122を含み、これらのすべてが、それぞれゲームサブプロセス102、データベースプロセス110、及びゲーム管理プロセス120を実施するためにネットワーク115によって一緒に結合される。ゲームサブプロセス102は、サブプロセス102a、102b、及び102cより多数又はこれより少数を含むことができる。図示されているように、ゲームサブプロセスサーバ104は、少なくともゲーム管理サーバ122に対して相対的に分散配置に配置され、これによって、ゲームサブプロセス102をゲーム管理プロセス120から分離する。少なくとも1つの実施形態では、ゲームサブプロセスサーバ104a、ゲームサブプロセスサーバ104b、及びゲームサブプロセスサーバ104cを、それぞれ物理サーバ、人工知能サーバ、及びトランザクションサーバとして又は任意の他のゲーム関連サブプロセスとして動作するように構成することができる。さらに、人工環境生成プラットフォーム100は、様々な実施形態に従って、ゲーム管理サーバ122の間又は人工環境生成プラットフォーム100及び他の類似する人工環境生成プラットフォーム100(図示せず)の間のいずれか或いはその両方で共有できる擬似集約プロセス空間152を実施するように構成される。
[0037]ゲームサブプロセス102a、102b、及び102cをゲーム管理プロセス120とは別々に分散させることによって、ゲーム管理サーバ122は、独立に動作し、これによって、ゲーム管理サーバ122が、ゲームサブプロセスサーバ104のいずれかの性能の劣化に対してより脆弱でなくなる。したがって、ハードウェア障害及びソフトウェア障害を、特定のゲームサーバサブプロセス102に局所化することができ、これによって、しばしば、ゲーム管理プロセス120に割り込むことなく、手早く処理される問題識別及び解決が可能になる。これは、クライアント150a及びクライアント150bなどのクライアント150が、ゲームサブプロセスサーバ104に関して発生する問題によって割り込まれることなく、人工環境と相互作用し続けることを可能にする。さらに、分散ゲームサブプロセス102a、102b、及び102cは、適当な量のゲームサブプロセス102a、102b、及び102cを十分に提供するためにオンラインにすることのできるゲームサブプロセスサーバ104の量の独立スケーリングを促進する。例えば、人工環境が、追加の人工知能を必要とする場合に、追加の人工知能サーバを、物理プロセスなどの他のゲームサブプロセス102の必要とは独立にオンラインにすることができる。したがって、適当な量のハードウェア及びソフトウェアを実施して、人工環境生成プラットフォーム100によって生成される人工環境と相互作用する任意の個数のクライアント150のための人工環境生成を容易にすることができる。さらに、擬似集約プロセス空間152は、他の類似する人工環境生成プラットフォームと共有されるが、プラットフォーム間(即ち、クロスシャード)相互作用を容易にし、これによって、とりわけ、改善された通信及びより安全なトランザクションを提供する。
[0038]ゲーム管理サーバ122は、それぞれ、ゲームサブプロセス102及びデータベースプロセス110と協力して、参加者が相互作用する人工環境を生成するように構成される。したがって、ゲーム管理サーバ122は、クライアント150に関連する複数の参加者を、人工環境とのその相互作用において管理するように構成される。ゲームサブプロセス102を、クライアント150の個数をサポートするためにそれ相応にスケーリングできることに留意されたい。様々な実施形態では、クライアント150を、1つのゲーム生成プロセスに制限するのではなく、複数のゲーム管理サーバ122にまたがって分散させることができる。例示のために、クライアント150aが、ゲーム管理サーバ122aと相互作用でき、クライアント150bが、ゲーム管理サーバ122cと相互作用できると考えられたい。クライアント150a及び150bは、異なるゲーム管理プロセスと相互作用するが、クライアント150a及び150bが相互作用する人工環境にかかわりなく、擬似集約プロセス空間152を共有することができる。一実施形態では、クライアント150a及び150bは、共通プロセス空間として擬似集約プロセス空間152を共有することができる。したがって、クロス人工環境相互作用を、たやすく発生させることができる。いくつかの実施形態では、ゲーム管理サーバ122は、特定の参加者によって要求されたアクションを妥当性検査し、これによって、その参加者がゲームデータを変更する権利を有することを認証するように動作することができる。少なくとも1つの実施形態では、ゲーム管理サーバ122aから122nは、クライアント150による人工環境との相互作用を表すゲームデータを読取り専用の形で維持する。したがって、このゲームデータを、トランザクションを破壊するために操作することはできず、そうでなければ、ある参加者を不公平に豊かにすることができるはずである。
[0039]一実施形態では、ゲームサブプロセスサーバ104aを物理サーバとすることができ、この物理サーバを、人工環境内の参加者に関するものなど、移動及び衝突アクティビティを処理するように構成することができる。例えば、物理サーバ104aは、衝突検出、剛体移動、及び類似物などの物理関連イベントを処理することができる。ゲームサブプロセスサーバ104bは、少なくとも1つの実施形態によれば、人工知能サーバとすることができ、この人工知能サーバを、例えば人工環境内の非プレイヤキャラクタ(「NPC」)による移動をシミュレートするために人工知能を提供するように構成することができる。
[0040]様々な実施形態では、ゲームサブプロセスサーバ104cを、トランザクションサーバとすることができ、このトランザクションサーバを、参加者の間のトランザクションが原子的であることを保証するためにそれらのトランザクションを管理するように構成することができる。即ち、ゲームサブプロセスサーバ104cは、トランザクションのすべての部分が発生するか、或いはすべての部分が発生しないことを保証し、これによって、データベースプロセス110に格納されたゲームデータが、トランザクションのすべての部分が成功しない限り更新されないことを保証し、これによって、参加者が不公平に豊かにすることを試みるための抜け道を減らすように動作することができる。トランザクションサーバは、あるアクティビティが両方の参加者にとって正しく完了され、或いは両方の参加者によって失敗されることを保証するゲームオーソリティである。一実施形態では、人工環境生成プラットフォーム100内のすべてのサーバが、ゲームサブプロセスサーバ104c(トランザクションサーバとしての)を除いて、読取り専用である。したがって、トランザクションサーバ(ゲームサブプロセスサーバ104cとしての)は、ゲームデータを取引する単一のオーソリティとして動作することができる(即ち、ゲームデータを変更することを許可される)。少なくとも1つの実施形態では、ゲームサブプロセスサーバ104を構成するトランザクションサーバを、擬似集約プロセス空間152を単位プロセス空間として実施するように構成することができ、これによって、参加者が、異なる人工環境用のゲーム管理サーバにかかわると同時に、擬似集約プロセス空間152によって提供されるエミュレートされた共通プロセス空間内で取引することが可能になる。
[0041]動作中に、クライアント150a及び150bは、ゲーム管理プロセス120内のゲームデータを変更するために、アバタなどの参加者の表現をもたらす要求を生成する。本明細書で使用される時に、用語「ゲーム管理サーバ」は、少なくとも一実施形態で、人工環境との参加者の相互作用を管理するコンピューティングデバイス及び/又はプロセスを指す。例えば、ゲーム管理サーバは、クライアント150から入力を受け入れ、これに応答して、ゲームサブプロセス102及びデータベースプロセス110と協力して、クライアント150a及び150bに送り返すための変更されたゲームデータを生成し、この変更されたゲームデータは、クライアント相互作用に基づく変更された人工環境を表す。本明細書で使用される時に、用語「ゲームサブプロセスサーバ」は、少なくとも一実施形態で、その結果がゲーム管理サーバによって使用される、物理サーバ及び人工知能サーバなどのゲームプロセスのサブセットを実行するコンピューティングデバイス及び/又はプロセスを指す。
[0042]本明細書で使用される時に、用語「ノード」は、少なくとも一実施形態で、サーバ、クライアント、データベース、及び類似物など、人工環境の生成に影響するコンピューティングデバイス及び/又はプロセスを指す。本明細書で使用される時に、用語「ゲームデータ」は、少なくとも一実施形態で、人工環境の生成に関連するデータの少なくともサブセットを指す。ゲームデータは、例えば、人工環境の地面を生成するために、マップデータを含むことができる。ゲームデータは、キャラクタデータ、インベントリデータ(例えば、武器データ)、銀行データ、合成家データ、賞データ、及び類似物を含む、参加者の状態をも含むことができる。本明細書で使用される時に、用語「人工環境」は、少なくとも一実施形態で、その参加者が例えばアバタを介して住み、相互作用することを意図されたコンピュータベースのシミュレートされた環境である仮想世界(又はその一部)を指すことができる。人工環境は、参加者の相互作用なし又はそれなしで前進する仮想世界である、シャード又は持続的世界(又はその一部)を指すこともできる。本明細書で使用される時に、用語「参加者」は、少なくとも一実施形態で、プレイヤ、又はプレイヤの2次元若しくは3次元のグラフィカル表現(例えば、アバタ)表現のいずれか、或いはその両方を指す。参加者は、プレイヤがそれを用いて相互作用するクライアントを指すこともできる。本明細書で使用される時に、用語「擬似集約プロセス空間」は、少なくとも一実施形態で、アプリケーションのために割り振られ、及び/又はプロセッサ(例えば、1つ又は複数の中央処理装置(CPU))によって命令を実行するために実施される、メモリ空間を指し、これによって、メモリ空間は、あるタイプのデータについて集約された共通プロセス空間として振る舞うように構成され、さらに、1つ又は複数の他のタイプのデータについて別々のプロセス空間として振る舞うように構成される。
[0043]ゲームサブプロセスサーバ104及びゲームサブプロセス102を、例えば他の実施形態による多人数参加型オンラインゲーミング(「MMO」)を容易にするために、任意の他のゲーム関連プロセスを実施するように構成することができる。さらに、1つ又は複数のデータベース112aから112cを、例えば、とりわけ人工環境を生成するために、データを格納するように構成することができる。したがって、1つ又は複数のデータベース112aから112cは、参加者アカウントに関するアカウントデータ、統計データ、監査データ、ゲームデータ、及び類似物を格納することができる。特定の実施形態では、人工環境生成プラットフォーム100が、リンク140を介してデータを交換するように構成され、リンク140は、例えば、インターネットを含む複数のネットワーク(図示せず)のうちのいずれかを介して通信信号を伝えることができる。一実施形態では、リンク140は、少なくとも約5Kbsから約10Kbs、或いはそれより高速でデータを送信し、及び/又は受信するように構成される。したがって、リンク140は、特に実質的に同時に、5Kbsアップストリーム及び5Kbsダウンストリームをサポートすることができる。他の実施形態では、リンク140は、デジタル加入者回線(「DSL」)テクノロジ、ケーブルテクノロジ、衛星テクノロジ、及び類似物などのブロードバンド接続として実施することのできる、比較的高帯域幅のリンクである。また、リンク140を、無線リンクとすることができる。一実施形態では、高帯域幅リンク140は、10Kbsより高速のレートでデータを送信し、及び/又は受信することができ、したがって、リンク140は、10Kbsより高速のデータ転送レートを実施することができる。さらに、ネットワーク115は、少なくとも1から15ギガビット毎秒又はそれより高速のレートでメッセージ及び/又はパケットを移送するように構成される。一実施形態では、ネットワーク115は、10ギガビットイーサネット(「10GbE」)ネットワークである。
[0044]図1Bは、本発明の少なくとも1つの実施形態による、プロセス空間に関連して人工環境を全体的に又は部分的に生成するゲーム管理サーバの図である。人工環境生成プラットフォーム160は、クライアント150a及び150b用の人工環境162を生成するように構成される。この例では、人工環境162は、4つの領域即ち、領域1(「R1」)163、領域2(「R2」)165、領域3(「R3」)167、及び領域4(「R4」)169を含む。次に、参加者170及び参加者172が、それぞれクライアント150a及び150bに関連すると考えられたい。人工環境生成プラットフォーム160は、ゲーム(「mgmt」)管理サーバ122aから122dによって実施されるゲーム管理プロセス120を含む。人工環境生成プラットフォーム160は、それを用いて人工環境162を生成できる擬似集約プロセス空間161をも含む。
[0045]本発明の様々な実施形態によれば、擬似集約プロセス空間161は、いくつかのインスタンスでは共通プロセス空間として、他のインスタンス中には別々のプロセスの集合として動作するように構成される。具体的に言うと、擬似集約プロセス空間161は、ゲームデータの第1サブセットについて共通プロセス空間として機能するように構成され、データの第2サブセットについて別々のプロセス空間として機能するように構成される。例えば、トランザクションサーバ190は、例えば非ジオメトリ関連データ及びトランザクション関連データ用の共通プロセス空間として擬似集約プロセス空間161を実施するように構成されるが、ゲーム管理サーバ122は、一例として、ジオメトリ関連データ用の別々のプロセス空間として擬似集約プロセス空間161を実施するように構成される。少なくとも1つの実施形態では、人工環境生成プラットフォーム160は、擬似集約プロセス空間161を全体的に又は部分的に実施するためにトランザクションサーバ190を含む。具体的に言うと、トランザクションサーバ190は、それを用いて参加者170cのデータの第1サブセット192及び参加者172のデータの第1サブセット194を処理すべき共通プロセス空間を有する。データの第1サブセット192及び194の例は、参加者が売買を望むアイテムを表すデータを含む。例えば、参加者170c及び172のデータの第2サブセットは、例えば、ゲーム管理サーバ122b及び122dが処理するジオメトリデータに関係することができる。
[0046]動作中に、参加者170がログインする時には、人工環境生成プラットフォーム160は、その参加者をゲーム管理サーバ122bに割り当てる。対照的に、参加者172がログインする時には、人工環境生成プラットフォーム160は、参加者172をゲーム管理サーバ122dに割り当てる。参加者170及び172は、セッション中に、それぞれゲーム管理サーバ122b及び122dに関連付けられたままになる。次に、この両方が、図示されていない多数の他の参加者と同様に、領域2 165のアクティビティにかかわることを望むと考えられたい。参加者170aは、領域1 163で人工環境162に入り、その後、参加者170bとして領域2 165に移動する。領域1 163と領域2 165との両方が、擬似集約プロセス空間161に関係するので、そうでなければクロスパーティション相互作用を管理するために必要になるはずの計算リソースは、例えば擬似集約プロセス空間161が共通プロセス空間としてアクセスされる時に、必要ではない。参加者170cは、さらに、領域3 167に移動し、その後、参加者170dとして領域4 169に移動することができる。より多くの参加者が領域2 165に入る時に、その増やされた数が、対応してサーバを停滞はさせないことに留意されたい。これは、本発明の様々な実施形態に従って、人工環境162を生成するゲーム関連プロセスが、地理的位置にリンクされないからである。この例では、どの1つのゲーム管理サーバ122も、すべての重荷を負ってはおらず、この重荷は、全体としてゲーム管理プロセス120にまたがって償却され得る。したがって、大勢の参加者が、単一のゲーム管理サーバ122の性能を大幅に圧倒せずに1つの領域に集まることができる。
[0047]図2は、本発明の少なくとも1つの実施形態によるメッセージングシステムの例を示す図である。図2には、ネットワーク230を介して、そのすべてがノードであるデータベースプロセス201、サーバプロセス206、及びクライアントプロセス240を一緒に結合するように構成されたメッセージングシステム250の少なくとも一部を実施する人工環境生成プラットフォーム200が示されている。ネットワーク230を、コンピュータネットワーク又は任意の他のタイプの通信ネットワークとすることができる。データベースプロセス201は、データベース(「d/B」)202及びデータベース管理システム(「DBMS」)204を含み、このデータベース管理システム204は、データベース202内のデータの編成、格納、及び取出を制御する。動作中に、メッセージングシステム250は、メッセージ220a及び220bなど、ユニバーサルデータ構造260を含むメッセージを、サーバプロセス206などのノード(又はノードプロセス)にデータを一体化するために伝搬させるように構成される。具体的に言うと、メッセージングシステム250は、データベースプロセス201、サーバプロセス206、及びクライアントプロセス240の間で、これらのプロセスのそれぞれによって使用可能であるデータ配置でデータを交換するように構成される。1つ又は複数の実施形態では、メッセージ220a及び220bに関連するデータ配置は、プロセスのそれぞれによって直接に使用可能である。例えば、サーバプロセス206は、メッセージ220aによって使用されるユニバーサルデータ構造(「UDS」)260aに従って配置されたデータを使用することができる。したがって、データベースプロセス201、サーバプロセス206、及びクライアントプロセス240は、メッセージ220a及び220bに関連するデータ構造から、そうでなければ特定のノードによって要求される可能性がある異なる(又は特殊化された)形への変換を要求する必要がない。したがって、そうでなければそのような変換を提供するために必要になる可能性がある実行可能コードは、存在しない。
[0048]図2に示されているように、メッセージングシステム250は、ユニバーサルメッセージインターフェース210a、ユニバーサルメッセージインターフェース210b、及びユニバーサルメッセージインターフェース210cなどの複数のユニバーサルメッセージインターフェースを含むことができ、これらのユニバーサルメッセージインターフェースのそれぞれは、人工環境生成プラットフォーム全体の及びクライアントプロセス240との伝送のためにメッセージ220a及び220bを生成するように構成され得る。ユニバーサルメッセージインターフェース210a、210b、及び210cのそれぞれを、そのデータをノードプロセスに一体化するためにメッセージ220a及び220bを受信するように構成することができる。さらに、ユニバーサルデータ構造260が開発される時に、そうでなければあるタイプのデータ構造を異なるデータ構造に変換するはずの、実行可能コードの再コンパイルは、不要である。本明細書で使用される時に、用語「ユニバーサルデータ構造」は、少なくとも一実施形態で、ある異なる(又は特殊化された)データ構造への変換を必要としない、ノードによってあまねく使用可能であるデータ並びにメッセージ220a及び220bの表現を指す。
[0049]様々な実施形態では、図2のユニバーサルメッセージインターフェース210a、210b、及び210cを、同一とすることができ、或いはその代わりに、それらが関係するノードに対処するために異なるものとすることができる。ユニバーサルメッセージインターフェース210a、210b、及び210cを、ノードの内部で実施することができ、或いは、これらを、人工環境生成プラットフォーム内の任意の場所に配置することができる。少なくとも1つの実施形態では、ユニバーサルメッセージインターフェース210a、210b、及び210cのそれぞれを、メッセージ220aなどのメッセージをいずれか又はすべての他のノードにブロードキャストするように構成することができる。したがって、ユニバーサルメッセージインターフェース210a、210b、及び210cのそれぞれを、メッセージのそれぞれがユニバーサルメッセージインターフェースが関係するノード宛であるかどうかを検出するように構成することができる。もう1つの実施形態では、ユニバーサルメッセージインターフェース210a、210b、及び210cのそれぞれを、宛先に向けてメッセージを送信するように構成することができる。一実施形態では、メッセージ220bなど、クライアントと人工環境生成プラットフォームとの間のメッセージを、1つ又は複数のユーザデータグラムプロトコル(「UDP」)パケット又はインターネットプロトコル(「IP」)パケットで実施することができる。一実施形態では、サーバプロセス206及びデータベースプロセス201の間のメッセージを、1つ又は複数の伝送制御プロトコル(「TCP」)パケットで実施することができる。一実施形態では、ネットワーク230は、人工環境生成プラットフォーム200のプラットフォーム内通信をサポートする。少なくとも1つの実施形態では、クライアントプロセス240は、ネットワーク232を介して人工環境生成プラットフォーム200に結合される。ネットワーク232は、少なくとも1つの実施形態で、インターネット又は任意の他の通信ネットワークを含む。いくつかのインスタンスでは、クライアントプロセス240は、仲介プロセス(図示せず)を介してデータベースプロセス201及び/又はサーバプロセス206とメッセージを交換する。そのような仲介プロセスの例が、図12のユーザサーバとして図示されている。
[0050]一実施形態では、ユニバーサルデータ構造260は、C++又は任意の他のプログラミング言語など、オブジェクト指向プログラミング言語の一クラスのデータ構造である。もう1つの実施形態では、すべてのタイプのユニバーサルデータ構造260が、単一のクラスに関係することができる。ユニバーサルメッセージインターフェース210a、210b、及び210cは、ノードがユニバーサルデータ構造260内でデータを実施する(例えば、直接に実施する)ことを可能にするように構成されたインスタンス管理スキーマを決定することができる。一実施形態では、ノードは、ユニバーサルデータ構造260をどのように実施すべきかに関してノードに指示するスキーマへの参照を含むことができる。もう1つの実施形態では、ユニバーサルメッセージ220aが、その参照を含む。いくつかの実施形態では、ユニバーサルメッセージインターフェース210a、210b、及び210cのそれぞれを、ユニバーサルデータ構造をプラットフォーム独立フォーマットでフォーマットするように構成することができ、このプラットフォーム独立フォーマットは、プロセス及び/又はオペレーティングシステムから独立に使用され得る。プラットフォーム独立フォーマットの一例は、例えば、XMLなどの拡張可能マークアップ言語によって定義されるフォーマットである。XMLは、ワールドワイドウェブコンソーシアム(「W3C」)によって保守されている。
[0051]図3に、本発明の少なくとも1つの実施形態によるユニバーサルメッセージングインターフェースを実施する人工環境を生成するシステムを示す。この例では、人工環境生成プラットフォーム300は、ユニバーサルデータ構造ベースのメッセージを送信し、及び/又は受信するように構成されたユニバーサルメッセージインターフェース(「UMI」)302、304、及び306を含む。図示されているように、ユニバーサルメッセージインターフェース302a、302b、及び302cは、それぞれゲームプロセス102a、102b、及び102cに又はその近くに配置される。ユニバーサルメッセージインターフェース302a、302b、及び302cのそれぞれは、ゲームサブプロセスサーバ104に関連する。いくつかの場合に、ユニバーサルメッセージインターフェース302a、302b、及び302cのそれぞれは、同等の構造及び/又は機能性を有することができ、他の場合に、ユニバーサルメッセージインターフェース302a、302b、及び302cは、異なる構造及び/又は機能性を有することができる。例えば、物理サーバは、例えば人工知能サーバとは異なるユニバーサルメッセージインターフェースを必要としてもよい。図3には、人工環境生成プラットフォーム300が、それぞれデータベース112a、112b、及び112cに又はその近くに配置されたユニバーサルメッセージインターフェース304a、304b、及び304cと、それぞれゲーム管理サーバ122a、122b、122c、及び122nに又はその近くに配置されたユニバーサルメッセージインターフェース306a、306b、306c、及び306nとを含むことも示されている。ユニバーサルメッセージインターフェース308a及び308bは、クライアント150a及び150bに関して実施される。304a、304b、304c、306a、306b、306c、306n、308a、及び308bが、互いに関して同等又は異なるのいずれかである構造及び/又は機能性を有することができることに留意されたい。また、図3の類似する名前の要素が、いくつかの場合に、図2に示された要素と同等の構造及び/又は機能性を有することができることに留意されたい。
[0052]図4Aに、本発明の少なくとも1つの実施形態による、動的コンテンツを人工環境に導入する方法を示す。図401は、例えば、一実施形態による、人工環境生成プラットフォームを使用する多人数参加型オンライン(「MMO」)ゲームの開発を示す。コード開発及びコンパイルステージ431中に、ゲーム開発者は、ソースコードを生成し、コンパイルして、実行可能コードとしてオブジェクトコード421を形成することができる。ソースコードの開発において、ソケットコード423を生成し、コンパイルすることができる。ソケットコード423は、プラグデータ425からのデータにアクセスするように構成された実行可能命令及び/又は入力を含む。したがって、プラグデータ425を、品質保証(「QA」)プロセスの一部として、ソケットコード423とオブジェクトコード421との両方と協調して開発することができる。品質保証メトリックスが満足された後に、オブジェクトコード421(ソケットコード423を含む)とプラグデータ425との両方を、オンラインゲーミングのために公表することができる。コード開発及びコンパイルステージ433の後に、コンテンツ開発者は、人工環境生成プラットフォームを実施して、コードコンパイル後ステージ433中に他のプラグデータ427を作成することができる。ステージ433中に、オブジェクトコード421なしでソケットコード423と共に使用するために、プラグデータ427を作成することができる。例えば、コンテンツ開発者は、実行可能コードを変更せずに、プラグデータ425によって形成されたカヤックをプラグデータ427としてイージス艦に置換することができる。オブジェクトコードの再コンパイルに先んずることによって、開発者は、ソケットコード423を実施する人工環境に新しい動的コンテンツをよりすばやく配送することができる。さらに、将来のプラグデータ470を、オブジェクトコードに影響せずに作成することができ、これによって、相対的にすばやいコンテンツ開発が容易になる。本明細書で使用される時に、用語「動的コンテンツ」は、少なくとも一実施形態で、コンピュータ生成ビジュアル及び/又はサウンドコンテンツとして人工環境に導入できるコンテンツデータを指し、これによって、コンテンツデータを、そのコンテンツデータが相互作用する実行可能コードの変更とは独立に作成することができる。したがって、コンテンツデータを、オブジェクトコードに影響せずに開発することができる。
[0053]図4Bに、本発明の少なくとも1つの実施形態による、動的コンテンツを人工環境に導入するように構成された人工環境生成プラットフォームを示す。この例では、システム400は、人工環境生成プラットフォーム450を含み、人工環境生成プラットフォーム450は、参加者が相互作用し、動的コンテンツ422が導入される人工環境420を生成するように構成される。システム400は、データリポジトリ402、430、及び460を含む。具体的に言うと、データリポジトリ402は、動的コンテンツ422としてそれぞれカヤック及びイージス艦を導入するコンテンツデータを含むプラグオブジェクト410a及び410bを格納するように構成される。プラグオブジェクト410a及び410bは、様々な実施形態のユニバーサルデータ構造に類似するかこれと同一のデータ配置を実施することができる。プラグオブジェクト410a及び410bは、船がそれに沿って航海できる位置、位置決め、速度、及び経路424を表すデータをも含むことができる。データリポジトリ430は、例えば多人数参加型オンラインゲームを実行するオブジェクトコード434を格納するように構成される。データリポジトリ430は、オブジェクトコード434の一部を形成することのできるソケットコード432を格納するようにも構成される。ソケットコード423は、動的コンテンツ422の生成を実現するためにオブジェクトコード434によって使用されるプラグデータ425(図4Aの)からのデータにアクセスするように構成された実行可能命令及び/又は入力を含む。データリポジトリ460は、人工環境420を形成するためにワールドデータ462を格納するように構成される。ワールドデータ462及びソケットコード432は、ソケットコード423が動的コンテンツ422を導入する位置を定義するための関係464を共有することができる。
[0054]人工環境生成プラットフォーム450は、イベントサーバ452を含み、イベントサーバ452は、動的コンテンツ422を人工環境420の少なくとも一部に導入するように構成される。動的コンテンツ422を、オブジェクトコード命令の実行と実質的に同時に導入して、人工環境420を生成することができる。したがって、人工環境生成プラットフォーム450を、プラグ挿入プロセス440を初期化するように構成することができ、このプラグ挿入プロセス440中に、プラグオブジェクト410a及び410bのうちの1つが、動的コンテンツ422をインスタンス化するためにソケットコード432に挿入される。特定の実施形態では、イベントサーバ452は、オブジェクトコード434を変更せずに動的コンテンツ422を導入するように構成される。一実施形態では、プラグオブジェクト410a及び410bは、少なくとも1つのユニバーサルデータ構造を含むユニバーサルオブジェクトのシステムに属する。さらに、プラグオブジェクト410a及びプラグオブジェクト410b並びにユニバーサルオブジェクトのシステムは、動的コンテンツ422を導入するためのオブジェクトコード命令434の再コンパイルを不要にする。プラグオブジェクト410及びソケットコード432を実施することによって、少なくとも1つのゲーム管理サーバを、変更されたオブジェクトコードを実施した後などのリブートなしで動的コンテンツ422を生成するように構成することができる。
[0055]図5は、本発明の少なくとも1つの実施形態による、人工環境の生成に使用されるプロセス空間の図である。ここで、人工環境生成プラットフォーム500は、クライアント550a及び550b用の人工環境を生成するように構成される。人工環境生成プラットフォーム500は、ゲーム管理(「mgmt」)サーバ522aから522nによって実施されるゲーム管理プロセス520を含む。人工環境生成プラットフォーム500は、トランザクション504などのトランザクションを原子的トランザクションとして実施できる擬似集約プロセス空間502をも含む。したがって、トランザクションのすべての部分が実行され、或いはそのどれもが実行されないのいずれかになる。例示のために、第1参加者(「参加者1」)506がクライアント550aに関連し、第2参加者(「参加者2」)510がクライアント550bに関連する例を検討されたい。第1参加者506及び第2参加者510は、それぞれアイテム(「アイテムA」)508及びアイテム(「アイテムB」)512を所有する。次に、参加者506及び510が、アイテム508及び512を交換するように手配するが、彼らの望みをこれから確認しなければならないと考えられたい。参加者506と510との両方が交換に合意したならば、そのトランザクションが決定的にされる。これなどのトランザクション中に、擬似集約プロセス空間502は、共通プロセス空間を振る舞うように構成され、これによって、トランザクション504が、操作に対してより脆弱でなくなる。一実施形態では、トランザクションサーバ(図示せず)は、擬似集約プロセス空間502と相互作用するか、擬似集約プロセス空間502を提供するかのいずれかを行うように動作する。一実施形態によれば、擬似集約プロセス空間502は、共通プロセス空間をエミュレートし、したがって、参加者が異なる人工環境生成プラットフォーム500によって作成された異なる人工環境の中でたやすく移動することを可能にする。本明細書で使用される時に、用語「トランザクション」は、少なくとも一実施形態で、人工環境と相互作用する1人又は複数の参加者を伴うアクティビティを構成するタスクのセットを指す。
[0056]図6は、本発明の少なくとも1つの実施形態による、圧縮ユニバーサルメッセージを実施するメッセージングシステムの一部の例を示す図である。ここで、メッセージシステム部分600は、サーバプロセス606及びクライアントプロセス650を含み、その両方が、とりわけ、メッセージを交換するためにネットワーク630を介して結合される。この例では、メッセージシステム部分600は、クライアントプロセス650が人工環境に対する変更を示すことに応答してなど、サーバ側(又はクライアント側)のユニバーサルデータ構造660に関連するデータのサブセットを移送することができる。サーバプロセス606及びクライアントプロセス650は、それぞれ、ユニバーサルメッセージインターフェース610a及びユニバーサルメッセージインターフェース610bを含む。サーバプロセス606は、クライアントプロセス650から送信されたゲームデータ変更に応答して人工環境を全体的又は部分的に生成するのに、ユニバーサルデータ構造(「UDS」)660に従って配置されたデータを使用することができる。変更されたゲームデータの例は、アバタによる移動を示す、クライアントプロセス650によって生成されたゲームデータである。少なくとも1つの実施形態では、サーバプロセス606及び/又はクライアントプロセス650は、圧縮ユニバーサルメッセージ620としてメッセージを交換することができる。サーバプロセス606とクライアントプロセス650との両方が、それを用いてデータを交換すべきユニバーサルデータ構造660を実施できるので、減らされた量のデータを、圧縮ユニバーサルメッセージ620内で交換することができる。具体的に言うと、ユニバーサルデータ構造622に関連する変更されたゲームデータ624だけが、ユニバーサルメッセージ内で移送される必要がある。一実施形態では、圧縮ユニバーサルメッセージ620は、変更されたゲームデータ624が関係する属性を指定するキー628をも含む。この情報を用いて、サーバプロセス606は、人工環境を変更することができる。
[0057]図7に、本発明の少なくとも1つの実施形態による、マスタスケーリングサーバを実施する人工環境を生成するシステムを示す。人工環境生成プラットフォーム700は、プロセス間メッセージングネットワーク750及びマスタスケーリングサーバ752を含み、この両方が、物理プロセス及び人工知能プロセスなど、ゲームサブプロセスを要求する変形形態を満足するためにゲームサブプロセス機能をスケーリングするように構成される。人工環境生成プラットフォーム700は、様々なゲームサブプロセス702、データベースプロセス710、及びゲーム管理プロセス720をも含む。動作中に、マスタスケーリングサーバ752は、適宜ゲームサブプロセスサーバを追加し、又は除去するように構成される。例えば、より多くの物理処理が必要である場合には、マスタスケーリングサーバ752は、追加の物理サーバを追加することができる。しかし、より少ない人工知能が必要である場合には、マスタスケーリングサーバ752は、人工知能サーバをオフラインにすることができる。
[0058]マスタスケーリングサーバ752は、サーバのリストを監視するように構成され、このリストは、サーバのタイプに関する情報(例えば、サーバが物理サーバ、人工知能サーバなどのどれであるか)、ゲームサブプロセスサーバ702が属する人工環境、及び類似物をも含む。マスタスケーリングサーバ752は、例えば追加のサービス又は機能を要求する1つ又は複数のゲーム管理サーバからの、プロセス間メッセージングネットワーク750を介する追加ゲームサブプロセスに関する要求メッセージを監視するようにも構成される。それに応答して、マスタスケーリングサーバ752は、ゲームサブプロセスサーバ704a、704b、及び704cのうちのいずれかなどの新たに追加されたゲームサブプロセスサーバとゲーム管理サーバなどの要求するサーバとの間の接続の確立を調整することができる。
[0059]一実施形態では、スケーラブルゲームサブプロセスサーバは、オンラインにされる時に、そのアイデンティティ及び他の関連情報をマスタスケーリングサーバ752に通信するように構成される。他の関連する情報は、サーバタイプ、それが属する関連する人工環境などを含むことができる。それに応答して、マスタスケーリングサーバ752は、スケーラブルゲームサブプロセスサーバを、例えばそのようなサーバタイプを要求するゲーム管理サーバに動的に割り振る。具体的に言うと、マスタスケーリングサーバ752は、コマンド及び接続情報(例えば、ホスト及びポートの情報)をスケーラブルゲームサブプロセスサーバに送信して、要求するゲーム管理サーバに接続する。いくつかの場合に、マスタスケーリングサーバ752は、接続情報(例えば、ホスト及びポートの情報)を要求するゲーム管理サーバに通信して、スケーラブルゲームサブプロセスサーバからの接続を受け取る。少なくとも1つの実施形態では、マスタスケーリングサーバ752を、ゲーム管理サーバの負荷を監視し、自動的にゲームサブプロセスサーバを追加し又は除去するように構成することができる。一実施形態では、プロセス間メッセージングネットワーク750は、ネットワーク715上で実施されるユニバーサルメッセージングシステムと同一の広がりを持ち、或いはそれと同一である。
[0060]図8は、本発明の少なくとも1つの実施形態による、スケーラブルゲームサブプロセスサーバを追加するマスタスケーリングサーバの例を示す図である。具体的に言うと、図800は、ゲーム管理サーバ(図示せず)によって使用されるゲームサブプロセス802を提供するゲームサブプロセスサーバ804を示す。図示されているように、マスタスケーリングサーバ852は、物理処理機能を高めるためにスケーラブル物理サーバ810を追加しようとしている。一実施形態では、スケーラブル物理サーバ810及びゲームサブプロセスサーバ804は、それぞれ、同種ハードウェアプラットフォームである。同種ハードウェアプラットフォームを用いると、マスタスケーリングサーバ852は、必要に応じてスケールアップし、スケールダウンする柔軟性を高めることができる。
[0061]図9は、本発明の少なくとも1つの実施形態による、特定のタイプのゲームサブプロセスサーバを実施する人工環境生成プラットフォームの図である。人工環境生成プラットフォーム900は、ゲームサブプロセス901、ゲームデータを格納するように構成されたゲームデータベース910、及びゲーム管理サーバ922aから922nを含むゲーム管理プロセス920を含む。この例では、ゲームサブプロセス901は、物理サーバ902a、人工知能(「AI」)サーバ902b、及びトランザクションサーバ902cという特定のタイプのゲームサブプロセスサーバを含む。これらのゲームサブプロセスを別々のサーバ内で実施することによって、人工環境生成プラットフォーム900は、ゲームサブプロセスに関連する問題をより受けにくくなる。さらに、ある種のゲームサブプロセスを、他のゲームサブプロセスの必要とは独立に、要求を満足するために適当にスケーリングすることができる。
[0062]物理サーバ902aは、人工環境の移動及び衝突検出アクティビティを処理するように構成された1つ又は複数の物理サーバを表す。様々な実施形態では、物理サーバ902aは、可視性判定、インスタンス化、人工知能NPCの移動妥当性及び/又は経路セグメント化のうちのいずれをも実行することもできる。可視性判定を行う際に、物理サーバ902aは、オブジェクト及び/又はシンセティックワールド(synthetic world)内の他の参加者が参加者に可視であるかどうかを計算する。エンティティは、そのエンティティが参加者の可視範囲内にある時に、その参加者に可視であり、ここで、物理サーバ902aは、エンティティが可視範囲内にあるかどうかを判定する。図11に、本発明の実施形態による、可視性を判定する代替技法を示す。図9に戻って、物理サーバ902aを、「インスタンス化」を提供するように構成することもでき、これによって、参加者の集団(及び関連する物理処理)が、仮想家屋内などの人工環境の一部の中で又はボスモンスタなどのNPCと戦うために一緒に団結する区域内で、アクティビティを実行する。
[0063]移動妥当性は、人工環境のコンテキストでの参加者の移動を妥当性検査する行為である。物理サーバ902aを、仮想地面及び所望の移動の経路内にあるすべてのエンティティ(即ち、他のキャラクタ及び/又はオブジェクト)に対して移動を妥当性検査するように構成することができる。参加者のアバタが仮想地面に対して移動する速度に基づいて、参加者の位置を、人工環境内のその位置を反映するように変更することができる。物理サーバ902aは、変更されたゲームデータをクライアントに送信する前に、その位置が正しいことを妥当性検査するためにシミュレーションを実行することができる。物理サーバ902aを、参加者がある種のアクティビティにかかわるか、人工環境のある種の区域内で移動するかのいずれかを許可されることを保証するために参加者の移動を妥当性検査するように構成することもできる。一実施形態では、物理サーバ902aは、単位時間あたりに参加者のサブセットを妥当性検査し、経時的に異なるサブセットを通ってサイクルする。人工環境のある種の区域の周囲又はその区域で移動することを許可されないすべての参加者、その参加者に、利己的利用を実行している疑いがあるものとしてタグを付けることができる。さらに、物理サーバ902aは、人工知能(「AI」)サーバ902bに経路セグメントを提供することができ、その結果、NPCは、地面及び/又は静的オブジェクトに起因してNPCの移動を阻止するオブジェクトを避けられるようになる。様々な実施形態では、上で述べた物理プロセスのうちの1つ又は複数を、別々のサーバ内で別々のプロセスとして実施することができる。
[0064]人工知能(「AI」)サーバ902bは、コンピュータ実施される非プレイヤキャラクタ(「NPC」)及び類似物にNPCの挙動を決定するための人工知能を与えるように構成された1つ又は複数の人工知能サーバを表す。人工知能に関する高まった要求中に人工環境をサポートするために、追加の人工知能サーバ902bを追加することができる。例えば、イベントが、多数のNPCを必要とする場合に、追加の人工知能サーバ902bを追加することができる。一実施形態では、参加者は、「モンスタをプレイする」ためにNPCの制御を引き受けることができる。
[0065]トランザクションサーバ902cは、とりわけ、参加者の位置にかかわりなくランタイム参加者ゲームデータを処理するように構成された1つ又は複数のトランザクションサーバを表す。したがって、トランザクションサーバ902cは、例えば持続的世界(即ち、人工環境)とインスタンス(即ち、仮想ビルディングなど、人工環境の一部)との間のキャラクタ(即ち、参加者)移動を容易にするためにキャッシュ903を含む。キャッシュ903の使用は、参加者が人工環境とその諸部分との間で移動する時にデータベースからゲームデータをロードする必要を回避する。いくつかの実施形態では、ゲームデータの表現が、例えばトランザクションの操作を避けるために、トランザクションサーバ902c以外のプロセス内で読取り専用としてマークされる。さらに、トランザクションサーバ902cは、擬似集約プロセス空間内での原子的トランザクションを容易にする。トランザクションサーバ902cがトランザクションを実行する間に、ゲーム管理サーバ922aから922nを、トランザクションサーバ902cがトランザクションに応答してデータを変更する前に参加者のアイデンティティを確認するために参加者を妥当性検査するように構成することができる。
[0066]図10は、本発明の少なくとも1つの実施形態による、物理プロセスの実装を示す図である。図1000は、可視性プロセス及びインスタンス化プロセスが物理サーバ1002からそれぞれ別々の可視性サーバ1004及びインスタンスサーバ1006にオフロードされることを示す。可視性サーバ1004は、シンセティックワールド内のオブジェクト及び/又は他の参加者が参加者に可視であるかどうかを判定するように構成される。インスタンスサーバ1006は、「インスタンス化」を提供するように構成され、これによって、参加者の集団及び人工環境の部分内のグループ又は局所化されたアクティビティを実行するための関連する物理処理。可視性プロセス及びインスタンス化プロセスが人工環境に関して物理プロセスと分離された状態で、物理サーバ1002は、より少ない重荷を負う。さらに、可視性サーバ1004及びインスタンスサーバ1006は、物理サーバ1002に関する問題をより受けにくい。
[0067]図11は、本発明の少なくとも1つの実施形態による、可視性を判定する技法を示す図である。図1100は、参加者1104に関する可視性を判定する技法の例を示す。1つの場合に、可視性サーバは、まず、参加者1104を定義するために可視性範囲1102を定義する。したがって、参加者は、ある距離1106にあるオブジェクトを見ることができる。少なくとも1つの実施形態では、オブジェクト、NPC、及び他のプレイヤは、それぞれ、「見られ得る」範囲に関連する。山1114などのより大きいオブジェクトは、ネズミ1124などのより小さいオブジェクトより大きい「見られ得る」範囲1112を有し、このより小さいオブジェクトは、「見られ得る」範囲1112を有する。一実施形態では、可視性サーバは、山1114の「見られ得る」範囲1112などの「見られ得る」範囲が可視性範囲1102と交差する時にオブジェクトが参加者に可視になる、球交差テストを実施するように構成される。「見られ得る」範囲は、円(即ち2次元)又は球(即ち3次元)として表現することができる。特定の実施形態では、参加者1104が、2つの範囲即ち、(1.)球1102によって定義される参加者可視性範囲及び(2.)エンティティ又はその可視性範囲が「見られ得る」範囲1160と交差する場合に他のエンティティが参加者1104を見ることができる「見られ得る」範囲1160を有することに留意されたい。次に、巨人1150が、その巨人から距離1154の可視性範囲1152を有し、その巨人から1155の距離の「見られ得る」範囲1153を有すると考えられたい。さらに、参加者1104は、参加者1104から1158の距離に「見られ得る」範囲1160を有する。したがって、巨人1150が参加者1104に接近し、その可視性範囲1152が「見られ得る」範囲1160と交差する時に、巨人1150は、参加者1104を見ることができる。しかし、可視性範囲1152が可視性ギャップ1160内にある時には、参加者は、巨人1154を見ることができない。可視性範囲1152が可視性範囲1102と交差したならば、参加者1104が巨人1150を見ることができることに留意されたい。前述を考慮すると、図1100は、分類された可視性だけが可視性を判定するのに使用される時に発生し得る不自然な視覚的効果(例えば、エンティティが可視性範囲1102をまたぐ時にそのエンティティが「急に現れる」ように見える)を減らす、可視性を判定する技法の例を示す。図示されてはいないが、ネズミ1124も、可視性範囲を有することができる。様々な実施形態では、非プレイヤキャラクタ(「NPC」)及び参加者は、それぞれ、可視性範囲及び「見られ得る」範囲を有することができる。
[0068]図12は、本発明の少なくとも1つの実施形態による、追加のタイプのゲームサブプロセスサーバを実施する人工環境生成プラットフォームの図である。人工環境生成プラットフォーム1200は、ゲームサブプロセス1202、ゲームデータを格納するように構成されたゲームデータベース1212a、監査データ(即ち、各参加者によるすべて又はほとんどの相互作用の記録)及び統計データを格納するように構成された監査データベース1212b、及びゲーム管理サーバ1222aから1222nを含むゲーム管理プロセス1220を含む。さらに、人工環境生成プラットフォーム1200は、ユーザサーバ1270、パッチサーバ1272、及び統計/監査サーバ1274を含む。
[0069]ユーザサーバ1270を、ゲーム管理サーバ1222aから1222nのいずれかとクライアント1250との間でメッセージをルーティングするように構成することができる。しかし、参加者が人工環境と相互作用するためにログインしたならば、ユーザサーバ1270は、参加者及びそのクライアント1250をゲーム管理サーバ1222aから1222nのうちの1つに割り当てる。その後、ユーザサーバ1270は、ゲーム管理サーバ1222のうちの1つ及び参加者へ及びこれらからメッセージを中継することができる。セッション中に、参加者は、同一のゲーム管理サーバとの関係を持ち続けることができる。ユーザサーバ1270を、ゲーム管理サーバ1222aから1222nにまたがってクライアント接続を均等に分散させる形でクライアント1250に接続するように構成することもでき、これによって、負荷平衡化がもたらされる。いくつかの場合に、ユーザサーバ1270を、サインオン時に参加者を認証するように構成することもできる。少なくとも1つの実例で、ユーザサーバ1270は、ゲーム管理サーバ1222aから1222nとクライアント1250との間で交換されるデータを選択的に暗号化することができる。一実施形態では、ユーザサーバ1270は、支配的な量のメッセージである移動関連メッセージの暗号化をなしで済ませる。したがって、暗号化に関連する遅延が減らされる。パッチサーバ1272を、ファイルごとの基礎でなど、増分式にクライアント1250にパッチを送信するように構成することができる。少なくとも1つの実施形態では、パッチサーバ1272は、ログイン時などの時宜を得た時に並びにゲームプレイ中(即ち、参加者による人工環境との相互作用中)に、パッチをぽつりぽつりと移動するように構成される。統計/監査サーバ1274は、参加者による使用のため及び/又はイベントサーバに関連するイベントをトリガするために、統計を収集し、使用するように構成される。
[0070]図13は、本発明の少なくとも1つの実施形態による、パッチ中にゲームプレイを可能にする技法を示す図である。図1300は、新しい「世界」、「大陸」、又は人工環境として追加される領域を示す。人工環境拡大の進行は、矢印1330によって示される。領域(「1」)1302が、最初にダウンロードされたゲームを用いて実施されたと考えられたい。次に、領域(「2」)1312が、参加者がそれ用のパッチをダウンロードした拡大された人工環境を表すと考えられたい。最後に、参加者は、領域(「3」)1322用の次のパッチをまだ実施していないが、領域1322から領域1302に入ることを望むと考えられたい。参加者が領域1302から領域1312に移動する時に、参加者は、木1304及び木1314を観察する。しかし、参加者が区切り1316を通過する時に、参加者は、まだ完成していない場所にいる。したがって、人工環境生成プラットフォームは、木をレンダリングするためのパッチデータがまだ完成していない場合に、プロキシアセット(即ち、置換オブジェクト)1324を表示する。したがって、参加者は、新しい領域1322に入ることを禁止される必要があるのではなく、パッチプロセスが完了するまで代理オブジェクトを経験してもよい。
[0071]図14は、本発明の少なくとも1つの実施形態による、イベントサーバ及びイベントエディタを実施する人工環境生成プラットフォームの図である。人工環境生成プラットフォーム1400は、ゲームサブプロセス1401、ゲームデータを格納するように構成されたゲームデータベース1410、及びゲーム管理サーバ1422aから1422nを含むゲーム管理プロセス1420を含む。人工環境生成プラットフォーム1400は、イベントサーバ1430及びイベントエディタ1480をも含む。イベントサーバ1430は、例えば所定のトリガ又は条件をトリガするなどのプレイヤアクティビティの関数及び/又は事前に決定されるスケジューリングの関数としての人工環境への動的コンテンツの導入を制御するように構成される。例えば、特定の位置に集まっている複数の参加者がトリガポイントを超える場合に、イベントサーバ1430は、動的コンテンツの導入をトリガすることができる。いくつかの実施形態で、イベントサーバ1430は、産み出される船又はクリーチャのタイプを変更することができる。イベントサーバ1430は、動的コンテンツを生成するためにイベントライブラリデータベース1412からプラグオブジェクトにアクセスするように構成される。一実施形態では、イベントサーバ1430は、参加者がプログラムされたイベントをプレビューし、これに参加するためにそれらのイベントを表示するイベントサーバガイド1490を駆動するためのデータを生成するように構成される。イベントエディタ1480は、変化する量の動的コンテンツを導入するために複数のソケットに関連するプラグオブジェクトを集約するように構成され、これによって、プラグオブジェクトのコレクションが、クリーチャ、木、構造物、及び類似物を人工環境に導入することができる。
[0072]図15に、本発明の少なくとも1つの実施形態による、様々な度合の動的コンテンツを導入するイベントを作成する流れを示す。流れ1500は、イベントライブラリに格納されたユニバーサルデータ構造を含むプラグオブジェクトを使用してイベントを作成する方法の例である。1502では、イベントを定義し、要件を示す。1504では、ゲームデザイナが、新しいイベントが1506で確立されるまで、例えば事前に作られたプラグオブジェクトを使用することによって、新しいイベントを作成する。1508では、イベントをテストして、新しいイベントが品質保証(「QA」)仕様を満足することを確認する。イベントが、1510で失敗する場合には、流れ1500は、1502に戻って、イベント定義及び/又は実装を再定義するか訂正する。イベントが成功である場合には、そのイベントを1512でイベントライブラリに格納する。1522では、人工環境への導入のためにイベントをスケジューリングする。1524では、イベントサーバ1526を、所定の時刻にイベントをトリガするように構成する。スケジューリングされた時刻に、イベントサーバ1526は、イベントに関連するデータをイベントライブラリ1512から取り出し、人工環境生成プラットフォーム1528にそのイベントを実施させる(例えば、動的コンテンツを生成することによって)。その後、動的コンテンツが、1530で、コンピュータ生成された世界での使用のためにクライアントに公開される。
[0073]一実施形態では、流れ1500は、パッチサーバ1580で実施されるパッチサーバプロセスによって人工環境への動的コンテンツの導入を提供する。この例では、パッチサーバ1580は、イベントを表すデータが1512でイベントライブラリに置かれる時を検出するように構成される。さらに、パッチサーバ1580は、イベントによって要求されるデータを小さいファイル又はデータ1582としてクライアントにプッシュする即ち「ぽつりぽつりと移動させる」ように構成される。したがって、パッチサーバ1580は、オフピーク使用時間にデータをプッシュすることができ、コストの高い、250MBなどの大きいダウンロードがピーク使用期間中に発生する時にそうでなければ発生し得る分配された帯域幅容量の超過を避けることができる。もう1つの実施形態では、パッチサーバ1580は、プッシュされるべきデータの量及びイベントの残り時間を判定し、したがって、単位時間あたりにプッシュされる必要がある平均データ量を計算する。したがって、パッチサーバ1580は、最適移送のために小さいファイル1582内のデータの量を変更することができる。特定の実施形態では、パッチサーバ1580を、大量のデータがピーク使用時間にプッシュされるのを避けるために小さいファイル1582のサイズを変更すべき時を判定するためにデータベース1584内のピークしきい値監視データにアクセスするように構成することができる。
[0074]図16は、本発明の少なくとも1つの実施形態による、ユニバーサルデータ構造の特定の実装を示す図である。ユニバーサルデータ構造1602は、識別子1604(即ち、「Property Class xxxxxx」)によって識別されるプロパティクラスオブジェクトとして図示されている。プロパティクラスオブジェクトは、属性1606を含むデータの配置を含み、属性1606のそれぞれは、図16のユニバーサルデータ構造仕様ファイル1622に関して下で説明するものなど、Property Class xxxxxxのプロパティに対応することができる。さらに、属性1606は、図17のユニバーサルデータ構造1702に関して説明するものなど、プロパティ値(例えば、ストリング、整数など)に対応することができる。様々な実施形態では、ユニバーサルデータ構造1602は、入れ子になったユニバーサルデータ構造(又はそれへの参照)を含むことができる。例示のために、Property Class xxxxxxが、図20で説明するものなど、船のプロパティを定義できると考えられたい。ユニバーサルデータ構造1602は、その船が有する「位置決め」のプロパティを定義する、入れ子になったユニバーサルデータ構造を含むことができる。
[0075]図16は、本発明の少なくとも1つの実施形態によるユニバーサルデータ構造仕様ファイルの例を示す図をも含む。ユニバーサルデータ構造仕様ファイル1622は、インスタンス管理スキーマを提供し、このインスタンス管理スキーマは、人工環境生成プラットフォーム内のノードを使用して、ユニバーサルデータ構造内で実施されるデータにアクセスする。ユニバーサルデータ構造仕様ファイル1622は、プロパティクラスオブジェクトごとにメタデータを含むことができ、このメタデータは、割り当てられた属性の対応するプロパティ値を提供するように構成されてもよい。いくつかの実施形態で、プロパティクラスオブジェクト即ちPropertyClassオブジェクト(以下では「プロパティクラスオブジェクト」)は、様々なタイプのオブジェクトをどのようにレンダリングし、生成し、又はインスタンス化すべきかを判定するのに使用されるデータ又は情報、情報、及び人工環境内の他のパラメータを有するオブジェクトとすることができる。さらに、プロパティクラスオブジェクトを、例えば高速又は大容量のネットワーク接続と共に使用される時にすばやい又は高速のゲームプレイ、人工環境生成、及び類似物を可能にする縮小されたメッセージデータを提供するように構成してもよい。例えば、プロパティクラスオブジェクトは、オブジェクトをインスタンス化するのに使用されるデータのすべて又は一部を含むことができる。人工環境生成プラットフォーム(又はその中のノード)は、ゲームデータの値を作成し、表示し、及び/又は実施するためのメタデータを実施することができる。さらに、ユニバーサルデータ構造仕様ファイル1622を、識別子1624(即ち、「Property Class Specification yyyyy」)によって参照することができ、ユニバーサルデータ構造仕様ファイル1622は、例えば位置「instance.mgmt.schema」にあるインスタンス管理スキーマへの参照1626を含むことができる。いくつかの実施形態では、インスタンス管理スキーマは、プロパティクラスオブジェクトのデータにアクセスするためのノードの使用を記述するデータモデルである。さらに、ユニバーサルデータ構造仕様ファイル1622は、プロパティクラスオブジェクト1630のプロパティ値(又はそれへの参照)を含むことができる。
[0076]図17は、本発明の少なくとも1つの実施形態による、プロパティクラスシステムの要素を示す図である。いくつかの実施形態では、プロパティクラス1704を、ユニバーサルデータ構造1702として実施してもよく、プロパティクラス1704は、1つ又は複数のプロパティ(「Property」)1706を有することができる。ここでは、プロパティクラス1704は、対応するプロパティ値への特定のプロパティポインタのコンテナになるように構成される。さらに、1つ又は複数のプロパティ1706は、ストリング(「PropertyString」)1708a、整数(「PropertyInt」)1708b、大きい整数(「PropertyBigInt」)1708c、及び他などのプロパティ値を含むことができる。
[0077]ユニバーサルデータ構造仕様ファイル1722は、プロパティクラス仕様1724を含むものとして図示されている。したがって、プロパティクラス1704の共通する型のインスタンスは、プロパティクラス仕様1724に関係することができる。例えば、「Player」と命名されたプロパティクラス1704は、例えば、プロパティ及びプロパティ値を指定するプロパティクラス仕様1724への関係を有してもよい。さらに、プロパティクラス仕様1724は、1つ又は複数のプロパティ仕様(「PropertySpec」)1726へのポインタのベクトルを含むことができ、プロパティ仕様1726のそれぞれは、プロパティ1706に関連するメタデータを含むことができる。プロパティクラスマネージャ(「PropertyClassManager」)1742は、キー/値対としてプロパティクラス名及びプロパティクラス仕様を判定するためのマップ(例えば、ルックアップテーブル)を含むことができる。ランタイム中又は実行中に、人工環境生成プラットフォーム(又はその中のノード)は、プロパティクラスマネージャ1742を使用して、データ構造の実装及びプロパティクラスシステムからのゲームデータを管理する。
[0078]図18に、本発明の少なくとも1つの実施形態による、ユニバーサルメッセージを作成する流れを示す。流れ1800は、XMLベースのオブジェクトデータファイル1803などの1つ又は複数のプロパティクラスオブジェクトファイルを編集するか作成するように構成されたユニバーサルデータ構造エディタ1802を示す。ユニバーサルデータ構造エディタ1802は、例えば、ドロップダウンメニュー及び関連するプロパティクラス仕様に基づくデータ範囲妥当性などのコンテキストフレンドリなインターフェース要素を提供するエディタとすることができる。さらに、ユニバーサルデータ構造エディタ1802は、XMLリーダー1806及びXMLライタ1805を使用して、ソースへ及びソースからのデータをシリアライズし、このソースは、XMLベースのオブジェクトデータファイル1803のうちの1つ又は複数とすることができる。様々な実施形態では、ユニバーサルデータ構造エディタ1802を、拡張可能マークアップ言語(即ち、XML)、ハイパーテキストマークアップ言語(即ち、HTML)、及び任意の他のマークアップ言語又はフォーマッティング言語に従ってフォーマットされたデータを編集するように構成することができる。ユニバーサルデータ構造エディタ1802を、いくつかの実例で、XMLベースのエディタ1807に置換してもよい。というのは、プロパティクラス表現が、XML互換フォーマットであるからである。XMLベースのエディタ1807は、米国マサチューセッツ州ベバリーのAltova,Inc.社が作るXMLSpyなどの複数の市販ツールのうちのいずれかとすることができる。
[0079]プロパティクラスデータファイル1803は、シリアライゼーション又はプロパティシステムのXMLリーダー1806ファシリティを使用してランタイム環境に持ち込まれる。これは、ファイル1803からXMLベースのプロパティクラスデータをとり、「インメモリ」C++プロパティクラスオブジェクト表現1809を作成する。すべての変更を、XMLライタ1805ファシリティを使用してオリジナルソースに戻って反映することができる。
[0080]データのシリアライゼーションの速度及びXML表現に対するデータの難読化を容易にするために、プロパティクラスオブジェクト1809を、バイナリリーダー1808機構及びバイナリライタ1801機構を使用してディスクベースのバイナリフォーマット1810にシリアライズすることができる。これは、開発者が、従来のツールを使用して人間可読フォーマット(即ち、XML)で編集し、実行の速度及び難読化が重要である時にそのXMLをバイナリフォーマットに変換することを可能にする。
[0081]C++オブジェクト1809の任意のインスタンスをネットワークを介して送信する必要がある場合には、プロパティクラスオブジェクトは、送信器1850内で移送のために「パック」され又は「パケット化」される。1811でのパケット化プロセスは、バイナリライタ1801のサービスを使用してパケットを生成し、そのパケットを1812でリンク1842を介して送信する。受信器1852は、そのパケットを受信し、バイナリリーダー1801のサービスを使用して、データをインメモリC++プロパティクラスオブジェクト表現1809のインスタンスにアンパックする。送信器1850また受信器1852のいずれか或いはその両方を、本発明の様々な実施形態に従って、ユニバーサルメッセージインターフェース内で実施できることに留意されたい。
[0082]図19に、本発明の少なくとも1つの実施形態による、ユニバーサルメッセージを作成するプロパティクラスシステムの要素を示す。図1900は、プロパティクラスシステム要素即ち、プロパティクラスオブジェクト1902、1904、及び1906などのプロパティクラスオブジェクトと、プロパティクラスマニフェスト1910と、プロパティクラスマネージャ1920と、プロパティクラス仕様ファイル1930とを使用するユニバーサルメッセージ作成プロセス1940を示す。例示のために、ユニバーサルメッセージ作成プロセス1940が、文字データに関するユニバーサルメッセージを生成するように構成されると考えられたい。したがって、ユニバーサルメッセージ作成プロセス1940は、入れ子になったプロパティクラスオブジェクト1902及び1904を含むプロパティクラスオブジェクト(「player(プレイヤ)」)1906を使用する。入れ子になったプロパティクラスオブジェクト(「spells(呪文)」)1902は、例えば、プレイヤが所有する呪文のタイプ及び強さを表すデータのデータ配置を含む。入れ子になったプロパティクラスオブジェクト(「weapon(武器)」)1904は、例えば、プレイヤが所有する武器の種類を表すデータのデータ配置を含む。
[0083]少なくとも1つの実施形態では、プロパティクラスマニフェスト1910は、プロパティクラスオブジェクトをインスタンス化するためにプロパティシステムによって使用できる情報及びデータをリストし又はアセンブルするための空間を提供するように構成される。例えば、プロパティクラスマニフェスト1910は、プロパティクラス識別子(「ID」)、仕様ファイル(例えば、仕様ファイル1722(図17))名、プロパティクラスオブジェクトをグループ化するのを助けるためのリスティングごとのカテゴリタグなどのリストを含むことができる。さらに、プロパティクラスマニフェスト1910は、ファイル名、プロパティクラスオブジェクト名、及びユニバーサルメッセージを作成するための他のリソース(又は情報のソース)を記述することができる。プロパティクラスマネージャ1920は、論理リソース及び物理リソースのマップと、プロパティクラスオブジェクト1902、1904、及び1906のデータ構造及びその中のゲームデータの実装を管理するためのデータとを含むことができる。プロパティクラス仕様ファイル1930は、プロパティ値又はプロパティ値への参照を含むことができる。
[0084]人工環境生成プラットフォーム及び/又はそのノードは、ユニバーサルメッセージ作成プロセス1940及び上で説明したプロパティクラスシステム要素を実施して、ユニバーサルメッセージ(又はユニバーサルデータ構造)を形成することができ、このユニバーサルメッセージは、とりわけ図1及び3に示されたものなどの人工環境生成プラットフォームのノードによって使用され得る。ノード(例えば、サーバ、クライアント、ピア、又は他のプロセッサ)がユニバーサルメッセージ作成プロセス1940を開始する時に、ユニバーサルデータ構造を、ユニバーサルメッセージの一部として実施することができる。次に、プロセス1950が、実施されたユニバーサルメッセージを受信すると考えられたい。したがって、プロセス1950は、そのソースコードのコンパイルを必要とせずに、メッセージから直接にデータ1952を使用することができる。
[0085]図20に、本発明の少なくとも1つの実施形態による、プラグを作成するプロパティクラスシステムの要素を示す。図2000は、プロパティクラスシステム要素即ち、プロパティクラスオブジェクト2002〜2006、プロパティクラスマニフェスト2010、プロパティクラスマネージャ2020、及びプロパティクラス仕様ファイル2030を使用するプラグ作成プロセス2040を示す。例示のために、プラグ作成プロセス2040が、船(例えば、貨物船、タンカ、軍艦(例えば、タイコンデローガ級、イージス誘導ミサイル装備巡洋艦)、巡航定期船、遠洋定期船、及び他)のイメージ又はゲーム要素を動的コンテンツとして人工環境にレンダリングするためのプラグを生成するように構成されると考えられたい。したがって、プラグ作成プロセス2040は、入れ子になったプラグプロパティクラスオブジェクト2002、2004、及び2005を含むプラグプロパティクラスオブジェクト(「ship(船)」)2006を使用する。入れ子になったプラグプロパティクラスオブジェクト(「positioning(位置決め)」)2002は、例えば、船が所有する位置決め及び相対運動を表すデータの配置を含む。入れ子になったプラグプロパティクラスオブジェクト(「speed(速度)」)2004は、例えば、船が進む(即ち、移動する)速度を表すデータのデータ配置を含む。入れ子になったプラグプロパティクラスオブジェクト(「appear as ship(船に見える)」)2005は、例えば、所望の船の形状に見える船の外見を記述するデータのデータ配置を含む。少なくとも1つの実施形態では、プロパティクラスマニフェスト2010、プロパティクラスマネージャ2020、及びプロパティクラス仕様ファイル2030が、図19で説明したものに類似する機能及び/又は構造を有することができる。いくつかの実施形態では、プラグは、例えば、とりわけデータ、アセット、手続きアクションリスト、及び条件トリガを指定する表現を参照することができる。データ表現の例は、船の速度を指定するデータを含むプロパティクラスオブジェクト2004である。アセット表現の例は、アセットとして船を指定するデータを含むプラグプロパティクラスオブジェクト2006である。手続きアクションリストの表現の例は、プラグオブジェクトが実行しなければならないアクションを指定するデータを含む。例えば、手続きアクションリストデータは、船が(1.)港に向かって回頭し、(2.)航行を続け、(3.)ドックで停止することを指定することができる。条件トリガ表現の例は、条件トリガがイベントYで発火したならばXが発生しなければならないことを指定するデータを含む。例えば、条件トリガデータは、船がドックに到着したならば、その船が爆発しなければならないことを指定することができる。
[0086]人工環境生成プラットフォーム及び/又はそのノードは、プラグ作成プロセス2040及び上で説明したプロパティクラスシステム要素を実施して、プラグデータ2052を作成することができる。次に、プロセス2050がプラグデータ2052の受信側であると考えられたい。具体的に言うと、プラグデータ2052は、プロセス2050のソケットコード2054にゲームデータを供給できる1つ又は複数のユニバーサルデータ構造を含む。したがって、プロセス2050は、プラグデータ2052を使用して、プロセス2050又はソケットコード2054のいずれかのソースコードのさらなる又は追加のコンパイルを必要とせずに、人工環境に動的コンテンツを導入することができる。一実施形態では、プラグデータ2052を、データベース(「d/B」)2060に船プラグデータ2061として格納することができる。ユーザは、イベントエディタ2064を使用して、イベントサーバ2062と協力して船プラグデータ2061を作成することができる。さらに、ユーザは、イベントエディタ2064を使用して、船プラグデータ2061が例えばスケジューリングされた時刻に動的コンテンツを生成するためにソケットコード2054にプラグされる日付及び時刻をスケジューリングすることができる。いくつかの実施形態では、イベントエディタ2064は、XMLエディタ又はプロパティクラスエディタのいずれかの上に構築されるアプリケーションとすることができる。
[0087]図21は、本発明の少なくとも1つの実施形態による、圧縮ユニバーサルメッセージを実施するメッセージングシステムの部分の例を示す図である。ここでは、メッセージシステム部分2100は、サーバプロセス2106及びクライアントプロセス2150を含み、この両方が、とりわけメッセージを交換するためにネットワーク2130を介して結合される。この実施形態では、メッセージシステム部分2100は、サーバ側(又はクライアント側)プロパティクラスオブジェクト(「<pco>」)2160に関連するデータのサブセットを含むユニバーサルデータ構造としてメッセージを移送することができる。そのようなメッセージの例は、人工環境に対する変更を示すクライアントプロセス2150からの応答である。サーバプロセス2106及びクライアントプロセス2150は、それぞれ、ユニバーサルメッセージインターフェース2110a及びユニバーサルメッセージインターフェース2110bを含む。サーバプロセス2106は、プロパティクラスオブジェクト2160に従って配置されたデータを使用して、クライアントプロセス2150から送信されたゲームデータ変更に応答して人工環境を全体的に又は部分的に生成することができる。変更されたゲームデータの例は、人工環境内でのアバタの移動を引き起こすためにクライアントプロセス2150によって生成されたデータである。少なくとも1つの実施形態で、サーバプロセス2106及び/又はクライアントプロセス2150は、圧縮ユニバーサルメッセージ2120としてメッセージを交換することができる。サーバプロセス2106とクライアントプロセス2150との両方が、それを用いてデータを交換すべきプロパティクラスオブジェクト2160を実施することができるので、減らされた量のデータを、圧縮ユニバーサルメッセージ2120内で交換することができる。いくつかの実施形態では、プロパティクラスオブジェクト2122に関連する変更されたゲームデータ2124を、ユニバーサルメッセージ内で移送することができる。例として、変更されたゲームデータ2124が、インデックスによって識別できるあるプロパティの変更された値を指定すると考えられたい。したがって、圧縮ユニバーサルメッセージ2120は、変更されたゲームデータ2124の関連する属性を識別するためにインデックス2128を含むことができる。この情報を用いて、サーバプロセス2106を、人工環境を変更するように構成するか実施することができる。
[0088]図22は、本発明の少なくとも1つの実施形態による、人工環境生成プラットフォームと相互作用するユニバーサルメッセージングインターフェースを実施する複数のデバイスの図である。人工環境生成プラットフォーム2800は、ゲームサブプロセス2282、データベースプロセス2284、及びゲーム管理サーバ2288aから2288nを含むゲーム管理プロセス2286を含む。図示されているように、ユニバーサルメッセージングインターフェース(「UMI」)2292を実施する様々なクライアント2290は、インターネットなどのネットワーク2289を介して人工環境生成プラットフォーム2200と相互作用することができる。この例では、とりわけ、セットトップボックス2290a、モバイルデバイス2290b、コンピューティングデバイス2290c、ゲーム機2290d、衛星受信器(「RX」)2290e、セル電話機2290g、携帯情報端末(「PDA」)2290h、及びテレビジョン2290iを、本明細書で説明されるユニバーサルメッセージングインターフェース(「UMI」)2292を実施するように構成することができる。少なくとも1つの実施形態では、論理(例えば、プロセッサ及びメモリ)を含む任意のデバイス2290fは、人工環境内の参加者への様々な実施形態のユニバーサルデータ構造及び/又はプロパティクラスを実施することができる。
[0089]様々な実施形態では、プロパティクラスシステム及びそのインスタンスを、C++プロパティクラスオブジェクト又は他のプログラミング言語の任意の他のプロパティクラスとして実施することができる。さらに、上の議論は、オンラインゲーミングのコンテキストで様々な特徴を説明するが、本発明の実施形態は、オンラインゲーミングに限定されてはならない。そうではなく、本明細書で説明した特徴及び技法は、トレーニング目的、教育目的、社交目的、及び類似物のための人工環境に適用することができる。また、上の議論は、クライアント−サーバアーキテクチャ内の分散サーバのコンテキストにあるが、様々な実施形態は、それに限定されない。例えば、1つ又は複数のノードプロセスを、単一のプロセスに集約することができる。さらに、任意のネットワークアーキテクチャ及びトポロジを、本発明の実施形態と共に実施することができる。例えば、人工環境生成プラットフォームは、ピアツーピアネットワーク及び類似物を実施することができる。
[0090]本発明の実施形態の少なくとも一部では、上で説明した特徴のいずれの構造及び/又は特徴であれ、ソフトウェア、ハードウェア、ファームウェア、回路網、又はその組合せで実施することができる。上の構造及び構成要素並びにその機能性を、1つ又は複数の構造又は要素と共に集約できることに留意されたい。その代わりに、要素及びその機能性を、構成副要素がある場合に構成副要素に副分割することができる。ソフトウェアとして、上で説明した説明した技法を、C、Objective C、C++、C#、Flex(商標)、Fireworks(登録商標)、Java(商標)、Javascript(商標)、AJAX、COBOL、Fortran、ADA、XML、HTML、DHTML、XHTML、HTTP、XMPP、及び他を含む、様々なタイプのプログラミング言語、フォーマッティング言語、フレームワーク、構文、アプリケーション、プロトコル、オブジェクト、又は技法を使用して実施することができる。これらは、変更され得、提供された例又は説明には限定されない。
[0091]前述の説明は、説明において、本発明の完全な理解を提供するために特定の命名法を使用した。しかし、特定の詳細が、本発明を実践するために必要ではないことが、当業者には明白であろう。実際に、この説明は、本発明の任意の特徴又は態様を任意の実施形態に限定すると解釈されてはならず、一実施形態の特徴及び態様を、他の実施形態とたやすく交換することができる。
[0092]したがって、本発明の特定の実施形態の前述の説明は、例示及び説明のために提示されたものである。これらは、網羅的であること又は本発明を開示された正確な形態に限定することを意図されてはおらず、多数の代替形態、修正形態、同等物、及び変形形態が、上の教示を考慮して可能である。明瞭にするために、実施形態に関連する技術的分野で既知の技術的材料は、この説明を不必要に不明瞭にすることを避けるために、詳細には説明しなかった。したがって、様々な実施形態を、添付の特許請求の範囲の範囲及び同等物の中で変更することができる。さらに、実施形態は、本発明の原理及びその実用的応用例を最もよく説明するために選択され、説明され、これらは、これによって、当業者が、本発明及び企図される特定の使用に適する様々な変更を加えた様々な実施形態をもっとよく利用することを可能にする。特筆すべきことに、本明細書で説明された利益のすべてを、本発明の各実施形態によって実現する必要はなく、任意の特定の実施形態は、上で述べた利益のうちの1つ又は複数を提供することができる。特許請求の範囲では、要素及び/又は動作は、特許請求の範囲で明示的に述べられない限り、動作の特定の順序を暗示しない。次の特許請求の範囲及びその同等物が、本発明の範囲を定義することが意図されている。

Claims (66)

  1. 複数の参加者が相互作用する人工環境を生成するように構成されたゲーム管理サーバと、
    ゲームサブプロセス結果をゲームサブプロセスの必要性の関数としてゲーム管理サーバに伝えるように構成されたスケーラブルゲームサブプロセスサーバと
    を備える、人工環境を生成するシステムであって、
    前記ゲーム管理サーバ及び前記スケーラブルゲームサブプロセスサーバが、分散ネットワークアーキテクチャ内に配置されている、システム。
  2. 前記ゲームサブプロセスの前記必要性に応答して前記スケーラブルゲームサブプロセスサーバの実装を制御するように構成されたマスタスケーリングサーバをさらに備える、請求項1に記載のシステム。
  3. 前記人工環境が、持続的世界である、請求項1に記載のシステム。
  4. 前記ゲーム管理サーバが、クライアントではなく前記ゲーム管理サーバで前記人工環境との前記参加者の相互作用を変更するようにさらに構成される、請求項1に記載のシステム。
  5. データをノードに一体化するように構成されたユニバーサルデータ構造を含むメッセージを伝搬するように構成されたメッセージングシステムをさらに備える、請求項1に記載のシステム。
  6. 前記ノードが、前記ゲーム管理サーバ、前記スケーラブルゲームサブプロセスサーバ、データベース、及びクライアントのうちの1つ又は複数をさらに備える、請求項5に記載のシステム。
  7. 前記メッセージングシステムが、クライアントが前記人工環境に対する変更を示すことに応答して、サーバ側ユニバーサルデータ構造に関連するデータのサブセットを送信するように構成される、請求項5に記載のシステム。
  8. 前記ノードが前記ユニバーサルデータ構造内でデータを実施することを可能にするように構成されたインスタンス管理スキーマをさらに備える、請求項5に記載のシステム。
  9. それぞれが前記ノードによって使用可能な形で前記ユニバーサルデータ構造内でデータを提供するように構成された複数のユニバーサルメッセージインターフェースをさらに備える、請求項5に記載のシステム。
  10. 前記ユニバーサルデータ構造が、オブジェクト指向プログラミング言語のクラスのものである、請求項5に記載のシステム。
  11. それぞれが前記ユニバーサルデータ構造を前記ノードによる使用のためのデータ配置に変換することなく前記ユニバーサルデータ構造内でデータを提供するように構成された複数のユニバーサルメッセージインターフェースをさらに備える、請求項5に記載のシステム。
  12. 前記複数のユニバーサルメッセージインターフェースが、それぞれ、前記メッセージのそれぞれが前記ノード宛であるかどうかを検出するように構成される、請求項11に記載のシステム。
  13. 少なくとも1つがプラットフォーム独立フォーマットで前記ユニバーサルデータ構造をフォーマットするように構成された複数のユニバーサルメッセージインターフェースをさらに備える、請求項5に記載のシステム。
  14. 前記プラットフォーム独立フォーマットが、拡張可能マークアップ言語によって定義されるフォーマットを含む、請求項13に記載のシステム。
  15. 前記ゲーム管理サーバを含む複数のゲーム管理サーバと、
    前記スケーラブルゲームサブプロセスサーバを含む複数のスケーラブルゲームサブプロセスサーバと
    をさらに備える、請求項1に記載のシステム。
  16. 前記複数のゲーム管理サーバのうちの少なくとも2つが、別々のプロセス空間として擬似集約プロセス空間にアクセスするように構成される、請求項15に記載のシステム。
  17. 前記複数のスケーラブルゲームサブプロセスサーバのうちの少なくとも1つが、共通プロセス空間として動作可能な擬似集約プロセス空間に関連する原子的トランザクションを実行するように構成されたトランザクションサーバを備える、請求項15に記載のシステム。
  18. 参加者が分散サーバアーキテクチャ内で相互作用する人工環境を生成するように構成された人工環境生成プラットフォームであり、前記人工環境を生成するために命令を実行するように構成された少なくとも1つのゲーム管理サーバを備える、人工環境生成プラットフォームと、
    前記命令の前記実行と実質的に同時に前記人工環境の少なくとも一部に動的コンテンツを導入するように構成されたイベントサーバと、
    それぞれがユニバーサルデータ構造を含むユニバーサルオブジェクトのシステムと
    を具備する、人工環境を生成するシステムであって、
    前記ユニバーサルオブジェクトのうちの少なくとも1つが、前記動的コンテンツを容易にするように構成される、システム。
  19. 前記イベントサーバが、前記命令を構成するオブジェクトコードを変更せずに動的コンテンツを導入するように構成される、請求項18に記載のシステム。
  20. ユニバーサルオブジェクトの当該システムが、前記動的コンテンツの前記導入中の前記命令の再コンパイルを不要にする、請求項18に記載のシステム。
  21. 前記少なくとも1つのゲーム管理サーバが、リブートなしで前記動的コンテンツを生成するように構成される、請求項18に記載のシステム。
  22. 前記動的コンテンツを実施するプラグデータを備えるプラグオブジェクトと、前記人工環境の前記一部の生成に関する前記命令のサブセットに関連するソケットコードとを備えるデータベースをさらに具備し、
    前記ソケットコードが、前記人工環境の前記一部に関して前記動的コンテンツをレンダリングするために動的データを実施するように構成された、請求項18に記載のシステム。
  23. 前記イベントサーバが、所定のトリガに応答して前記動的コンテンツを導入するようにさらに構成される、請求項18に記載のシステム。
  24. 合成プラットフォームが、
    前記人工環境を生成するように構成された、複数のゲーム管理サーバ、ゲームサブプロセスサーバ、及びデータベースと、
    前記複数のゲーム管理サーバ、ゲームサブプロセスサーバ、及びデータベースの中でメッセージを伝搬するように構成された分散ネットワークアーキテクチャと、
    それぞれが前記メッセージ内でフォーマットされた前記ユニバーサルデータ構造内のデータを実施するように構成された複数のユニバーサルデータ構造インターフェースと
    を備える、請求項18に記載のシステム。
  25. コンピュータ生成される人工環境を生成するシステムであって、
    物理サーバ、人工知能サーバ、及びトランザクションサーバを備える複数のゲームサブプロセスサーバと、
    参加者が相互作用する人工環境を生成するようにそれぞれが構成された複数のゲーム管理サーバと、
    前記人工環境を生成するためのデータを格納するように構成されたデータベースであり、前記複数のゲーム管理サーバ、前記複数のゲームサブプロセスサーバ、及び前記データベースのそれぞれが、分散ネットワーク内に配置される、データベースと
    を具備し、
    前記複数のゲーム管理サーバ、前記複数のゲームサブプロセスサーバ、及び前記データベースが、前記分散ネットワークの少なくとも一部の中で伝搬するメッセージにフォーマットされたユニバーサルデータ構造を実施する、システム。
  26. 1つ又は複数の物理サーバ、1つ又は複数の人工知能サーバ、及び1つ又は複数のトランザクションサーバのうちのいずれかを追加するために追加ゲームサブプロセスサーバのサブセットを構成するように構成されたマスタスケーリングサーバをさらに備える、請求項25に記載のシステム。
  27. エンティティが参加者に可視であることを判定するために前記参加者の可視性範囲と前記エンティティの見られ得る範囲との交差を検出するように構成された可視性サーバと、
    そうでなければ前記物理サーバによって実行されるはずの前記参加者のグループに関する物理処理をオフロードするように構成されたインスタンスサーバと
    をさらに備える、請求項25に記載のシステム。
  28. 前記人工環境と相互作用することを要求する複数のクライアントを複数のゲーム管理サーバに関連付けるように構成されたユーザサーバをさらに備える、請求項25に記載のシステム。
  29. 前記システムとの相互作用中に更新されたデータの諸部分をクライアントに送信するように構成されたパッチサーバをさらに備え、
    更新されたデータの受信されない部分が、プロキシアセットを生成するためのデフォルトデータに置換される、請求項25に記載のシステム。
  30. 多人数参加型オンラインゲームを容易にする方法であって、
    ゲーム管理プロセスとは独立のゲームサブプロセスを初期化するステップと、
    前記ゲームサブプロセス及び前記ゲーム管理プロセスの間の協力を介して人工環境を生成するステップと、
    前記ゲーム管理プロセスを実施して、前記ゲームサブプロセスのうちの1つ又は複数の動作不能の期間中に前記人工環境の少なくとも一部を生成するステップと
    を含む、方法。
  31. 前記ゲームサブプロセスと前記ゲーム管理プロセスとの間でメッセージを交換して、前記人工環境を生成するステップをさらに含む、請求項30に記載の方法。
  32. 前記ゲームサブプロセスのサブセットとして1つ又は複数の物理サーバを実施するステップであって、前記ゲーム管理プロセスが、前記1つ又は複数の物理サーバと独立に動作するように構成される、ステップをさらに含む、請求項30に記載の方法。
  33. 前記1つ又は複数の物理サーバとは別々の人工知能サーバプロセスを実施するステップをさらに含む、請求項32に記載の方法。
  34. 前記人工環境を生成するステップが、
    少なくとも2つの異なるクライアント用の少なくとも2つの異なるゲーム管理プロセスを実施するステップと、
    前記少なくとも2つの異なるクライアントが前記人工環境にアクセスすることを可能にするステップと
    を含み、
    前記少なくとも2つの異なるクライアントのいずれもが、前記少なくとも2つの異なるゲーム管理プロセスのいずれかを介して前記人工環境にアクセスすることができる、請求項30に記載の方法。
  35. 擬似集約プロセス空間を生成するステップをさらに含む、請求項30に記載の方法。
  36. 前記擬似集約プロセス空間を生成するステップが
    参加者がその中でデータの第1サブセットについて相互作用できる共通プロセス空間を生成するステップであり、前記参加者が、少なくとも2つの異なるゲーム管理サーバに関連する、ステップと、
    データの第2サブセットについて前記参加者用の別々のプロセス空間を生成するステップと
    をさらに含む、請求項35に記載の方法。
  37. データの前記第1サブセットが、トランザクション関連データを含み、データの前記第2サブセットが、ジオメトリ関連データを含む、請求項36に記載の方法。
  38. 参加者の間のトランザクションを管理して、前記トランザクションが原子的であることを保証するステップをさらに含む、請求項35に記載の方法。
  39. ゲーム管理プロセスサーバの量と独立にサブプロセスサーバの量をスケーリングするステップをさらに含む、請求項30に記載の方法。
  40. 前記ゲームサブプロセスに関する要求に応答してサブプロセスサーバの前記量をスケーリングするステップをさらに含む、請求項39に記載の方法。
  41. 前記ゲーム管理プロセスサーバの負荷を監視するステップと、
    前記負荷の関数としてサブプロセスサーバの前記量をスケーリングするステップと
    をさらに含む、請求項39に記載の方法。
  42. 多人数参加型オンラインゲームを容易にするコンピュータ可読媒体であって、
    1つ又は複数のゲームサブプロセスとは独立のゲーム管理プロセスを初期化する実行可能命令と、
    前記ゲーム管理プロセスを実施するサーバと、前記1つ又は複数のゲームサブプロセスを実施するサーバとの間でネットワークを介してメッセージを交換して、人工環境を生成する実行可能命令と、
    前記ゲーム管理プロセスを実行して、前記1つ又は複数のゲームサブプロセスを実施する前記サーバのうちの少なくとも1つの動作不能とは独立に前記人工環境の少なくとも一部を容易にする実行可能命令と
    を含む、コンピュータ可読媒体。
  43. メッセージを交換する前記実行可能命令が、
    前記ゲーム管理プロセスを実施する前記サーバとクライアントのサブセットとの間の通信を確立する実行可能命令と、
    前記人工環境とクライアントの前記サブセットとの間の相互作用を容易にする実行可能命令と
    を含み、
    クライアントの前記サブセットと、他のゲーム管理プロセスを実施する他のサーバに関連するクライアントの他のサブセットとが、実質的に同時に前記人工環境と相互作用する
    請求項42に記載のコンピュータ可読媒体。
  44. 前記ゲーム管理プロセスを実行する前記実行可能命令が、
    データのうちで前記人工環境に関連する部分が変化したことを判定する実行可能命令と、
    クライアントへの送信のために圧縮ユニバーサルメッセージを生成する実行可能命令であって、前記圧縮ユニバーサルメッセージが、前記データの前記部分が変化したことの表示を含む、実行可能命令と
    を含む、請求項42に記載のコンピュータ可読媒体。
  45. 前記圧縮ユニバーサルメッセージを生成する前記実行可能命令が、
    ベクトルとして配置された複数のプロパティ値を含むオブジェクトを生成する実行可能命令と、
    前記複数のプロパティ値からのプロパティ値が変更されたことを判定して、変更されたプロパティ値を識別する実行可能命令と、
    前記圧縮ユニバーサルメッセージを形成して、前記変更されたプロパティ値及び前記ベクトルへのインデックスを含める実行可能命令と
    をさらに含む、請求項44に記載のコンピュータ可読媒体。
  46. 多人数参加型オンラインゲームを容易にするために分散ネットワークアーキテクチャ内のノードの間で通信する方法であって、
    人工環境生成プラットフォーム内のノードの間でゲームデータを交換するように構成されたユニバーサルデータ構造に従うユニバーサルメッセージを生成するステップであり、前記ノードが、前記人工環境生成プラットフォームに分散プロセスを提供するように構成されたノードのサブセットを含む、ステップと、
    前記ノードのサブセットに前記ユニバーサルメッセージの少なくともサブセットをブロードキャストして、人工環境を変更するステップと、
    ノードの分散プロセスに応答して前記人工環境の少なくとも一部を変更するステップと
    を含む、方法。
  47. 前記人工環境の前記一部を変更するステップが、前記人工環境に動的コンテンツを導入するステップを含む、請求項46に記載の方法。
  48. 前記ユニバーサルメッセージを生成するステップが、プラットフォーム独立フォーマットに従うデータ配置から前記ゲームデータを抽出するステップを含む、請求項46に記載の方法。
  49. 前記ユニバーサルメッセージを生成するステップが、拡張可能マークアップ言語によって定義されるフォーマットに従うデータ配置から前記ゲームデータを抽出するステップを含む、請求項46に記載の方法。
  50. オブジェクト指向クラス構造に従って前記ゲームデータを実施するステップをさらに含む、請求項49に記載の方法。
  51. スキーマにアクセスして前記ノードの使用を判定するステップと、
    実行可能コードを変更せずに、前記ユニバーサルデータ構造とインターフェースするように前記ノードを構成して、前記ユニバーサルデータ構造と前記ノードに関連する別のデータ配置との間で前記ゲームデータを交換するステップと
    をさらに含む、請求項46に記載の方法。
  52. 前記スキーマに基づいて、前記ユニバーサルメッセージの前記サブセットからのユニバーサルメッセージの前記ゲームデータを前記ノードと一体化するステップをさらに含む、請求項51に記載の方法。
  53. 前記ノードが前記ユニバーサルメッセージのサブセットからのユニバーサルメッセージと互換であることを、前記ユニバーサルメッセージに関連するノード属性に基づいて判定するステップをさらに含み、
    前記ノード属性が、前記ノードを指定する、請求項46に記載の方法。
  54. 前記人工環境の前記一部を変更するステップが、前記人工環境に動的コンテンツを導入するステップを含む、請求項46に記載の方法。
  55. 前記分散プロセスが、ゲーム管理プロセス、ゲームサブプロセス、及びデータベースプロセスを含む、請求項46に記載の方法。
  56. 前記ゲーム管理プロセスからの前記ユニバーサルメッセージのサブセットを、前記ゲームサブプロセス又は前記データベースプロセスのいずれか又は両方に送信するステップをさらに含む、請求項55に記載の方法。
  57. 人工環境に関連するユニバーサルメッセージを生成するコンピュータ可読媒体であって、
    人工環境生成プラットフォームへの移送のためにデータを受け取る実行可能命令と、
    ユニバーサルメッセージを生成して、ユニバーサルデータ構造を含める実行可能命令と、
    前記ユニバーサルメッセージを送信する実行可能命令と
    を含む、コンピュータ可読媒体。
  58. 前記ユニバーサルメッセージを生成する前記実行可能命令が、プラットフォーム独立フォーマットを有する前記ユニバーサルデータ構造に従って前記データをフォーマットする実行可能命令を含む、請求項57に記載のコンピュータ可読媒体。
  59. 前記ユニバーサルメッセージを生成する前記実行可能命令が、プロパティクラスオブジェクトを生成して前記データを含める実行可能命令を含む、請求項57に記載のコンピュータ可読媒体。
  60. 前記ユニバーサルメッセージを生成する前記実行可能命令が、前記ユニバーサルデータ構造に従って前記データをフォーマットする実行可能命令を含み、
    前記ユニバーサルデータ構造が、前記人工環境生成プラットフォームと通信するノードによって使用可能である、請求項57に記載のコンピュータ可読媒体。
  61. 移送のためにデータを受け取る前記実行可能命令が、拡張可能マークアップ言語によって定義されるデータ配置から前記データを抽出する実行可能命令を含む、請求項57に記載のコンピュータ可読媒体。
  62. 前記ユニバーサルメッセージを生成する実行可能命令が、
    前記データ配置から前記データをシリアライズする実行可能命令と、
    プロパティクラスオブジェクトを生成して前記データを含める実行可能命令と
    をさらに含む、請求項61に記載のコンピュータ可読媒体。
  63. 前記プロパティクラスオブジェクトをパケット化する実行可能命令をさらに含む、請求項62に記載のコンピュータ可読媒体。
  64. 前記ユニバーサルメッセージを生成して前記ユニバーサルデータ構造を含める前記実行可能命令が、圧縮ユニバーサルメッセージを生成する実行可能命令をさらに含む、請求項57に記載のコンピュータ可読媒体。
  65. 前記圧縮ユニバーサルメッセージを生成する実行可能命令が、
    前記データのデータ部分が変更されたことを判定して、変更されたデータ部分を識別する実行可能命令と、
    前記変更されたデータ部分の属性を判定する実行可能命令と、
    前記圧縮ユニバーサルメッセージを形成して、前記変更されたデータ部分の属性及び前記属性の値を指定するキーを含める実行可能命令と
    を含む、請求項64に記載のコンピュータ可読媒体。
  66. 前記圧縮ユニバーサルメッセージを生成する前記実行可能命令が、
    ベクトルとして配置された複数のプロパティ値を含むオブジェクトを生成する実行可能命令と、
    前記複数のプロパティ値からのプロパティ値が変更されたことを判定して、変更されたプロパティ値を識別する実行可能命令と、
    前記圧縮ユニバーサルメッセージを形成して、前記変更されたプロパティ値及び前記ベクトルへのインデックスを含める実行可能命令と
    を含む、請求項64に記載のコンピュータ可読媒体。
JP2009552746A 2007-03-06 2008-03-06 人工環境に動的コンテンツを導入する分散ネットワークアーキテクチャ Withdrawn JP2010525423A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/715,009 US9104962B2 (en) 2007-03-06 2007-03-06 Distributed network architecture for introducing dynamic content into a synthetic environment
PCT/US2008/003055 WO2008109149A1 (en) 2007-03-06 2008-03-06 A distributed network architecture for introducing dynamic content into a synthetic environment

Publications (1)

Publication Number Publication Date
JP2010525423A true JP2010525423A (ja) 2010-07-22

Family

ID=39738630

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009552746A Withdrawn JP2010525423A (ja) 2007-03-06 2008-03-06 人工環境に動的コンテンツを導入する分散ネットワークアーキテクチャ
JP2009552737A Withdrawn JP2010525422A (ja) 2007-03-06 2008-03-06 人工環境に動的コンテンツを導入する分散ネットワークアーキテクチャ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009552737A Withdrawn JP2010525422A (ja) 2007-03-06 2008-03-06 人工環境に動的コンテンツを導入する分散ネットワークアーキテクチャ

Country Status (10)

Country Link
US (5) US9104962B2 (ja)
EP (2) EP2142267B1 (ja)
JP (2) JP2010525423A (ja)
KR (4) KR101551678B1 (ja)
CN (2) CN101678236B (ja)
AU (2) AU2008223321A1 (ja)
CA (2) CA2679838A1 (ja)
RU (2) RU2468847C2 (ja)
TW (1) TW200844766A (ja)
WO (2) WO2008109149A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013544562A (ja) * 2010-10-20 2013-12-19 ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー オンラインゲーム環境におけるサーバホストのリソース管理

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008042425A2 (en) * 2006-10-03 2008-04-10 Wms Gaming Inc. Shared physics engine in a wagering game system
GB0620238D0 (en) * 2006-10-12 2006-11-22 Ibm A method and apparatus for converting a text-based email message to an email message comprising image-based fonts
US9104962B2 (en) * 2007-03-06 2015-08-11 Trion Worlds, Inc. Distributed network architecture for introducing dynamic content into a synthetic environment
US8898325B2 (en) * 2007-03-06 2014-11-25 Trion Worlds, Inc. Apparatus, method, and computer readable media to perform transactions in association with participants interacting in a synthetic environment
US8073778B2 (en) * 2008-09-11 2011-12-06 Linden Research, Inc. Scalable distributed transaction manager for multi-host transactions
US9550125B2 (en) * 2008-10-14 2017-01-24 Roblox Corporation Dynamic and scalable topology for virtual world environments
US8626863B2 (en) * 2008-10-28 2014-01-07 Trion Worlds, Inc. Persistent synthetic environment message notification
US8444490B2 (en) 2008-12-15 2013-05-21 Tetris Online, Inc. Interactive asynchronous game offline play architecture
US8496531B2 (en) 2008-12-15 2013-07-30 Tetris Online, Inc. Interactive hybrid asynchronous computer game infrastructure with dynamic difficulty adjustment
US8430755B2 (en) * 2008-12-15 2013-04-30 Tetris Online, Inc. Interactive asynchronous game play architecture
WO2010075070A1 (en) * 2008-12-15 2010-07-01 Tetris Online, Inc. Interactive asynchronous computer game infrastructure
US8681144B2 (en) 2008-12-19 2014-03-25 International Business Machines Corporation Prioritized rendering of objects in a virtual universe
US9805492B2 (en) * 2008-12-31 2017-10-31 International Business Machines Corporation Pre-fetching virtual content in a virtual universe
US9600306B2 (en) * 2009-01-31 2017-03-21 International Business Machines Corporation Client-side simulated virtual universe environment
US8694585B2 (en) * 2009-03-06 2014-04-08 Trion Worlds, Inc. Cross-interface communication
US8657686B2 (en) * 2009-03-06 2014-02-25 Trion Worlds, Inc. Synthetic environment character data sharing
US8661073B2 (en) * 2009-03-06 2014-02-25 Trion Worlds, Inc. Synthetic environment character data sharing
US8409010B2 (en) * 2009-05-05 2013-04-02 Microsoft Corporation Massively multiplayer game with shared gameplay experience
US8990306B2 (en) 2009-05-28 2015-03-24 International Business Machines Corporation Pre-fetching items in a virtual universe based on avatar communications
US8214515B2 (en) * 2009-06-01 2012-07-03 Trion Worlds, Inc. Web client data conversion for synthetic environment interaction
SG179045A1 (en) * 2009-09-08 2012-04-27 Evony Llc Methods, computer program products, and systems for increasing interest in a massively multiplayer online game
US8924387B2 (en) * 2009-09-29 2014-12-30 Cleversafe, Inc. Social networking utilizing a dispersed storage network
US20110081959A1 (en) * 2009-10-01 2011-04-07 Wms Gaming, Inc. Representing physical state in gaming systems
WO2011137935A1 (en) 2010-05-07 2011-11-10 Ulysses Systems (Uk) Limited System and method for identifying relevant information for an enterprise
JP2013532008A (ja) 2010-05-28 2013-08-15 テトリス オンライン インコーポレイテッド 対話式ハイブリッド非同期コンピュータ・ゲーム・インフラストラクチャ
CN102340524A (zh) * 2010-07-22 2012-02-01 盛趣信息技术(上海)有限公司 一种可灵活组合拆分的分布式服务器系统
US8410994B1 (en) * 2010-08-23 2013-04-02 Matrox Graphics Inc. System and method for remote graphics display
US20120079121A1 (en) * 2010-09-28 2012-03-29 Disney Enterprises, Inc System and method for dynamic adaptive player cells for multi-player environments
US9192860B2 (en) 2010-11-08 2015-11-24 Gary S. Shuster Single user multiple presence in multi-user game
US20120117227A1 (en) * 2010-11-10 2012-05-10 Sony Corporation Method and apparatus for obtaining feedback from a device
MY173753A (en) * 2011-08-04 2020-02-19 Playware Studios Asia Pte Ltd Method and system for hosting transient virtual worlds that can be created, hosted and terminated remotely and automatically
US20130095931A1 (en) * 2011-10-18 2013-04-18 Sony Computer Entertainment America Llc Data management for computer systems
US9058226B2 (en) 2012-03-09 2015-06-16 Sap Se Automated execution of processes
US8954890B2 (en) 2012-04-12 2015-02-10 Supercell Oy System, method and graphical user interface for controlling a game
GB2501145A (en) 2012-04-12 2013-10-16 Supercell Oy Rendering and modifying objects on a graphical user interface
US8814674B2 (en) 2012-05-24 2014-08-26 Supercell Oy Graphical user interface for a gaming system
US20140019193A1 (en) * 2012-07-10 2014-01-16 Sap Ag Issue Processing Systems and Methods
WO2014112973A1 (en) * 2013-01-15 2014-07-24 Hewlett-Packard Development Company, L.P. Server-platform simulation service
US9674267B2 (en) 2013-01-29 2017-06-06 Sony Interactive Entertainment America, LLC Methods and apparatus for hiding latency in network multiplayer games
US9433862B2 (en) * 2013-02-12 2016-09-06 Microsoft Technology Licensing, Llc Dynamic allocation of computing resources in remote gaming environment
US20150127593A1 (en) * 2013-11-06 2015-05-07 Forever Identity, Inc. Platform to Acquire and Represent Human Behavior and Physical Traits to Achieve Digital Eternity
TWI502335B (zh) * 2013-12-06 2015-10-01 Inventec Corp 自動節點配置方法及伺服器系統
JP6310073B2 (ja) * 2013-12-26 2018-04-11 株式会社スクウェア・エニックス・ホールディングス 描画システム、制御方法、及び記憶媒体
EP3192049A2 (en) * 2014-07-18 2017-07-19 Dimitris Lyras System and method for identifying relevant information for an enterprise
US9724605B2 (en) 2014-08-12 2017-08-08 Utherverse Digital Inc. Method, system and apparatus of recording and playing back an experience in a virtual worlds system
US10062354B2 (en) * 2014-10-10 2018-08-28 DimensionalMechanics, Inc. System and methods for creating virtual environments
US10163420B2 (en) 2014-10-10 2018-12-25 DimensionalMechanics, Inc. System, apparatus and methods for adaptive data transport and optimization of application execution
US10216747B2 (en) * 2014-12-05 2019-02-26 Microsoft Technology Licensing, Llc Customized synthetic data creation
US9529923B1 (en) 2015-08-28 2016-12-27 Swirlds, Inc. Methods and apparatus for a distributed database within a network
JP6347769B2 (ja) 2015-08-28 2018-06-27 株式会社ソニー・インタラクティブエンタテインメント イベント管理サーバー、情報処理システム、およびイベント参加管理方法
US10747753B2 (en) 2015-08-28 2020-08-18 Swirlds, Inc. Methods and apparatus for a distributed database within a network
JP6313726B2 (ja) * 2015-08-28 2018-04-18 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、イベント管理サーバー、イベント参加方法、およびイベント参加管理方法
LT3399448T (lt) * 2015-08-28 2021-01-11 Swirlds, Inc. Būdai ir prietaisas paskirstytai duomenų bazei tinkle
US9390154B1 (en) 2015-08-28 2016-07-12 Swirlds, Inc. Methods and apparatus for a distributed database within a network
US9873055B2 (en) 2015-09-15 2018-01-23 Square Enix Holdings Co., Ltd. Game system including third party control
US10044800B2 (en) 2015-10-11 2018-08-07 Microsoft Technology Licensing, Llc Synchronization scheme for physics simulations
KR101745808B1 (ko) * 2015-12-31 2017-06-28 엔에이치엔엔터테인먼트 주식회사 서버측 로직의 모듈화를 위한 모듈 처리 방법 및 시스템
US10313406B2 (en) 2016-11-01 2019-06-04 Microsoft Technology Licensing, Llc Synthetic transaction to determine centroid for cloud hosting
EP4027251A1 (en) 2016-11-10 2022-07-13 Swirlds, Inc. Methods and apparatus for a distributed database including anonymous entries
CN116820695A (zh) 2016-12-19 2023-09-29 海德拉哈希图有限责任公司 用于启用事件删除的分布式数据库的方法和设备
JP6281082B1 (ja) * 2017-03-15 2018-02-21 株式会社コナミデジタルエンタテインメント サーバ装置、及びそれに用いられるコンピュータプログラム
CN110892396B (zh) 2017-07-11 2023-11-24 海德拉哈希图有限责任公司 用于在网络内高效地实现分布式数据库的方法和设备
US20190122152A1 (en) * 2017-10-25 2019-04-25 Sony Interactive Entertainment LLC Collaborative content creation system
CA3076257A1 (en) 2017-11-01 2019-05-09 Swirlds, Inc. Methods and apparatus for efficiently implementing a fast-copyable database
JP6590905B2 (ja) * 2017-12-21 2019-10-16 任天堂株式会社 コンテンツ開発装置
US10289403B1 (en) 2018-03-29 2019-05-14 Microsoft Technology Licensing, Llc Enhanced server farm patching system for enabling developers to override off-peak patching schedules
US10585659B2 (en) * 2018-03-29 2020-03-10 Microsoft Technology Licensing, Llc Enabling tenant administrators to initiate request driven peak-hour builds to override off-peak patching schedules
CN109600431B (zh) * 2018-11-29 2021-10-22 西安电子科技大学 面向移动通信网路的内容增量传输方法、移动通信系统
US10549189B1 (en) * 2018-12-20 2020-02-04 Sony Interactive Entertainment LLC Massive multi-player compute
AU2020279389A1 (en) 2019-05-22 2021-10-14 Hedera Hashgraph, Llc Methods and apparatus for implementing state proofs and ledger identifiers in a distributed database
CN110180186B (zh) * 2019-05-28 2022-08-19 北京奇思妙想信息技术有限公司 一种地形图转换方法及系统
JP7305194B2 (ja) * 2019-12-30 2023-07-10 ティーエムアールダブリュー ファウンデーション アイピー エスエーアールエル n層アーキテクチャにより仮想世界計算を最適化するためのシステムおよび方法
CN111467796B (zh) * 2020-04-02 2023-05-02 北京代码乾坤科技有限公司 分布式物理结算方法和装置
CN111617487B (zh) * 2020-05-22 2021-03-16 腾讯科技(深圳)有限公司 游戏应用中的帐号接入方法和装置、存储介质及电子设备
CN112169311B (zh) * 2020-10-20 2024-07-26 网易(杭州)网络有限公司 训练游戏ai的方法、系统、存储介质及计算机设备
JP7072625B1 (ja) * 2020-11-26 2022-05-20 任天堂株式会社 ゲーム開発システム
JP7327851B1 (ja) 2022-11-09 2023-08-16 Tradfit株式会社 情報処理方法、プログラム及び情報処理装置

Family Cites Families (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819034A (en) 1994-04-28 1998-10-06 Thomson Consumer Electronics, Inc. Apparatus for transmitting and receiving executable applications as for a multimedia system
DE4415016A1 (de) 1994-04-29 1995-11-02 Sel Alcatel Ag Verfahren zum Betreiben eines Koppelnetzes sowie Koppelnetz und Vermittlungsstelle dafür
CA2150215C (en) * 1995-05-25 2003-02-25 John Xidos Distributed gaming system
US5823879A (en) 1996-01-19 1998-10-20 Sheldon F. Goldberg Network gaming system
US6015348A (en) * 1996-10-18 2000-01-18 Starwave Corporation Scalable game server architecture
US5978842A (en) * 1997-01-14 1999-11-02 Netmind Technologies, Inc. Distributed-client change-detection tool with change-detection augmented by multiple clients
US6175842B1 (en) 1997-07-03 2001-01-16 At&T Corp. System and method for providing dynamic three-dimensional multi-user virtual spaces in synchrony with hypertext browsing
US6052455A (en) * 1997-11-13 2000-04-18 Northern Telecom Limited Universal data structure for use with a concurrent state machine space in a telecommunications network
US5987466A (en) 1997-11-25 1999-11-16 International Business Machines Corporation Presenting web pages with discrete, browser-controlled complexity levels
JPH11313177A (ja) 1998-02-24 1999-11-09 Toshiba Corp マルチメディア情報通信システム
US6253367B1 (en) 1998-11-18 2001-06-26 Micrografx, Inc. Method and system for transforming dynamic content for use on the internet
US6199099B1 (en) 1999-03-05 2001-03-06 Ac Properties B.V. System, method and article of manufacture for a mobile communication network utilizing a distributed communication network
US6356905B1 (en) 1999-03-05 2002-03-12 Accenture Llp System, method and article of manufacture for mobile communication utilizing an interface support framework
US6892230B1 (en) * 1999-06-11 2005-05-10 Microsoft Corporation Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages
US7290056B1 (en) 1999-09-09 2007-10-30 Oracle International Corporation Monitoring latency of a network to manage termination of distributed transactions
US6694336B1 (en) 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
US6854012B1 (en) * 2000-03-16 2005-02-08 Sony Computer Entertainment America Inc. Data transmission protocol and visual display for a networked computer system
US6950848B1 (en) * 2000-05-05 2005-09-27 Yousefi Zadeh Homayoun Database load balancing for multi-tier computer systems
KR20010105705A (ko) 2000-05-17 2001-11-29 정문술 다중 인터넷 서비스에 대한 통합 사용자 관리환경 제공방법 및 이를 위한 시스템
US6883168B1 (en) 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
WO2002011448A1 (fr) * 2000-07-27 2002-02-07 Kabushiki Kaisha Infocity Dispositif d'acces a des informations et procede, et dispositif distributeur d'informations et procede
US6575696B1 (en) * 2000-09-21 2003-06-10 Fasco Industries, Inc. Method of sound attenuation in centrifugal blowers
US7062567B2 (en) * 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
JP2004513716A (ja) 2000-11-14 2004-05-13 ネタミン・コミュニケーション・コーポレーション オンラインでフォーラムへの同時参加用のシステム及び方法
US20030177187A1 (en) 2000-11-27 2003-09-18 Butterfly.Net. Inc. Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications
US6901448B2 (en) 2000-12-29 2005-05-31 Webex Communications, Inc. Secure communications system for collaborative computing
CA2440715A1 (en) 2001-03-29 2002-10-10 British Telecommunications Public Limited Company Generating and associating identifiers with protocol converted messages for logging purpose
US6961055B2 (en) * 2001-05-09 2005-11-01 Free Radical Design Limited Methods and apparatus for constructing virtual environments
US20030009558A1 (en) * 2001-07-03 2003-01-09 Doron Ben-Yehezkel Scalable server clustering
JP3443417B2 (ja) 2001-10-18 2003-09-02 コナミ株式会社 ビデオゲームシステム、ビデオゲーム装置及びビデオゲーム実行制御方法
SE0200418D0 (sv) * 2002-02-13 2002-02-13 Ericsson Telefon Ab L M A method and apparatus for computer load sharing and data distribution
AUPS333502A0 (en) 2002-07-03 2002-07-25 Aristocrat Technologies Australia Pty Limited Gaming machine power fail enhancement
US7403993B2 (en) * 2002-07-24 2008-07-22 Kasenna, Inc. System and method for highly-scalable real-time and time-based data delivery using server clusters
RU2236702C2 (ru) 2002-09-02 2004-09-20 Савин Вадим Георгиевич Способ компьютерной игры
US8458028B2 (en) * 2002-10-16 2013-06-04 Barbaro Technologies System and method for integrating business-related content into an electronic game
US7337239B2 (en) 2002-11-19 2008-02-26 Microsoft Corporation Atomic message division
US7092703B1 (en) * 2003-03-24 2006-08-15 Sprint Spectrum L.P. Method and system for accessing a universal message handler on a mobile device
US6816787B2 (en) 2003-03-31 2004-11-09 Schlumberger Technology Corporation Generating and displaying a virtual core and a virtual plug associated with a selected piece of the virtual core
US7389308B2 (en) 2003-05-30 2008-06-17 Microsoft Corporation Shadow paging
US7168035B1 (en) 2003-06-11 2007-01-23 Microsoft Corporation Building a view on markup language data through a set of components
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US20050068167A1 (en) 2003-09-26 2005-03-31 Boyer David G. Programmable presence proxy for determining a presence status of a user
US7389510B2 (en) * 2003-11-06 2008-06-17 International Business Machines Corporation Load balancing of servers in a cluster
US7914381B2 (en) 2004-03-16 2011-03-29 Xfire, Inc. System and method for facilitating multiplayer online gaming
US7818077B2 (en) * 2004-05-06 2010-10-19 Valve Corporation Encoding spatial data in a multi-channel sound file for an object in a virtual environment
US20050272492A1 (en) * 2004-05-06 2005-12-08 Valve Corporation Method and system for synchronizing a game system with a physics system
US8968093B2 (en) * 2004-07-15 2015-03-03 Intel Corporation Dynamic insertion of personalized content in online game scenes
US7827498B2 (en) * 2004-08-03 2010-11-02 Visan Industries Method and system for dynamic interactive display of digital images
US20060135259A1 (en) 2004-12-17 2006-06-22 Nokia Corporation System, game server, terminal, and method for game event notification in a multiplayer game
US7502843B2 (en) * 2004-12-30 2009-03-10 Microsoft Corporation Server queuing system and method
US20060274784A1 (en) 2005-06-02 2006-12-07 Mediatek Incorporation Methods and systems for cross-platform message exchange
US8241129B2 (en) 2005-06-20 2012-08-14 Microsoft Corporation Setting up on-line game sessions out of a game context
US20080026847A1 (en) 2005-10-14 2008-01-31 Leviathan Entertainment, Llc Massive Multi Player Online Video Game that Progresses in Eras
US7775885B2 (en) 2005-10-14 2010-08-17 Leviathan Entertainment, Llc Event-driven alteration of avatars
US20080207327A1 (en) 2007-02-20 2008-08-28 Leviathan Entertainment, Llc Virtual Environment with Alerts
US20070191103A1 (en) 2006-02-14 2007-08-16 Van Luchene Andrew S Online game environment that facilitates binding contracts between player characters
US9159036B2 (en) 2005-11-18 2015-10-13 Microsoft Technology Licensing, Llc Embedded gamer card across multiple devices and networks
US8079911B2 (en) 2005-11-18 2011-12-20 Microsoft Corporation Viewing a gamer card across multiple devices and networks
US8469805B2 (en) 2006-01-20 2013-06-25 Microsoft Corporation Tiered achievement system
US8734254B2 (en) 2006-04-25 2014-05-27 International Business Machines Corporation Virtual world event notifications from within a persistent world game
US9280871B2 (en) 2006-07-07 2016-03-08 Emc Corporation Gaming systems with authentication token support
US20080026845A1 (en) 2006-07-14 2008-01-31 Maximino Aguilar Wake-on-Event Game Client and Monitor for Persistent World Game Environment
US20080090659A1 (en) 2006-10-12 2008-04-17 Maximino Aguilar Virtual world event notification from a persistent world game server in a logically partitioned game console
US8026918B1 (en) 2006-11-22 2011-09-27 Aol Inc. Controlling communications with proximate avatars in virtual world environment
US20080176655A1 (en) 2007-01-19 2008-07-24 James Terry L System and Method for Implementing an Interactive Online Community Utilizing an Activity Monitor
US8187104B2 (en) 2007-01-29 2012-05-29 Sony Online Entertainment Llc System and method for creating, editing, and sharing video content relating to video game events
US8856225B2 (en) 2007-01-29 2014-10-07 Sony Online Entertainment Llc System and method of automatic entry creation for blogs, web pages or file-sharing sites based on game events
US20090055369A1 (en) 2007-02-01 2009-02-26 Jonathan Phillips System, method and apparatus for implementing dynamic community formation processes within an online context-driven interactive social network
US9104962B2 (en) 2007-03-06 2015-08-11 Trion Worlds, Inc. Distributed network architecture for introducing dynamic content into a synthetic environment
US8145702B2 (en) 2007-05-25 2012-03-27 Sony Computer Entertainment America Llc Method and apparatus for team based strategy planning in computer simulations
US8886510B2 (en) 2007-05-25 2014-11-11 Sony Computer Entertainment America Llc Method and apparatus for generating an event in response to interactions with information available only to a subset of client devices in a computer simulation
US8291067B2 (en) 2007-06-29 2012-10-16 Microsoft Corporation Providing access to presence information using multiple presence objects
US8145516B2 (en) 2007-07-13 2012-03-27 International Business Machines Corporation Cross-virtual-world resource scheduling framework
US20100299615A1 (en) 2007-09-28 2010-11-25 The Trustees Of Dartmouth College System And Method For Injecting Sensed Presence Into Social Networking Applications
US7890638B2 (en) 2007-09-29 2011-02-15 Alcatel-Lucent Usa Inc. Communication between a real world environment and a virtual world environment
US8979647B2 (en) 2007-10-26 2015-03-17 Microsoft Technology Licensing, Llc Method of providing player status and ability to join games
US20090125481A1 (en) 2007-11-09 2009-05-14 Mendes Da Costa Alexander Presenting Media Data Associated with Chat Content in Multi-Dimensional Virtual Environments
AU2009203114A1 (en) 2008-01-03 2009-07-09 Stephen Menzies Content management and delivery method, system and apparatus
US20090176557A1 (en) 2008-01-09 2009-07-09 Microsoft Corporation Leaderboard event notification
US20090199275A1 (en) 2008-02-06 2009-08-06 David Brock Web-browser based three-dimensional media aggregation social networking application
US7979056B2 (en) 2008-02-25 2011-07-12 At&T Intellectual Property I, L.P. Systems, methods, and computer-readable media for providing information related to virtual environments to wireless devices
US20090231112A1 (en) 2008-03-11 2009-09-17 Aaron Baalbergen Systems and methods for facilitating automation involving multiple devices
US20090235176A1 (en) 2008-03-14 2009-09-17 Madhavi Jayanthi Social interaction system for facilitating display of current location of friends and location of businesses of interest
US8478311B2 (en) 2008-03-24 2013-07-02 At&T Mobility Ii Llc Intelligent forwarding of short message service and multimedia messaging service messages
US20090253494A1 (en) 2008-04-02 2009-10-08 Intuit Inc. Exchanging assets between on-line virtual worlds
US8375310B2 (en) 2008-05-16 2013-02-12 International Business Machines Corporation Providing notification of a real-world event to a virtual universe user
US8244805B2 (en) 2008-06-24 2012-08-14 International Business Machines Corporation Communication integration between a virtual universe and an external device
US20090325712A1 (en) 2008-06-28 2009-12-31 Microsoft Corporation Player character matchmaking with distributed peer-to-peer functionality
WO2010009055A1 (en) 2008-07-14 2010-01-21 Wuiper, Inc. System and method for real world interface to online social networks
US8090616B2 (en) 2008-09-08 2012-01-03 Proctor Jr James Arthur Visual identification information used as confirmation in a wireless communication
US20100203936A1 (en) 2009-01-21 2010-08-12 Open Sports Network, Inc. Method and system for administering a fantasy game
US20100251330A1 (en) 2009-03-12 2010-09-30 Kroeselberg Dirk Optimized relaying of secure network entry of small base stations and access points
US20100255916A1 (en) 2009-04-06 2010-10-07 Alfred Habib Sioufi Filho Trusted information management system for virtual environment
US9253218B2 (en) 2009-04-23 2016-02-02 International Business Machines Corporation Interface for connecting a network element to a session initiation protocol application server
US8825767B2 (en) 2010-10-05 2014-09-02 Sivapathalingham Sivavakeesar Scalable secure wireless interaction enabling methods, system and framework

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013544562A (ja) * 2010-10-20 2013-12-19 ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー オンラインゲーム環境におけるサーバホストのリソース管理

Also Published As

Publication number Publication date
US9384442B2 (en) 2016-07-05
US9104962B2 (en) 2015-08-11
RU2468847C2 (ru) 2012-12-10
AU2008223396A1 (en) 2008-09-12
KR101551670B1 (ko) 2015-09-09
EP2131932A4 (en) 2013-05-01
TW200844766A (en) 2008-11-16
US9005027B2 (en) 2015-04-14
RU2009136683A (ru) 2011-04-20
RU2009136684A (ru) 2011-04-20
EP2131932A1 (en) 2009-12-16
EP2142267A1 (en) 2010-01-13
KR20140131394A (ko) 2014-11-12
CA2679839A1 (en) 2008-09-12
EP2142267B1 (en) 2018-08-01
US20080287194A1 (en) 2008-11-20
AU2008223321A1 (en) 2008-09-12
CA2679838A1 (en) 2008-09-12
KR101551679B1 (ko) 2015-09-10
CN101678237B (zh) 2012-05-23
US20080287193A1 (en) 2008-11-20
KR101551671B1 (ko) 2015-09-10
EP2142267A4 (en) 2012-12-05
CN101678236A (zh) 2010-03-24
KR101551678B1 (ko) 2015-09-10
KR20100014942A (ko) 2010-02-11
CN101678236B (zh) 2012-10-31
WO2008109149A1 (en) 2008-09-12
WO2008109132A1 (en) 2008-09-12
US9122984B2 (en) 2015-09-01
JP2010525422A (ja) 2010-07-22
KR20140143182A (ko) 2014-12-15
CN101678237A (zh) 2010-03-24
KR20100014941A (ko) 2010-02-11
US20080220873A1 (en) 2008-09-11
US20080287195A1 (en) 2008-11-20
RU2468431C2 (ru) 2012-11-27
US20080287192A1 (en) 2008-11-20

Similar Documents

Publication Publication Date Title
JP2010525423A (ja) 人工環境に動的コンテンツを導入する分散ネットワークアーキテクチャ
US8898325B2 (en) Apparatus, method, and computer readable media to perform transactions in association with participants interacting in a synthetic environment
US11511187B2 (en) Transactional memory synchronization for synchronization of game instance functions between remotely located servers or data centers
Glinka et al. High-level development of multiserver online games
Ploss et al. From a single-to multi-server online game: A quake 3 case study using rtf
Gorlatch et al. Designing multiplayer online games using the real-time framework
Ploss et al. A case study on using RTF for developing multi-player online games
Reina et al. Quiver: a middleware for distributed gaming
Alexandre Re-engineering jake2 to work on a grid using the GridGain Middleware
da Cruz Alexandre Re-engineering Jake2 to Work on a Grid using the GridGain Middleware
Hamza Meerkat: Extending entity-based programming to networked games
Dennett et al. Investigating Simulation and Distributed Computation in Network State Propagation

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110510