[第3回rogyゼミ] 新歓展示のゲームのお話
DESCRIPTION
第三回rogyゼミスライド スライド中の動画リンク https://www.youtube.com/watch?v=1Ga4HmyDXsYTRANSCRIPT
新歓展示のゲームのお話~某落ちゲーの制作に関して~
情報工学科 3 年 CG2 研 やけぬる (@jken_ull)
はじめに今回はこんなものを展示していました。
( 都合上水曜日のみでした… )
はじめに ( 動画 )
動画 (YouTube)https://
www.youtube.com/watch?v=1Ga4HmyDXsY
左はプレイヤー ( 私 ) 、右は AI
元ネタは一体なんなんだ…。ドクターマリオ任天堂が出した落ち物ゲードクターマリオに関連した作品FC(1990),GB(1990), SFC(1998),GC(2003( パズルコレクション )),GBA(2004,2005( ドクターマリオ&パネルでポン )),DS(2005( もっと脳を鍛える DS トレーニング : 細菌撲滅 )),Wii (2008(Dr. MARIO& 細菌撲滅 )),DSi(2008( ちょっと Dr. MARIO)),WiiU(2014(Dr. LUIGI& 細菌撲滅 ))
ゲームルール
同じ色のブロックを 4 つ並べると消える
連鎖でブロックを消すと相手に邪魔ブロックを送れる
ウィルスをすべて消したほうが勝ち
ブロックが配置できなくなったら負け
このゲームについて新歓展示まで…制作期間は半月ぐらい。 AI 制作は 3 日制作言語は C++ と DirectX9環境は Visual Studio 2013
Professional
AI の作り方についてゲーム AI の基本的流れ
1. 状況を見る( データを渡
す )
2. 状況から考える
( 計算する )
3. 良い答えを出す
( 出力する )
AI の作り方についてe.g.) 周りのブロックの色を見る
置きたい
そこそこできるけどまだ弱そう
繋がっている同じ色のブロック
の数が多いものを良いとする
周りに(直線的に )黄色が 3つあ
る
AI の作り方についてe.g.) 数手先まで配置して良い手を選ぶ 連鎖できる手を優先する何手か先を配置しながら探索する AI落とそうとしているブロックや次以降に落とすブロックを落としてみる すべての通りを考えれば強いやつが作れる!
なんだか強そうだ!
AI の作り方についてしかし、 これだと計算に時間がかかる。 実際、 AI 計算が終わるまで 2 分以上かかることがあった 実際使える時間は 1frame(1/60sec) 未満
どうする? 枝刈りをする ( 不要な場所に配置して計算するのをやめ
る ) スレッドで回す ( 計算できる時間を伸ばす ) 乱択アルゴリズムを使う などなど…
AI の作り方について135 個ブロックを落とした後の状態
周りの色を見たAI
先を見た AI始めの状態
AI の作り方についてゲーム AI で大切なことラグが起きないように計算するe.g.) 60fps のゲームで AI 判定を 1frame 内で計算する場合 最悪 1/60sec(≒0.1667sec) で計算できないとラグ発生最悪計算時間でも許容時間を超えないように組むべし ラグはプレイヤーにとっては不快です
弱すぎず、強すぎず弱すぎると、プレイヤーもすぐ飽きるチートのように強すぎると、プレイヤーの心が折れる適当な強さでプレイヤーが遊べるのが大切!