miyayouさんC/C++とデザインパターンについて語る - Togetter
Twitterのつぶやきマッシュアップメディア!
@togetter_jpをフォロー
ホーム
まとめ作成
お知らせ
設定
ログイン
ついに決定!第2回トゥギャッターまとめまとめ!2月25日開催!
トップ
ニュース
社会
地域
芸能・スポーツ
IT・Web
科学・教養
カルチャー
趣味
生活
仕事
ネタ・お笑い
ログ・日記
震災
AKB48
援助
FM桐生
放射脳
ラジオ
iwj
支援物資
速報
国内
アジア
アメリカ
ヨーロッパ
その他
政治
経済
国際
法律
環境
コラム
東京
東京近郊
北海道
東北
関東
北陸・信越
東海
近畿
中国・四国
九州・沖縄
海外
芸能
テレビ
ラジオ
野球
サッカー
ゴルフ
格闘技
競馬
モータースポーツ
その他
Android
Apple
インターネット
パソコン
モバイル
ガジェット
サイト制作
プログラミング
その他
科学
テクノロジー
エネルギー
数学
物理
宇宙
自然
人文
建築
心理
その他
アニメ
ゲーム
マンガ
アイドル
映画
音楽
書籍
演劇
ファッション
社会学
カメラ
車・バイク
電車
旅行
釣り
歴史
アート
デザイン
動物
その他
ハウツー
レシピ
グルメ
恋愛
マネー
節約
健康・医療
教育
ペット
起業・ベンチャー
経営
マーケティング
会計・人事
法務
就職・転職
語学・資格
ネタ
お笑い
大喜利
画像・動画
やってみた
その他
ログ
日記
思い出
雑談
メモ
飲み会
議事録
イベント
セミナー
復興
原発
支援
政府
自治体
トップ
>
トップ
>
AKB48
> miyayouさんC/C++とデザインパターン..
2009/11/16 10:07:11
miyayou
ai
+
miyayouさんC/C++とデザインパターンについて語る
miyayouさんがゲームAIにおけるC/C++とデザインパターンの適用方法について語ってくれました。
by
itohtak
7 fav
1764 view
お気に入りに登録ならここをクリック!
まとめ
メニューを開く
一括削除
まだ、C++の話題はOKですか?
返信する
RTする
ふぁぼる
miyayou
2009/11/16 00:36:58
僕的には、Noel Llopis の C++ for game programmers
http://bit.ly/4ae0cL
をおぬぬめ。^^ この本が2003年に翻訳されていれば、いろいろな人がいろいろなところで困らなかった。良書。ちなみに、著者は、twitter やってる
返信する
RTする
ふぁぼる
miyayou
2009/11/16 00:43:55
Noel Llopis
http://gamesfromwithin.com/
今は、iPhone 開発へ先進。このサイトは、iPhone 開発者必見。twitter もここから辿れる。
返信する
RTする
ふぁぼる
miyayou
2009/11/16 00:46:15
お薦め2。James Nobel,Small Memory Software: Patterns for systems with limited memory 日本では、何故か「省メモリプログラミング」。副題にかろうじてパターンという言葉が。これはパターンの本なんですよ!^^
返信する
RTする
ふぁぼる
miyayou
2009/11/16 00:51:54
お薦め3。Programming Game AI by Example 実例で学ぶゲームAIプログラミング,Composite Pattern,Command Pattern,State Pattern などパターン応用多し。2006年CEDECでAIにおけるデザインパターン解説
返信する
RTする
ふぁぼる
miyayou
2009/11/16 00:58:05
C++の進化のおかげでAIのプログラミングは非常に楽になったし何よりクラスという概念の抽象性が効いている。さらに、パターンなどで抽象クラスの関係を定義して、実体は派生の実体で持たせる(ファクトリーパターン、コンポジットパターン…)ことで、高い抽象性の関係を表現できるようになった
返信する
RTする
ふぁぼる
miyayou
2009/11/16 01:02:05
遡って1990~2000年は、ゲーム業界でC言語導入、標準化、使いこなしの時期だった。Cの地平のおかげで、Neural Netも、GAも比較的簡単に実装できるようになった。この時期に、Creatures とか、アストロノーカとか、GA,NNを応用したゲームが出現するようになった
返信する
RTする
ふぁぼる
miyayou
2009/11/16 01:07:18
ゴール指向の実装例が載ってますね。使ったことあるのですが効果的に使えたとは言えませんでしたorz RT
@miyayou
: お薦め3。Programming Game AI by Example 実例で学ぶゲームAIプログラミング
返信する
RTする
ふぁぼる
nezumimusume
2009/11/16 01:09:11
C++,オブジェクト指向で知能の構造化を抑えるという方向は非常に有効なはずだ。知能の構造化実装は、概念とクラスが対応するというより、あるクラス群のソサエティが一つの概念に相当するシステムになるだろう。そういった意味で、知能の層はパターンとして構造化される層の上に構成される。
返信する
RTする
ふぁぼる
miyayou
2009/11/16 01:12:07
あるクラスのソサエティが一つの機能の上に実装すると、その下の派生されたクラスのインスタンス群によって、そのクラスのソサエティの多様性が発揮される。高い抽象性は派生とインスタンス化、さらにインスタンス同士の関係性によって、システムの動作が個性化されると同時に実現される。
返信する
RTする
ふぁぼる
miyayou
2009/11/16 01:15:52
ゲームAIのOOな実装においてはそういったクラスの派生をスクリプトによって制御することで知性の多様的実装を実現する。思考のロジカルな実装をCが実現していたとすればOOのAIの実装はクラス階層の断面からインスタンスを実装することを通して知的機能を埋め込む。
返信する
RTする
ふぁぼる
miyayou
2009/11/16 01:21:55
知性全体の動作は、クラスによって組まれた全体のシステム自身によって定義される。そこで組み込まれた派生クラスさらにそのインスタンスが、その全体のシステムに組み込まれる(食べられる)形でシステムは発展し巨大化し多様化する。OOにおけるAIの実装の理想系はそういったシステムだと思う。
返信する
RTする
ふぁぼる
miyayou
2009/11/16 01:25:44
例えば「実例で学ぶゲームAIプログラミング」の第7章のUML図を見ると中央のコアシステムから外側へ向かって派生クラスが伸びそのインスタンスがくり返し実装されて行くことで全体の知性システムが実現される。さらにコンポジットパターンなど再帰的な階層化によってこの構造はさらに発展される
返信する
RTする
ふぁぼる
miyayou
2009/11/16 01:29:46
つまり実装の仮定としては次のような手順を取るとよいと思われる。知能システムの動作自身は抽象度の高いレイヤーで実装する。これはデザインパターンの思想そのものだ。そしてそこからその知能システムをクラスの派生や、下層のレイヤーへの展開を通して大きく発展させ個性化し実装して行く。
返信する
RTする
ふぁぼる
miyayou
2009/11/16 01:35:26
クラスの構造図としては同心円状、多層的(multi-layer)な構造としてAIの全体のシステムが実装される。そういったAIの多層的なシステムは未だゲーム毎に実装される場合が殆どだが AI Game Programming Wisdom シリーズに多くの実例を見出すことができる。
返信する
RTする
ふぁぼる
miyayou
2009/11/16 01:40:58
つまりここにおいてもパターンの思想は生きている。知性のバークボーンのシステムは端的に言えば基本クラスの関係の中で定義されており、その基本システムに対してシステムそのものをインスタンス化する過程で知性の機能を実現する。こういったアプローチはオブジェクティブでこそ初めて実現される。
返信する
RTする
ふぁぼる
miyayou
2009/11/16 01:45:32
こういった実装はゲームAIで重要な「スケーラビリティ」を実現する要となる。「スケーラビリティ」とは雑魚敵からボスキャラまで同じシステムの中で実装できる仕組みのことである。つまりゲームAIの実装のコツはクラスソサエティの拡張性とAIの拡張性の方向をうまく重ね合わせることなのである。
返信する
RTする
ふぁぼる
miyayou
2009/11/16 01:51:58
ここにゲームAIプログラマが形成して積み上げて行く知識の形、能力が明確にされる。1つは「全体の知能システムをオブジェクト指向の高い抽象度を利用して実装する」手法。2つは「そのシステムを展開しインスタンス化する」方法。3つはそういった「実装の展開において実現される知的機能」の探求。
返信する
RTする
ふぁぼる
miyayou
2009/11/16 01:59:06
F.E.A.R.がそうでしたね。まああのゲームは敵の種類少ないですけど。 RT
@miyayou
こういった実装はゲームAIで重要な「スケーラビリティ」を実現する要となる。「スケーラビリティ」とは雑魚敵からボスキャラまで同じシステムの中で実装できる仕組みのことである。
返信する
RTする
ふぁぼる
gungurion
2009/11/16 02:00:18
こういったプログラムの性質に慣れておくことがAIプログラマに大切なのは、実際のゲームAIの業務においては、先に実現されるべき機能が要求されるために、そういった要求に対して如何なる全体のシステム、そしてその展開が対応するかを十分に習熟しておかねばならないからである。
返信する
RTする
ふぁぼる
miyayou
2009/11/16 02:02:22
例えばプランニングが必要になった場合、もし十分に必要な知識があればコンポジットパターン、コマンドパターン、ステートパタ…といった幾つかの必要なパターンが直ちに想起されUML図の簡単な雛形が思い浮かび何処にスクリプトを組み込めば拡張性と機能を実現できるかが見えていなければならない
返信する
RTする
ふぁぼる
miyayou
2009/11/16 02:07:47
だが通常こういったAIプログラミングの性質を探求し身に着けるためには、プログラミング技術の上に多くの学習(と幾つかの経験)が必要とされる。決して何か難しいということではなくて、AIプログラム自身の性質に習熟するための時間と知能へのセンス(知的機能への嗅覚)が必要とされるのである。
返信する
RTする
ふぁぼる
miyayou
2009/11/16 02:11:23
そういった意味で参考になる良書を先の3つの領域に分けて紹介しよう。①バックボーン②展開 ③機能。①②は実装よりの話であり、③はAIそのものの話である。
返信する
RTする
ふぁぼる
miyayou
2009/11/16 02:17:32
①は「実例で学ぶゲームAIプログラミング」、Millington "Artificial Intelligence for Games"(非常に構造的、抽象的), AI Programing WIsom に散りばめられたパターンたちを集めるのがいいだろう。
返信する
RTする
ふぁぼる
miyayou
2009/11/16 02:18:22
②は、プログラムの設計と、AIの機能を結ぶ実装の部分である。この部分においては、必ずしもゲームAIの本である必要はなく、C++などオブジェクト指向の実装の展開を学べる本であればよい。
返信する
RTする
ふぁぼる
miyayou
2009/11/16 02:30:38
Content from Twitter
残りを読む(5)
2011年を振り返ろう!傑作まとめランキングベスト20をこちらで公開中だよ。
みんなのおすすめ商品
商品を編集
おすすめ商品を登録する
設定を変更する
Check
お気に入り
いいね
うーん
ブログ等に貼付ける?
iframe版
拡張版
new
張付けプレビュー
コメント
コメントを入力してください。
Twitterにも投稿する
関連するオススメまとめ
テストデザインパターンとテスト観点
オブジェクト指向がうまく書けないなーと思ってたらデザインパターン勉強してないからだった
第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 #javaja_gof
デザパたん第6回 アダプターパターン
【C/C++】Strict Aliasing Rule
powered by Preferred Infrastructure
まとめを作成する
@togetter_jp
プロフィール
まだ自己紹介が設定されていません。
itohtak
twitter
rss
マイタグ
: 設定されていません。
このユーザの更新状況や活動をチェック!
フォローしている
0
フォローされている
0
まとめ
4
お気に入り
10
コメント
0
動的バインドとllvmに関して楽しそうな話してたぜ
SQLiteの組込方法
ゲームレーティング研究会「CEROの禁止表現およびZ区分表現の妥当性に関する調査」報告書レビュー (DigraJ公開講座09年7月期)実況
miyayouさんC/C++とデザインパターンについて語る
ゲームAIラウンドテーブル・オン・ツイッター第8回 「RPG におけるAIを考える」
第一回 NADEC つぶやきまとめ
AIラウンドテーブルまとめ
「格闘ゲームは衰退していない――売上げデータから検証する」についてのコメント
アーケード時代からソーシャルゲーム時代へ
もっと見る
もっと見る
注目のまとめリスト
たんぽぽ舎の原田裕史氏に「原発なくても電気が足りる」根拠を..
トルコの雪だるま(kardan adam)が楽しそう
大衆と理系知識
Google・Android女子部共催セミナーまとめ
2012年1月31日開催 宮台氏×常見氏×山本氏「日本の大学はどこ..
.@shibataism 氏のスタートアップが投資を受ける際に覚えてお..
トゥギャッター通信
第64回「ネコストーブとクレカトラブル」
第63回「iPhone爆発と震災の備え」
第62回「byeハドソンとエロ駅弁」
第61回「謎の雲とセンター試験」
第60回「江戸ハックとお雑煮」
トゥギャッターからのお知らせ
とっても簡単!はじめてのトゥギャッター..
まとめへのフィードバック機能がつきました!
まとめ作成画面でつぶやきへの返信の流れ..
トゥギャッターのまとめは「はてなダイア..
t.coやbit.lyなど、短縮された..
過去のアーカイブ
2012-02-06の人気まとめ
2012-02-05の人気まとめ
2012-02-04の人気まとめ
2012-02-03の人気まとめ
2012-02-02の人気まとめ
最近追加された商品
ゼブラ クリップオンG3C 3色黒・赤・青ボールペン 白 B3A3-W
MEN'S KNUCKLE (メンズナックル) 2011年 11月号 [雑誌]
評価経済社会 ぼくらは世界の変わり目に立ち会っている
遺言
鋼の錬金術師 嘆きの丘の聖なる星【完全生産限定版】 [DVD]
鋼の錬金術師 嘆きの丘の聖なる星【完全生産限定版】 [Blu-ray]
コメント