私はEchoRulerの最適編成を求めるために遺伝的アルゴリズム(GA)を採用している。このアルゴリズムはシミュレータを作成して適切な評価関数を設定できればある程度の精度で正解が求まるので、状況によってはとても役に立つ。しかし、局所解にハマることもあるし、部分的に適用した際に、それが全体最適にならないことがある。
EchoRulerの分析でもゲーム全体に遺伝的アルゴリズムをするのは計算量が多くなってしまうのでステージごとの分析にしているが、これはある程度ゲーム攻略の筋道が立っているからである。
ゲームのシミュレータ
遺伝的アルゴリズムを適用するにはゲームのシミュレータが必要となるが、これはクローン実装のEchoRulerClone.jsを使用している。つい最近(2026-08-11)まで原典との間で実装に乖離があったが、Claude Codeの支援もあり、不具合は修正されている。
遺伝的アルゴリズムに適用するにあたって、シミュレータは独立してデータを管理できるようになっていなければならない。元の実装ではグローバル空間にゲーム状態を管理するための変数が散らばっていたが、ゲームそのものをオブジェクトとして管理できなければ取り回しが悪いので、オブジェクト指向的なドメインモデルを作成している。
最良編成を導くためにシミュレータを使ってゲームを自動的(プログラム的に)に実行することになるが、そのために高速に動作するプログラミング言語を採用すべきである。しかし、今やJavaScriptはその涙ぐましい努力によってかなり高速に動作する言語となっているし、ゲーム自体もそこまで大きなものではないので、JavaScriptのまま実行している。ただし、ChromeとSafariでは実行速度に雲泥の差がある。
わかっていること
最良編成の見当がついている
EchoRulerにはリーダーボード(ランキング)があるので、おおよその最適解と編成が明らかである。1位と2位は虚偽のスコアで、3位タイについては現在では到達できないので、何かしらの調整前に得られたスコアの可能性がある。
これを見る限りは、スコアが一番高くなる高難易度ステージを踏破していることが窺える。

局所最適 ≒ 全体最適が成り立つ
ゲームの性質的に特定のステージの損害が多くなったからといって、後に控えるステージで挽回できれば最終的にスコアが高くなり得るが、分析をしていくと各ステージの損害はかなり小さく抑えることができるように設計されていることがわかる。すなわち局所最適が全体最適とほぼ同義になる。
捕虜も次のステージからすぐに役立つ構成になっていて、特定のステージで獲得した捕虜をのちのステージのために温存し続けることで最終的に超有利に働くなんてことはないので、その点も解析を簡単にしている一因である。
オーバーキルを利用する
ゲームを始めたばかりの感覚では、低HPのユニットはすぐに戦闘不能になるので採用を見送りたくなるが、いくら大きなダメージを受けても損害は最大HP分なので低いHPは有利に働く。
Mantis(50)やUndine(50), Mandrake(30)は非常に有用なアタッカー兼おとりになり得ることはリーダーボードからも把握できる。
視察によるステージ分析
A. 森の守護者
最初のステージであり、編成が固定されているので解が求めやすい。
F. 歪んだ大樹
このステージは極めて難しく、道中の敵は比較的多く設定されており、属性攻撃を持つので編成に悩まされる。ボスのDarkYoungに至ってはラスボスを超える2000ものHPを持つだけでなく、物理120ダメージの3回攻撃、物理耐性50%、状態異常無効を持つなど、明らかに強く調整されている。
逆に捉えれば攻略できる編成が限られているということでもあるので、このステージをクリアできる編成は最適解のための指標となり得る。解析によればボス戦はKnight, Knight, Wizard, Wizard, Undineの組合せでしか突破できない。
M. 白銀の吹雪
FreezeSourの猛攻に耐えられるのはAlbinoPenguinかSnowManしかいないが、これらのユニットはJ. 古の支配者のクリア報酬となっているので、A → C → F → J → Mの最右ルートが確定する。
遺伝的アルゴリズム
ハイパーパラメータ
一般的な遺伝的アルゴリズムにならって複製(1%)、変異(100%)、交叉(25%)を実装してある。エリート比率を高く設定すると収束はしやすいが、最適解が求まりにくくなったので、思い切って50%程度としている。
ステージによるが、100~5000世代ほどで最良ケースを求めることができた。A. 森の守護者はすぐに解が求まり、F. 歪んだ大樹が一番解析に時間がかかった。
評価関数
回復コスト(損害)をスコアとしてある(低いほどいい結果)。それだけではF. 歪んだ大樹の探索が伸び悩み、偶然の組合せを見つけ出せるかどうかの運任せの状況に陥ったので、ステージ内のラウンド数が進むほどスコアの重みを高くして、なるべく先のラウンドに進む組合せを見つけ出せるように調整した。
フィールドパワーを評価に入れることも考えたが、フィールドパワーが高いことが必ずしもいい結果を導かないのでやめている。