大先生MOD
Civ4 BtS(2007年発売)の AI を、現代の技術で「大先生化」するプロジェクト
いまの成績
まだまだこれから…!
- 業務用 Civ4 はできた。AI 同士でちゃんと打ち合えてる
- 約3.5秒/ゲームで回せる。強化学習はここから
- でも、お手本(教師データ)が足りない → セーブデータがほしいです
調教方法
1大先生を直接わからせる近日公開!

ブラウザの中で、大先生と直接対戦できるようにします。最初はたぶん簡単に勝てます。でも、ボコボコにされた試合は全部大先生の教材になって、だんだん強くなっていきます。
2セーブを投げて大先生を教育する
昔の試合も、毎週の試合も。多人数戦でも、負け試合でも大丈夫です。
- 送るもの
- 1試合ぶんのセーブが入ったフォルダ(ふつうは
auto フォルダをそのまま)
- 場所
ドキュメント\My Games\Beyond the Sword\Saves の中の multi\auto や auto
- タイミング
auto は次のゲームで上書きされるので、遊び終わったらその日のうちに
- 形式
.CivBeyondSwordSave が5個以上入ったフォルダ(1ファイル 8MB まで)。BUG などの Mod 入りも受け付けます
送ったセーブの扱い
- 受け取るもの
- セーブのファイル、フォルダ名、ファイルの日付、入力してもらった名前とメモ。IP アドレスなどの接続の記録は保存しません。
- 使い道
- 大先生(AI)のお手本を作るためだけに使います。強い打ち方を学ばせたいので、全部を混ぜて平均するのではなく、試合の結果や成績(勝った側・上位の人など)で選んで使います。
- プレイヤー名
- セーブの中にはゲーム内のプレイヤー名が入っています。選ぶために、試合の中で誰がどう打ったかを見ることはあります。学習用に取り出すデータからは名前を外し、名前つきで公開することはありません。
- 公開
- セーブそのものは公開しません。サイトで試合を見せたくなった時は、名前を伏せたうえで、先に送ってくれた人に聞きます。
- 保管
- サイトの保存場所(Cloudflare)と、運営者の手元に保管します。扱うのは運営者1人と、作業を手伝う AI だけです。
- 消してほしい時
- コミュニティのチャットで声をかけてください。名前・メモ・日付から探して、保存場所と手元の両方から消します。
3大先生どうしのタイマンを観戦してツッコむ
大先生どうしが打った試合を観られます。変な手を見つけたら、その場でツッコんでください。
- 気になったマスをクリック(のろしが上がります)。全体の話ならクリックなしで OK
- 一言書いて Enter
例:「この牛に牧場」「労働者がここに道を引くのはおかしい」「全体的に開拓者を作りすぎ」。ガチの指摘でも、ただの文句でも大歓迎です。
いまの試合: タイマン(デュエル・迅速・貴族)、蛮族と小屋あり、50T まで戦争なし、T80 で判定。まずはタイマンで練習中。
このプロジェクトについて
ここまでできてる
- 前提AI を強くするには、大量のサンプルがいる
AI どうしを大量に戦わせて「この局面でこの手は、どれだけ勝ちに近づいたか」のサンプルを集め、手ごとの点数(評価値)を作る。そのためには、何百万試合を回せる場がいる。
チェス 約4,400万局/将棋 約2,400万局/囲碁 約2,100万局(AlphaZero が自分どうしで打った数)Silver, D., Hubert, T., Schrittwieser, J., et al. (2018). A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play. Science, 362(6419), 1140–1144.
- 分かれ道道は2つあった
本物の Civ4 に記録を取る仕掛け(Mod)を入れて、その中で AI を戦わせるか。AI に要るルールだけで、外に業務用 Civ4 を作るか。
Mod 側の記録の仕掛けも作ってあって、本物の試合を記録するのに使っている。
- なぜ本物の Civ4 では、数をこなせない
本物は人が遊ぶためのゲームで、画面・アニメーションなど AI に要らない物が多すぎる。そこで、ルールの骨格(地形・都市・生産・研究・戦闘・蛮族…)だけを残した Civ4 を別に作った。これが業務用 Civ4。
計算が本物どおりかは、公式が Mod 作り向けに公開しているソースコードで1つずつ確かめている。
- できた業務用 Civ4 は完成
本物で打った試合を流し込むと、金・研究・生産・人口まで本物と同じに進む。約3.5秒/ゲーム。
実際に打った1試合で、T0〜T49 の50ターンが本物と完全に一致。一致を確かめた範囲だけを使うので、AI が業務用 Civ4 のバグを突いて「ズルく強くなる」のを防げる。外交(国境開放など)はタイマンではまず使わないので、まだ入れていない。
- いまここその中で、AI どうしが打ち合い始めた
勝った打ち方を残して、少しずつ強くしていく段階。正直、まだ全然うまくいっていない。上の観戦席の試合はここから来ている。
課題は、AI が何から学べばいいかの「お手本」が足りないこと。だからセーブがほしいです。
よくある質問
- AI は ChatGPT や Claude が打ってるの?
- いいえ。試合の中の判断は、内政・戦闘・蛮族の見張りなど役割ごとに分けた専用の部品が決めて、それを上でまとめている。言語モデルに1手ずつ聞くと、1試合に何千回も聞くことになって、速さもお金も足りない。
- どのくらいの数を回してるの?
- 約3.5秒/ゲーム。7ゲームを同時に回して、1時間に約7,000ゲーム。
目指してるもの
- 人が足りない日に1〜2席入れても、ちゃんとゲームになる AI隣の人のおやつにならない強さ。むしろ人間の戦略理解と大局観を持った上で、細部をガチガチに詰めてくる手強い相手
- いつでも練習や実験に付き合ってくれる実力者特に新人研修として
- 人間を超える大先生を生み出して、今度は人間がそこから学ぶチェスや囲碁では、AI の「一見すると意味不明な一手」を人が研究して新しい戦法が生まれ、トップのレベルごと上がった。Civ4 でもそれが起きたら最高
オタク情報(中身の話)
どうやって作ってるか
- 業務用 Civ4 は Python で一から書いています。戦闘の勝率、国境、交易路が更新されるタイミング、無政府中の研究まで本物どおりに動くようにしてあります
- 本物のゲームには記録用の Mod を入れて、毎ターンの状態を書き出します。それを業務用 Civ4 で再生して答え合わせ
- 観戦席は、業務用 Civ4 の試合をそのまま再生しているだけです
Civ4 が AI にとってしんどいところ
- 1ターンにやることが多すぎる(全都市の生産・市民・労働者・兵・研究・税率を同時に決める)
- 選択→結果までの因果が複雑かつ長い。T20 で第二都市をどこに出すべきだったかの答えが、T50 とかにやっと出る
- 霧で相手が見えないし、戦闘も小屋も運
- 上手い人の判断は「この盤面ならこっち」という感覚で、言葉のルールにしきれない。試合を振り返って出した指摘を約100個のルールにして入れてみたけど、元の AI と戦わせてはっきり強くなったものはわずか。ある直しが、前に教えた動きをこっそり崩していたこともありました
ほかの研究だと
- 囲碁・将棋(AlphaZero)は自己対戦だけで人間を超えた。ただ、盤面が全部見えて1手が小さいゲームの話
- StarCraft II(AlphaStar)は、まず人間のリプレイのまねから入り、自己対戦で伸ばしてグランドマスター級に届いた。セーブデータが欲しいのはこれと同じ理由Vinyals, O., Babuschkin, I., Czarnecki, W. M., et al. (2019). Grandmaster level in StarCraft II using multi-agent reinforcement learning. Nature, 575(7782), 350–354.
- Civ 系では、Freeciv を使った研究用の環境 CivRealm で、強化学習も ChatGPT 系の AI も、ゲーム全体ではまだ苦戦しているQi, S., Chen, S., Li, Y., et al. (2024). CivRealm: A learning and reasoning odyssey in Civilization for decision-making agents. International Conference on Learning Representations (ICLR 2024).
- Civ4 では Better BTS AI や K-Mod が内蔵 AI をかなり賢くしたが、それでも上手い人には届かない。ルールを書き足すだけでは限界がある
今の学習
- AI の中の数字(いつ攻めるか、何倍で攻めるか、蛮族の見張りを何体置くか…など25個)を少しずつずらして、元の自分と40試合ずつ戦わせ、勝った方を残す、を繰り返しています
- 今のところ、まだ元の自分に勝ち越す組は出ていません。勝ち負けの運のブレ(±8%くらい)に埋もれるのと、「伸ばす⇔殴る」みたいな一番大きな方針がまだ数字になっていないのが原因っぽい
- 次は、そういう大きな方針から先に探す → 盤面から「勝つまであと何ターンか」を予想する仕組みを試合のデータで覚えさせる、の順でやる予定です
用語集
- 業務用 Civ4
- このプロジェクトで作った、AI 専用の Civ4。画面も操作もなく、ルールの計算だけをする。研究の言葉では「シミュレーター」。
- サンプル
- 「この局面で、この手を選んだら、最後にどうなったか」の1件分の記録。1試合から何千件も取れる。
- 評価値
- 局面や手の良さを表す点数。「この手は勝ちにどれだけ近づくか」の見積もり。サンプルが増えるほど正確になる。将棋の AI の「評価値」と同じもの。
- 強化学習
- 正解を教えるのではなく、自分で打った結果(勝ち負け)から、評価値を少しずつ直していく学び方。打つ → 結果を見る → 点数を直す、を何百万回も繰り返す。
- 自己対戦
- AI どうしで打たせること。人間の相手がいなくても、いくらでもサンプルが取れる。
- お手本(教師データ)
- 「上手い人はこの局面でこう打った」という記録。強化学習の前に、まずこれをまねさせると、何も知らない状態から始めるよりずっと早く強くなる。セーブはこれになる。
- Mod
- ゲームに後から足す改造。Civ4 は公式が Mod 作りを後押ししていて、そのためのソースコードも公開している。