
前回、私は『三国志ミニ』を「完成させた」と書きました。あれは本当のことです。けれど、正直に告白すると、完成の記事を書きながら、心の隅にずっと引っかかっていたことがありました。
それは、戦闘です。
前回の記事の最後に、私はこう書きました。「終盤、国が大きくなると資源が膨らみすぎて、緊張感が緩む」と。あのバランスの甘さの正体は、実は戦闘にありました。
私のゲームの戦闘は、兵力の数字がぶつかって、一瞬で決着がついてしまうものだったのです。攻める。勝つ。領地が増える。それだけ。
せっかく国を育てても、その成果を「戦いの中で実感する」瞬間が、どこにもありませんでした。
だから今日は、その戦闘を作り直した話——『三国志ミニ』バージョン2の開発記です。
一瞬で終わる戦闘
子供の頃、私は光栄のシミュレーションゲームが大好きでした。『信長の野望』や『三國志』を、何時間も遊びました。
ただ、今になって思い出すと……
あの合戦画面は、楽しいというより「面倒」だった記憶があります。マス目の上で兵をチマチマ動かし、何ターンもかけて決着する。
国をどれだけ育てても、合戦に入ると同じ作業が始まる。育てた成果が、盤面にほとんど出てこない。
だから私は、戦闘画面を足したいけれど、あの「面倒」にはしたくなかった。そこで、一つの問いに行き着きました。
「内政で育てたものが、戦闘でスカッと効く」そういう戦闘にできないか。
農業を伸ばし、兵を鍛えた国が、戦いで目に見えて有利になる。準備が報われる快感。それこそが、私が本当に作りたかった戦闘でした。
強みで戦う

前回の記事で、私は大事なことに気づいたと書きました。「自分はゲーム職人ではなく、業務屋の頭しかない」——その引け目こそが、SLGでは強みになる、と。今回も、同じ考えを頼りにしました。
私はアクションの「手触り」を作るのは苦手です。でも、ルールと数字の設計なら、30年やってきた仕事そのものです。だったら戦闘も、反射神経で殴り合うものではなく、頭で読み合うものにすればいい。
そうしてたどり着いたのが、一手制の戦闘でした。毎ラウンド、五つの計略『突撃・火計・伏兵・守勢・兵糧攻め』から一つだけを選ぶ。
計略には相性があって、火計は守勢に弱く、伏兵は突撃を狩る……といったジャンケンの輪になっています。相手が何を出すか読んで、勝てる手を当てる。それだけの、シンプルな仕組みです。

そして肝心の「内政が効く」部分は、ダメージの計算式に仕込みました。読み勝つと大きなダメージ。さらに、兵力で上回っているほど、一撃が重くなる。
相性で読み勝ち、かつ内政で兵力を育てていれば、二つの有利が重なって、敵の軍が一気に崩れる。これが、狙っていた「スカッと」の正体です。
面白かったのは、この式を頭の中だけで決めなかったことです。数字を入れて、実際に何度も戦わせてみる。強すぎないか、雪だるま式に一方的にならないか。
遊んで、感触を確かめて、また数字を直す。設計を「机上」ではなく「手触り」で詰めていく——この進め方が、今回はとてもうまくいきました。
敵を「読む」

一手制には、一つ物足りない点がありました。相手がランダムに手を出すだけだと、それは「読み」ではなく「五分五分の勘」でしかありません。
そこで、敵将ごとに性格を持たせました。
猪突猛進の猛将は、突撃を多用する。策士の軍師は、火計を仕掛けてくる。堅実な守将は、守勢で固める。だから、「あの猪武者は突っ込んでくるはずだ、伏兵で待とう」という本物の読みが生まれる。
敵を知っているほど、有利に戦える。ここに来て、ようやく三国志らしい駆け引きになりました。
そして、各勢力の君主だけは、あえて「読めない性格」にしました。手クセに偏りがなく、性格を読んでも通用しない。彼らに勝つには、小手先ではなく、内政で兵力を上回って正面から挑むしかない。
城で待つ君主は、いわばラスボスです。読みで攻略してきたプレイヤーが、最後に「準備」を試される。
そういう難易度の山になりました。
内政が、効く
ここが、今回いちばん作りたかった部分です。育てた国を、どう戦闘につなげるか。
答えは、こう整理できました。商業で稼いで徴兵すれば、兵の「数」が増える。農業を伸ばして兵糧が満ちれば、兵の「粘り」が上がる。
数で押し、粘りで耐える。豊かに実った領地から出た軍は、簡単には崩れない。痩せた前線の軍は、脆い。
つまり、出撃ボタンを押したその瞬間に、これまで育ててきた内政の成果が、そのまま戦力として目の前に現れる。戦闘は、内政の「答え合わせ」になったのです。
前回の記事で認めた「終盤に緊張感が緩む」問題も、これで薬になりました。攻めれば兵は減る。
勝っても消耗する。だから、戦い続けるには内政を回し続けなければならない。国を育てる手が、止まらなくなりました。
つくる——「考える部分」と「見せる部分」を分ける

