最強のCPUに94%勝つAIを、2ドル36セントで学ばせた

1試合に3.5秒かかっていたCPUどうしの対戦が、作り直すと1.8ミリ秒になりました。
そのエンジンでAIに自分どうしの対戦を繰り返させると、手で作った最強のCPUに94%勝つようになりました。
いちばん新しい学び直しにかかったGPUの代金は、2ドル36セントでした。

私が制作した『背界の旅団』には、CPUの強さとして「学習済みAI」があります。人が考えた手順で指すCPUではなく、対戦を繰り返して自分で指し方を覚えたAIです。カードゲームのAIを、個人の開発でどうやって作ったのか。そして、なぜバランスの調整にも欠かせなくなったのかを書きます。

この記事で分かること

  • まず、ゲームを速く動かす:アプリのルールを別の言語へ写し、約2,000倍の速さで対戦できるようにしました。
  • 写したルールは、1手ずつ照らし合わせる:アプリと同じ局面で同じ結果になるかを、何万手も比べています。
  • AIは、遊び相手で測り役:強いCPUとして遊べるだけでなく、種族の強さを測る物差しにもなりました。

手で作ったCPUには、天井がある

最初のCPUは、私が考えた評価のしかたで手を選んでいました。この手を打つと相手のどのモンスターが倒れるか、どの土地が取れるか、と点数を付けて、いちばん高い手を選びます。ゲームを知る人の考え方をそのまま書いたCPUなので、私が思いつかない手は打てません。

そこで、対戦を繰り返して上手になるAIを作ることにしました。強化学習(よい結果につながった手を、次から選びやすくしていく学び方)の一つ、PPOという方法です。土台には、ポケモンカードのAIを競う大会「PTCG AI Battle Challenge」(データ分析の競技サイトKaggleで、株式会社ポケモンが開いた大会)の参加者が公開したしくみを使い、このゲームの盤面と戦闘に合わせて作り替えました。

まず、1試合を2,000倍速くする

強化学習は、とにかくたくさん対戦しないと上手になりません。ところが、アプリのルール(Swiftという言語で書いています)でCPUどうしを戦わせると、1試合に約3.5秒かかりました。

そこで、ルールだけをRust(速く動くことで知られる言語)へ写しました。画面も音もなく、ルールと盤面だけのエンジンです。1試合は約1.8ミリ秒になりました。さらに、GPU(たくさんの計算を同時に行う装置)を時間で借りられるサービスを使い、多くの対戦を並べて進めながら学習させます。

写したルールは、1手ずつ照らし合わせる

ルールを2か所に書くと、どこかで食い違います。アプリと違うルールで学んだAIは、アプリの中では見当違いの手を打ちます。

そこで、照らし合わせの道具を作りました。Rust版で対戦を流して1手ずつ記録し、アプリのルールをそのまま動かして、同じ手を打ったときに同じ盤面になるかを比べます。打てる手の一覧も比べます。たとえば水の種族のデッキで流した照合では、300試合・42,283手で食い違いは0でした。新しいカードを足したり、ルールを変えたりするたびに、この照合を通してから学び直します。

AIが盤面から読むもの

AIは、1回の判断のたびに7,456個の数を受け取ります。盤面の土地、両軍のモンスターの強さ、手札、山札の残り、そして相手が出したカードや、手札に戻ったと分かっているカード。人が見て分かることは渡し、相手の手札の中身のように人にも見えないものは渡しません。

カードは、名前ではなく特徴で読ませます。属性、レベル、力、速さ、生命力、スペル枠(魔法を唱えるための枠)、能力の時機と効果。159種のカードで、特徴の欄は929個になりました。

94%勝つAIと、2ドル36セント

いちばん新しい学び直しは、159種のカードと今のルールで行いました。結果は次のとおりです。

相手学習済みAIの勝率
手で作った最強のCPU94.3%
ひとつ前の学習済みAI63.1%

アプリと同じ部品(アプリのルールと、端末の上で動くAIのモデル)で最強のCPUと400試合を戦わせても、94.0%勝ちました。GPUの代金は本番の学習で2ドル36セント、事前の試しで16セントです。

ただし、AIはカードの種類の数を覚えて作られています。カードを1枚足すと、そのままでは読めなくなります。そのたびに、照合を通して学び直します。

AIは、種族の強さを測る物差しにもなった

学習済みAIは、もともと強い遊び相手として作りました。1.5.1からは、フリー対戦の「強い」と、物語の強敵の戦で指します。

思いがけず役に立ったのが、バランスの調整です。両軍に同じAIを使えば、指し手の上手下手をそろえたまま、デッキの強さだけを比べられます。24の種族の総当たりも、カードを1枚ずつ抜く比較も、このAIどうしで流しています。その話は「1万6千試合の総当たりで、24の種族の強さを測った」に書きました。

まとめ

手順やったこと数字
速くするルールをRustへ写す1試合 3.5秒 → 1.8ミリ秒
確かめるアプリと1手ずつ照合300試合・42,283手で食い違い0
学ばせる自分どうしの対戦(PPO)をGPUで代金 2ドル36セント
測る最強のCPUと対戦勝率 94.3%

この記事を共有する

本記事は『背界の旅団』の制作者が、開発の記録をもとに書いたものです。数値は2026年10月16日時点のものです。

参考資料

制作ノートの記事をもっと見る →すべての記事を見る →