WISH2010の一般推薦枠にTogetterがノミネートされています。よろしければ投票をお願いします。→こちら

お気に入りしたユーザ

  • totobook2
  • cyma
  • ShiradoMasafumi
  • miyayou

まとめられたつぶやき

  • まだ、C++の話題はOKですか?
    miyayou
    2009-11-16 00:36:58
  • 僕的には、Noel Llopis の C++ for game programmers http://bit.ly/4ae0cL をおぬぬめ。^^ この本が2003年に翻訳されていれば、いろいろな人がいろいろなところで困らなかった。良書。ちなみに、著者は、twitter やってる
    miyayou
    2009-11-16 00:43:55
  • Noel Llopis http://gamesfromwithin.com/ 今は、iPhone 開発へ先進。このサイトは、iPhone 開発者必見。twitter もここから辿れる。
    miyayou
    2009-11-16 00:46:15
  • お薦め2。James Nobel,Small Memory Software: Patterns for systems with limited memory 日本では、何故か「省メモリプログラミング」。副題にかろうじてパターンという言葉が。これはパターンの本なんですよ!^^
    miyayou
    2009-11-16 00:51:54
  • お薦め3。Programming Game AI by Example 実例で学ぶゲームAIプログラミング,Composite Pattern,Command Pattern,State Pattern などパターン応用多し。2006年CEDECでAIにおけるデザインパターン解説
    miyayou
    2009-11-16 00:58:05
  • C++の進化のおかげでAIのプログラミングは非常に楽になったし何よりクラスという概念の抽象性が効いている。さらに、パターンなどで抽象クラスの関係を定義して、実体は派生の実体で持たせる(ファクトリーパターン、コンポジットパターン…)ことで、高い抽象性の関係を表現できるようになった
    miyayou
    2009-11-16 01:02:05
  • 遡って1990~2000年は、ゲーム業界でC言語導入、標準化、使いこなしの時期だった。Cの地平のおかげで、Neural Netも、GAも比較的簡単に実装できるようになった。この時期に、Creatures とか、アストロノーカとか、GA,NNを応用したゲームが出現するようになった
    miyayou
    2009-11-16 01:07:18
  • ゴール指向の実装例が載ってますね。使ったことあるのですが効果的に使えたとは言えませんでしたorz RT @miyayou: お薦め3。Programming Game AI by Example 実例で学ぶゲームAIプログラミング
    nezumimusume
    2009-11-16 01:09:11
  • C++,オブジェクト指向で知能の構造化を抑えるという方向は非常に有効なはずだ。知能の構造化実装は、概念とクラスが対応するというより、あるクラス群のソサエティが一つの概念に相当するシステムになるだろう。そういった意味で、知能の層はパターンとして構造化される層の上に構成される。
    miyayou
    2009-11-16 01:12:07
  • あるクラスのソサエティが一つの機能の上に実装すると、その下の派生されたクラスのインスタンス群によって、そのクラスのソサエティの多様性が発揮される。高い抽象性は派生とインスタンス化、さらにインスタンス同士の関係性によって、システムの動作が個性化されると同時に実現される。
    miyayou
    2009-11-16 01:15:52
  • ゲームAIのOOな実装においてはそういったクラスの派生をスクリプトによって制御することで知性の多様的実装を実現する。思考のロジカルな実装をCが実現していたとすればOOのAIの実装はクラス階層の断面からインスタンスを実装することを通して知的機能を埋め込む。
    miyayou
    2009-11-16 01:21:55
  • 知性全体の動作は、クラスによって組まれた全体のシステム自身によって定義される。そこで組み込まれた派生クラスさらにそのインスタンスが、その全体のシステムに組み込まれる(食べられる)形でシステムは発展し巨大化し多様化する。OOにおけるAIの実装の理想系はそういったシステムだと思う。
    miyayou
    2009-11-16 01:25:44
  • 例えば「実例で学ぶゲームAIプログラミング」の第7章のUML図を見ると中央のコアシステムから外側へ向かって派生クラスが伸びそのインスタンスがくり返し実装されて行くことで全体の知性システムが実現される。さらにコンポジットパターンなど再帰的な階層化によってこの構造はさらに発展される
    miyayou
    2009-11-16 01:29:46
  • つまり実装の仮定としては次のような手順を取るとよいと思われる。知能システムの動作自身は抽象度の高いレイヤーで実装する。これはデザインパターンの思想そのものだ。そしてそこからその知能システムをクラスの派生や、下層のレイヤーへの展開を通して大きく発展させ個性化し実装して行く。
    miyayou
    2009-11-16 01:35:26
  • クラスの構造図としては同心円状、多層的(multi-layer)な構造としてAIの全体のシステムが実装される。そういったAIの多層的なシステムは未だゲーム毎に実装される場合が殆どだが AI Game Programming Wisdom シリーズに多くの実例を見出すことができる。
    miyayou
    2009-11-16 01:40:58
  • つまりここにおいてもパターンの思想は生きている。知性のバークボーンのシステムは端的に言えば基本クラスの関係の中で定義されており、その基本システムに対してシステムそのものをインスタンス化する過程で知性の機能を実現する。こういったアプローチはオブジェクティブでこそ初めて実現される。
    miyayou
    2009-11-16 01:45:32
  • こういった実装はゲームAIで重要な「スケーラビリティ」を実現する要となる。「スケーラビリティ」とは雑魚敵からボスキャラまで同じシステムの中で実装できる仕組みのことである。つまりゲームAIの実装のコツはクラスソサエティの拡張性とAIの拡張性の方向をうまく重ね合わせることなのである。
    miyayou
    2009-11-16 01:51:58
  • ここにゲームAIプログラマが形成して積み上げて行く知識の形、能力が明確にされる。1つは「全体の知能システムをオブジェクト指向の高い抽象度を利用して実装する」手法。2つは「そのシステムを展開しインスタンス化する」方法。3つはそういった「実装の展開において実現される知的機能」の探求。
    miyayou
    2009-11-16 01:59:06
  • F.E.A.R.がそうでしたね。まああのゲームは敵の種類少ないですけど。 RT @miyayou こういった実装はゲームAIで重要な「スケーラビリティ」を実現する要となる。「スケーラビリティ」とは雑魚敵からボスキャラまで同じシステムの中で実装できる仕組みのことである。
    gungurion
    2009-11-16 02:00:18
  • こういったプログラムの性質に慣れておくことがAIプログラマに大切なのは、実際のゲームAIの業務においては、先に実現されるべき機能が要求されるために、そういった要求に対して如何なる全体のシステム、そしてその展開が対応するかを十分に習熟しておかねばならないからである。
    miyayou
    2009-11-16 02:02:22
  • 例えばプランニングが必要になった場合、もし十分に必要な知識があればコンポジットパターン、コマンドパターン、ステートパタ…といった幾つかの必要なパターンが直ちに想起されUML図の簡単な雛形が思い浮かび何処にスクリプトを組み込めば拡張性と機能を実現できるかが見えていなければならない
    miyayou
    2009-11-16 02:07:47
  • だが通常こういったAIプログラミングの性質を探求し身に着けるためには、プログラミング技術の上に多くの学習(と幾つかの経験)が必要とされる。決して何か難しいということではなくて、AIプログラム自身の性質に習熟するための時間と知能へのセンス(知的機能への嗅覚)が必要とされるのである。
    miyayou
    2009-11-16 02:11:23
  • そういった意味で参考になる良書を先の3つの領域に分けて紹介しよう。①バックボーン②展開 ③機能。①②は実装よりの話であり、③はAIそのものの話である。
    miyayou
    2009-11-16 02:17:32
  • ①は「実例で学ぶゲームAIプログラミング」、Millington "Artificial Intelligence for Games"(非常に構造的、抽象的), AI Programing WIsom に散りばめられたパターンたちを集めるのがいいだろう。
    miyayou
    2009-11-16 02:18:22
  • ②は、プログラムの設計と、AIの機能を結ぶ実装の部分である。この部分においては、必ずしもゲームAIの本である必要はなく、C++などオブジェクト指向の実装の展開を学べる本であればよい。
    miyayou
    2009-11-16 02:30:38
  • Noel Llopis "C++ for Game Programmer", Alex.J.Champandard "AI game Development"
    miyayou
    2009-11-16 02:30:59
  • ③を学ぶためには実際に動作するプログラムが含まれていることが書籍でなければならない。実際のプログラムを動作させることを通して知的機能を学ぶことができる。
    miyayou
    2009-11-16 02:31:17
  • Brian Schwab."AI Game Engine Programming" は、ゲームジャンル毎に実装(コードは中レベル)、実例が整備されている。ただ、やや冗長だが第2版が出たところなので改善に期待する。
    miyayou
    2009-11-16 02:34:35
  • Buckland, "AI Techniques for Game Programming"  Neural Net と GA の実装に偏っているが、何より動く実例が多いのがよい。
    miyayou
    2009-11-16 02:34:48
  • ということで、ゲームAIの立場から、C++ とAIの関係から、設計、実装、そして、必要とされる業務とそのための学習について解説した。夜分、遅くまでありがとうございました。
    miyayou
    2009-11-16 02:36:54

チェックアイテム

お勧めアイテムネタ商品を追加してまとめをもっと面白くしよう!今すぐ追加?

コメント

編集の履歴

2009-11-16 10:07:11 itohtak さんが作成しました。

ブログパーツ


幅・高さの指定を変えることでサイズを変更できます。
またsrcの中の「bc=***」で背景色を変更できます。

プロフィール

itohtak itohtak
@togetter_jpをフォロー

最近ログインしたユーザ

unmitsu xelfia kuniara
3gitera036 ttt_ceinture Penangal
k21wrmagrittest MT_urawatomiki herbetica
nakamiche 4k70se0 kmusiclife
Furuya3560 zvator ugnoguchi