忍者ブログ
ゲームを作ったり、ゲームを遊びまくったりしている せっき~の生き様。   まずは目次をご覧ください
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2010年8月31日 にあった、CEDECの講演についての記事です。


「コーエーの歴史シミュレーションゲームにおけるAI設計について」


信長シリーズ、三国志シリーズのAIについてです。


-------------------------------------------------------------

●このジャンルのAIで、常につきまとう大きな課題

ユーザーに対抗できる勢力が ある時点で無くなってしまう。
→ ゲーム継続のモチベーションが無くなる
→ 簡単に最強勢力になってしまうと、すぐに 詰まらなくなる

(RPGのようにだんだんボスを強くするわけにはいかない)


求められるAI ・・・ ユーザーに負けないスピードで勢力拡大するAI

→ 勢力図がどんどん変わる新鮮味、敵が刻々と強くなる緊張感 を得られる


設計の際、スピードを重視している

 


-------------------------------------------------------------

●”信長の野望 革新”を例に

施設を建てる内政要素がある ・・・ 金銭系、兵糧系、軍備系、学舎、防御施設
                     (学舎は、技術開発に必要)

勢力拡大で必要なものは ・・・ 軍備、兵糧、技術

このゲームの特徴は ・・・ 技術は重要だが、一つの研究に長期間かかる
                 同時に複数の研究ができない
                 学舎をたくさん用意しないといけない

             → 技術の獲得が、最も時間がかかる

AIの方針 ・・・ 技術の獲得が最優先である。


その結果として、作り上げたAI


施設建設のプライオリティ   金銭系 > 学舎 > ・・・
                  (お金は、研究含め 全ての要素に必要だから)


また、研究中に 次の研究に必要となる 学舎を建築させる。

常に研究ができるようにしている。


これが、ゲームの特徴にしっかり合ったAI

 

-------------------------------------------------------------

●個別の判断と、総合的な判断

例) 拠点A 兵2万 、 拠点B 兵2万
   敵拠点 兵3万

この場合、拠点A 拠点B単体では 勝てないけど
拠点A,Bが力を合わせると 敵拠点に勝てるので 協力して勝てると判断させる。


例) 拠点A 兵2万
   敵部隊 兵1万  奥の敵部隊 兵2万

拠点Aは 敵部隊には勝てるが、奥にいる敵部隊に攻められると負けるため
無駄な兵や兵糧を消費しないよう、早々に退却させる。


個別な判断 < 総合的な判断

 

-------------------------------------------------------------

●勢力の個性化と、雰囲気作り

・勢力の成長傾向

 武田 ・・・ 騎馬
 織田 ・・・ 鉄砲
など


有能無能の表現

 武田 ・・・ 有能
 今川 ・・・ 無能 (史実通り)

大名の能力に応じて、AIをあえて 非効率にさせる

→ 勢力の淘汰の促進にもつながり、とても有効


・史実エピソードに基づく判定

上杉謙信 ・・・ 姫を要求しない
武田信玄 ・・・ 甲斐国内で城を建てない
伊達輝宗 ・・・ 若くして家督を譲る

 

-------------------------------------------------------------

●手加減

・開始時にAI制限
(ゲーム開始から、一定期間)

出陣禁止   ・・・ どんな弱小勢力をユーザーが使おうとも、対応期間を持てるように
引き抜き禁止 ・・・ 武将を守る猶予期間を持てるように
加増禁止   ・・・ ユーザーが好きな武将を引き抜きやすくするように

(加増 = 忠誠をあげるコマンド)


・初心者対策

初級 を、特に重要視している
(初めての人が初級で勝てないと、ゲームそのものが楽しめなくなるため)


勢力拡大抑制 → 拠点数、兵力に上限 (ユーザーと同程度か、少し上以上 伸ばさない)

拠点攻略を簡単に → 城の改築しない、増援しない

 

-------------------------------------------------------------

●AIの負荷に対しての工夫

判定頻度を設定している

判定 多 ・・・ 部隊の移動など
判定 並 ・・・ 建築など 定期的で良いもの
判定 少 ・・・ 加増など たまで良いもの


・負荷を常に監視できる仕組み

→ 各処理に対して、「処理そのものが呼ばれた回数」
             「その処理の中で、一番時間がかかった時の 処理時間」
             「その処理の平均の処理時間」
             「呼ばれた合計の処理時間」

を 表示できるように

 

-------------------------------------------------------------

●動作確認の工夫

・デモプレイ活用

→ プレイヤー0人で、AIにひたすら対戦をやらせる


・オートセーブ活用

→ 毎月、必ずセーブさせる
→ もし、何かまずい事が起きていた場合 その直前のデータを調査できるように


・アルゴログ

AIの思考を全て 理由付きで、テキストログとして出力させる
実行しなかった場合も、実行しなかった理由を残す

例)

【撤去】実行 都市Aの市場を撤去、アップグレードするために
【出陣】中止 兵糧が足りないため


AIは、ユーザーの見えない所で、それっぽく動いている
それを見えるようにする事で、かなり的確にAIのデバッグができる

 

-------------------------------------------------------------

●優れたAIを実行するためには? (持論)

・ゲームシステムを決める際は、AIを念頭に置く

AIを無視して、ゲームシステムを決めてしまうと
AIを作る際に、コスト(費用)、負荷 で破綻してしまう
期間の問題で、AIの完成度を下げてしまう。


どんなに素晴らしいゲームでも、AIが大した事ないと ユーザーの評価が台無しになってしまう

→ AIをどうするか? 勝算持った上で、ゲームシステムを決めていく

 

・ゲームにうまくなる事が大事

AIの強さ = 設計者がプレイした際の 7割程度の強さ


・どんなゲームでも通用する HowTo は存在しない

(三国志で使った方法を、そのまま 信長には使えない
システムだけでなく、バランスが変わるだけで 強さに影響するため)

 

-------------------------------------------------------------

●質疑応答

・一番、処理負荷がかかっているのは?

経路探索

→ A* を使っている。
→ 少しでも軽減するために、ゲームシステム的に どんな地形でも移動コストは同じにした。
 (↑ AIに合わせたゲームシステム)


・どんなワークフローで AIを作っている?

AI担当の企画は 1人  (三国志7信長 革新信長 天道 では)

一番はじめに、AIの仕様を決定して 資料にしっかりまとめる
(この時点で、全て決めている)

→ 各担当のプログラマに渡す
 

拍手[0回]

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
プロフィール
HN:
せっき~
性別:
男性
職業:
ゲームプログラマ
自己紹介:
古いパソゲー、ボードゲーム、カードゲームを熱狂的に遊んでいます。


ついったー
http://twitter.com/seki_seki_seki

連絡先は
sekisekiseki(あっと)gmail.com
最新コメント
[06/24 www.linux.ca]
[06/23 linux.org]
[06/23 blackmarket-matches.com]
[06/23 Ucuz Davetiye]
[06/22 ロレックス デイトナ 8pダイヤ]
カウンター
ついったー

Copyright © [ せっき~のゲーム屋さん ] All rights reserved.
Special Template : 忍者ブログ de テンプレート and ブログアクセスアップ
Special Thanks : 忍者ブログ
Commercial message : [PR]