なぜ私のゲームの戦闘は一瞬で終わったのか——そして読み合いになった『三国志ミニ』

ちびキャラアニメ風の三国志将軍2人が対峙している画像。
合戦画面(兵力バーと計略、勝利バナー)のスクリーンショット

前回、私は『三国志ミニ』を「完成させた」と書きました。あれは本当のことです。けれど、正直に告白すると、完成の記事を書きながら、心の隅にずっと引っかかっていたことがありました。

それは、戦闘です

前回の記事の最後に、私はこう書きました。「終盤、国が大きくなると資源が膨らみすぎて、緊張感が緩む」と。あのバランスの甘さの正体は、実は戦闘にありました。

私のゲームの戦闘は、兵力の数字がぶつかって、一瞬で決着がついてしまうものだったのです。攻める。勝つ。領地が増える。それだけ。

せっかく国を育てても、その成果を「戦いの中で実感する」瞬間が、どこにもありませんでした。

だから今日は、その戦闘を作り直した話——『三国志ミニ』バージョン2の開発記です。

目次

一瞬で終わる戦闘

子供の頃、私は光栄のシミュレーションゲームが大好きでした。『信長の野望』や『三國志』を、何時間も遊びました。

ただ、今になって思い出すと……

あの合戦画面は、楽しいというより「面倒」だった記憶があります。マス目の上で兵をチマチマ動かし、何ターンもかけて決着する。

国をどれだけ育てても、合戦に入ると同じ作業が始まる。育てた成果が、盤面にほとんど出てこない。

だから私は、戦闘画面を足したいけれど、あの「面倒」にはしたくなかった。そこで、一つの問いに行き着きました。

「内政で育てたものが、戦闘でスカッと効く」そういう戦闘にできないか。

農業を伸ばし、兵を鍛えた国が、戦いで目に見えて有利になる。準備が報われる快感。それこそが、私が本当に作りたかった戦闘でした。

強みで戦う

強味で戦うセクションの画像

前回の記事で、私は大事なことに気づいたと書きました。「自分はゲーム職人ではなく、業務屋の頭しかない」——その引け目こそが、SLGでは強みになる、と。今回も、同じ考えを頼りにしました。

私はアクションの「手触り」を作るのは苦手です。でも、ルールと数字の設計なら、30年やってきた仕事そのものです。だったら戦闘も、反射神経で殴り合うものではなく、頭で読み合うものにすればいい。

そうしてたどり着いたのが、一手制の戦闘でした。毎ラウンド、五つの計略『突撃・火計・伏兵・守勢・兵糧攻め』から一つだけを選ぶ。

計略には相性があって、火計は守勢に弱く、伏兵は突撃を狩る……といったジャンケンの輪になっています。相手が何を出すか読んで、勝てる手を当てる。それだけの、シンプルな仕組みです。

計略の相性の輪の図のスクリーンショット

そして肝心の「内政が効く」部分は、ダメージの計算式に仕込みました。読み勝つと大きなダメージ。さらに、兵力で上回っているほど、一撃が重くなる

相性で読み勝ち、かつ内政で兵力を育てていれば、二つの有利が重なって、敵の軍が一気に崩れる。これが、狙っていた「スカッと」の正体です。

面白かったのは、この式を頭の中だけで決めなかったことです。数字を入れて、実際に何度も戦わせてみる。強すぎないか、雪だるま式に一方的にならないか。

遊んで、感触を確かめて、また数字を直す。設計を「机上」ではなく「手触り」で詰めていく——この進め方が、今回はとてもうまくいきました。

敵を「読む」

敵を読むセクションの画像

一手制には、一つ物足りない点がありました。相手がランダムに手を出すだけだと、それは「読み」ではなく「五分五分の勘」でしかありません。

そこで、敵将ごとに性格を持たせました。

猪突猛進の猛将は、突撃を多用する。策士の軍師は、火計を仕掛けてくる。堅実な守将は、守勢で固める。だから、「あの猪武者は突っ込んでくるはずだ、伏兵で待とう」という本物の読みが生まれる。

敵を知っているほど、有利に戦える。ここに来て、ようやく三国志らしい駆け引きになりました。

