JP5746509B2 - 投機的物理モデリングと目的に基づく人工知能との組み合わせ - Google Patents

投機的物理モデリングと目的に基づく人工知能との組み合わせ Download PDF

Info

Publication number
JP5746509B2
JP5746509B2 JP2010549945A JP2010549945A JP5746509B2 JP 5746509 B2 JP5746509 B2 JP 5746509B2 JP 2010549945 A JP2010549945 A JP 2010549945A JP 2010549945 A JP2010549945 A JP 2010549945A JP 5746509 B2 JP5746509 B2 JP 5746509B2
Authority
JP
Japan
Prior art keywords
subsystem
character
simulation
speculative
deformable object
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.)
Expired - Fee Related
Application number
JP2010549945A
Other languages
English (en)
Other versions
JP2011513009A (ja
Inventor
プッゾル、デーヴィッド
クンゼ、アロン
モリソン、テレサ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2011513009A publication Critical patent/JP2011513009A/ja
Application granted granted Critical
Publication of JP5746509B2 publication Critical patent/JP5746509B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • A63F13/67Generating 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 adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
    • 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/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • 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/6027Methods for processing data by generating or executing the game program using adaptive systems learning from user actions, e.g. for skill level adjustment
    • 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/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • 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/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6615Methods for processing data by generating or executing the game program for rendering three dimensional images using models with different levels of detail [LOD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

コンピュータゲームの分野では、コンピュータに制御される実体の動作を統括するべく人工知能(AI)が含められる場合がある。ビデオゲームにおけるAIの例としては、AIの実体が有限状態マシンまたは目的に基づく計画を利用してゲーム内の目的を達成して、知能の錯覚を起こさせるような計画、AIにより制御される実体が経路発見アルゴリズムを利用して環境をナビゲートして所望の地点に到達する経路発見、および、AIにより制御される実体がしばしば自身の動きを他人の動きに基づいて調節するステアリングが含まれる。AI技術の適用により、コンピュータゲームは、知能の錯覚および興味深い目標をプレーヤに提示し、ビデオゲームの成功の決定要因になりうる非人間実体を含むことができるようになる。
コンピュータゲームでは物理シミュレーション(以下、「物理」と称する)も利用される。ゲームにおける物理は、オブジェクト間の衝突を検出したり、衝突の反応(反発、融合、粉砕)を制御したりする行動、流体の流れのシミュレーション(例えば、河川を含む環境または流体を利用する武器を示す目的から)、衣類シミュレーション(着衣または武装する人または生き物のリアリティを高める目的から)武器物理(軌道シミュレーション、爆発シミュレーション)、その他様々なトピックを含む。より最近のビデオゲームへの物理応用には、オブジェクトを物理で操作できるような変形可能な世界というコンセプトが含まれるようになってきている。変形可能な世界では、オブジェクトの幾らかまたは全てを物理的特性により記述し、プレーヤとオブジェクトとの相互作用により、ゲーム環境を変化させ、操作することができる。このような変形可能な世界の物理が可能とする事例には、ドアを通るのではなく壁に穴を開けること、あるいは、武器を発射させるのではなく環境内に見つかる椅子を投げつけること等が含まれる。
しかし、物理もAIも双方とも、ビデオゲームにおいてコンピュータを集中的に利用する傾向にある。現在のゲームの物理は、毎秒10−100x10浮動小数点演算を消費し(GFLOPS)、将来のゲームは、体積流体(volumetric fluid)等の多くの環境物理特性をサポートするためにこれ以上のコンピュータリソースを消費することが見込まれる。さらに、物理およびAIを実装するソフトウェアは、コードの複雑性(分岐、不定期/非ストリーミングメモリアクセス)およびデータの複雑性(高度なデータ構造の利用)両面から、複雑な場合が多い。一般的には、物理サブシステムおよびAIサブシステムは、相互作用はしない。
本発明の一実施形態における予めプログラミングされた潜在的な動作の例示的なグラフである。 本発明の一実施形態における例示的なグラフを示す。 本発明の一実施形態における方法のフロー図を示す。 本発明の一実施形態における1以上の投機的物理シミュレーションを行う方法のフロー図を示す。 本発明の一実施形態におけるシステムのブロック図である。
実施形態は、ビデオゲーム等のコンピュータベースのゲームにおいてAIと物理とを組み合わせることに利用可能である。より詳しくは、これら異なる技術を、AIが達成を希望する一定の目的(例えばプレーヤの殺人)を有する目的指向のAIというコンセプトと、変形可能な世界の物理の投機的実行(例えば壁を撃つことによりプレーヤの上に建物が倒れるか否かを評価すること)を組み合わせる等により組み合わせることができる。ゲーム物理およびAIの場合に、目的指向のAIシステムは、このように、物理指向の変形可能な世界を、可能性ある動作の一般的な(状況に応じた、または予めプログラミングされたものではない、という意味)レパートリに加えることができる。従って設計者が常に物理環境の変形可能性によりAI実体に与えられる全てのオプションを予期する必要があるのではなく、AI実体が、変形可能なオブジェクトと投機的に相互作用することによりオプションを動的に発見する機能を有するようになる。本明細書で利用される「AI実態」または「AIキャラクタ」という称呼は、AIシステムが制御するゲーム環境に存在するアクタまたはその他のエージェントを表す。
AI指向の発見の一例では、AIシステムは、壁を撃つことで、プレーヤが衝突により死ぬか否か、ベンチを押すことがプレーヤを捕まえる新たな方策となりうるか、あるいは、爆弾の爆発によりプレーヤの通過を妨げることができるか、等を決定することができる。これにより、さらに、変形可能な世界の物理機能を有効利用することが可能となり、同時に、AIの創造性が豊かになり、AIキャラクタの知性をプレーヤに与えたかのように見えるようになる。
これに対して、今日の殆どのビデオゲームでは、AIおよび物理は、比較的限定された様式で利用されている。通常AIは、状態に基づく、あるいは、非常に限定された目的指向の行動をとる。さらに、AIキャラクタが利用可能なオプションは、設計者により記述される必要がある。これは労力がかかるプロセスであり、且つ、設計者が静的に生成する環境との相互作用にAIを限定するプロセスである。従って、現在のゲームのAIは、世界の変形の可能性を提供する場合もあるが、このような可能性はゲームの設計者により手動で予めプログラミングされている現状である。例えば、AIキャラクタが窓から侵入して部屋に入るというオプションは、設計者がこのオプションを明示的にAIアルゴリズムに追加しているときに限って可能となる。通常このようなオプションは、試みることのできる特定のオブジェクトまたは動作のリストのみを含む。さらに、現在のコンピュータゲームは、プレーヤが動作して、物理シミュレーションによりその結果をモデリングするという反応性の物理を利用している。しかしこのようなゲームでは、目的指向のAIと投機的物理実行との組み合わせが利用できない。本発明の一実施形態を利用してこれら2つの技術を組み合わせることにより、ゲームがプレーヤにとってよりチャレンジングで、且つ面白いものになり、ゲームの設計者が必要な作業量を低減させることができ、AIの機能を増やすことで、設計者も予期しない方法で物理環境を有効利用できるようになる。
多くの実装例が可能であるが、一実施形態を一例として示す。本例示的な実施形態では、目的指向の計画を利用して、設計者がゲーム開発中に、AIキャラクタがとりうる動作とその可能性ある結果を示す潜在的な動作のグラフを作成する。これを利用することでAIキャラクタの目的が達成される。
図1Aは、予めプログラミングされた潜在的な動作を示す例示的なグラフを示し、ここでの目的は、ドアの壁の反対側のスイッチを押すことである。図1Aでは、ノードは、AIキャラクタがとりうる状態であり、エッジはAIキャラクタがとりうる動作を示す。エッジは、さらにコスト値とともに示されており、AIキャラクタの特定の動作に対する嗜好性を示す。従って図1Aの潜在的な動作のグラフ10は、AIキャラクタがとりうる状態をそれぞれ示す複数のノード20、25、および35を含む。特に、状態20は、ドアを開けた後のAIキャラクタの位置および状態に関しており、ノード25は、ドアを蹴り倒した後のAIキャラクタの状態および位置に関しており、ノード35は、AIキャラクタがスイッチを押した後であってよい。一実施形態では、AIサブシステムは、グラフから目的までの最も低いコストの経路を探し、計画を実行する。例えばドアが施錠されている場合、AIはこれに気づいて、計画を練り直す。図1Aの実施形態では、括弧内の数値が各動作のコストを示している。
本発明の一実施形態を利用すると、この予めプログラミングされたグラフを、AIシステムから物理システムへのクエリにより提供されるオプションにより動的に強化することができる。例えば上述のシナリオでは、壁の幾らかの部分をレンガの積層として、爆発で操作可能な状態にモデリングすることができる。設計者からの入力がない場合、AIシステムは、キャラクタから見ることのできる全ての変形可能なオブジェクトを動的にレイキャストすること(raycast)により特定することができる。オブジェクトが見つかると、投機的物理シミュレーションを行って、例えばロケット発射によりオブジェクトを射撃した結果、AIキャラクタが目的を達成できるか否かを判断することができる。このオプションが利用可能であった場合には、図1Aは、図1Bのグラフに類似するよう強化されうる。
より具体的には、図1Bは、本発明の一実施形態による潜在的な動作のグラフを示す。グラフ10では、さらなる状態40が存在している。このさらなる状態40は、ゲームのランタイム中に動的に追加されうる。つまり、AIサブシステムは、自身の存在する環境を見て、変形可能なオブジェクト(例えば壁)の存在を判断し、物理サブシステムに対する要求を生成して、投機的物理シミュレーションを行わせ、ある動作(例えば壁に向けてロケット発射を行うこと)の結果、所望の結果が生じるか否か(つまり、壁またはその一部を打破して、AIキャラクタが最終目的を達成することができるか否か)を判断させることができる。従って、図1Bのグラフ10'は、図1Aのグラフ10のものに等しい予めプログラミングされたオプションから始めてこのグラフをAIサブシステムが要求する1以上の投機的物理シミュレーションの結果に基づいて更新することで、ランタイム中に動的に生成される。このようにして、この強化されたグラフによって、設計者が明示的にその全ての可能性ある動作を記述する必要なく、AIキャラクタが様々な方法で環境と相互作用することができるようになる。図1Bの実施形態では、壁に向けたロケット発射のコストは、他の潜在的な動作のものよりも高い場合がある。幾らかの実装例では、このような投機的動作に伴うコストは、設計者が決定することもできる。例えば、全てのロケット発射は、設計者がAIキャラクタに対してより繊細な方法を望む場合には、乱闘よりも高い一定のコストを付すことができる。他の実装例では、コストを物理サブシステムにより生成することもできる。例えば、特定の重量のブロックを押す際に加えられる動作を利用して、AIキャラクタに、より小さい物理動作を嗜好させることができる。
図2は、本発明の一実施形態による方法のフロー図を示す。図2に示すように、方法100がランタイム中にAIサブシステムにより利用されることで、1以上の投機的物理シミュレーションの結果を要求して取得して、この結果を、とるべき動作の決定に利用することができる。図2のフロー図はゲーム実行中のランタイムに関するが、実施形態は、ゲーム開発の設計段階中に利用されてもよい。従って以下に示すように、AIサブシステムは、ゲームのプロトタイプの実行中に図2に示すものに類似した方法で動作することで、変形可能なオブジェクトに対してとりうる様々な潜在的な動作を決定して、投機的物理シミュレーションの結果に基づいてゲームの設計者が1以上の潜在的な動作を予めプログラミングされた動作の選択肢に組み込むという選択ができるようにしてよい。
図2の方法100は、AIキャラクタが見ることのできる変形可能なオブジェクトを特定する要求を発行することから始まる(ブロック110)。様々な実施形態では、ゲーム実行中にAIサブシステムは、AIキャラクタが環境に入ると、AIキャラクタが見ることのできる1以上の変形可能なオブジェクトの存在を判断することができる。これら変形可能なオブジェクトの少なくとも1つまたはこれより潜在的に多い数または全てについて、AIサブシステムは、これら変形可能なオブジェクトの1以上に対して行われるべき投機的動作の投機的物理シミュレーションの要求を生成することができる(ブロック120)。このようにしてAIサブシステムは、これら要求を、以下に詳述するように投機的物理シミュレーションを実行することのできる物理サブシステムに対して送る。
ブロック130で、シミュレーション結果が物理サブシステムから受信されてよい。任意の投機的動作が所望の結果を生じさせること(例えば壁を蹴り倒すこと、バリアを構築すること、または、その他所望の動作を生じさせること)に成功するか否かを示しうるこれらの結果に基づいて、これら結果を潜在的な動作のグラフに組み込むことができる(ブロック140)。例えば、図1Bに戻ると、投機的物理シミュレーションの結果に基づいて、AIサブシステムはさらなるノード40を追加して、グラフ10を作成することができる。このグラフに基づいて、潜在的な動作(グラフに示すもの等)のうちの1つが選択されうる(ブロック150)。より具体的には一実施形態では、AIサブシステムは、実行する際のコストが最も低い動作を選択することができる。最後に、ブロック160で、選択された動作を実行することができる。本発明の範囲は図2の実施形態におけるこの特定の実装例に限定はされず、AIサブシステムは上述した方法とは異なる投機的物理シミュレーションの結果を要求および利用することもできる。
投機的物理シミュレーションの実行は演算上高価なものとなりうる。従って幾らかの実施形態では、全投機的物理シミュレーションの分散(variance)を実行することで複雑度を下げ、幅広いゲームシナリオおよびハードウェア環境での動作を可能とすることができる。これら分散(variant)には、オブジェクトを実際にゲームで動作させる物理と比べて精度の劣る投機的物理シミュレーションを実行すること、投機的物理シミュレーションを行うときの処理時間を制限すること(例えば、この種類のシミュレーションは50%未満等の所定のレベルの処理帯域幅に限定されることがある)、および、オブジェクトがAIキャラクタの視界からどのくらい遠くにいるかに応じて物理シミュレーションの優先順位を決めること、等が含まれる。ここで、別個の投機的物理シミュレーションが完全に独立して動作可能であるので、多数の同時シミュレーションを並行して行うこともできる点に留意されたい。
上述したように、投機的物理シミュレーションに関して様々な最適化を行うことで演算上の複雑度を低減させる等の効果が可能となる。図3は、本発明の一実施形態における1以上の投機的物理シミュレーションを行う方法のフロー図を示す。図3の方法200は、1以上の投機的物理シミュレーションについての要求を受信することから開始されてよい(ブロック210)。次に、物理サブシステムは、AIキャラクタと変形可能なオブジェクトとの間の距離に基づいてこれらシミュレーションの優先順位を決めてよい(ブロック220)。例えば、幾らかの要求が受信され、このうち少なくとも1つの要求がAIキャラクタの視野内にある多数の変形可能なオブジェクトの各々に関連していると仮定する。優先順位決定を行うべく、物理サブシステムは、物理シミュレーションを行う際に最も近いオブジェクトを選択することができる。少なくとも、物理サブシステムは、最も近いオブジェクトを最初に分析するようシミュレーションの順位付けを行うことができる。
図3では次に、各シミュレーションに対して、該シミュレーションを行うのに足るリソースが存在するかを判断してよい(ダイアモンド230)。例えば一実装例では、シミュレーションを複数並列に行い、個々を任意のプロセッサの多数のコアまたは他の処理部に対して提供することができる。あるシミュレーションに対して利用可能なリソースがない場合には、方法はそのシミュレーションについて終了してよい。一方リソースが利用可能である場合には、制御はブロック240に移り、動作をシミュレーションして、物理モデルを生成することができる(ブロック240)。例えば、物理モデルの実装により、統合段階および衝突検出段階を実行することができる。統合段階では、変形可能なオブジェクトおよび/または他の本体を移動させ、この統合段階中の1以上の時点において、衝突検出を行って、2つの本体が衝突したか否かを判断することができる。利用可能なリソース量に基づいて、これら統合段階および衝突検出段階を異なる粒度で行うことができる。シミュレーションが完了すると、変形可能なオブジェクトの特定および投機的結果(例えば壁が打破されたか等)に相当していてよいシミュレーション結果をAIサブシステムへ戻してよい(ブロック250)。そして、さらに行うべきシミュレーションがある場合には、制御を前述したダイアモンド230に戻してよい。本発明の範囲は、図3の実施形態のこの特定の実装例には限定されない。
上述したように、実装例の幾らかにおいては、AIおよび物理シミュレーションの組み合わせは、ゲームの設計段階中に行うこともできる。より詳しくは、最初のプログラミングが終わりプロトタイプのプログラムが実行用に利用可能となってから、このプロトタイプまたは確認実行段階で、AIサブシステムは1以上の投機的物理シミュレーションの実行を試みて、可能性のある動作の潜在的な結果を判断することができる。これら投機的物理シミュレーション結果は、その後、ゲーム設計者により分析されてよい。この結果に基づいて、ゲーム設計者は、潜在的な動作のグラフに組み込むべく、1以上の潜在的な動作を選択することができる。従ってこの投機的動作に基づいて、AIキャラクタが利用可能な予めプログラミングされた動作一式に対して、1以上のさらなる潜在的な動作をプロトタイププログラムへの修正または更新として含めることができる。図1Bに戻ると、さらなるノード40が、ゲームのプロトタイプ動作中に実行される投機的物理シミュレーションに基づいて図1Aのグラフ10等の予めプログラミングされたグラフに追加されてよい。
従って本発明の様々な実施形態を利用すると、ゲーム実行中にAIキャラクタは、設計者が記述してゲームに組み込む予めプログラミングされた決定に基づいて複数の潜在的な動作から選択を行うことができる。またさらに、さらなる潜在的な動作を、ゲーム開発中にAIサブシステムが生成する潜在的な決定に基づいて行うことができる。このプロトタイプのゲーム実行中に、潜在的な決定を含む結果を受信すると、AIサブシステムは、ゲーム設計者が予めプログラミングした1以上の潜在的な動作を既に含んでいる潜在的な動作のグラフを更新することができる。このプロトタイプの動作モードでは、一実装例のプロトタイプゲームは、グラフに対する任意のさらなる潜在的な決定を、後にゲーム設計者がアクセス可能なトレースキャッシュまたは他の格納位置に保存するよう、制御されてよい。またさらに、幾らかの実装例では、コストが静的に定義された動作のものより大きい場合であっても、これら動的に更新される潜在的な動作の1以上をAIキャラクタによる実行用に選択するよう、プロトタイプのゲーム実行を制御することができる。この実行結果もトレースキャッシュまたは他の記憶装置に保存することにより、ゲーム設計者がゲーム実行を見直す際、潜在的な動作のグラフにこれら動作を予めプログラミングすることが望ましいかを判断することができる。従って、この動作に基づき、これら潜在的な決定がゲーム開発中に設計者により選択されて、ゲームの最終版に予めプログラミングすることができるようになる。
最後に、様々な実施形態では、ランタイム動作中に、AIサブシステムは、物理サブシステムに、ランタイム中に自動的に1以上の投機的物理シミュレーションを要求することができる。これら潜在的な動作に関する結果は、実行される潜在的な動作のグラフに追加することができる。従って、AIキャラクタはランタイム中にこれら動的に追加された動作のいずれかを選択して、ユーザに対するゲームの現実感を向上させることができる。
実施形態は、多くの異なる種類のシステムで実装可能である。図4は、本発明の一実施形態におけるシステムのブロック図である。図4のマルチプロセッサシステム500は、ポイントツーポイントインターコネクトシステムであり、ポイントツーポイントインターコネクト550で連結された第1のプロセッサ570および第2のプロセッサ580を含む。図4に示すように、プロセッサ570および580の各々は、第1および第2のプロセッサコア(つまり、プロセッサコア574aおよび574b、およびプロセッサコア584aおよび584b)を含むマルチコアプロセッサであってよいが、これより多い数のコアがプロセッサに存在していてもよい。各プロセッサコアは、インタープロセッサ通信ネットワークにより連結されたコヒーレントな幅広いベクトル処理部およびキャッシュメモリを有するインオーダのプロセッサ(in-order processor)であってよい(図4には不図示)。さらに、幾らかの実施形態では、プロセッサ570および580はさらに、一実施形態では1以上の専用物理処理部を含み、投機的物理シミュレーションを行うよう適合させることができる固定機能コプロセッサを含むことができる。しかし多くの実装例では、投機的物理シミュレーションは、本発明の一実施形態により選択された1以上の(例えば1つのサブセットの)プロセッサコア上で実行されてよい。従って実施形態は、多くのコアを含む環境を有するアーキテクチャを有効利用して、高速投機的物理シミュレーションを、1以上のプロセッサコアで実行されるAIサブシステムが制御するAIキャラクタとの関連で実行することができる。
図4の第1のプロセッサ570はさらに、メモリコントローラハブ(MCH)572とポイントツーポイント(P−P)インタフェース576および578とを含む。同様に、第2のプロセッサ580は、MCH582とP−Pインタフェース586および588とを含む。図2に示すように、MCH572および582は、プロセッサそれぞれにローカルに添付されるメインメモリ(例えばDRAM)の一部でありうるそれぞれのメモリ(メモリ532およびメモリ534)にプロセッサを連結する。第1のプロセッサ570および第2のプロセッサ580は、P−Pインターコネクト552および554を介してチップセット590に連結されてよい。図4に示すように、チップセット590はP−Pインタフェース594および598を含む。
さらにチップセット590は、P−Pインターコネクト539により、チップセット590を高性能グラフィックスエンジン538に連結するインタフェース592を含む。そして、チップセット590は、インタフェース596を介して第1のバス516に連結されてよい。図4に示すように、様々な入出力(I/O)デバイス514が、第1のバス516を第2のバス520に連結するバスブリッジ518とともに、第1のバス516に連結されてよい。一実施形態では、例えばキーボード/マウス522、通信デバイス526、および、コード530を含んでよいディスクドライブまたは他の大容量記憶デバイス等のデータ記憶ユニット528を含む様々なデバイスが、第2のバス520に連結されてよい。さらに、音声入出力524が第2のバス520に連結されてよい。
実施形態は、コードによる実装が可能であり、システムを、命令を行わせるようプログラミングに利用されうる命令を格納する記憶媒体上に格納することができる。記憶媒体は、フロッピー(登録商標)ディスク、光学ディスク、CD−ROM、CD−RW、および光磁気ディスク等の任意の種類のディスク、ROM、DRAM等のRAM、SRAM、EPROM、フラッシュメモリ、EEPROM(登録商標)、磁気または光学カードを含む半導体デバイス、または電子命令を格納するのに適した任意の他の種類の媒体を含みうるがこれらに限定はされない。
本発明を限られた数の実施形態に関して記載してきたが、当業者であれば多数の変形例および変更例について想到することができる。添付請求項はこれら全ての変形例および変更例を本発明の真の精神および範囲内に含むことを意図している。

Claims (14)

  1. プロセッサ上で実行される人工知能サブシステム(AIサブシステム)が、コンピュータゲームの人工知能キャラクタ(AIキャラクタ)が見ることができる前記コンピュータゲームのシーンの変形可能なオブジェクトを特定する段階と、
    前記AIサブシステムが、前記変形可能なオブジェクトに対する前記AIキャラクタによる少なくとも1つの動作の結果を判断するべく、前記少なくとも一つの動作により生じる前記変形可能なオブジェクトの変形をシミュレーションする少なくとも1つの投機的物理シミュレーションを物理サブシステムに要求する段階と、
    前記AIサブシステムが、前記物理サブシステムによる前記少なくとも1つの投機的物理シミュレーションに少なくとも部分的に基づいて、前記AIキャラクタがとりうる複数の動作のうち1つの動作を選択する段階とを備える方法。
  2. 前記選択する段階は、前記複数の動作のそれぞれに関するコストに少なくとも部分的に基づいて、前記複数の動作から前記1つの動作を選択する段階を含む請求項1に記載の方法。
  3. 前記要求する段階は、複数の前記投機的物理シミュレーションを前記物理サブシステムに要求する段落を含み
    前記物理サブシステムによる複数の前記投機的物理シミュレーションの優先順位は、対応する前記変形可能なオブジェクトと前記AIキャラクタとの間の距離に基づく請求項1又は2に記載の方法。
  4. 前記物理サブシステムが、複数の前記投機的物理シミュレーションの要求を受信すると、第1の精度を有するシミュレーションモデルを用いて前記少なくとも1つの投機的物理シミュレーションを行う段階をさらに備え、
    前記第1の精度は、前記変形可能なオブジェクトの実際の動きに対して行われるシミュレーションモデルの第2の精度よりも低い請求項1から3のいずれか一項に記載の方法。
  5. 前記複数の動作のうち1つの動作を選択する段階の前に、前記AIサブシステムが、前記少なくとも1つの動作の前記結果を前記物理サブシステムから受信して、前記結果に基づいて前記AIキャラクタがとるべき潜在的な動作のグラフを更新する段階をさらに備える請求項1から4のいずれか一項に記載の方法。
  6. 前記少なくとも1つの投機的物理シミュレーションを行う段階では、複数の前記投機的物理シミュレーションの各々が、前記プロセッサに含まれる複数のコアのうちの異なるコア上で実行される請求項4に記載の方法。
  7. 前記物理サブシステムが、前記AIサブシステムによって要求された前記少なくとも1つの投機的物理シミュレーションの実行に対して利用可能なプロセッサリソースを予め定められたレベルに制限する段階をさらに備える請求項1から6のいずれか一項に記載の方法。
  8. 前記コンピュータゲームのシーンの前記変形可能なオブジェクトを特定する段階、前記AIサブシステムから要求する段階、及び前記AIサブシステムにより前記動作のうち1つの動作を選択する選択する段階は、前記AIサブシステムが前記コンピュータゲームのプロトタイプを実行中に行われる請求項1から7のいずれか一項に記載の方法。
  9. ンピュータに実行させるためのプログラムであって、
    前記コンピュータに、
    コンピュータゲームの人工知能キャラクタ(AIキャラクタ)が見ることができる前記コンピュータゲームのシーンの変形可能なオブジェクトを特定させ、
    前記変形可能なオブジェクトに対する前記AIキャラクタによる少なくとも1つの動作の結果を判断するべく、前記少なくとも一つの動作により生じる前記変形可能なオブジェクトの変形をシミュレーションする少なくとも1つの投機的物理シミュレーションを要求させ、
    前記少なくとも1つの投機的物理シミュレーションに少なくとも部分的に基づいて、前記AIキャラクタがとりうる複数の動作のうち1つの動作を選択させる、プログラム
  10. プロセッサ上で実行される人工知能サブシステム(AIサブシステム)と、
    少なくとも1つの投機的物理シミュレーションを行う物理サブシステムと
    を備え、
    前記AIサブシステムが、コンピュータゲームの人工知能キャラクタ(AIキャラクタ)が見ることができる前記コンピュータゲームのシーンの変形可能なオブジェクトを特定し、
    前記AIサブシステムが、前記変形可能なオブジェクトに対する前記AIキャラクタによる少なくとも1つの動作の結果を判断するべく、前記少なくとも一つの動作により生じる前記変形可能なオブジェクトの変形をシミュレーションする前記少なくとも1つの投機的物理シミュレーションを前記物理サブシステムに要求し、
    前記AIサブシステムが、前記物理サブシステムによる前記少なくとも1つの投機的物理シミュレーションに少なくとも部分的に基づいて、前記AIキャラクタがとりうる複数の動作のうち1つの動作を選択する、システム。
  11. コンピュータに実行させるためのプログラムであって、
    前記コンピュータに、
    コンピュータゲームのプロトタイプ版の開発実行中に人工知能キャラクタ(AIキャラクタ)が見ることのできる前記コンピュータゲームのシーンの変形可能なオブジェクトを特定させ、
    前記AIキャラクタによる前記変形可能なオブジェクトに対する可能性のある少なくとも1つの動作の結果を判断するべく、前記少なくとも1つの動作により生じる前記変形可能なオブジェクトの変形をシミュレーションする少なくとも1つの投機的物理シミュレーションを行わせ、
    前記AIキャラクタがとりうる可能性のある複数の静的に定義された動作のグラフを、動的に定義された動作に対応する結果で動的に更新させ、
    前記結果を、前記コンピュータゲームのプログラマがアクセスする一時記憶に格納させる、プログラム。
  12. 前記コンピュータに、更に、前記可能性のある複数の静的に定義された動作の前記グラフから前記AIキャラクタがとりうる複数の動作のうち1つの動作を選択させる請求項11に記載のプログラム。
  13. 前記コンピュータに、更に、前記動的に定義された動作に関するコストが前記複数の静的に定義された動作のコストより高い場合であっても、前記動的に定義された動作を実行のために前記AIキャラクタに選択させる請求項11又は12に記載のプログラム。
  14. 前記コンピュータに、更に、選択された前記動作により生じる結果を、前記プログラマがアクセスする前記一時記憶に格納させる請求項11から13のいずれか一項に記載のプログラム。
JP2010549945A 2008-03-26 2009-03-20 投機的物理モデリングと目的に基づく人工知能との組み合わせ Expired - Fee Related JP5746509B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/079,372 US8069124B2 (en) 2008-03-26 2008-03-26 Combining speculative physics modeling with goal-based artificial intelligence
US12/079,372 2008-03-26
PCT/US2009/037820 WO2009120601A2 (en) 2008-03-26 2009-03-20 Combining speculative physics modeling with goal-based artificial intelligence

Publications (2)

Publication Number Publication Date
JP2011513009A JP2011513009A (ja) 2011-04-28
JP5746509B2 true JP5746509B2 (ja) 2015-07-08

Family

ID=41114606

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010549945A Expired - Fee Related JP5746509B2 (ja) 2008-03-26 2009-03-20 投機的物理モデリングと目的に基づく人工知能との組み合わせ

Country Status (6)

Country Link
US (2) US8069124B2 (ja)
EP (1) EP2254673A4 (ja)
JP (1) JP5746509B2 (ja)
KR (2) KR20120060917A (ja)
CN (1) CN101977662B (ja)
WO (1) WO2009120601A2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2009201433B2 (en) * 2008-04-15 2013-11-21 Electronics And Telecommunications Research Institute Improved physics-based simulation
JP5759164B2 (ja) * 2010-12-20 2015-08-05 株式会社スクウェア・エニックス ゲーム用人工知能
US8826153B2 (en) * 2011-10-04 2014-09-02 Google Inc. Speculative actions based on user dwell time over selectable content
KR101265051B1 (ko) * 2012-05-30 2013-05-16 주식회사 쏘그웨어 게임 사용자 수준에 따른 npc ai제공방법
US8799799B1 (en) * 2013-05-07 2014-08-05 Palantir Technologies Inc. Interactive geospatial map
JP6032710B2 (ja) * 2013-09-12 2016-11-30 株式会社コナミデジタルエンタテインメント シミュレーション装置及びプログラム
JP2015083555A (ja) * 2013-10-25 2015-04-30 花王株式会社 頭髪の染色又は脱色方法
CN104965695B (zh) * 2014-11-25 2018-01-23 深圳市腾讯计算机系统有限公司 模拟用户实时操作的方法和装置
US9891808B2 (en) 2015-03-16 2018-02-13 Palantir Technologies Inc. Interactive user interfaces for location-based data analysis
KR102201215B1 (ko) 2015-06-30 2021-01-08 코오롱인더스트리 주식회사 폴리에스테르 필름 및 이의 제조방법
CN105119733B (zh) * 2015-07-06 2019-01-15 百度在线网络技术(北京)有限公司 人工智能系统及其状态跳转方法、服务器、通信系统
US9600146B2 (en) 2015-08-17 2017-03-21 Palantir Technologies Inc. Interactive geospatial map
US10706434B1 (en) 2015-09-01 2020-07-07 Palantir Technologies Inc. Methods and systems for determining location information
US9893974B2 (en) * 2015-10-11 2018-02-13 Microsoft Technology Licensing, Llc Synchronization of data for colliding bodies
US9987559B2 (en) 2016-05-27 2018-06-05 International Business Machines Corporation Aggregating and utilizing meta-game data for artificial intelligence in video games
CN106422332B (zh) * 2016-09-08 2019-02-26 腾讯科技(深圳)有限公司 应用于游戏的人工智能操作方法和装置
JP6330008B2 (ja) * 2016-10-13 2018-05-23 株式会社 ディー・エヌ・エー Q学習を用いたニューラルネットワークの重み付け調整のためのプログラム、システム、及び方法
CN107890675A (zh) * 2017-11-13 2018-04-10 杭州电魂网络科技股份有限公司 Ai行为实现方法和装置
CN109550249B (zh) * 2018-11-28 2022-04-29 腾讯科技(深圳)有限公司 一种目标对象的控制方法、装置及设备
CN110523081B (zh) * 2019-08-08 2022-07-29 腾讯科技(深圳)有限公司 导航寻路路径的规划方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2888724B2 (ja) * 1993-03-26 1999-05-10 株式会社ナムコ 3次元ゲーム装置及び画像合成方法
US5577185A (en) * 1994-11-10 1996-11-19 Dynamix, Inc. Computerized puzzle gaming method and apparatus
JPH08299597A (ja) * 1995-04-28 1996-11-19 Taito Corp ガンシューティングゲーム機
US6195626B1 (en) * 1998-06-19 2001-02-27 Microsoft Corporation Heightened realism for computer-controlled units in real-time simulation
JP4278071B2 (ja) * 1999-06-17 2009-06-10 株式会社バンダイナムコゲームス 画像生成システム及び情報記憶媒体
JP2001224849A (ja) 1999-12-10 2001-08-21 Sony Computer Entertainment Inc エンタテインメントシステム、エンタテインメント装置、記録媒体及びプログラム
US7260560B2 (en) 2003-06-30 2007-08-21 Microsoft Corporation Modified motion control for a virtual reality environment
US7358973B2 (en) 2003-06-30 2008-04-15 Microsoft Corporation Mixture model for motion lines in a virtual reality environment
US7739479B2 (en) * 2003-10-02 2010-06-15 Nvidia Corporation Method for providing physics simulation data
US7895411B2 (en) * 2003-10-02 2011-02-22 Nvidia Corporation Physics processing unit
US7574695B2 (en) * 2003-12-23 2009-08-11 Ntt Docomo, Inc. Performing checks on the resource usage of computer programs
US20100235608A1 (en) * 2004-03-25 2010-09-16 Aiseek Ltd. Method and apparatus for game physics concurrent computations
GB0407336D0 (en) * 2004-03-31 2004-05-05 British Telecomm Pathfinding system
KR100621559B1 (ko) * 2004-03-31 2006-09-18 봉래 박 인공지능 학습을 통한 게이머의 게임 스타일 이식시스템및 그 이식방법
JP3974134B2 (ja) * 2005-01-25 2007-09-12 株式会社コナミデジタルエンタテインメント プログラム、自動生成方法、ならびに、画像生成装置
KR100766545B1 (ko) * 2005-09-08 2007-10-11 엔에이치엔(주) 게이머의 입력 패턴을 복사하여 게임을 수행하는 게임 ai제어 방법 및 게임 ai 제어 시스템
US7616204B2 (en) * 2005-10-19 2009-11-10 Nvidia Corporation Method of simulating dynamic objects using position based dynamics
US7408550B2 (en) * 2006-07-24 2008-08-05 Bunnell Michael T System and methods for real-time rendering of deformable geometry with global illumination
KR100913030B1 (ko) * 2007-07-18 2009-08-20 중앙대학교 산학협력단 단계별 퍼지 로직을 이용한 게임 전략 방법 및 그 시스템

Also Published As

Publication number Publication date
CN101977662B (zh) 2014-01-22
WO2009120601A3 (en) 2009-11-26
US20120030148A1 (en) 2012-02-02
JP2011513009A (ja) 2011-04-28
EP2254673A4 (en) 2011-06-29
EP2254673A2 (en) 2010-12-01
US8280826B2 (en) 2012-10-02
KR101220071B1 (ko) 2013-01-08
KR20100120697A (ko) 2010-11-16
WO2009120601A2 (en) 2009-10-01
US20090248593A1 (en) 2009-10-01
KR20120060917A (ko) 2012-06-12
CN101977662A (zh) 2011-02-16
US8069124B2 (en) 2011-11-29

Similar Documents

Publication Publication Date Title
JP5746509B2 (ja) 投機的物理モデリングと目的に基づく人工知能との組み合わせ
Tian et al. Elf: An extensive, lightweight and flexible research platform for real-time strategy games
US7788071B2 (en) Physics simulation apparatus and method
US7937359B1 (en) Method of operation for parallel LCP solver
US8930969B2 (en) Cloth application programmer interface
US20070038424A1 (en) Application programming interface for fluid simulations
CN113599798B (zh) 基于深度强化学习方法的中国象棋博弈学习方法及系统
TW200525429A (en) Method and program solving LCPs for rigid body dynamics
Gaudl et al. Behaviour oriented design for real-time-strategy games.
US11275661B1 (en) Test generation of a distributed system
CN113509726B (zh) 交互模型训练方法、装置、计算机设备和存储介质
Schranz et al. Vsnsim-a simulator for control and coordination in visual sensor networks
CN114146414A (zh) 虚拟技能的控制方法、装置、设备、存储介质及程序产品
CN115212575B (zh) 连续状态空间智能体构建方法
Ng et al. Collision detection optimization on mobile device for shoot'em up game
Vagedes et al. ECS Architecture for modern military simulators
Serpa et al. Parallelizing broad phase collision detection for animation in games: A performance comparison of CPU and GPU algorithms
Heinimaki et al. Implementing artificial intelligence: a generic approach with software support.
WO2007089271A2 (en) Application programming interface for fluid simulations
Fuster Durá A New Pseudo Real-time Single-action Game Challenge and Competition for AI
Moldovan et al. ON THE CONSTRUCTION OF A MICRO-WORLD AND THE DESIGN OF A PATH FINDING INTELLIGENT AGENT WITH APPLICATIONS IN ROBOTICS AND GAME DESIGN.
Carlsson Automatic Code Generation from a Colored Petri Net Specification for Game Development with Unity3D
Isanovic Developing a Runner Video Game
Andradi et al. Human behaviour modelling in games using agents
Li ParaEngine: A Game Engine Framework for Distributed Internet Games

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140304

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150310

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150508

R150 Certificate of patent or registration of utility model

Ref document number: 5746509

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees