ニュースニュース

開発ログ

2026年10月30日

数字が嘘をついたとき

BALANCE記事 #4
River Valley の夕暮れの攻城戦。この試合で勝つべきだったのはどちらか? その答えは、思ったより手間がかかりました
River Valley の夕暮れの攻城戦。この試合で勝つべきだったのはどちらか? その答えは、思ったより手間がかかりました

ある試験試合で、二つの軍勢が114分間も戦い続けましたが、どちらの側も前に進めませんでした。城は一つもダメージを受けず、建物が完全に失われることもなく、部隊は同じ地面の上で生まれ、進軍し、死んでいき続けました。

114分まで遊び続ける人はいません。そこまで行けるのは、研究所だけです。

感覚では規模を支えられない

第2章で、経済は紙の上では成り立っていました。ゲームにとって最初の防衛線は、実際に誰かが遊ぶことです。私たちのような二人組では、それは何度も遊び直して、どこが壊れているかを探す作業になります。一人でたくさんのものを見つけられます。けれど、800試合目にならないと現れない問題もあるのです。

そこで研究所を作りました。シミュレーションはグラフィックなしで、実時間よりずっと速く動き、AIを何度でも自分自身と戦わせられます。どの試合も固定のシードを使うので、おかしな結果は、まったく同じ形で再現できます。そして提案された変更はすべて、新しい試合の一群に耐えて初めて採用されます。

最初の約1,000試合のラウンドで、ゲームは私たちが思っていたものではないとわかりました。城はほとんど影響しておらず、試合は部隊の上限に達した二つの軍勢による一つの巨大な戦いで決まっていました。ほかのことはすべて、その結果にすぎませんでした。修正は一つのボタンではなくパッケージでした。最初の建物の値段を上げ、撃破報酬を減らし、部隊の上限を110から90へ下げたのです。

終わらない試合

次に現れたのは、逆の問題でした。どの陣営の組み合わせも10回ずつ戦わせました。合計1,050試合です。

  • 21% の試合では、10分以上まったく進展のない時間帯がありました。そうした典型的な時間帯では、547体の部隊が倒れていました。
  • 18% の試合は、30分の制限時間に達しました。
  • 制限時間をなくすと、3.8% の試合は2時間たっても同点のままでした。

何かを変える前に、3,880試合を使って原因を突き止めました。三つの原因が際立っていました。

  • 部隊の上限が壁になっていた。 両軍が上限で止まると、余分なゴールドはもはや圧力になりません。
  • 範囲ダメージが自陣でしか効いていなかった。 魔法建物によって倒された部隊の99%は、建てた側で死んでいました。前に出る側は、自分の傘の下から出て、敵の傘の下に入ってしまうのです。
  • 膠着を抜け出せないAI。

除外した仮説もあります。経路で引っかかった部隊は2%未満でした。一方、最も狭いチョークポイントを持つテストマップは、むしろもっとも決定的でした。

試合の多くが時間切れになるなら、同点の判定こそ正しい勝者を当てる必要があります。そこで、制限時間に達した試合を制限なしで最後まで再生し、各基準が誰を勝者として指したかを照合しました。

同点の判定基準 実際に勝っていた側を当てた割合
決着時に保有していた救出 76%
救出、次に破壊した建物、次に戦線の位置 68%
私たちが使っていたルール 55%
コイン投げ 50%
収入だけ 44%

一番明白に見えた基準、収入は、コイン投げに負けました。

理由は単純です。破壊された建物を建て直すと収入が再び加算されるので、殴られている側のほうが、たいてい多く稼いでいたのです。

その場で足踏みする兵士

戦いの中には、もう一つ奇妙な数字が隠れていました。二つの軍勢がぶつかると、後方の近接部隊は味方の背中に押し付けられ、その場で足踏みをしていました。それぞれが最も近い敵へまっすぐ向かいますが、その敵は、たいてい前の兵士がすでに戦っている相手でした。そして、部隊同士の重なりを防ぐルールが、一歩ごとにそれを押し戻していたのです。