そして、各勢力の君主だけは、あえて「読めない性格」にしました。手クセに偏りがなく、性格を読んでも通用しない。彼らに勝つには、小手先ではなく、内政で兵力を上回って正面から挑むしかない。

城で待つ君主は、いわばラスボスです。読みで攻略してきたプレイヤーが、最後に「準備」を試される。

そういう難易度の山になりました。

内政が、効く

ここが、今回いちばん作りたかった部分です。育てた国を、どう戦闘につなげるか。

答えは、こう整理できました。商業で稼いで徴兵すれば、兵の「数」が増える。農業を伸ばして兵糧が満ちれば、兵の「粘り」が上がる。

数で押し、粘りで耐える。豊かに実った領地から出た軍は、簡単には崩れない。痩せた前線の軍は、脆い。

つまり、出撃ボタンを押したその瞬間に、これまで育ててきた内政の成果が、そのまま戦力として目の前に現れる。戦闘は、内政の「答え合わせ」になったのです。

前回の記事で認めた「終盤に緊張感が緩む」問題も、これで薬になりました。攻めれば兵は減る。

勝っても消耗する。だから、戦い続けるには内政を回し続けなければならない。国を育てる手が、止まらなくなりました。

つくる——「考える部分」と「見せる部分」を分ける

つくるセクションの画像

前回、「SLGの画面は、業務システムの画面と構造がほとんど同じだ」と気づいた話を書きました。今回のバージョンでは、その気づきを、コードの組み立て方そのものに使いました。

戦闘のルール——計略の相性、ダメージの計算、敵将の性格、兵の粘り——を、ゲームの絵や音とは切り離して、ただ数字を扱うだけのかたまりとして書いたのです。

画面のほうは、そこへ「伏兵を出した」と伝えて、返ってきた数字を表示するだけ。電卓でいえば、計算する中身と、数字を映す液晶とを、別々に作るようなものです。

そしてこれは、業務システムで「料金の計算ルールだけを、画面から切り離して書く」のと、まったく同じやり方でした。仕事で、何度もやってきたことです。

分けておくと、いいことが二つありました。ひとつは、戦闘のルールだけを取り出して、何度でも試せることです。画面がまだ影も形もないうちから、「この相性で、この計算式なら面白いか」を確かめられました。

もうひとつは、画面をいくら作り直しても、ルールのほうは傷つかないこと。安心して、見た目をいじれます。進め方も、前回と同じ流儀を通しました。設計は対話(Claude(ブラウザ版))で、実装は段階(CladeCode)で。

どんな戦闘にするか、相性やダメージをどうするか。これは Claude(ブラウザ版)と、じっくり話し合って決めました。

この段階では、まだ一行もコードを書きません。言葉と、図と、その場で動かせる簡単な試作だけ。「一手だけ選ぶ形にするか、カードを何枚も持つ形にするか」、何度行き来しながら、迷いながら作り直しです。

迷いがなくなってから、決めたことを Claude Code に渡して、実際のファイルとして書いてもらう。それも一気にではなく、「まず兵力バーを繋ぐ」「次に計略ボタン」と、一段ずつ。動いたのを確かめてから、次へ進みます。

最後に、この戦闘を、前のバージョンのマップにつなぎました。

「攻撃→出撃元→攻撃先→出撃兵力」という手順は、もともとあったものです。その最後、これまで一瞬で結果が出ていたところだけを、戦闘画面に差し替えました。

もとの仕組みは壊さない。つなぎ目だけを、新しく作る。この考え方が、最後まで自分を助けてくれました。

仕上げと、遊べるブログ

機能ができたら、最後は手触りです。合戦らしいBGMを流し、大きく削ったときだけ画面を軽く揺らし、兵力バーを一瞬ではなく滑らかに減らす。

たったこれだけで、「削れた!」という手応えが、まるで違ってきました。演出は、面白さの一部なのだと、あらためて思いました。

勝利バナーと、削れた兵力バーのスクリーンショット

そして今回、一つ新しい試みをしました。この記事の中で、その戦闘を実際に遊べるようにしたのです。

敵将を選び、その性格を読んで、相性で勝つ計略を当てる。本編とまったく同じロジックを、ブラウザで動くように作り直しました。

読むだけでなく、その場で触れる。開発記として、これ以上の締めくくりはないと思っています。ぜひ、下で遊んでみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次