前回、「SLGの画面は、業務システムの画面と構造がほとんど同じだ」と気づいた話を書きました。今回のバージョンでは、その気づきを、コードの組み立て方そのものに使いました。
戦闘のルール——計略の相性、ダメージの計算、敵将の性格、兵の粘り——を、ゲームの絵や音とは切り離して、ただ数字を扱うだけのかたまりとして書いたのです。
画面のほうは、そこへ「伏兵を出した」と伝えて、返ってきた数字を表示するだけ。電卓でいえば、計算する中身と、数字を映す液晶とを、別々に作るようなものです。
そしてこれは、業務システムで「料金の計算ルールだけを、画面から切り離して書く」のと、まったく同じやり方でした。仕事で、何度もやってきたことです。
分けておくと、いいことが二つありました。ひとつは、戦闘のルールだけを取り出して、何度でも試せることです。画面がまだ影も形もないうちから、「この相性で、この計算式なら面白いか」を確かめられました。
もうひとつは、画面をいくら作り直しても、ルールのほうは傷つかないこと。安心して、見た目をいじれます。進め方も、前回と同じ流儀を通しました。設計は対話(Claude(ブラウザ版))で、実装は段階(CladeCode)で。
どんな戦闘にするか、相性やダメージをどうするか。これは Claude(ブラウザ版)と、じっくり話し合って決めました。
この段階では、まだ一行もコードを書きません。言葉と、図と、その場で動かせる簡単な試作だけ。「一手だけ選ぶ形にするか、カードを何枚も持つ形にするか」、何度行き来しながら、迷いながら作り直しです。
迷いがなくなってから、決めたことを Claude Code に渡して、実際のファイルとして書いてもらう。それも一気にではなく、「まず兵力バーを繋ぐ」「次に計略ボタン」と、一段ずつ。動いたのを確かめてから、次へ進みます。
最後に、この戦闘を、前のバージョンのマップにつなぎました。
「攻撃→出撃元→攻撃先→出撃兵力」という手順は、もともとあったものです。その最後、これまで一瞬で結果が出ていたところだけを、戦闘画面に差し替えました。
もとの仕組みは壊さない。つなぎ目だけを、新しく作る。この考え方が、最後まで自分を助けてくれました。
仕上げと、遊べるブログ
機能ができたら、最後は手触りです。合戦らしいBGMを流し、大きく削ったときだけ画面を軽く揺らし、兵力バーを一瞬ではなく滑らかに減らす。
たったこれだけで、「削れた!」という手応えが、まるで違ってきました。演出は、面白さの一部なのだと、あらためて思いました。

そして今回、一つ新しい試みをしました。この記事の中で、その戦闘を実際に遊べるようにしたのです。
敵将を選び、その性格を読んで、相性で勝つ計略を当てる。本編とまったく同じロジックを、ブラウザで動くように作り直しました。
読むだけでなく、その場で触れる。開発記として、これ以上の締めくくりはないと思っています。ぜひ、下で遊んでみてください。
まとめ

前回、私は「本当の天下統一は、一本のゲームを最後まで完成させられたことだ」と書きました。今回、それに一つ付け加えたくなりました。
完成させたものを、もっと面白くできた。
一度「完成」と言った作品に、また手を入れる。引っかかっていた一点を、逃げずに作り直す。それは、完成させることとはまた別の、小さな勇気が要る作業でした。
でも、やってよかった。一瞬で終わっていた戦闘が、今は、育てた国の力を背負って、敵の心を読んで戦う、一番好きな場面になりました。
回り道は、まだ続いています。そして、その一歩ずつが、思っていたよりずっと楽しい。もしあなたも、昔あきらめた何かを、もう一度だけ触ってみたくなったら…
その続きは、きっと悪くないものになると思います。私が、そうだったように。
『三国志ミニ』本編(Windows版)は、下のリンクから遊べます。上のデモで手応えを感じてもらえたら、ぜひ、国を育てて天下を狙ってみてください。

