(57)【特許請求の範囲】
【請求項１】
電子的に提示されるビデオゲームのために仮想エリアを生成するコンピューティングシステムであって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサによって実行されると、少なくとも前記コンピューティングシステムに、
前記仮想エリアに関連付けられ、１つまたは複数の地形ルールと、１つまたは複数のオブジェクトルールとを含む複数のルールを受信することと、
前記１つまたは複数の地形ルールを適用して前記仮想エリアに関連付けられた地形データを生成することと、
時間、季節、気象、前記仮想エリア中を移動するオブジェクトに関するオブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに関連付けられた第１の情報を受信することと、
前記１つまたは複数のオブジェクトルールを適用して前記仮想エリアに関連付けられた第１のオブジェクトデータを生成することであって、前記１つまたは複数のオブジェクトルールが、前記地形データ及び前記第１の情報に基づいて適用される、前記第１のオブジェクトデータを生成することと、
前記第１のオブジェクトデータを、前記第１のオブジェクトデータに関連付けて前記仮想エリアの最初のレンダリングを実行するために提供することと、
時間、季節、気象、前記仮想エリア中を移動するオブジェクトに関するオブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに対する少なくとも１つの変更に関連付けられる第２の情報を受信することと、
前記１つまたは複数のオブジェクトルールを再度適用して前記仮想エリアに関連付けられた、前記第１のオブジェクトデータとは異なる第２のオブジェクトデータを生成することであって、前記複数のルールのうちの少なくとも１つが、ビデオゲームオブジェクトの２以上の異なるタイプの比率に関連し且つ前記ビデオゲームの提示中に調整され、前記比率の調整後に、前記比率で新しいビデオゲームオブジェクトを１以上生成するように、前記１つまたは複数のオブジェクトルールは、前記地形データ及び前記第２の情報に基づいて再度適用されて、前記第２のオブジェクトデータを生成することと、
前記第２のオブジェクトデータを、前記第２のオブジェクトデータに関連付けて前記仮想エリアの第２のレンダリングを実行するために提供することと、
を含む動作を実行させるコンピュータ命令を内部に記憶する１つまたは複数のメモリと、
を備える、前記コンピューティングシステム。
【請求項２】
前記１つまたは複数の地形ルールが、少なくとも１つのサーバと、少なくとも１つのクライアントの両方によって別々に適用される、請求項１に記載のコンピューティングシステム。
【請求項３】
前記比率で新しいビデオゲームオブジェクトを１以上生成することは、前記ビデオゲームの提示を停止及び再開することなく適用される、請求項１に記載のコンピューティングシステム。
【請求項４】
前記仮想エリアが複数のサブエリアに分割され、各々のサブエリアが１つまたは複数の関連付けられたコンポーネントを有し、前記コンポーネントは、前記複数のルールのうちの１つまたは複数をその関連付けられたサブエリア内に適用し、かつその関連付けられたサブエリア内での前記複数のルールのうちの前記１つまたは複数の適用に関連付けられた情報を報告する、請求項１に記載のコンピューティングシステム。
【請求項５】
電子的に提示されるビデオゲームのための仮想エリアを生成する方法であって、
前記仮想エリアに関連付けられ、１つまたは複数の地形ルールと、１つまたは複数のオブジェクトルールとを含む複数のルールを受信することと、
前記１つまたは複数の地形ルールを適用して前記仮想エリアに関連付けられた地形データを生成することと、
時間、季節、気象、前記仮想エリア中を移動するオブジェクトに関するオブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに関連付けられた第１の情報を受信することと、
前記１つまたは複数のオブジェクトルールを適用して前記仮想エリアに関連付けられた第１のオブジェクトデータを生成することであって、前記１つまたは複数のオブジェクトルールが、前記地形データ及び前記第１の情報に基づいて適用される、前記第１のオブジェクトデータを生成することと、
前記第１のオブジェクトデータを、前記第１のオブジェクトデータに関連付けて前記仮想エリアの最初のレンダリングを実行するために提供することと、
時間、季節、気象、前記仮想エリア中を移動するオブジェクトに関するオブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに対する少なくとも１つの変更に関連付けられた第２の情報を受信することと、
前記１つまたは複数のオブジェクトルールを再度適用して前記仮想エリアに関連付けられた、前記第１のオブジェクトデータとは異なる第２のオブジェクトデータを生成することであって、前記複数のルールのうちの少なくとも１つが、ビデオゲームオブジェクトの２以上の異なるタイプの比率に関連し且つ前記ビデオゲームの提示中に調整され、前記比率の調整後に、前記比率で新しいビデオゲームオブジェクトを１以上生成するように、前記１つまたは複数のオブジェクトルールは、前記地形データ及び前記第２の情報に基づいて再度適用されて、前記第２のオブジェクトデータを生成することと、
前記第２のオブジェクトデータを、前記第２のオブジェクトデータに関連付けて前記仮想エリアの第２のレンダリングを実行するために提供することと、
を含む前記方法。
【請求項６】
前記比率で新しいビデオゲームオブジェクトを１以上生成することは、前記ビデオゲームの提示を停止及び再開することなく適用される、請求項５に記載の方法。
【請求項７】
前記仮想エリアが複数のサブエリアに分割され、各々のサブエリアが１つまたは複数の関連付けられたコンポーネントを有し、前記コンポーネントは前記複数のルールのうちの１つまたは複数をその関連付けられたサブエリア内に適用し、かつその関連付けられたサブエリア内での前記複数のルールのうちの前記１つまたは複数の適用に関連付けられた情報を報告する、請求項５に記載の方法。
【請求項８】
少なくとも１つのオブジェクトルールが、１つまたは複数のオブジェクト間の密度または距離、オブジェクトの外観、オブジェクトの挙動、１つまたは複数のオブジェクトタイプの数量または配分、１つまたは複数の時間、季節または気象条件に関連付けられたオブジェクトの特徴、１つまたは複数のタイプの地形に関連するオブジェクトの特徴、１つまたは複数の他のオブジェクトに関連するオブジェクトの特徴、または１つまたは複数の境界もしくは位置に関連するオブジェクトの特徴、の少なくとも１つを指示する、請求項５に記載の方法。
【請求項９】
少なくとも１つの地形ルールが、１つまたは複数の地形のタイプの数量または配分、地形の外観、斜面の頂上の鋭さ、山の高さ、谷の急峻さ、１つまたは複数の時間、季節または気象条件に関連付けられた地形の特徴、１つまたは複数の境界または位置に関連する地形の特徴、の少なくとも１つを指示する、請求項５に記載の方法。
【請求項１０】
前記仮想エリアに関連付けられた１日のうちの時間または１年のうちの時期の少なくとも一方を維持することをさらに含み、前記複数のルールのうちの少なくとも１つが、前記１日のうちの時間または前記１年のうちの時期の少なくとも一方に基づいて適用される、請求項５に記載の方法。
【請求項１１】
１つまたは複数の非一時的なコンピュータ可読ストレージ媒体であって、１つまたは複数のコンピュートノードによって実行されると、前記１つまたは複数のコンピュートノードに、
仮想エリアに関連付けられ、１つまたは複数の地形ルールと、１つまたは複数のオブジェクトルールを含む複数のルールを受信することと、
前記１つまたは複数の地形ルールを適用して前記仮想エリアに関連付けられた地形データを生成することと、
時間、季節、気象、前記仮想エリア中を移動するオブジェクトに関するオブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに関連付けられた第１の情報を受信することと、
前記１つまたは複数のオブジェクトルールを適用して前記仮想エリアに関連付けられた第１のオブジェクトデータを生成することであって、前記１つまたは複数のオブジェクトルールが、前記地形データ及び前記第１の情報に基づいて適用される、前記第１のオブジェクトデータを生成することと、
前記第１のオブジェクトデータを、前記第１のオブジェクトデータに関連付けて前記仮想エリアの最初のレンダリングを実行するために提供することと、
時間、季節、気象、前記仮想エリア中を移動するオブジェクトに関するオブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに対する少なくとも１つの変更に関連付けられた第２の情報を受信することと、
前記１つまたは複数のオブジェクトルールを再度適用して前記仮想エリアに関連付けられた、前記第１のオブジェクトデータとは異なる第２のオブジェクトデータを生成することであって、前記複数のルールのうちの少なくとも１つが、ビデオゲームオブジェクトの２以上の異なるタイプの比率に関連し且つビデオゲームの提示中に調整され、前記比率の調整後に、前記比率で新しいビデオゲームオブジェクトを１以上生成するように、前記１つまたは複数のオブジェクトルールは、前記地形データ及び前記第２の情報に基づいて再度適用されて、前記第２のオブジェクトデータを生成することと、
前記第２のオブジェクトデータを、前記第２のオブジェクトデータに関連付けて前記仮想エリアの少なくとも一部の第２のレンダリングを実行するために提供することと、
を含む動作を実行させる内部に記憶されたコンピュータ命令を有する、前記１つまたは複数の非一時的コンピュータ可動ストレージ媒体。
【請求項１２】
前記１つまたは複数の地形ルールが、少なくとも１つのサーバと、少なくとも１つのクライアントの両方によって別々に適用される、請求項１１に記載の１つまたは複数の非一時的コンピュータ可読ストレージ媒体。
【請求項１３】
前記動作がさらに、前記ビデオゲームの提示中に前記複数のルールに関連付けられた情報が提示され更新されることを可能にし、かつ前記ビデオゲームの提示中に前記複数のルールが調整されることを可能にするユーザインターフェースを提供することを含む、請求項１１に記載の１つまたは複数の非一時的コンピュータ可読ストレージ媒体。
【請求項１４】
少なくとも１つのオブジェクトルールが、１つまたは複数のオブジェクト間の密度または距離、オブジェクトの外観、オブジェクトの挙動、１つまたは複数のオブジェクトタイプの数量または配分、１つまたは複数の時間、季節または気象条件に関連付けられたオブジェクトの特徴、１つまたは複数のタイプの地形に関連するオブジェクトの特徴、１つまたは複数のタイプの地形に関連するオブジェクトの特徴、１つまたは複数の他のオブジェクトに関連するオブジェクトの特徴、または１つまたは複数の境界もしくは位置に関連するオブジェクトの特徴、の少なくとも１つを指示する、請求項１１に記載の１つまたは複数の非一時的コンピュータ可読ストレージ媒体。
【請求項１５】
少なくとも１つの地形ルールが、１つまたは複数の地形のタイプの数量または配分、地形の外観、斜面の頂上の鋭さ、山の高さ、谷の急峻さ、１つまたは複数の時間、季節または気象条件に関連付けられた地形の特徴、１つまたは複数の境界または位置に関連する地形の特徴、の少なくとも１つを指示する、請求項１１に記載の１つまたは複数の非一時的コンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１５年８月１１日に提出された米国特許出願第１４／８２３，２３０号の利益を主張するものであり、この出願の開示は、参照により本明細書に援用される。
【背景技術】
【０００２】
電子的に提示されるコンテンツアイテム、例えばビデオゲームや他のメディアアイテムは、仮想エリアを提示する場合が多く、これは時には、多様なアクションを行うことができる仮想世界と呼ばれることもある。一部の例では、コンテンツアイテムは、例えば仮想エリアの複雑さを高め、その詳細のレベルを上げることなどによって、その仮想エリアをより現実感のあるように見えるようにする、及び／または実物そっくりに見えるようにすることによってユーザエクスペリエンスを高めることができる。しかしながら残念なことには、仮想エリアの複雑さは、仮想エリアを生み出す、提示する、維持する及び修正するのに要する時間、労力及びリソースをかなり増大させる場合がある。一部の例では、仮想エリアは、多様な異なるタイプの地形、例えば平坦な及び／または建設可能な空間、山、谷、斜面の頂上（例えば断崖）、川、湖、海、砂漠、森及び多くのその他のものなどを含むことによってユーザにとってより興味をひくようにされる場合がある。地形は、例えば木、茂み、岩、雪、芝、魚、鳥、動物、人間、車両、建物及び多くのその他ののものなどの様々なオブジェクトによって埋められる場合がある。
【０００３】
一部の従来のコンテンツ開発技術は、特定のタイプの地形及び／またはオブジェクトを手を使って配置し、仮想エリアに挿入させる必要がある場合があり、これはとりわけより大きなかつより多くの詳細なエリアに関して、極めて時間を消費するプロセスであり得る。さらに、実行中のコンテンツアイテムにおける地形及び／または埋められるオブジェクトのエリアに対する修正は、このコンテンツアイテムを停止させ、再始動する必要がある場合もあり、これによりユーザエクスペリエンスを中断し低下させる場合もある。一部の仮想エリアが実物そっくりに見える別の方法は、１日のうちの異なる時間（例えば朝、日中、夜）、異なる季節（例えば夏と冬）及び異なる気象条件（例えば晴れ、雨及び雪）を含むことによるものである。しかしながらこれらの季節及び気象条件の間での移行は、ユーザに不自然に見えることも多い。例えば、特定のエリアは、真冬から真夏へと直接移行する場合もある。これは、木が葉のない状態から完全に緑になった葉を有するようにすぐに変わるなど予期しない挙動が生じることになり得る。
【０００４】
以下の詳細な説明は、添付の図面と併せて読むことでより良く理解されるであろう。例示する目的のために、本開示の種々の態様の例の実施形態が図面に示されるが、本発明は、開示される特有の方法及び手段に限定されない。
【図面の簡単な説明】
【０００５】
【図１】本開示に従って使用され得る仮想エリアを生成及び操作するための一例のシステムを例示する図である。
【図２】本開示に従って使用され得る一例のサブエリアと関連付けられたコンポーネントを例示する図である。
【図３】本開示に従って使用され得る一例のサーバとクライアントの情報交換を例示する図である。
【図４】本開示に従って使用され得る一例のルールの調整と適用のプロセスを例示する図である。
【図５】本開示に従って使用され得る一例の開発者ユーザインターフェースを例示する図である。
【図６】本開示に従って使用され得る仮想エリアを生成及び操作するための一例のプロセスを例示するフローチャートである。
【図７】本開示に従って使用され得る電子的に提示されるコンテンツを提供するための一例のシステムを例示する図である。
【図８】本開示に従って使用され得る一例のコンピューティングシステムを例示する図である。
【発明を実施するための形態】
【０００６】
仮想エリアの生成及び操作のための技術が本明細書に記載される。記載される技術は、例えば、電子的に提示されるコンテンツアイテム、例えばビデオゲームや他のメディアアイテムなどにおける仮想エリアのために使用されてよい。一部の例では、コンテンツ開発者が、仮想エリアに関連付けられた一揃いのルールを提供し特定することを可能にする１つまたは複数のインターフェースが設けられてよい。この一揃いのルールは、例えば地形ルール、オブジェクトルール及び仮想エリアの他の態様に関連付けられた他のルールを含んでよい。地形ルールは、異なるタイプの地形、例えば平坦な及び／または建設可能な空間、山、谷、斜面の頂上（例えば断崖）、川、湖、海、砂漠、森及び多くのその他のものなどを生成する、配分する及び／または操作するためのルールを含むことができる。地形ルールは、例えば１つまたは複数の地形のタイプの数量または配分、地形の外観、斜面の頂上の急激さ、山の高さ、谷の急峻さ、１つまたは複数の時間、季節または気象条件に関連付けられた地形の特徴、及び１つまたは複数の境界もしくは位置に関連する地形の特徴を指示することができる。オブジェクトルールは、異なるタイプのオブジェクト、例えば木、茂み、岩、雪、芝、魚、鳥、動物、人間、車両、建物及び多くのその他のものなどを生成する、配分する及び／または操作するためのルールを含んでよい。オブジェクトルールは、例えば１つまたは複数のオブジェクト間の密度または距離、オブジェクトの外観、オブジェクトの挙動、１つまたは複数のオブジェクトタイプの数量または配分、１つまたは複数の時間、季節または気象条件に関連付けられたオブジェクトの特徴、１つまたは複数のタイプの地形に関連するオブジェクトの特徴、１つまたは複数の他のオブジェクトに関連するオブジェクトの特徴、または境界もしくは位置に関連するオブジェクトの特徴を指示することができる。
【０００７】
地形ルールは、例えば仮想エリアに関連付けられた地形データを生成するために適用されてよい。オブジェクトルールはその後、仮想エリアに関連付けられた第１のオブジェクトの特徴データを生成するために適用されてよい。一部のケースでは、オブジェクトルールは、地形データに少なくとも一部基づいて仮想エリアに適用される場合もある。例えば特定のオブジェクトは、より高いもしくはより低い密度レベルを有する場合がある、または一部のケースでは、特定のタイプの地形に、またはその付近に配分されないように制限される場合もある。詳細には一部のケースでは、木は、湖や川の中に、及びさらには陸上にも配分されないように制限される場合があり、木は、異なるタイプの地形（例えば平坦な空間、斜面の頂上、山など）において変動する密度レベルを有する場合もある。オブジェクトルールは、時間、季節、気象、オブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに関連付けられた情報に基づいて適用されてよい。第１のオブジェクトデータはこの後、第１のオブジェクトデータ及び地形データに関連付けられた仮想エリアの少なくとも一部の最初のレンダリングを実行するために提供されてよい。オブジェクトルールはその後、仮想エリアに再度適用されて仮想エリアに関連付けられた第２のオブジェクトデータを生成することができる。オブジェクトルールの再適用もまた、時間、季節、気象、オブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに関連付けられた情報に基づいて適用されてよい。第２のオブジェクトデータがこの後、第２のオブジェクトデータ及び地形データに関連付けて仮想エリアの少なくとも一部の第２のレンダリングを実行するために提供されてよい。
【０００８】
一部の例では、マルチプレイヤビデオゲームの場合など、仮想エリアは、その実行が１つまたは複数のサーバと、１つまたは複数のクライアントの間で配信される特定のコンテンツアイテムに対応する場合がある。このような例では、地形ルールが、サーバとクライアント両方によって別々に適用され得るように、地形ルールが、サーバからクライアントに送られる場合がある。地形ルールをクライアントに提供することは、例えばクライアントが地形データを生成することを可能にし、それ故サーバがクライアントに地形データを送信する必要性をなくすことによって有利であり得る。これは時には、帯域幅を保護し、データ送信コストを削減し、クライアント側でのコンテンツアイテムの提示に関連する遅延を緩和することもある。一部の例では、クライアントの他に、サーバも、サーバ側において利用するために地形データを生成するために、別個に地形ルールを適用する場合もある。例えば、サーバは、地形データを利用して、その後オブジェクトルールを適用し、少なくとも一部地形ルールに基づいてオブジェクトデータを生成することができる。サーバ側でのオブジェクトデータの生成は、例えばサーバが、複数の接続されたクライアントから状態更新を受信し、オブジェクトルールを適用する際、この状態更新を利用することができるため、有利であり得る。例えば異なるプレイヤが木を切り倒し、岩を投げ、動物を狩る、または湖から魚を捕る場合、サーバは、この情報を利用して種々のオブジェクトルールを適用し、再適用することができる。
【０００９】
１つまたは複数のルールは、例えばコンテンツアイテムの実行を通して繰り返し適用されてよい。例えばルールは、様々な指定された間隔で、及び／または様々なイベントまたは出来事に応答して繰り返し適用されてよい。ルールを繰り返し適用することは、いくつかの利点を提供することができる。例えば一部のケースでは、１つまたは複数のルールは、コンテンツアイテムを実行する際に生成される及び／または修正されてよい。詳細には、開発者は、１つまたは複数のオブジェクト間の密度または距離を変更したい、またはオブジェクトが配分されるエリアの境界を変更したいと望む場合がある。一部の例では、コンテンツアイテムの実行中にルールを繰り返し適用することによって、コンテンツアイテムの実行の停止及びそれを再始動する必要なしに、新たなまたは調整されたルールをコンテンツアイテムに組み込むことを可能にすることができる。また一部の例では、システムは、１日のうちの時間、１年のうちの時期など種々の時間計測を維持することができ、これにより、様々な季節、１日のうちの段階及び他の時間の段階の間でスムーズな移行を可能にすることができる。
【００１０】
一部の例では、仮想エリアは、グリッド、またはサブエリアの別の集合などの一揃いのサブエリアに分割される場合がある。各々のサブエリアは、１つまたは複数のルールをそれぞれのサブエリア内に適用することができる１つまたは複数の関連付けられたコンポーネントを有することができる。ルールの適用に加えて、関連付けられたコンポーネントはまた、一揃いのルールに関連付けられた情報を他のコンポーネントに報告する、及び／またはそのような情報を他のコンポーネントから受信する場合もある。例えば特定のコンポーネントは、そのそれぞれのサブエリア内でオブジェクトが生成される、削除される、状態が変更される、または別のサブエリアにナビゲートされる、または別のサブエリアからナビゲートされる際に報告することができる。情報は、例えば、そのルールをそれぞれの関連付けられたサブエリア内に適用するために、他のサブエリアに関連付けられたコンポーネントによって使用されてよい。情報はまた、例えば遠隔計測情報として開発者に適用されることで、開発者が、ルールを生成するまたはルールを適合させるなど、コンテンツアイテムに関する決定を行うことを可能にする場合もある。一部の例では、開発者ユーザインターフェースによって、全体的なレベルと、種々の局所的レベル（例えば１つまたは複数のサブエリア、湖、山、村など）の両方においてコンテンツアイテムを実行するために、開発者が更新された遠隔計測情報を閲覧することを可能にすることもできる。
【００１１】
記載される技術を履行するための一部の例のシステムを次に詳細に説明する。具体的には、図１は、本開示に従って使用され得る仮想エリアを生成及び操作するための一例のシステムを例示する図である。示されるように、図１は、開発者コンピュートノード１１０と、コンテンツプロバイダコンピュートノード１２０と、クライアントコンピュートノード１３０Ａ〜Ｎ（以後本明細書では集合的にクライアントコンピュートノード１３０と呼ぶ）とを含む。コンピュートノード１１０、１２０及び１３０は、１つまたは複数の通信ネットワーク、例えば１つまたは複数のローカルエリアネットワーク（ＬＡＮ）及び／またはインターネットなどの１つまたは複数のワイドエリアネットワーク（ＷＡＮ）を利用して通信することができる。
【００１２】
開発者コンピュートノード１１０は、コンテンツアイテムの開発者がコンテンツアイテムの仮想エリアに関する情報を提供し受信することを概ね可能にする開発者ユーザインターフェース１１１を含む。一部のケースでは、開発者ユーザインターフェース１１１は、開発者が仮想エリアに関連付けられた一揃いのルールを提供し、これを調整することを可能にする場合もある。上記に記載したように、この一揃いのルールは、例えば地形ルール、オブジェクトルール及び仮想エリアの他の態様に関連付けられた他のルールを含んでよい。地形ルールは、異なるタイプの地形、例えば平坦な及び／または建設可能な空間、山、谷、斜面の頂上（例えば断崖）、川、湖、海、砂漠、森及び多くのその他のものなどを生成する、配分する及び／または操作するためのルールを含むことができる。地形ルールは、例えば１つまたは複数の地形のタイプの数量または配分、地形の外観、斜面の頂上の急激さ、山の高さ、谷の急峻さ、１つまたは複数の時間、季節または気象条件に関連付けられた地形の特徴、及び１つまたは複数の境界もしくは位置に関連する地形の特徴を指示することができる。オブジェクトルールは、異なるタイプのオブジェクト、例えば木、茂み、岩、雪、芝、魚、鳥、動物、人間、車両、建物及び多くのその他のものなどを生成する、配分する及び／または操作するためのルールを含んでよい。オブジェクトルールは、例えば１つまたは複数のオブジェクト間の密度または距離、オブジェクトの外観、オブジェクトの挙動、１つまたは複数のオブジェクトタイプの数量または配分、１つまたは複数の時間、季節または気象条件に関連付けられたオブジェクトの特徴、１つまたは複数のタイプの地形に関連するオブジェクトの特徴、１つまたは複数の他のオブジェクトに関連するオブジェクトの特徴、または境界もしくは位置に関連するオブジェクトの特徴を指示することができる。開発者ユーザインターフェース１１１は、ルールを提供する、及び調整することを可能にする種々の異なる入力機構を含むことができ、これらの入力機構の一部の例が、図５に描かれる一例の開発者ユーザインターフェースを参照して以下に詳細に記載される。
【００１３】
ルールの提供と調整を組み合わせて、開発者ユーザインターフェース１１１はまた、開発者が仮想エリアに関連付けられた遠隔計測情報を閲覧することを可能にすることができる。遠隔計測情報は、コンテンツアイテムの実行の前、実行中または実行後の任意の地点で提示されてよく、時間枠の任意の前の、現在のまたはこの先の時間に対応する場合がある。遠隔計測情報は、例えば地形、オブジェクト、プレイヤ、時間、季節、気象及び仮想エリアの他の特徴に関連付けられた情報を含む場合がある。一部の例では、遠隔計測情報は、例えば仮想エリア内に配置された仮想カメラから見られるような、仮想エリアまたは仮想エリアの任意の部分のグラフィカルな表示を含む場合もある。種々のナビゲーション制御装置によって、開発者が仮想エリアの異なる部分を自由に移動することを可能にすることができる。提示される遠隔計測情報は、例えば任意の仮想エリアルールに関連付けられた詳細、例えばプレイヤ、オブジェクト及び／または地形の大きさ、密度、距離、密集度、特徴、場所、境界、斜面の頂上の急激さ、山の高さ、谷の急峻さ及び多くのその他のものなどを含む場合がある。遠隔計測情報は、仮想エリアの任意の全体のまたは局所的な部分の全体にわたって集約されてよい、及び一部のケースでは、ユーザインターフェースにグラフィカルに描かれる仮想エリアの一部に相当する場合もある。遠隔計測情報は、例えばコンテンツの実行の前、実行中または実行後にルールを提供する及び／または調整する目的のために開発者によって使用されてよい。
【００１４】
ルール及び仮想エリアに関連付けられた他の情報は、開発者コンピュートノード１１０によって提供され、プロバイダコンピュートノード１２０によって受信されてよく、このプロバイダコンピュートノード１２０は、受信したルールと、関連付けられた情報をルール情報１２５として記憶することができる。一般に、コンテンツプロバイダコンピュートノード１２０は、例えば１つまたは複数のサーバを含んでよく、例えばクライアント１３０と組み合わせて、電子的に提示されるコンテンツアイテム、例えばビデオゲーム、大規模多人数参加型オンライン（ＭＭＯ）ビデオゲームまたは他のメディアアイテムを実行することができる。図１の例では、コンテンツプロバイダ１２０は、コンテンツアイテムを実行する際に使用するための仮想エリアの効率的な生成及び操作を可能にする４つのシステム１２１〜１２４を含む。コンテンツプロバイダ１２０はまた、これらの及び他の目的のために任意のこれより少ないまたは追加のシステムまたはコンポーネントを含む場合もある。
【００１５】
詳細には、地形システム１２１は概ね、仮想エリアに関連付けられて使用するための地形データを生成、修正及び供給することを可能にする。上記に記載したように、この地形データは、例えば１つまたは複数の地形ルールを仮想エリアに適用することによって生成及び修正されてよい。一部の例では、地形データは、どのタイプの地形（例えば平坦な空間、山、谷、斜面の頂上、川、湖、海など）がどの空間の領域を占めるか、地形の特定のタイプまたは地形の一部の特徴（例えば高さ、急激さ、急峻さ、色、質感、気象に関連する特徴、季節の特徴、１日のうちの時間の特徴）及び仮想エリアの地形に関連付けられた他の情報の指示を含む場合がある。
【００１６】
オブジェクト配分システム１２２は概ね、オブジェクトの個体数を維持し、環境の変化に対応し、仮想エリアに関連付けられて使用するためのオブジェクトデータの生成、修正及び供給を可能にする。上記に記載したように、このオブジェクトデータは、例えば１つまたは複数のオブジェクトルールを仮想エリアに適用することによって生成及び修正されてよい。一部のケースでは、オブジェクトルールは、地形データに少なくとも一部基づいて仮想エリアに適用されてよい。詳細には、特定のオブジェクトは、より高いもしくはより低い密度レベルを有する場合がある、または一部のケースでは、特定のタイプの地形に、またはその付近に配分されないように制限される場合もある。上記に記載されるように一部のケースでは、木は、湖や川の中に、及びさらには陸上にも配分されないように制限される場合があり、木は、異なるタイプの地形（例えば平坦な空間、斜面の頂上、山など）において変動する密度レベルを有する場合もある。一部の例では、オブジェクトデータは、どのオブジェクトがどの位置を占めるのか（例えば座標値値または他の場所の値を利用して）、オブジェクトの移動の速度及び方向、他のオブジェクトの特徴（例えば色、質感、大きさ、形状、回転）の指示を含む場合がある。一部の例では、オブジェクトデータは、例えば、季節で異なり得る木の葉の、大きさ、形状、及び量などの、季節の特徴の指示を含む場合もある。オブジェクトデータはまた、気象に関連する特徴、１日のうちの時間の特徴及び種々のオブジェクトに関する他の特徴を含む場合もある。オブジェクトデータはまた、いつオブジェクトが加えられるか、除去されるか、場所を変更するか、またはその他の場合、修正されるかに関する情報を含む場合もある。
【００１７】
時間システム１２３は概ね、仮想エリアに関連付けられた様々な時間、季節及び気象条件に関する情報を保持しこれを供給する。上記に記載したように、地形及びオブジェクトは、１日のうちの時間、１年のうちの時期（例えば季節）及び異なる気象条件に応じて変化する外観及び他の特徴を有する場合がある。一部の例では、時間システム１２３は、仮想エリアに関連付けられた１日のうちの時間及び／または１年のうちの時期を保持する場合もある。仮想エリアに関連付けられた１つまたは複数のルールは、１日のうちの時間及び／または１年のうちの時期に少なくとも一部基づいて適用されてよい。１日のうちの時間及び／または１年のうちの時期は、所望される任意の粒度のレベルで（例えば特定の秒、時間、日、週、月、季節または他の時間の変化に対して測定された）維持されてよい。一部の例では、１年のうちの時期は、特定の季節の単なる指示より精細な粒度を提供することができる。例えば１年のうちの時期は、特定の日、月を指す場合がある、または一部のケースでは、１つの季節の特定のピークまたは中心点からずれた値を指す場合もある。加えて、オブジェクト及び地形ルールはまた、異なる日、月または季節のずれに関して異なる外観と、他の特徴を指す場合もある。これは、季節間でのスムーズな移行が見られることを可能にすることができる。加えて、一部の例では、時間システム１２３は、単独でまたはナビゲーションシステム１２４３と組み合わせて、進行する気象システム、例えば雨、雪及び曇りシステムなどの生成に関与する場合もある。時間システム１２３及び／またはナビゲーションシステム１２４は、そのようなシステムを特定の場所に生成し、種々の速度で種々の方向にシステムを動作させることができる。時間システム１２３及び／またはナビゲーションシステム１２４は、進行する気象システムの大きさ、強度、速度、方向及び他の特徴を調整することもできる。
【００１８】
ナビゲーションシステム１２４は概ね、例えば発射物、人間、動物、魚、鳥、車両及び気象システムなどの仮想エリア全体にわたって移動し得る種々のオブジェクトを誘導するのに関与している。ナビゲーションシステム１２４は、例えば所望される場合、衝突を避けるような操作を行い、所望される場合、オブジェクト間での衝突に対応するような操作を行うことができる。上記に記載したように、オブジェクトの移動に関連付けられた情報は、オブジェクト配分システム１２２によって使用するために提供される場合もある。
【００１９】
一部の例では、コンテンツプロバイダ１２０によって生成された地形データ及び／またはオブジェクトデータは、クライアント１３０に伝送されてよい。また一部の例では、クライアント１３０は、地形データ及び／またはオブジェクトデータを利用して、仮想エリアまたは仮想エリアの任意の一部のグラフィカルな描写をレンダリングする場合もある。よって一部の例では、クライアント１３０は、仮想エリアに関連付けられた画像のレンダリングのために１つまたは複数の画像処理装置（ＧＰＵ）を含むことができる。一部の例では、地形データをクライアント１３０に送信することはコンテンツプロバイダ１２０にとって必須ではない場合もある。むしろコンテンツプロバイダは、地形ルールをクライアント１３０に送信し、クライアント１３０は、この地形ルールに基づいてその独自の地形データを生成する場合もある。
【００２０】
一部の例では、仮想エリアのレンダリングは時には、コンテンツプロバイダ１２０とクライアント１３０の間で分散される場合もある。よってそのような例では、クライアント１３０と、コンテンツプロバイダ１２０の両方が、１つまたは複数のＧＰＵを含むことができる。さらに他の例では、コンテンツアイテムは、コンテンツプロバイダ１２０によって完全にレンダリングされてよく、レンダリングされた画像は、１つまたは複数のネットワークを介してコンテンツプロバイダ１２０からクライアント１３０へと伝送されてよい。
【００２１】
クライアント１３０は概ね、ユーザ入力を受信し、このユーザ入力に関連付けられた情報をコンテンツプロバイダ１２０に伝送することができる。そのようなユーザ入力には、例えばプレイヤの動き及びアクション（例えば武器を作動させる、木を切り倒す、新たな場所に走るなど）が含まれてよい。このようなクライアント入力情報は、例えばオブジェクトデータを更新及び修正するためにオブジェクト配分システム１２２によって使用されてよい。例えばプレイヤが木を切り倒す、または魚を捕らえた場合、オブジェクト配分システム１２２は、場合によって異なる場所で、かつ異なる特徴を有して、新しい木、魚または他のオブジェクトを加えることを決定することができる。
【００２２】
上記に記載したように、コンテンツプロバイダ１２０は、仮想エリアを生成及び操作するために、例えばシステム１２１〜１２４などの種々のシステムを含んでよい。一部の例では、仮想エリアは、複合的な地形とオブジェクトの配分によって大きな空間を表す場合もある。このようなケース及びその他のケースでは、仮想エリアを複数のサブエリアに分割し、１つまたは複数のコンポーネントを割り当てることで、サブエリアの各々に関連付けられた種々の操作に対応する場合もある。一部の例では、コンポーネントは、他のサブエリアに割り当てられたコンポーネントと共に同時にまたは部分的に同時に動作を行うことができる。これは、例えば仮想エリアに関連付けられた種々の動作が、互いに平行して、または一部平行して分散され、実行されることを可能にすることによって効率を改善することができる。一部の例では、各々のサブエリアに関連付けられたコンポーネントは、メッセージを同時に受信し、それに応答することができ、また他のアクターにメッセージを送信することができる１つまたは複数のアクターを含む場合がある。一部の例では、コンポーネントは、その関連付けられたサブエリア内に複数のルールのうちの１つまたは複数を適用し、この複数のルールのうちの１つまたは複数の、その関連付けられたサブエリアへの適用に関連付けられた情報を報告することができる。
【００２３】
図２は、本開示に従って使用され得る一例のサブエリアと、関連付けられたコンポーネントとを例示する図である。図２に示されるように、一例の仮想エリア２１０は、１６個のサブエリア２１１〜２１６に分割される。図２に示される仮想エリア２１０及び１６個のサブエリア２１１〜２１６は、単なる非制限的な例であることを理解されたい。仮想エリア及び／またはサブエリアは、必ずしも正方形または矩形に成形された領域で構成される必要はなく、任意の所望されるサイズまたは形状を利用して規定されてよい。加えて、サブエリアは互いと同一サイズでなければならないという条件は全くない。
【００２４】
図２は、それぞれのサブエリア２１１に割り当てられたサブエリアコンポーネント２４１を示す。図２には示されていないが、理解されるべきように、他のサブエリアは、そのそれぞれのサブエリアに関連付けられた他の割り当てられたコンポーネントを含む場合がある。示されるようにサブエリアコンポーネント２４１は、地形に関連する操作を行うための地形コンポーネント２４１Ａと、オブジェクト配分に関連する操作を行うためのオブジェクト配分コンポーネント２４１Ｂとを含む。コンポーネント２４１はまた、任意の数の追加のコンポーネントを含む場合もある。地形コンポーネント２４１Ａ及びオブジェクト配分コンポーネント２４１Ｂは共に、サブエリア２１１に関連付けられているが、地形の評価とオブジェクト配分の評価は、同一のサブエリアを利用して行うべきであるという条件は全くないことに留意されたい。一部の例では、仮想エリアは、地形操作、オブジェクト配分操作または他の操作の目的のために、異なるサブエリアに分割される場合（または全く分割されない場合）がある。
【００２５】
図２における例では、サブエリアコンポーネント２４１は、ルール情報２３１、時間、季節及び気象情報２３２、遠隔計測情報２３３，地形データ２３４、オブジェクトデータ２３５、ユーザ入力データ２３６及びナビゲーションエータ２３７を受信及び／または提供する。ルール情報２３１は、例えば全体的にまたは部分的にサブエリア２１１に含まれるまたはそれに隣接する湖、または他のタイプの空間に適用可能であるなど、全体的に仮想エリア２１０に適用可能である、及び／または局所的にサブエリア２１１に適用可能である種々のルールを示すことができる。そのようなルールの例は上記に詳細に記載されるため、ここでは繰り返されない。ルール情報２３１はまた、ルールの変更、追加及び削除を含めた、種々のルールの調整を含んでよい。時間、季節及び気象情報２３２は、例えば１日のうちの特定の時間、１年のうちの時期、季節、季節的なずれ及び進行する気象システムの位置及び強度ならびに他の情報などの情報を含んでよい。
【００２６】
一部の例では、ナビゲーション情報２３７は、仮想エリア２１０全体にわたって移動する、１つまたは複数の他のサブエリアからサブエリア２１１に進入する、及び／またはサブエリア２１１から１つまたは複数の他のサブエリアに移動するオブジェクトに関する情報を含んでよい。また一部の例では、ユーザ入力データ２３６は、１つまたは複数のクライアントによって行われるアクション、例えば木を切り倒す、魚を捕る及び種々の他のアクションなどに関する情報を含んでよい。遠隔計測情報２３３は、例えば１つまたは複数の他のサブエリアなどの種々のソース、地形システム１２１、オブジェクト配分システム１２２、時間システム１２３、ナビゲーションシステム１２４、クライアント１３０及び他のソースから受信した遠隔計測情報を含んでよい。遠隔計測情報２２３はさらに、様々な全体的レベル及び／または局所的（例えばサブエリア）レベルで集約された地形の総数、位置、及び特徴、オブジェクトなどの仮想エリア２１０の任意の態様、または仮想エリア２１０内の任意の他のエンティティ、に関する情報を含む場合もある。遠隔計測情報はまた、時間、季節及び気象情報（そのような情報は、別個の要素２３２を利用して図２に具体的に指摘されるが）を含む場合もある。
【００２７】
地形コンポーネント２４１Ａは、情報２３１〜２３７を利用してサブエリア２１１に関する地形データ２３４を生成し更新することができる。上記に記載したように、地形データは、どのタイプの地形がどの空間の領域を占めるか、地形の特定のタイプまたは地形の一部の特徴、及び特定のエリアまたはサブエリアの地形に関連付けられた他の情報の指示を含む場合がある。
【００２８】
オブジェクト配分コンポーネント２４１Ｂは、ユーザ情報２３１〜２３７ならびに地形コンポーネント２４１Ａからの地形データを利用してサブエリア２１１に関するオブジェクトデータ２３５を生成し更新することができる。上記に記載したように、オブジェクトデータは、どのオブジェクトがどの位置を占めるのか、オブジェクトの移動の速度及び方向、ならびに他のオブジェクトの特徴（例えば色、質感、大きさ、形状、回転）の指示を含む場合がある。例えば、特定のルールが一定の数の魚が湖に維持されることを要求するシナリオを考える。オブジェクト配分コンポーネント２４１Ｂが、特定のルールが最後に適用されたその時間の中で、２匹の魚がサブエリア２１１内でサメによって食べられたと判断すると仮定する。オブジェクト配分コンポーネント２４１Ｂはまた、特定のルールが最後に適用されたその時間の中で、隣接するサブエリア２１２からサブエリア２１１内に魚が泳いで入り込んだと判断する。この情報に基づいて、オブジェクト配分コンポーネント２４１Ｂは、特定のルールが適用された最後のときよりも１匹少ない魚がサブエリア２１１にいると判断することができる。従って、この特定のルールを満たすために、配分コンポーネント２４１Ｂは、サブエリア２１１内のどこか特定の場所で１匹の新しい魚を発生させることを判断することができる。
【００２９】
情報２３１〜２３７を入力として受信することに加えて、コンポーネント２４１はまた、１つまたは複数の他のサブエリアへの、地形システム１２１への、オブジェクト配分システム１２２、時間システム１２３、ナビゲーションシステム１２４、クライアント１３０及び他のソースへの出力として情報２３１〜２３７を提供することもできる。例えば入力コンポーネント２４１は、地形データ及びオブジェクトデータを生成し、更新し、上記に記載したように種々の他のコンポーネントに提供することができる。別の例として、コンポーネント２４１によって出力された遠隔計測情報は、仮想エリア２１０全体を移動する、及びサブエリア２１１を出て１つまたは複数の他のサブエリア内の中に入るオブジェクトに関する情報を含む場合もある。コンポーネント２４１によって出力された遠隔計測情報２２３はさらに、地形の総数、位置及び特徴などのサブエリア２１１に関する任意の態様、またはサブエリア２１１内の任意の他のエンティティに関する情報を含む場合もある。
【００３０】
よって上記に記載したように、例えば異なるサブエリアに関連付けられたものなどの種々のコンポーネントを使用して、地形データ、オブジェクトデータ及び他のデータを生成及び更新することができる。１つまたは複数のＧＰＵ及び／または他の画像処理コンポーネントに提供されることによるなどして地形データ及びオブジェクトデータを利用して、仮想エリアの一部をレンダリングすることができる。また上記に記載したように、一部の例では、仮想エリアに関連付けられたレンダリング動作の少なくとも一部は、クライアントデバイスで行われる場合もある。一部のケースでは、コンテンツプロバイダ（例えばサーバ）は、上記に記載したように仮想ルールを適用して、地形データと、オブジェクトデータの両方を生成し、接続されたクライアントに伝送する場合もある。クライアントはその後、地形データとオブジェクトデータを受信し、受信した地形データとオブジェクトデータに少なくとも一部基づいて、仮想エリアをレンダリングすることができる。
【００３１】
一部の例では、地形データとオブジェクトデータをサーバからクライアントに伝送することは、それが、クライアント側で仮想エリアを適用し、地形データ及びオブジェクトデータを生成する必要がなく、クライアントが仮想エリアをレンダリングすることを可能にするため、有利であり得る。しかしながら一部の他の例では、サーバからクライアントに伝送されるデータの量を削減し、それによりネットワーク帯域幅の利用、伝送コスト及び潜在的な通信遅延を抑えることが望ましい場合もある。サーバからクライアントに伝送させるデータの量を削減するための１つの技術は、サーバからクライアントに地形ルールを伝送し、クライアントが、伝送された地形ルールを利用してクライアント側で地形データを生成することを可能にすることを伴う。一部の例では、これは、地形ルールが、地形データより少ないデータ構成されることが多いことから、伝送されるデータの量を削減することができる。
【００３２】
図３は、本開示に従って使用され得る一例のサーバと、クライアントの情報交換を例示する図である。示されるように、図３の上部部分は、地形データ３１２Ａがサーバ３５０Ａからクライアント３６０Ａに伝送される通信３００Ａを描いている。より広い詳細では、サーバ３５０Ａが地形ルール３１１Ａを適用して地形データ３１２Ａを生成するのが見られる。サーバ３５０Ａはその後、地形データ３１２Ａをクライアント３６０Ａに伝送し、クライアントが地形データ３１２Ｂを他の受信したデータ（図示せず）と組み合わせて利用して、仮想エリアまたはその任意の一部をレンダリングすることができる。
【００３３】
対照的に、図３の下部は、地形データ３１１Ｂがサーバ３５０Ｂからクライアント３６０Ｂに伝送される通信３００Ｂを描いている。より広い詳細では、サーバ３５０Ｂが地形ルール３１１Ｂを適用して地形データ３１２Ｂを生成するのが見られる。しかしながら地形データ３１２Ｂを生成するのではなく、サーバ３５０Ｂが代わりに、地形ルール３１１Ｂをクライアント３６０Ｂに伝送する。クライアント３６０Ｂは、その後、伝送された地形ルールを利用して地形データ３１２Ｂのクライアントヴァージョンを生成する。クライアント３６０Ｂはその後、クライアントヴァージョンの地形データ３１２Ｂを他の受信したデータ（図示せず）と組み合わせて、仮想エリアまたはその任意の一部をレンダリングすることができる。
【００３４】
図３に示されるように、伝送された地形ルール３１１Ｂは、伝送された地形データ３１２Ａよりかなり小さい量を含む（地形ルール３１１Ｂが、地形データ３１２Ａより図３では小さい形状を有するように示されることによって指示されるように）。図３に示されるように、地形データ３１２Ａと比べたときの地形ルール３１１Ｂに含まれるデータの量の差は、点線で描かれた矩形要素３１３によって示され、これは、地形データ３１２Ａとは対照的に地形ルール３１１Ｂを伝送することによって形成された節約された通信帯域幅の量に相当する。
【００３５】
通信３００Ａと、通信３００Ｂの両方のケースにおいて、サーバ３５０が地形データを生成することができることに留意されたい。通信３００Ｂのケースでは、地形データは、それがクライアントに伝送されないにしても、サーバ３５０Ｂ側で生成され、地形ルールが別々に適用され、地形データは、サーバ３５０Ｂと、クライアント３６０Ｂの両方によって別々に生成されることになる。図３における例では、サーバ３５０は、地形データを利用して、その後オブジェクトルールを適用し、地形データに少なくとも一部基づいてオブジェクトデータを生成することができる。上記に記載したように、サーバ側でのオブジェクトデータの生成は、例えばサーバが、種々のタイプの情報（例えばクライアント入力、ナビゲーションデータ、時間、季節及び気象情報など）及び／またはルールに対する調整の変更を受信することができ、情報及びルールの調整を利用して、オブジェクトルールを適用する及び／または再度適用することができる。
【００３６】
よって、上記に記載したように、地形ルール、オブジェクトルール及び場合によって他のルールが、例えばサーバ、クライアント及び場合によって他のコンポーネントによって、コンテンツアイテムの実行中に適用されてよい。上記に記載したように、種々のコンポーネントは、１つまたは複数のルールを仮想エリアまたはその任意の一部に繰り返し適用し、再度適用することができる。コンテンツアイテムの実行中に仮想エリアに対してルールを繰り返し適用することは、いくつかの利点を提供することができる。例えば一部の例では、コンテンツアイテムの実行中にルールを繰り返し適用することによって、コンテンツアイテムの実行の停止及びそれを再始動する必要なしに、新たなまたは調整されたルールをコンテンツアイテムに組み込むことを可能にすることができる。図４は、本開示に従って使用され得る一例のルールの調整と適用のプロセスを例示する図である。図４に示されるように、オリジナルルール４１０は、仮想エリア内の特定の湖が、５０％のカジキと、５０％のマグロの魚の個体数の分布を維持するように特定する。図４では、カジキは、文字Ｍによって印が付けられた円として描かれ、マグロは、文字Ｔによって印が付けられた円として描かれる。
【００３７】
図４は、オリジナルルール４１０が施行されている所定の時間内の種々の地点で湖で魚を捕っている釣り人４００の３つの描写４１０Ａ〜４１０Ｃを示している。詳細には、描写４１０Ａは、釣り人４００が何らかの魚を捕らえる前の所定の時間における最も早い地点に相当する。描写４１０Ａに示されるように、湖には、２匹のカジキと、２匹のマグロがおり、これらは、オリジナルルール４１０で特定される５０パーセントのカジキと、５０パーセントのマグロの配分に相当する。描写４１０Ｂに相当する所定の時間内のその後の地点において、釣り人４００は、カジキを捕まえる（釣り人４００につながっているつり竿の先端にいるカジキによって表されるように）。これにより、湖の中のカジキの数が減少するため、湖はもはやオリジナルルール４１０で特定される５０パーセントのカジキと、５０パーセントのマグロの配分とは一致しない。描写４１０Ｃは、オリジナルルール４１０が湖に再度適用された後のその後の時間に相当する。描写４１０Ｃに示されるように、描写４１０Ｂにおいて釣り人によって捕らえられたカジキの代わりを補うために新たなカジキを湖の中に発生させ、湖をオリジナルルール４１０で特定される５０パーセントのカジキと、５０パーセントのマグロの配分と一致するように戻す。
【００３８】
また図４に示されるように、所定の時間におけるその後の地点は描写４１０Ｃに相当し、開発者は、オリジナルルール４１０を修正することで、修正後のルール４２０が生まれることになる。詳細には、修正後のルール４２０は、仮想エリア内の湖が２５パーセントのカジキと、７５パーセントのマグロの魚の個体数を維持することを特定する。図４は、修正後のルール４２０が施行されている所定の時間内の種々の地点で湖で魚を捕っている釣り人４００の３つの描写４２０Ａ〜４２０Ｃを示している。詳細には、描写４２０Ａは、ルールの修正の直後であり、かつ修正後のルールが適用される前の所定の時間内の特定の地点に相当する。したがって修正後のルール４２０はまだ適用されていないため、魚の個体数は引き続き２匹のカジキと、２匹のマグロを含んでおり、ちょうどそれは、描写４１０Ｃにおけるルール修正の直前のようである。描写４２０Ｂに相当する所定の時間内のその後の地点では、釣り人４００は、もう一度別のカジキを捕らえている。これにより再び、湖の中のカジキの数は減少し１匹のカジキになる。しかしながら描写４２０Ｂでは、修正後のルール４２０はまだ適用されていないことに留意されたい。描写４２０Ｃは、修正後のルール４２０が湖に適用された後のその後の時間に相当する。描写４２０Ｃに示されるように、描写４２０Ｂにおいて釣り人に捕まったカジキの代わりを補うために新たなマグロを湖の中に発生させる。描写４２０Ｃにおける新たなマグロの発生により、マグロの個体数が３匹まで増加し、カジキの個体数は１匹のままである。この３対１のツナとマグロの比によって、湖を修正後のルール４２０で特定される２５パーセントのカジキと、７５パーセントのマグロの配分と一致させる。
【００３９】
こうして、図４に示される実例は、例えばプレイヤ入力及び他のイベントによって引き起こされるものなどの環境における動的な変化を自動的に修正するために、どのようにしてルールを適用させることができるか、及び再適用させることができるかの一部の例を提供する。加えて、図４に示される実例は、修正後のルールに関連付けられた変化、及び環境における動的な変化を自動的に修正するために、どのようにしてルールを修正し、適用することができるかの一部の例を提供する。さらに、ルールの繰り返される適用、及びルールの修正に対して自動的に修正する及び／または調整する能力によって、コンテンツアイテムの実行中であっても、コンテンツアイテムの実行を停止させたり、再始動させたりせずにルールを修正することを可能にすることができる。詳細には、図４における矢印４１５によって示されるように、オリジナルルール４１０と修正後のルール４２０の間の移行は、コンテンツアイテムの実行を停止させたり再始動させることを必要としない。上記に記載したように、一部の従来のコンテンツアイテムでは、特定のオブジェクトが、仮想エリア内の特定の地点において開発者によって手動で挿入されることを要求する場合があり、この手動の挿入は、実行中のコンテンツアイテムの停止及び再始動を必要とする場合もある。対照的に、本明細書に記載されるルールに基づいた技術は、開発者に特定の位置における手動でのオブジェクトの挿入を要求することはなく、これらの及びその他の理由のために、実行中のコンテンツアイテムを停止させたり再始動させることなく上記に記述した利点を達成することが可能である。
【００４０】
よって、上記に記載したように、開発者は、コンテンツアイテムの実行前、実行中及び実行後に仮想エリアに関連付けられたルールを提供し、調整することができる。一部の例では、例えばコンテンツアイテムの実行中にルールに関連付けられた情報を提示させ、更新することを可能にし得る、及びコンテンツアイテムの実行中にこのルールを調整することを可能にし得る開発者ユーザインターフェースが提供される。図１に示されるような一部のケースでは、開発者ユーザインターフェースは、開発者によって操作されるコンピュートノード上に提示されてよく、情報を入力し、コンテンツプロバイダ及び／または１つまたは複数のサーバに提供することを可能にすることができる。一部の例では、開発者ユーザインターフェースが、開発者が任意の所望される全体的レベル及び／または局所的レベルで仮想エリア全体を自由に移動することを可能にする場合もある。開発者ユーザインターフェースはまた、開発者が、任意の所望される地点全体にわたって及び／または任意の所望される時間の範囲を通して地形、オブジェクト、プレイヤ、気象システム及び場合によって他のエンティティを閲覧することを可能にする。開発者ユーザインターフェースはまた、実行中のコンテンツアイテム、ならびにまだ始まっていないまたは実行が完了したコンテンツアイテムにおけるエリアにおいても閲覧したり調整したりすることを可能にすることもできる。
【００４１】
図５は、本開示に従って使用され得る一例の開発者ユーザインターフェース５００を例示する図である。示されるように、開発者ユーザインターフェース５００は、仮想エリア５１０またはその任意の一部を閲覧することを可能にする仮想エリアビューアー５０５を含む。ナビゲーション制御装置５０６によって、開発者が、例えば北、南、東及び西方向に、またはその任意の組み合わせで、仮想エリア５１０全体を自由に移動することを可能にすることができる。ズームイン制御装置５０７及びズームアウト制御装置５０８によって、開発者が、仮想エリア５１０の種々の部分でのズームイン及びズームアウトすることを可能にすることができる。上記に記載したように、仮想エリアビューアー５０５によって、実行中のコンテンツアイテムならびにまだ始まっていないまたは実行が完了したコンテンツアイテムにおいて地形、オブジェクト、プレイヤ、気象条件及び場合によって他のエンティティを閲覧することを可能にすることができる。
【００４２】
開発者ユーザインターフェース５００はまた、一例の制御パネル５２０を含んでおり、これは一例の時間制御装置５２１と、一例の地形制御装置５２２と、一例のオブジェクトセレクタ５２３と、一例のオブジェクト制御装置５２４とを含む。一部の例では、制御装置５２１、５２２及び５２４の各々は、それぞれの値を閲覧したり調整したりするのを可能にする、例えばスライダ、ノブなどの１つまたは複数の制御装置を含む場合がある。制御パネル５２０内での制御／値の調整によって、仮想エリアビューアー５０５内で仮想エリア５１０に対してそれぞれの調整を行わせることができ、また一部のケースでは、実行中のコンテンツアイテムまたはまだ実行されないコンテンツアイテム内で仮想エリアに適用させることもできる。図５における例では、一例の時間制御装置５２１は、１日のうちの時間を閲覧し調整するための１日のうちの時間の制御装置５２１Ａと、１年のうちの時期を閲覧し調整するための１年のうちの時期の制御装置５２１Ｂとを含む。例えば開発者は、１年のうちの時期の制御装置５２１Ｂを冬の時期の時間から夏の時間へと調整することができ、そのような調整は、例えば木に葉を付け加える、芝を加える、太陽の位置を変える、日中の時間を延ばすなどによって、仮想エリアビューアー５０５内での（及び、一部のケースでは実行中またはまだ実行されなコンテンツアイテムにおいても）仮想エリア５１０の描写を冬から夏へと変更させることができる。
【００４３】
図５における例では、地形制御装置５２２は、山の高さの制御装置５２２Ａと、斜面の頂上の急激さの制御装置５２２Ｂと、谷の急峻さの制御装置５２２Ｃとを含む。開発者は、山の高さの制御装置５２２Ａを調整して、例えば全体的レベルでまたは任意の局所的レベルで山の頂上をより高い高さまで上昇させる、またはより低い高さまで下げることができる。開発者は、斜面の頂上の急激さの制御装置５２２Ｂを調整して、例えば全体的レベルでまたは任意の局所的レベルで斜面の頂上をある程度の急激さで上昇させる。開発者は、谷の急峻さの制御装置５２２Ｃを調整して、例えば全体的レベルでまたは任意の局所的レベルで谷をより大きな深さまで下げる、またはより小さい深さまで上昇させるようにすることができる。上記に記載したように、このような調整によって仮想エリアビューアー５０５内での仮想エリア５１０の描写のそれぞれの変更を生じさせることができ、また一部のケースでは、実行中またはまだ実行されないコンテンツアイテム内での仮想エリアに対するするそれぞれの変更も生じさせることができる。
【００４４】
一例のオブジェクトセレクタ５２３によって、例えば挿入、閲覧及び調整のために種々のオブジェクトを選択することができる。図５における例では、オブジェクトセレクタ５２３は、ツリーセレクタ５２３Ａと、ロックセレクタ５２３Ｂとを含む。多くの他の異なるオブジェクトが開発者ユーザインターフェースを利用して選択され、仮想エリア内に含まれる可能性があることを理解されたい。オブジェクトセレクタ５２３の一方の選択によって、例えばオブジェクト制御装置５２４を介して、選択されたオブジェクトタイプに関する特性を制御することを可能にすることができる。オブジェクト制御装置５２４は、密度制御装置５２４Ａ、距離制御装置５２４Ｂ及び密集度制御装置５２４Ｃを含む。一例として、開発者は、ツリーセレクタ５２３Ａを選択し、その後密度制御装置５２４Ａを調整することで木の密度を修正し、距離制御装置５２４Ｂを調整することで、木の間の距離を修正し、密集度制御装置５２４Ｃを調整することで木の密集度を修正することができる。このような調整はまた、全体的レベルまたは任意の局所的レベルで適用されてよく、仮想エリアビューアー５０５内での仮想エリア５１０の描写のそれぞれの変更を生じさせ、また一部のケースでは、実行中またはまだ実行されないコンテンツアイテム内での仮想エリアに対するそれぞれの変更も生じさせることができる。
【００４５】
図６は、本開示に従って使用され得る仮想エリアを生成及び操作するための一例のプロセスを例示するフローチャートである。示されるように、図６の左側の動作は、１つまたは複数のサーバによって行われるサーバ動作６０１であり、図６の右側における動作は、１つまたは複数のクライアントによって行われるクライアント動作６０２である。動作６１０において、地形ルール及びオブジェクトルールを含む、仮想エリアに関連付けられた一揃いのルールが受信される。一部のケースでは、この一揃いのルールは、例えば図５の一例の開発者ユーザインターフェース５００などの開発者ユーザインターフェースを利用して開発者から受信されてよい。上記に記載したように、地形ルールは、異なるタイプの地形、例えば平坦な及び／または建設可能な空間、山、谷、斜面の頂上（例えば断崖）、川、湖、海、砂漠、森及び多くのその他のものなどを生成する、配分する及び／または操作するためのルールを含むことができる。地形ルールは、例えば１つまたは複数の地形のタイプの数量または配分、地形の外観、斜面の頂上の急激さ、山の高さ、谷の急峻さ、１つまたは複数の時間、季節または気象条件に関連付けられた地形の特徴、及び１つまたは複数の境界もしくは位置に関連する地形の特徴を指示することができる。オブジェクトルールは、異なるタイプのオブジェクト、例えば木、茂み、岩、雪、芝、魚、鳥、動物、人間、車両、建物及び多くのその他のものなどを生成する、配分する及び／または操作するためのルールを含んでよい。オブジェクトルールは、例えば１つまたは複数のオブジェクト間の密度または距離、オブジェクトの外観、オブジェクトの挙動、１つまたは複数のオブジェクトタイプの数量または配分、１つまたは複数の時間、季節または気象条件に関連付けられたオブジェクトの特徴、１つまたは複数のタイプの地形に関連するオブジェクトの特徴、１つまたは複数の他のオブジェクトに関連するオブジェクトの特徴、または境界もしくは位置に関連するオブジェクトの特徴を指示することができる。
【００４６】
動作６１２において、１つまたは複数のサーバが、例えば地形ルールを通信ネットワークを介して伝送するなどによって地形ルールを１つまたは複数のクライアントに提供する。動作６１４において、１つまたは複数のクライアントが地形ルールを受信し、動作６１６において１つまたは複数のクライアントがクライアント地形データを生成する。加えてサーバ動作６０１に戻って参照すると、動作６１８において、１つまたは複数のサーバが、地形ルールを適用してサーバ地形データを生成するのが見られる。地形ルールは、例えば、サイズ、形状及び他の特徴などの仮想エリアの特徴に少なくとも一部基づいて地形データにおいて特定されたパラメータを適用することによって適用されてよい。例えば一部のケースでは、地形ルールの適用は、異なるタイプの地形を仮想エリアの様々な部分に割り当てることを含んでよい。これは、例えば山を仮想エリア内の特定の場所に割り当てること、谷を仮想エリア内の他の場所に割り当てること、さらに他の場所に平坦な空間及び／または斜面の頂上を割り当てること、等を含んでよい。こうして、地形ルールの適用は、様々なタイプの地形に関する座標値、境界及び／または他の位置情報を特定することを含んでよい。地形ルールの適用はまた、地形の特定の部分の属性を地形の他の部分に対して特定することも含んでよい。斜面の頂上の急激さが増大する場合、山、谷及び／または平坦な空間などの地形の他の領域のサイズ及び／または高さを増大させる及び／または減少させる場合がある。一部の例では、地形ルールは、例えば、時間、季節及び気象情報に基づいて適用される場合もある。よって一部の例では、地形ルールの適用は、雪、雨、または他の気象システムに関連する特定の地形に、雪に囲まれた場所、水たまり及び／または他の特徴を加えることを含む場合がある。上記に記載したように、一部の例では、地形データは、どのタイプの地形（例えば平坦な空間、山、谷、斜面の頂上、川、湖、海など）がどの空間の領域を占めるか、地形の特定のタイプまたは地形の一部の特徴（例えば高さ、急激さ、急峻さ、色、質感、気象に関連する特徴、季節の特徴、１日のうちの時間の特徴）及び仮想エリアの地形に関連付けられた他の情報の指示を含む場合がある。
【００４７】
動作６１９において、１つまたは複数のサーバは、時間、季節、気象、オブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに関連付けられた第１の情報を受信することができる。例えば上記に記載されるように、図１の時間システム１２３は、仮想エリアに関連付けられた時間、季節及び気象情報を保持し提供することができる。さらに、図１のナビゲーションシステム１２４は、仮想エリア中を移動するオブジェクトに関する情報など、オブジェクトナビゲーション情報を保持し提供することができる。さらに一部の例では、仮想エリアは、隣接するまたは他のサブエリア内に移動するオブジェクトに関する情報を差し替えることができるコンポーネントに関連付けられた複数のサブエリアに分割される場合もある。さらに一部の例では、接続されたクライアントは、木を切り倒す、魚を捕らえるまたは１つのエリアから別のエリアへのプレイヤの移動など、プレイヤまたは他のユーザからユーザ入力に関する情報を提供する場合もある。
【００４８】
動作６２０において、１つまたは複数のサーバは、サーバ地形データ及び第１の情報に少なくとも一部基づいてオブジェクトルールを適用して第１のオブジェクトデータを生成する。上記に記載したように、オブジェクトデータは、どのオブジェクトがどの位置を占めるのか（例えば座標値または他の場所の値を利用して）、オブジェクトの移動の速度及び方向、他のオブジェクトの特徴（例えば色、質感、大きさ、形状、回転）の指示を含む場合がある。一部の例では、オブジェクトデータは、季節の特徴、気象に関連する特徴、１日のうちの時間の特徴及び種々のオブジェクトに関する他の特徴の指示を含んでよい。オブジェクトデータはまた、いつオブジェクトが加えられるか、除去されるか、場所を変更するか、またはその他の場合、修正されるかに関する情報を含む場合もある。
【００４９】
動作６２２において、１つまたは複数のサーバが、第１のオブジェクトデータを通信ネットワークを介して伝送するなどによって、第１のオブジェクトデータを１つまたは複数のクライアントに提供する。動作６２４において、１つまたは複数のクライアントが第１のオブジェクトデータを受信し、動作６２６において１つまたは複数のクライアントが、クライアント地形データ及び第１のオブジェクトデータに関連付けて仮想エリアの少なくとも一部の最初のレンダリングを行う。最初のレンダリングは、仮想エリアの少なくとも一部に関連付けられた画像データを生成することができる。一部の例では、第１のレンダリングは、第１のオブジェクトデータ及びクライアント地形データを１つまたは複数のクライアント側で１つまたは複数の画像処理装置（ＧＰＵ）に提供することによって行われてよい。動作６２７において、１つまたは複数のクライアントが、最初のレンダリングによって生成された画像データを表示する。
【００５０】
サーバ動作６０１に戻って参照すると、動作６２８において１つまたは複数のサーバが、時間、季節、気象、オブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに対する少なくとも１つの変更に関連付けられた第２の情報を受信する。例えば動作６２８は、動作６１９に関して上記に記載した第１の情報のタイプのいずれかに対する変更（例えば更新）、例えば１日のうちの時間、季節、１つの位置から別の位置へのオブジェクトの誘導、プレイヤの移動、または他のプレイヤのアクションをもたらすユーザ入力などに対する変更などを受信することができる。
【００５１】
動作６３０において、オブジェクトルールが再度適用されるかどうかが判定される。オブジェクトルールは、任意の所望される時間間隔でまたは様々なイベント（例えばクライアント入力、ナビゲーションデータなどを受信する）に応答して再度適用されてよい。オブジェクトルールがまだ再度適用されない場合、このときプロセスは、オブジェクトルールが再度適用されるまで動作６２８に戻るようにループを形成する。動作６３２において、オブジェクトルールがサーバ地形データ及び第２の情報に少なくとも一部基づいて再度適用されて第２のオブジェクトデータを生成する。上記に記載したように、オブジェクトルールが再度適用される場合、オブジェクトデータは、オブジェクトルールの先の適用以降生じる、時間、季節、気象、オブジェクトナビゲーションまたはユーザ入力におけるルールの調整及び変更を考慮して調整されてよい。例えば図４に示されるように特定のキャラクタが魚を捕らえた場合、この魚は、同一種類の、または異なる種類の別の魚によって置き換えられてよい。オブジェクトデータにおける多くの他の例が上記に詳細に記載されるため、ここでは繰り返さない。
【００５２】
動作６３４において、１つまたは複数のサーバが、第２のオブジェクトデータを通信ネットワークを介して伝送するなどによって第２のオブジェクトデータを１つまたは複数のクライアントに提供する。動作６３６において、１つまたは複数のクライアントが第２のオブジェクトデータを受信し、動作６３８において、１つまたは複数のクライアントが、クライアント地形データ及び第２のオブジェクトデータに関連付けて仮想エリアの少なくとも一部の第２のレンダリングを実行する。第２のレンダリングは、仮想エリアの少なくとも一部に関連付けられた画像データを生成することができる。一部の例では、第２のレンダリングは、１つまたは複数のクライアント側で第２のオブジェクトデータ及びクライアント地形データを１つまたは複数の画像処理装置（ＧＰＵ）に提供することによって実行される場合もある。動作６３９において、１つまたは複数のクライアントは、第２のレンダリングによって生成された画像データを表示する。
【００５３】
上記に記載したように、図２に描かれる例のような一部の例では、仮想エリアは、地形データ及び／またはオブジェクトデータを生成するためにその関連付けられたサブエリア内に複数のルールの１つまたは複数を適用し、その関連付けられたサブエリア内への複数のルールのうちの１つまたは複数の提供に関連付けられた情報を報告するなど、それぞれのサブエリアに関連付けられた種々の動作を行う関連付けられたコンポーネントを有するサブエリアに分割されてよい。従って、例えば動作６１８、６２０及び６３２などの図６に描かれる種々の動作は、仮想エリアの１つまたは複数のサブエリアに関連付けられた、例えば１つまたは複数のアクターなどの種々のコンポーネントによって実行され得ることに留意されたい。
【００５４】
図６は単に、仮想エリアを生成及び操作するための一例のプロセスを提供するのみであって、多くの追加のまたは代替のプロセスが本明細書に記載される技術に従って利用され得ることに留意されたい。例えば一部のケースでは、地形ルールは、サーバからクライアントに提供されない場合もある。代わりに、サーバによって生成された地形データが、サーバからクライアントに提供されてよい。このような手法は、図３の通信３００Ａに関して上記に詳細に記載される。加えて一部の例では、仮想エリアの１つまたは複数の部分は、例えば地形データ及び／またはオブジェクトデータに基づいて、サーバ側でレンダリングされる場合もあり、レンダリングされた画像データがその後、サーバからクライアントに伝送されてよい。さらに他の例では、コンテンツアイテムは、地形ルール、地形データ及び／またはオブジェクトデータをネットワークを介して伝送せずに、クライアントにおいてまたは他のデバイスにおいて完全に実行される場合もある。上記に記載したいずれかまたは他の変形形態が、本明細書に記載される技術に従って利用される場合もある。
【００５５】
電子的に提示されるコンテンツを提供するための一例のシステムを次に詳細に記載する。具体的には、図７は、本明細書に記載される実施形態が実装され得る一例のコンピューティング環境を例示する。図７は、コンピューティングリソースを、通信ネットワーク７３を介してユーザコンピュータ７２ａ及び７２ｂを経由して（これらは本明細書では、単数でコンピュータ７２または複数でのコンピュータ７２と呼ばれる場合がある）ユーザ７０ａ及び７０ｂ（これらは本明細書では単数でユーザ７０または複数でのユーザ７０と呼ばれる場合がある）に提供することができるデータセンタ８５の一例を概略的に例示する図である。データセンタ８５は、アプリケーションを永続的にまたは必要に応じて実行するためにコンピューティングリソースを提供するように構成されてよい。データセンタ８５によって提供されるコンピューティングリソースは、例えばゲートウェイリソース、ロードバランシングリソース、ルーティングリソース、ネットワーキングリソース、コンピューティングリソース、揮発性または不揮発性メモリリソース、コンテンツ配信リソース、データ処理リソース、データストレージリソース、データ通信リソースなどの種々のタイプのリソースを含んでよい。コンピューティングリソースの各々のタイプは、いくつかの特殊な構成において利用可能であってよい。例えば、データ処理リソースは、種々のウェブサービスを提供するように構成され得る仮想マシンインスタンスとして利用可能であってよい。加えてリソースの組み合わせは、ネットワークを介して利用可能になる場合、及び１つまたは複数のウェブサービスとして構成される場合もある。インスタンスは、例えばアプリケーションサービス、メディアサービス、データベースサービス、プロセッシングサービス、ゲートウェイサービス、ストレージサービス、ルーティングサービス、セキュリティサービス、暗号化サービス、ロードバランシングサービス、アプリケーションサービスなどのウェブサービスを含めたアプリケーションを実行するように構成されてよい。これらのサービスは、セットアプリケーションまたはカスタムアプリケーションによって構成可能な場合があり、サイズ、実行、コスト、待ち時間、タイプ、持続期間、アクセシビリティにおいて、及び任意の他の寸法において構成可能であってよい。このようなウェブサービスは、１つまたは複数のクライアント用の利用可能なインフラストラクチャとして構成される場合もあり、１つまたは複数のクライアント用のプラットフォームまたはソフトウェアとして構成された１つまたは複数のアプリケーションを含むことができる。これらのウェブサービスは、１つまたは複数の通信プロトコルを介して利用可能にすることができる。これらの通信プロトコルは、ハイパーテキストトランスファプロトコル（ＨＴＴＰ）またはＨＴＴＰ以外のプロトコルを含んでよい。このような通信プロトコルはまた、例えば伝送制御プロトコル（ＴＣＰ）などのより信頼できるトランスポート層プロトコル、及びユーザデータグラムプロトコル（ＵＤＰ）などの信頼性の低いトランスポート層を含む場合もある。データストレージリソースは、ファイルストレージデバイス、ブロックストレージデバイスなどを含む場合がある。
【００５６】
コンピューティングリソースの各々のタイプまたは構成は、例えば多くのプロセッサ、大容量メモリ及び／または大規模ストレージ容量で構成された大規模リソース、ならびにより少ないプロセッサ、小容量メモリ及び／またはより小規模のストレージ容量で構成された小規模リソースなど、様々なサイズで利用可能であってよい。顧客は、例えばいくつかの小さな処理リソースをウェブサーバとして割り当て、１つの大きな処理リソースをデータベースサーバとして割り当てるように選択することができる。
【００５７】
データセンタ８５は、コンピューティングリソースを提供するサーバ７６ａ及び７６ｂ（これらは本明細書では、単数でサーバ７６または複数でのサーバ７６と呼ばれる場合がある）を含むことができる。これらのリソースは、ベアメタルリソースとしてまたは仮想マシンインスタンス７８ａ〜ｄ（これらは本明細書では、単数で仮想マシンインスタンス７８または複数での仮想マシンインスタンス７８と呼ばれる場合がある）として利用可能であってよい。仮想マシンインスタンス７８ｃ及び７８ｄは、仮想エリア生成仮想マシン（「ＶＡＧＶＭ」）インスタンスである。ＶＡＧＶＭ仮想マシンインスタンス７８ｃ及び７８ｄは、仮想エリア生成及び操作に関する技術の、及び／または本開示及び上記の詳細な記載に係る開示された技術の、任意のその他の全てもしくは任意の一部を実行するように構成されてよい。理解すべきように、図７に例示される特定の例は、各々のサーバ内に１つのＶＡＧＶＭ仮想マシンを含んでいるが、これは単なる一例である。サーバは、２つ以上のＶＡＧＶＭ仮想マシンを含む場合がある、またはＶＡＧＶＭ仮想マシンを全く含まない場合もある。
【００５８】
コンピューティングハードウェアに関する仮想化技術の有用性は、複数の顧客に対して大規模なコンピューティングリソースを提供する利点を与えるだけの余裕があり、コンピューティングリソースが複数の顧客の間で有効にかつ安全に共有されることを可能にする。例えば仮想化技術は、各々のユーザに、物理的コンピューティングデバイスによってホストされる１つまたは複数の仮想マシンインスタンスを与えることによって、物理的コンピューティングデバイスを複数のユーザ間で共有することを可能にすることができる。仮想マシンインスタンスは、別個の論理コンピューティングデバイスとして作用する特定の物理的コンピューティングデバイスのソフトウェアエミュレーションであってよい。そのような仮想マシンインスタンスは、所与の物理的コンピューティングリソースを共有する複数の動作中のシステムの間に分離をもたらす。さらに一部の仮想化技術は、例えば複数の別個の物理的コンピューティングシステムにまたがる複数の仮想プロセッサを備えた単一の仮想マシンインスタンスなど１つまたは複数の物理リソースにまたがる仮想リソースを提供する場合もある。
【００５９】
図７を参照すると、通信ネットワーク７３は、例えば接続されたネットワークの公けにアクセス可能なネットワークであってよく、場合によってインターネットなど多様な別個のパーティによって操作される場合もある。他の実施形態において、通信ネットワーク７３は、例えば権利を認められないユーザに対して全体的にまたは一部がアクセス不可能な企業または大学のネットワークなどのプライベートネットワークである場合もある。さらに他の実施形態において、通信ネットワーク７３は、インターネットへの及び／またはインターネットからのアクセス権を有する１つまたは複数のプライベートネットワークを含む場合もある。
【００６０】
通信ネットワーク７３は、コンピュータ７２へのアクセス権を提供することができる。ユーザコンピュータ７２は、ユーザ７０またはデータセンタ８５の他の顧客によって利用されるコンピュータであってよい。例えばユーザコンピュータ７２ａまたは７２ｂは、サーバ、デスクトップまたはラップトップパーソナルコンピュータ、タブレットコンピュータ、無線電話、パーソナルデジタルアシスタント（ＰＤＡ）、ｅ−ブックリーダー、ゲームコンソール、セットトップボックス、またはデータセンタ８５にアクセスすることが可能な任意の他のコンピューティングデバイスであってよい。ユーザコンピュータ７２ａまたは７２ｂは、インターネット（例えばケーブルモデムまたはデジタルサブスクライバライン（ＤＳＬ）を介して）に直接接続されてよい。２つのユーザコンピュータ７２ａ及び７２ｂのみが描かれているが、多数のユーザコンピュータが存在し得ることを理解されたい。
【００６１】
ユーザコンピュータ７２はまた、データセンタ８５によって提供されるコンピューティングリソースの態様を構成するのに利用される場合もある。この点において、データセンタ８５は、ユーザコンピュータ７２上で実行中のウェブブラウザアプリケーションプログラムの利用を通してその動作の態様が構成され得るゲートウェイまたはウェブインターフェースを提供する場合がある。あるいはユーザコンピュータ７２上で実行中のスタンドアローンアプリケーションプログラムが、構成動作を実行するためにデータセンタ８５によって公開されるアプリケーションプログラミングインターフェース（ＡＰＩ）にアクセスする場合もある。データセンタ８５において利用可能な様々なウェブサービスの動作を構成するための他の機構も利用可能である。
【００６２】
図７に示されるサーバ７６は、上記に記載したコンピューティングリソースを提供するのに適切に構成された標準的なサーバであってよく、１つまたは複数のウェブサーバ及び／またはアプリケーションを実行するためにコンピューティングリソースを提供することができる。一実施形態において、コンピューティングリソースは、仮想マシンインスタンス７８である場合もある。仮想マシンインスタンスの例では、サーバ７６の各々は、仮想マシンインスタンス７８を実行することが可能なインターフェースマネージャ８０ａまたは８０ｂ（これらは本明細書では単数で単数でインスタンスマネージャ８０または複数でのインスタンスマネージャ８０と呼ばれる場合がある）を実行するように構成されてよい。インスタンスマネージャ８０は、仮想マシンモニタ（ＶＭＭ）、または例えばサーバ７６上での仮想マシンインスタンス７８の実行を可能にするように構成された別のタイプのプログラムであってよい。上記で考察したように、仮想マシンインスタンス７８の各々は、特定のアプリケーションの全てまたは一部を実行するように構成されてよい。
【００６３】
本明細書に開示された実施形態は仮想マシンインスタンの文脈を考察しているが、他の種類の実装形態も本明細書に開示された概念及び技術を用いて利用することができることを理解されたい。例えば、本明細書に開示される実施形態は、仮想マシンインスタンスを利用しないコンピュータシステムと共に利用される場合もある。
【００６４】
図７に示される一例のデータセンタ８５では、ルータ７１は、サーバ７６ａ及び７６ｂを相互に接続するのに利用されてよい。ルータ７１はまた、通信ネットワーク７３に接続されるゲートウェイ７４に接続される場合もある。ルータ７１は、１つまたは複数のロードバランサに接続されてよく、また単独でまたは組み合わせて、例えばパケットまたは他のデータ通信をそのような通信の特徴（例えばソース及び／または宛先アドレス、プロトコル識別子、サイズ、処理要件などを含めたヘッダー情報）及び／またはプライベートネットワークの特徴（例えばネットワークトポロジに基づいたルートなど）に基づいて必要に応じて送信することによってデータセンタ８５内のネットワークの範囲内での通信を管理することができる。簡素化のために、コンピューティングシステム及びこの例の他のデバイスの様々な態様は、特定の従来の詳細を示すことなく例示されることを理解されたい。追加のコンピューティングシステム及び他のデバイスが他の実施形態では相互に接続される場合もあり、様々な方法で相互に接続されてよい。
【００６５】
図７に示される一例のデータセンタ８５では、サーバマネージャ７５はまた、サーバ７６ａ及びサーバ７６ｂへの通信、サーバ７６ａ及びサーバ７６ｂからの通信及び／またはサーバ７６ａとサーバ７６ｂの間での直接的な通信に対して少なくとも一部に利用される。図７は、ゲートウェイ７４とサーバマネージャ７５の間に位置決めされたルータ７１を描いているが、これは単に一例の構成である。いくつかのケースでは、例えばサーバマネージャ７５は、ゲートウェイ７４と、ルータ７１の間に位置決めされてよい。サーバマネージャ７５は、一部のケースでは、ユーザコンピュータ７２から入力される通信の一部を考察して、入力通信を受信する及び／または処理するために１つまたは複数の適切なサーバ７６を決定することができる。サーバマネージャ７５は、同一性、場所またはユーザコンピュータ７２に関連付けられた他の属性、通信が関連付けられるタスクの性質、通信が関連付けられるタスクの優先順位、通信が関連付けられるタスクの継続期間、通信が関連付けられるタスクのサイズ及び／または推定される利用法などの要因ならびに多くの他の要因に基づいて入力通信を受信及び／または処理するために適切なサーバを決定することができる。サーバマネージャ７５は、例えば状況情報及び種々のタスクに関連付けられた他の情報を収集する、またはそうでなければそれに対するアクセス権を有することで、例えば通信またはそのようなタスクに関連付けられた他の動作を管理するのを補助することができる。
【００６６】
図７に例示されたネットワークトポロジーは大幅に簡素化されていること、ならびにより多くのネットワーク及びネットワークデバイスが、本明細書に開示された様々なコンピューティングシステムを相互接続するために利用することができることを理解されたい。これらのネットワークトポロジー及びデバイスは、当業者には明白であろう。
【００６７】
図７に描かれるデータセンタ８５は、単なる例示であり、他の実装形態も利用され得ることも理解されたい。加えて、本明細書に開示される機能性は、ソフトウェア、ハードウェア、またはそれらの組み合わせで実施される場合もあることを理解されたい。他の実装形態は、当業者には明らかであろう。サーバ、ゲートウェイまたは他のコンピューティングデバイスは、相互に作用し合い、記載される種類の機能性を実行することができるハードウェアまたはソフトウェアの任意の組み合わせを備え、限定ではなく、デスクトップまたは他のコンピュータ、データベースサーバ、ネットワークストレージデバイス及び他のネットワークデバイス、ＰＤＡ、タブレット、携帯電話、無線電話、ポケベル、電子手帳、インターネット家電、テレビジョン関連システム（例えばセットトップボックス及び／またはパーソナル／デジタルビデオレコーダーを利用する）、ならびに適切な通信能力を含む種々の他の消費者製品が含まれることも理解されたい。加えて、例示されるモジュールによって提供される機能性は、一部の実施例では、より少ないモジュールに組み合わされる、または追加のモジュール内に分散される場合もある。同様に、一部の実施形態では、例示されるモジュールの一部の機能性は、提供されない場合もあり、及び／または他の追加の機能性が利用可能である場合もある。
【００６８】
さらに、本開示の実施形態は、以下の条項に照らして、説明することができる。
１．電子的に提示されるコンテンツアイテムのために仮想エリアを生成するコンピューティングシステムであって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサによって実行されると、少なくとも前記コンピューティングシステムに、
前記仮想エリアに関連付けられ、１つまたは複数の地形ルールと、１つまたは複数のオブジェクトルールとを含む複数のルールを受信することと、
前記１つまたは複数の地形ルールを適用して前記仮想エリアに関連付けられた地形データを生成することと、
時間、季節、気象、オブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに関連付けられた第１の情報を受信することと、
前記１つまたは複数のオブジェクトルールを適用して前記仮想エリアに関連付けられた第１のオブジェクトデータを生成することであって、前記１つまたは複数のオブジェクトルールが、前記地形データ及び前記第１の情報に少なくとも一部基づいて適用される、前記第１のオブジェクトデータを生成することと、
前記第１のオブジェクトデータを、前記第１のオブジェクトデータに関連付けて前記仮想エリアの少なくとも一部の最初のレンダリングを実行するために提供することと、
時間、季節、気象、オブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに対する少なくとも１つの変更に関連付けられた第２の情報を受信することと、
前記１つまたは複数のオブジェクトルールを再度適用して前記仮想エリアに関連付けられた第２のオブジェクトデータを生成することであって、前記１つまたは複数のオブジェクトルールは、前記地形データ及び前記第２の情報に少なくとも一部基づいて再度適用される、前記第２のオブジェクトデータを生成することと、
前記第２のオブジェクトデータを、前記第２のオブジェクトデータに関連付けて前記仮想エリアの少なくとも一部の第２のレンダリングを実行するために提供することと、
を含む動作を実行させるコンピュータ命令を内部に記憶する１つまたは複数のメモリと、
を備える、前記コンピューティングシステム。
【００６９】
２．前記１つまたは複数の地形ルールが、少なくとも１つのサーバと、少なくとも１つのクライアントの両方によって別々に適用される、条項１に記載のコンピューティングシステム。
【００７０】
３．前記複数のルールの少なくとも１つが、前記コンテンツアイテムの実行中に調整され、調整後に、前記コンテンツアイテムの実行を停止し再始動することなく適用される、条項１に記載のコンピューティングシステム。
【００７１】
４．前記仮想エリアが複数のサブエリアに分割され、各々のサブエリアが、前記複数のルールのうちの１つまたは複数をその関連付けられたサブエリア内に適用し、かつその関連付けられたサブエリア内での前記複数のルールのうちの前記１つまたは複数の適用に関連付けられた情報を報告する１つまたは複数の関連付けられたコンポーネントを有する、条項１に記載のコンピューティングシステム。
【００７２】
５．電子的に提示されるコンテンツアイテムのための仮想エリアを生成する方法であって、
前記仮想エリアに関連付けられ、１つまたは複数の地形ルールと、１つまたは複数のオブジェクトルールとを含む複数のルールを受信することと、
前記１つまたは複数の地形ルールを適用して前記仮想エリアに関連付けられた地形データを生成することと、
時間、季節、気象、オブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに関連付けられた第１の情報を受信することと、
前記１つまたは複数のオブジェクトルールを適用して前記仮想エリアに関連付けられた第１のオブジェクトデータを生成することであって、前記１つまたは複数のオブジェクトルールが、前記地形データ及び前記第１の情報に少なくとも一部基づいて適用される、前記第１のオブジェクトデータを生成することと、
前記第１のオブジェクトデータを、前記第１のオブジェクトデータに関連付けて前記仮想エリアの少なくとも一部の最初のレンダリングを実行するために提供することと、
時間、季節、気象、オブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに対する少なくとも１つの変更に関連付けられた第２の情報を受信することと、
前記１つまたは複数のオブジェクトルールを再度適用して前記仮想エリアに関連付けられた第２のオブジェクトデータを生成することであって、前記１つまたは複数のオブジェクトルールは、前記地形データ及び前記第２の情報に少なくとも一部基づいて再度適用される、前記第２のオブジェクトデータを生成することと、
前記第２のオブジェクトデータを、前記第２のオブジェクトデータに関連付けて前記仮想エリアの少なくとも一部の第２のレンダリングを実行するために提供することと、を含む前記方法。
【００７３】
６．前記複数のルールのうちの少なくとも１つが、前記コンテンツアイテムの実行中に調整され、調整後に、前記コンテンツアイテムの実行を停止し再始動することなく適用される、条項５に記載の方法。
【００７４】
７．前記１つまたは複数の地形ルールが、少なくとも１つのサーバと、少なくとも１つのクライアントの両方によって別々に適用される、条項５に記載の方法。
【００７５】
８．前記仮想エリアが複数のサブエリアに分割され、各々のサブエリアが、前記複数のルールの１つまたは複数をその関連付けられたサブエリア内に適用し、かつその関連付けられたサブエリア内での前記複数のルールのうちの前記１つまたは複数の適用に関連付けられた情報を報告する１つまたは複数の関連付けられたコンポーネントを有する、条項５に記載の方法。
【００７６】
９．前記コンテンツアイテムの実行中に前記複数のルールに関連付けられた情報が提示され更新されることを可能にし、かつ前記コンテンツアイテムの実行中に前記複数のルールが調整されることを可能にするユーザインターフェースを提供することをさらに含む、条項５に記載の方法。
【００７７】
１０．少なくとも１つのオブジェクトルールが、１つまたは複数のオブジェクト間の密度または距離、オブジェクトの外観、オブジェクトの挙動、１つまたは複数のオブジェクトタイプの数量または配分、１つまたは複数の時間、季節または気象条件に関連付けられたオブジェクトの特徴、１つまたは複数のタイプの地形に関連するオブジェクトの特徴、１つまたは複数の他のオブジェクトに関連するオブジェクトの特徴、または１つまたは複数の境界もしくは位置に関連するオブジェクトの特徴、の少なくとも１つを指示する、条項５に記載の方法。
【００７８】
１１．少なくとも１つの地形ルールが、１つまたは複数の地形のタイプの数量または配分、地形の外観、斜面の頂上の鋭さ、山の高さ、谷の急峻さ、１つまたは複数の時間、季節または気象条件に関連付けられた地形の特徴、１つまたは複数の境界または位置に関連する地形の特徴、の少なくとも１つを指示する、条項５に記載の方法。
【００７９】
１２．前記仮想エリアに関連付けられた１日のうちの時間または１年のうちの時期の少なくとも一方を維持することをさらに含み、前記複数のルールのうちの少なくとも１つが、前記１日のうちの時間または１年のうちの時期の少なくとも一方に少なくとも一部基づいて適用される、条項５に記載の方法。
【００８０】
１３．１つまたは複数の非一時的なコンピュータ可読ストレージ媒体であって、１つまたは複数のコンピュートノードによって実行されると、前記１つまたは複数のコンピュートノードに、
仮想エリアに関連付けられ、１つまたは複数の地形ルールと、１つまたは複数のオブジェクトルールを含む複数のルールを受信することと、
前記１つまたは複数の地形ルールを適用して前記仮想エリアに関連付けられた地形データを生成することと、
時間、季節、気象、オブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに関連付けられた第１の情報を受信することと、
前記１つまたは複数のオブジェクトルールを適用して前記仮想エリアに関連付けられた第１のオブジェクトデータを生成することであって、前記１つまたは複数のオブジェクトルールが、前記地形データ及び前記第１の情報に少なくとも一部基づいて適用される、前記第１のオブジェクトデータを生成することと、
前記第１のオブジェクトデータを、前記第１のオブジェクトデータに関連付けて前記仮想エリアの少なくとも一部の最初のレンダリングを実行するために提供することと、
時間、季節、気象、オブジェクトナビゲーションまたはユーザ入力のうちの少なくとも１つに対する少なくとも１つの変更に関連付けられた第２の情報を受信することと、
前記１つまたは複数のオブジェクトルールを再度適用して前記仮想エリアに関連付けられた第２のオブジェクトデータを生成することであって、前記１つまたは複数のオブジェクトルールは、前記地形データ及び前記第２の情報に少なくとも一部基づいて再度適用される、前記第２のオブジェクトデータを生成することと、
前記第２のオブジェクトデータを、前記第２のオブジェクトデータに関連付けて前記仮想エリアの少なくとも一部の第２のレンダリングを実行するために提供することと、を含む動作を実行させる内部に記憶されたコンピュータ命令を有する、前記１つまたは複数の非一時的コンピュータ可動ストレージ媒体。
【００８１】
１４．前記複数のルールのうちの少なくとも１つが、前記コンテンツアイテムの実行中に調整され、調整後に、前記コンテンツアイテムの実行を停止し再始動することなく適用される、条項１３に記載の１つまたは複数の非一時的コンピュータ可動ストレージ媒体。
【００８２】
１５．前記１つまたは複数の地形ルールが、少なくとも１つのサーバと、少なくとも１つのクライアントの両方によって別々に適用される、条項１３に記載の１つまたは複数の非一時的コンピュータ可読ストレージ媒体。
【００８３】
１６．前記仮想エリアが複数のサブエリアに分割され、各々のサブエリアが、前記複数のルールの１つまたは複数をその関連付けられたサブエリア内に適用し、かつその関連付けられたサブエリア内での前記複数のルールのうちの前記１つまたは複数の適用に関連付けられた情報を報告する１つまたは複数の関連付けられたコンポーネントを有する、条項１３に記載の１つまたは複数の非一時的コンピュータ可読ストレージ媒体。
【００８４】
１７．前記動作がさらに、前記コンテンツアイテムの実行中に前記複数のルールに関連付けられた情報が提示され更新されることを可能にし、かつ前記コンテンツアイテムの実行中に前記複数のルールが調整されることを可能にするユーザインターフェースを提供することを含む、条項１３に記載の１つまたは複数の非一時的コンピュータ可読ストレージ媒体。
【００８５】
１８．少なくとも１つのオブジェクトルールが、１つまたは複数のオブジェクト間の密度または距離、オブジェクトの外観、オブジェクトの挙動、１つまたは複数のオブジェクトタイプの数量または配分、１つまたは複数の時間、季節または気象条件に関連付けられたオブジェクトの特徴、１つまたは複数のタイプの地形に関連するオブジェクトの特徴、１つまたは複数の他のオブジェクトに関連するオブジェクトの特徴、または１つまたは複数の境界もしくは位置に関連するオブジェクトの特徴、の少なくとも１つを指示する、条項１３に記載の１つまたは複数の非一時的コンピュータ可読ストレージ媒体。
【００８６】
１９．少なくとも１つの地形ルールが、１つまたは複数の地形のタイプの数量または配分、地形の外観、斜面の頂上の鋭さ、山の高さ、谷の急峻さ、１つまたは複数の時間、季節または気象条件に関連付けられた地形の特徴、１つまたは複数の境界または位置に関連する地形の特徴、の少なくとも１つを指示する、条項１３に記載の１つまたは複数の非一時的コンピュータ可読ストレージ媒体。
【００８７】
２０．前記動作が、前記仮想エリアに関連付けられた１日のうちの時間または１年のうちの時期の少なくとも一方を維持することをさらに含み、前記複数のルールのうちの少なくとも１つが、前記１日のうちの時間または１年のうちの時期の少なくとも一方に少なくとも一部基づいて適用される、条項１３に記載の１つまたは複数の非一時的コンピュータ可読ストレージ媒体。
【００８８】
少なくとも一部の実施形態では、本明細書に記載される技術のうちの１つまたは複数の一部またはその全てを実施するサーバは、１つまたは複数のコンピュータアクセス可能媒体を含む、またはそれにアクセスするように構成されたコンピュータシステムを含む場合がある。図８は、１つまたは複数のコンピュータアクセス可能媒体を含む、またはそれにアクセスするように構成されたコンピュータシステムを描いている。例示される実施形態では、コンピューティングデバイス１５は、入力／出力（Ｉ／Ｏ）インターフェース３０を介してシステムメモリ２０に結合された１つまたは複数のプロセッサ１０ａ、１０ｂ及び／または１０ｎ（これらは単数で「プロセッサ１０」と、複数で「プロセッサ１０」と呼ばれる場合がある）を含む。コンピューティングデバイス１５さらに、Ｉ／Ｏインターフェース３０に結合されたネットワークインターフェース４０を含む。
【００８９】
種々の実施形態では、コンピューティングデバイス１５は、１つのプロセッサ１０を含むユニプロセッサシステム、またはいくつかのプロセッサ１０（例えば、２つ、４つ、８つもしくは別の適切な数）を含むマルチプロセッサシステムであってよい。プロセッサ１０は、命令を実行することが可能な任意の好適なプロセッサであってよい。例えば、種々の実施形態では、プロセッサ１０は、様々な命令セットアーキテクチャ（ＩＳＡ）、例えばｘ８６、ＰｏｗｅｒＰＣ、ＳＰＡＲＣもしくはＭＩＰＳ  ＩＳＡ、またはいずれかの他の適切なＩＳＡなどのうちのいずれかを実施する組み込みプロセッサであってよい。マルチプロセッサシステムでは、プロセッサ１０の各々は、通常、同一のＩＳＡを実施するが必ずしもそうではない。
【００９０】
システムメモリ２０は、プロセッサ（複数可）１０によってアクセス可能な命令及びデータを記憶するように構成されてよい。種々の実施形態では、システムメモリ２０は、スタティックランダムアクセスメモリ（ＳＲＡＭ）、シンクロナスダイナミックＲＡＭ（ＳＤＲＡＭ）、不揮発性／Ｆｌａｓｈ（登録商標）タイプのメモリまたはいずれかの他のタイプのメモリなどのいずれかの適切なメモリ技術を使用して実施されてよい。例示される実施形態では、上記に説明されたそれらの方法、技術、及びデータなどの１つまたは複数の所望の機能を実施するプログラム命令及びデータは、コード２５及びデータ２６としてシステムメモリ２０内に記憶されるように示される。
【００９１】
一実施形態において、Ｉ／Ｏインターフェース３０は、ネットワークインターフェース４０、または他の周辺インターフェースを含む、プロセッサ１０、システムメモリ２０、及びデバイス内の任意の周辺デバイス間のＩ／Ｏトラフィックを調整するように構成されてよい。いくつかの実施形態では、Ｉ／Ｏインターフェース３０は、データ信号を１つのコンポーネント（例えば、システムメモリ２０）から別のコンポーネント（例えば、プロセッサ１０）による使用に適切な形式に変換するためのいずれかの必要なプロトコル、タイミングまたは他のデータ変換を実行することができる。一部の実施形態において、Ｉ／Ｏインターフェース３０は、例えば、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バス規格、またはユニバーサルシリアルバス（ＵＳＢ）規格の異形等の様々なタイプの周辺バスを通じて取設されるデバイスに対するサポートを含む場合もある。いくつかの実施形態では、Ｉ／Ｏインターフェース３０の機能は、例えば、ノースブリッジ及びサウスブリッジなどの２つ以上の別個のコンポーネントに分離されてもよい。さらに、いくつかの実施形態では、システムメモリ２０へのインターフェースなどのＩ／Ｏインターフェース３０の機能のうちのいくつかまたは全ては、プロセッサ１０に直接組み込まれる場合もある。
【００９２】
ネットワークインターフェース４０は、コンピューティングデバイス１５と、例えば、他のコンピュータシステムまたはデバイスなど、ネットワークまたはネットワーク（複数）５０に接続された他のデバイスまたはデバイス（複数）６０との間でデータが交換されることを可能にするように構成されてよい。種々の実施形態では、ネットワークインターフェース４０は、例えば、イーサネットネットワークのタイプなどのいずれかの適切な有線または無線汎用データネットワークを介した通信をサポートすることができる。加えて、ネットワークインターフェース４０は、アナログ音声ネットワークもしくはデジタルファイバ通信ネットワークなどの電気通信／電話ネットワークを介して、ファイバチャネルＳＡＮ（ストレージエリアネットワーク）を介して、またはいずれかの他の適切なタイプのネットワーク及び／もしくはプロトコルを介した通信をサポートすることもできる。
【００９３】
一部の実施形態において、システムメモリ２０は、対応する方法及び装置の実施形態を実装するための上記に記載したようなプログラム命令及びデータを記憶するように構成されたコンピュータアクセス可能媒体の一実施形態であってよい。しかしながら、他の実施形態では、プログラム命令及び／またはデータは、異なるタイプのコンピュータアクセス可能媒体上で受信、送信、または記憶される場合もある。一般的に言うと、コンピュータアクセス可能媒体は、Ｉ／Ｏインターフェース３０を介してコンピューティングデバイス１５に結合された磁気または光学媒体、例えばディスクまたはＤＶＤ／ＣＤなどの非一時的記憶媒体またはメモリ媒体を含むことができる。非一時的コンピュータアクセス可能記憶媒体はまた、システムメモリ２０または別のタイプのメモリとしてコンピューティングデバイス１５のいくつかの実施形態に含めることができる、ＲＡＭ（例えば、ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭ（リードオンリーメモリ）などのいずれかの揮発性または不揮発性媒体を含むことができる。さらに、コンピュータアクセス可能な媒体は、送信媒体、またはネットワークインターフェース４０を介して実装され得るようなものなど、ネットワーク及び／もしくは無線リンク等の通信媒体を介して伝送される電気、電磁気、もしくはデジタル信号などの信号を含む場合もある。図８に例示されるような複数のコンピューティングデバイスのうちの一部または全ては、様々な実施形態において、記載される機能性を実装するために使用されてよく、例えば、様々な異なるデバイス及びサーバ上で実行するソフトウェアコンポーネントが、機能性を提供するために協働する場合もある。いくつかの実施形態において、説明された機能の一部は、ストレージデバイス、ネットワークデバイス、または特殊目的コンピュータシステムを使用して実施されてよい。本明細書で使用されるように、用語「コンピューティングデバイス」は、少なくとも全てのそれらのタイプのデバイスを指し、それらのタイプのデバイスに限定されない。
【００９４】
インターネット及び／または他のネットワークを介して、分散された一揃いのクライアントにアクセス可能な１つまたは複数のウェブサービス（例えば、様々な種類のクラウドベースコンピューティングまたはストレージ）を提供するために、企業または公的部門組織等のエンティティによって設定されたネットワークは、プロバイダネットワークと称されてよい。そのようなプロバイダネットワークには、プロバイダネットワークによって提供されるインフラストラクチャ及びウェブサービスを実装及び分配するために必要とされる、多数のデータセンタがホストする様々なリソースプール、例えば物理的及び／または仮想化コンピュータサーバ、ストレージデバイス、ネットワーキング機器等の集合などが含まれてよい。リソースは一部の実施形態では、例えば記憶用の記憶容量、例えば関連するサービスなどのセットとして処理するための処理能力の大きさなど、ウェブサービスに関連する種々の装置においてクライアントに提供されてよい。仮想コンピューティングインスタンスは、例えば指定された計算能力（これはＣＰＵの種類及び数、メインメモリのサイズなどによって特定されてよい）と、指定されたソフトウェアスタック（例えばオペレーティングシステムの特定の変形、これはハイパーバイザ上で稼働することができる）とを備えた１つまたは複数のサーバを備えることができる。
【００９５】
コンピュートノードは、コンピューティングノードと呼ばれる場合もあり、例えばコモディティハードウェアコンピュータ、仮想マシン、ウェブサービス、コンピューティングクラスタ及びコンピューティングアプライアンスなどの広範囲の様々なコンピューティング環境において実装されてよい。このようなコンピューティングデバイスまたは環境のいずれかは、簡便にするために、コンピュートノードとして記載される。
【００９６】
いくつかの異なるタイプのコンピューティングデバイスを単独でまたは組み合わせて使用して、例えばコンピュータサーバ、ストレージデバイス、ネットワークデバイスなどの様々な環境においてプロバイダネットワークのリソースを実装することができる。いくつかの実施形態において、クライアントまたはユーザに、例えばユーザに管理者ログイン及びパスワードを与えることによって、リソースインスタンスへの直接のアクセス権が提供されてよい。他の実施形態において、プロバイダネットワークオペレータは、クライアントが、例えばクライアントが特定のインスタンスまたは実行プラットフォームに直接アクセスする必要なしに、実行プラットフォーム（例えばアプリケーションサーバインスタンス、Ｊａｖａ（商標）、仮想マシン（ＪＶＭ）、汎用または特殊目的用オペレーティングシステム、種々のインタプリタ形式のまたはコンパイル形式のプログラミング言語、例えばＲｕｂｙ、Ｐｅｒｌ、Ｐｙｔｈｏｎ、Ｃ、Ｃ＋＋等をサポートするプラットフォームまたは高性能のコンピューティングプラットフォームなど）上のクライアントに代わって、アプリケーションに適した指定されたクライアントアプリケーション及びアプリケーションのスケジュール実行のために実行要件を特定することを可能にすることができる。所与の実行プラットフォームは、一部の実装形態で１つまたは複数のリソースインスタンスを利用することができ、他の実装形態では、複数の実行プラットフォームが１つのリソースインスタンスに対してマップされる場合もある。
【００９７】
多くの環境において、異なるタイプの仮想化コンピューティング、ストレージ及び／または他のネットワークアクセス可能な機能性を実施するプロバイダネットワークのオペレータは、顧客が、種々のリソース取得モードにおいてリソースへのアクセス権を保有するまたは購入することを可能にすることができる。コンピューティングリソースプロバイダは、顧客に対して、所望されるコンピューティングリソースを選択または起動する、アプリケーションコンポーネントをコンピューティングリソースに導入する、その環境においてアプリケーションが実行するように維持するための機能を提供することができる。加えて、コンピューティングリソースプロバイダはさらに、アプリケーション変更またはその必要能力のための要望として、手動でまたは自動スケーリングを通してのいずれかでアプリケーションに割り当られるリソースの数及びタイプを迅速かつ容易にスケールアップまたはスケールダウンするための機能を提供することができる。コンピューティングリソースプロバイダによって提供されるコンピューティングリソースは、別個のユニットにおいて利用可能にされる場合もあり、これはインスタンスと呼ばれてよい。インスタンスは、物理的サーバハードウェアプラットフォーム、サーバ上で実行中の仮想マシンインスタンス、または２つのいずれかの組み合わせを表すことができる。様々なタイプ及び構成のインスタンスを利用可能にすることができ、異なるサイズの様々なオペレーティングシステム（ＯＳ）及び／またはハイパーバイザを実行する異なるサイズのリソース、様々なインストール済みのソフトウェアアプリケーション、ランタイムなどが含まれる。インスタンスはさらに、例えば論理領域、フォールトトレラント領域、データセンタまたは基礎を成すコンピューティングハードウェアの他の地理的な場所を表す特殊な可用性ゾーンにおいて利用可能である場合もある。インスタンスは、可用性ゾーン内で、または可用性ゾーンにわたってコピーされて、インスタンスのリダンダンシーを向上させることができ、またインスタンスは、特定の可用性ゾーン内で、または可用性ゾーンにわたって移動させられる場合もある。一例として、可用性ゾーンにおける特定のサーバとのクライアント通信に関する待ち時間は、異なるサーバとのクライアント通信に関する待ち時間より小さくなってよい。したがってインスタンスが、より高い待ち時間のサーバからより低い待ち時間のサーバに移動されることで、全体のクライアントエクスペリエンスを向上させることができる。
【００９８】
一部の実施形態において、プロバイダネットワークは、複数の地理的領域内に編成されてよく、各領域が、１つまたは複数の可用性ゾーンを含む場合もある。可用性ゾーン（これは可用性コンテナと呼ばれる場合もある）は、所与の可用性ゾーン内のリソースが他の可用性ゾーン内の不具合から隔離されるまたは遮断されるような方法で構成された、１つまたは複数の異なる場所またはデータセンタを備えることができる。すなわち、１つの可用性ゾーン内の不具合が、任意の他の可用性ゾーン内に不具合をもたらすことは予期されない場合がある。よって、リソースインスタンスの可用性のプロファイルは、異なる可用性ゾーン内の他のリソースインスタンスの可用性プロファイルから独立していることが意図される。クライアントは、複数のアプリケーションインスタンスをそれぞれの可用性ゾーンにおいて起動することによって、１つの場所においてそのアプリケーションを障害から保護することができる。同時に、一部の実装形態では、同一の地理的領域内にあるリソースインスタンス間に費用が安く低待ち時間のネットワーク接続性を設けることができる（及び同一の可用性ゾーンのリソース間のネットワーク送信がさらに高速にされ得る）。
【００９９】
上記に記載したように、コンテンツは、コンテンツプロバイダによって１人または複数のクライアントに提供されてよい。用語コンテンツは、本明細書で使用される際、任意の提示可能な情報を指し、用語コンテンツアイテムは、本明細書で使用される際、任意のそのような提示可能な情報の何らかの集合を指す。コンテンツプロバイダは、コンテンツをクライアントに提供するためのサービスを提供する、例えば１つまたは複数のコンテンツを提供することができる。サービスを提供するコンテンツは、１つまたは複数のサーバ上にあってよい。サービスを提供するコンテンツは、１つまたは複数の顧客の要望を満たすように拡張可能であり、入力されるクライアントのリクエストの数及び種類に基づいて能力を増減することができる。サービスを提供するコンテンツの一部はまた、リクエストしているクライアントと共に短縮された待ち時間の位置に配置されるように移動されてもよい。例えばコンテンツプロバイダは、特定のクライアントに物理的に及び／または論理的に最も近いサービスを提供するコンテンツに関連付けられたシステムまたはネットワークの「エッジ」を判定することができる。コンテンツプロバイダはその後、例えばリソースを「スピンアップする」すなわちリソースを移動させる、またはそうでなければ、特定のクライアントと相互に作用するために判定されたエッジに関連付けられたコンポーネントを利用する場合もある。そのようなエッジの判定プロセスは、一部のケースでは、特定のクライアントと相互作用するのに十分に適したコンポーネントを特定し利用するための有効な技術を提供することができ、また一部の実施形態では、１つまたはコンテンツプロバイダと複数のクライアントの間の通信のための待ち時間を短縮することもできる。
【０１００】
先行するセクションに記載されたプロセス、方法及びアルゴリズムの各々は、１つまたは複数のコンピューティングまたはコンピューティングプロセッサによって実行されるコードモジュールによって、完全にまたは一部が自動的に具現化されてよい。コードモジュールは、例えばハードディスク、ソリッドステートメモリ、光学ディスクなど任意の種類の非一時的コンピュータ可読媒体または他のコンピュータストレージデバイスに記憶されてよい。プロセス及びアルゴリズムは、特定用途向けの回路において部分的にまたは全体が実施されてよい。開示されるプロセス及びプロセスステップの結果は、永久的に記憶されてよい、またはそうでなければ例えば揮発性または不揮発性ストレージなど任意のタイプの非一時的コンピュータストレージに記憶されてよいよい。
【０１０１】
上記に記載した種々の特徴及びプロセスは、互いから独立して使用されてよい、または様々な方法で組み合わされる場合もある。全ての可能性のある組み合わせ及び副次的な組み合わせは、本開示の範囲内にあることが意図されている。加えて、特定の方法またはプロセスブロックは、一部の実装形態では省略される場合もある。本明細書に記載される方法及びプロセスは、任意の特定の順序に限定されるものではなく、それに関連するブロックまたは状況は、適切である他の順序で行うこともできる。例えば記載されるブロックまたは状況は、具体的に開示されるもの以外の順番で行われる場合もある、または複数のブロックまたは状況が、１つのブロックまたは状況に組み合わされる場合もある。一例のブロックまたは状況は、連続して、並行して、または何らかの他のやり方で行われる場合もある。ブロックまたは状況が開示される実施形態に加えられる、または開示される実施形態から削除される場合もある。本明細書に記載される一例のシステム及び構成要素は、記載されるものとは異なるように構成される場合もある。例えば、開示される一例の実施形態に要素が加えられる、そこから削除される、または開示される一例の実施形態と比較して再構成される場合がある。
【０１０２】
種々のアイテムが、使用される間、メモリ内またはストレージ上に記憶されるように例示されており、これらのアイテムまたはその一部は、メモリ管理及びデータの完全性の目的で、メモリと、他のストレージデバイスの間で移動される場合もあることも理解されたい。あるいは他の実施形態において、ソフトウェアモジュール及び／またはシステムの一部または全ては、メモリ内または別のデバイス上で実行されてよく、コンピュータ間の通信を介して、例示されるコンピューティングシステムと通信する場合もある。さらに、一部の実施形態では、システム及び／またはモジュールの一部または全ては、少なくとも部分的にファームウェア及び／またはハードウェア内など他の方法で実装されるまたは設けられる場合もあり、これに限定するものではないが１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）、標準的な集積回路、制御装置（例えば適切な命令を実行することによる、及びマイクロコントローラ及び／または埋め込み式制御装置を含む）、フィールドプログラマブルアレイ（ＦＰＧＡ）、コンプレックスプログラマブル論理デバイス（ＣＰＬＤ）などが含まれる。モジュール、システム及びデータ構造の一部または全てはまた、適切な接続を介して適切なドライブによって読み取られるコンピュータ可読媒体、例えばハードディスク、メモリ、ネットワークまたは持ち運び可能なメディア製品上に記憶される場合もある（例えばソフトウェア命令または構造化データとして）。システム、モジュール及びデータ構造は、生成されたデータ信号（例えば搬送波または他のアナログもしくはデジタル式に伝播された信号の一部として）として、無線式及び有線／ケーブル式媒体を含めた、多様なコンピュータ可読伝送媒体上で伝送されてよく、（例えば単一のまたは複合的なアナログ信号として、または複数の別個のデジタルパケットもしくはフレームの一部として）種々の形態を採ることができる。
そのようなピュータプログラム製品は、他の実施形態では他の形態を採る場合もある。したがって本発明は、他のコンピュータシステム構成と共に実施される場合もある。
【０１０３】
本明細書で使用される条件付き文言、例えばとりわけ「ｃａｎ（できる）」、「ｃｏｕｌｄ（できるだろう）」、「ｍｉｇｈｔ（可能性がある）」、「ｍａｙ（してよい）」などは、特に明記しない限り、または使用される文脈の中で他の意味で理解されない限り、特定の実施形態が特定の特徴、要素及び／またはステップを含み、他の実施形態は特定の特徴、要素及び／またはステップを含まないことを伝えることが概ね意図されている。したがって、係る条件付き文言は、特徴、要素及び／もしくはステップが１つまたは複数の実施形態にいずれにせよ必要とされること、または１つまたは複数の実施形態が必ず、作成者の考えの提供または手助けがあって、またはそれらなしで、これらの特徴、要素及び／もしくはステップが含まれるのかどうか、または任意の特定の実施形態で実行されるべきかどうかを決定するための論理を含むことを暗示することは概ね意図されていない。用語「ｃｏｍｐｒｉｓｉｎｇ（含む、備える）」、「ｉｎｃｌｕｄｉｎｇ（含む）」、「ｈａｖｉｎｇ（有する）」等は同義語であり、オープンエンド方式で包括的に使用され、追加の要素、特徴、行為、動作等を排除しない。また、用語「ｏｒ（または）」は、使用されるとき、例えば要素のリストを接続するために、用語「ｏｒ（または）」がそのリスト中の要素の１つ、いくつか、または全てを意味するようにその包括的な意味で（及びその排他的な意味ではなく）使用される。
【０１０４】
これらの実施例は、例示的なものに過ぎず、本開示の範囲を限定するようには意図されていない。よって上述の記載においては、任意の特定の機構、特徴、ステップ、モジュールまたはブロックが必須である、または絶対に必要であることを示唆することは意図されていない。当然のことながら、本明細書に記載される新規の方法及びシステムは、様々な他の形態で具現化されてよく、さらに本明細書に記載される方法及びシステムの形態における様々な省略、代替及び変更は、本明細書に開示される発明の精神から逸脱することなくなされてよい。添付の特許請求の範囲及びその等価物は、本明細書に開示される特定の発明の精神及び範囲内にあるそのような形態または修正形態を包含するように意図されている。
【図１】
0006660460.tif 000002
【図２】
0006660460.tif 000003
【図３】
0006660460.tif 000004
【図４】
0006660460.tif 000005
【図５】
0006660460.tif 000006
【図６】
0006660460.tif 000007
【図７】
0006660460.tif 000008
【図８】
0006660460.tif 000009