DEV LOG — CHAOS 02
画面を見ただけでは
気づけない不具合
『カオスソードガーデン』でいちばん時間を取られたのは、弾でも絵でもなく仕様を正確に伝えることでした。
動いているように見えるのに間違っている、というのがとにかく厄介です。
2026年9月17日 · カオスソードガーデン
Ⅰ「動いている」と「正しい」は別
プログラムはほとんど Claude Code に書いてもらっています。一作目のフェイブル・オブ・アビスのときも同じでしたが、二作目のほうが明らかに大変でした。
理由ははっきりしていて、弾幕シューティングは間違っていたら見て分かるんです。弾が変な方向へ飛べば分かるし、当たらないはずの弾に当たれば分かる。画面がそのまま答え合わせになります。
ところが剣戟アクションは違いました。ガードや回避や発生の仕様は、画面を見ただけでは合っているか分からない。斬られた。ガードしたはずなのに。……いまのは自分の入力が遅かったのか、それともガードが効いていないのか。判別がつかないんですよ。
この「間違っていることに気づけない」という状態が、作っているあいだずっと続いていました。
Ⅱ実際に起きていたこと
見つけて直したものをいくつか挙げます。
技を振っている最中でもガードできてしまう
ガードは何もしていないときだけ構えられる、という仕様にしていました。振る前に受けるか避けるかを決める、というのがこのゲームの読み合いの中心なので。ところが実装では、発生中や後隙中にもガードのコマンドが通ってしまっていました。
こうなると、とりあえず技を振っておいて危なくなったらガードすればいい、という戦い方が最適になります。発生と後隙でリスクを表現した意味がまるごと消えます。
回避の受付時間中にも他の行動が取れる
同じ種類の問題です。回避には受付時間があって、そのあいだは他の行動を取れないはずでした。ここも塞げていなかったので、あとから修正しています。
中断されたスキルの自己強化が残る
自分を強化するスキルが、ひるみで中断されたときの話です。技そのものは不発になるのに、強化の効果だけ乗ったままになっていました。これ、画面上ではまったく分かりません。ダメージの数字が微妙に高いだけです。しばらく気づきませんでした。
三つとも共通しているのは、「ある状態のときに、ある操作を受け付けない」という条件の抜けです。仕様としては当たり前でも、書き漏らしていると普通に動いてしまう。そして普通に動いてしまうから、テストプレイでは気づけないんですよね。
Ⅲ伝え方の問題でもありました
これ、実装の問題であると同時に伝え方の問題でもありました。
「ガードは何もしていないときだけできる」と書いたつもりでも、「何もしていない」が何を指すのかを定義していなかったんです。移動中は? 技の発生中は? 後隙中は? ひるみ中は? 自分の頭のなかでは決まっていても、書き出していないと伝わりません。
足りなかったのは、キャラクターが取りうる状態をひとつずつ書き出しておくことでした。移動中、発生中、後隙中、ひるみ中、回避の受付中。それぞれで何を受け付けて何を受け付けないのかが決まっていれば、抜けたときに気づけます。文章で説明しているかぎり、抜けは抜けたまま通ってしまいました。
じつは一作目でも似たことが起きています。シンデレラの盾が「自機の弾とレーザーは止めるのに、ボムだけ貫通する」状態になっていました。あれも経路が三つあることを書き出していなかったのが原因です。ジャンルが違うのに、同じ形の失敗をしているんですね。
Ⅳ立ち絵は生成 AI で作りました
登場する相手の立ち絵は、すべて生成 AI で作成しています。個人制作で13人ぶんの絵を用意するのは、ほかの手段だと現実的じゃなかったので。
公開後に一度、一戦目の相手の立ち絵を差し替えています。
Ⅴゼロから作るのはまだ難しい
作り終えての実感は、0ベースでゲームを作るのは難しいということです。
一作目の弾幕シューティングには、ジャンルとしての型がありました。自機があって、弾があって、ボスがいる。何を作ればいいかは最初から決まっていて、あとは中身を書くだけ。判断に迷う場面がほとんどありません。
二作目にはそれがなかった。間合いを入れるかどうか、ひるみをどう扱うか、スキルをいつ組み替えさせるか。ひとつひとつ自分で決める必要があって、しかも決めたことが正しいかどうかは実際に動かしてみるまで分からない。間合いを足す前の単調さなんて、まさにそれです。
なので今後しばらくは、ジャンルとしてベースが固まっているものを作ったほうがいいなと感じています。次に予定しているのはターン制のコマンドバトル RPG です。これも型のあるジャンルですね。
カオスソードガーデンのほうは、細かいバランス調整を随時続けていきます。気になった点があればお問い合わせから教えてください。