移動ルールだけを差し替えられるシミュレーションのコピーを作り、13種類のルールを試しました。失敗から多くを学びました。「前の味方が戦っている間は止まる」というルールは足踏みを解消しましたが、後ろの部隊がまったく到着しなくなり、戦いは2倍の時間がかかりました。うまくいったのは、粘り強い経路です。部隊は、空いた攻撃位置へ向かう短い経路を選び、詰まったら再計算するか、待ちます。

戦闘中の足踏み時間 以前 粘り強い経路
開けた場所 26% 5.6%
狭い通路 35% 6.8%
コンピューター同士の試合 9.7% 1.3%

このようなルールは、近接戦闘をずっと強くします。そこで、すべての陣営を互いに戦わせました。同じシードで、ルールごとに1,050試合です。勝率は以前の44〜60%から、42〜57%の範囲に収まりました。最初の実行では研究所に小さなバグがあり、一部の試合が実際のゲームとずれていました。修正してすべてを改めて回してから、結果を信用しました。

そして、翼を持つ部隊が加わると、勝率は38〜58%から**22〜82%**へと広がりました。ある陣営は、ほぼすべての部隊が地面しか攻撃できなかったため34ポイント下がり、別の陣営は、まだ飛行部隊を一体も持っていなかったため20ポイント下がりました。修正は数値をいじることではなく、足りなかった答えを与えることでした。前者には飛行部隊に弾幕を放つ建物を、後者には自前の飛行部隊を。次のラウンドでは、すべての陣営が42%から57%の間に戻りました。

豊かすぎた経済

第2章の終わりを覚えていますか。私たちは、試合のペースをそのジャンルのゲームに期待されるものと比べました。部隊の生産は適切でしたが、お金は違いました。ゲームは期待より3.5〜4倍も豊かに回っており、どの試合も洪水のようでした。そこで、すべてを引き締めました。

  • スタートをきつく: 300ゴールドと14収入の代わりに、250ゴールドと城の収入5。
  • 収入は建物とともに消える。 以前は破壊された建物も収入を生み続けていました。今は、拠点を失うことが本当に痛くなります。
  • 先に建てた者への報酬: 建設を最初に終えた人が、ゴールドのボーナスをもらえます。

うまくいかなかった試みもあります。アリーナを歩いて横切るのに時間がかかりすぎたのです。最初の案はゲーム全体の時計を速めることでした。動きはしましたが、戦闘の手触りが変わり、すでに調整していたバランスも揺らぎました。そこで元に戻し、歩く速さだけを速めました。部隊とワーカーは1.5倍速く動き、それ以外はそのままです。

原典を一行ずつ読む

最も基本的な問いが残っていました。私たちの数字は、本当にCastle Fightのものなのか。答えるために、マップのスクリプトを関数ごとに読みました。部隊に関するもの32、建物に関するもの34です。そして別バージョンのマップのデータと照合しました。比較できた105の数値のうち91が一致し、約30の値は、私たちの推定値から正しい値に置き換わりました。

今では、ゲームのすべての数字に、それがどこから来たかを示す印が付いています。

証拠、原因、選択肢

この章に教訓があるとすれば、その順番です。まず証拠。次に原因。そして、それぞれにリスクを書いた選択肢のリスト。その選択肢は逆転の可能性を残すか。正当な防御を罰していないか。陣営の個性を消していないか。そこまで確認して、初めて数値が変わります。

この順番には、何度も助けられました。AIが建物を選ぶ仕組みを一から書き直すと、むしろ状況は悪化しました。一方、既存のロジックの1行だけを変えたところ、研究所で制限時間に達する試合の割合が18.1%から11.0%に下がり、陣営間のバランスは崩れませんでした。

まだ解決していないことも多くあります。新しい経済、AI、広くなったフィールドはコードに入っていますが、その上で陣営の調整をまだやり直す必要があり、すべてをまとめて一つのバージョンで出します。バランス調整に終わりはありません。ただ、今はどこを見ればいいかがわかっています。

しかし、どれだけバランスが取れていても、ゲームは一度も遊んだことのない人が学べるものでなければなりません。それが、次の問題でした。

— チーム