【note原稿／未投稿】避ける方向が、次の一撃を決める。「盾のない騎士」

敵の大振りを避けた。そこで終わりではなく、避けたあとに誰が残るかを考える近接ゲームを作りました。
「盾のない騎士」は、槍兵と斧兵のいる小さな中庭を抜けるPyxel作品です。槍は直線、斧は円。狙いは予兆の開始時に固定されるので、横へ歩いて外れることができます。そして、その範囲に別の敵がいれば、敵同士でも当たります。

動画のBでは、斧の円から騎士が外れ、近くに残った槍兵へ斧が当たっています。設計時には「槍の後ろへ敵を並べる」場面も想定しましたが、実際の記録は斧による巻き込みです。映像で起きたことと、作りたかった候補を混ぜないようにしています。

操作は矢印、Zの剣、Xの回避。回避は速く移動するだけで、無敵ではありません。危険の中でボタンを押すより、どこへ出るかが大切です。槍には1.2秒、斧には1.4秒の予兆を設け、攻撃後には白い輪で隙を表示しました。普通に歩いて避けても、剣だけで倒しても成功できます。

同士討ちは特殊な鍵ではなく、戦い方の選択肢です。比較では敵から他の敵へのダメージだけを2から0にしました。同じBの入力は両方で278tickの成功ですが、通常版は体力3・剣4hit、比較版は体力2・剣6hit。敵の攻撃を使う意味は出ましたが、それだけで人が楽しいと感じる証明にはなりません。

内部は描画から独立したモデルです。敵に渡すのは、今見えた位置と過去の記憶だけ。次に押すボタンを知ったり、柱の裏へ隠れた人物の現在位置を追い続けたりはしません。攻撃の当たりは同時に処理し、相打ちで騎士が倒れたときは敗北になります。

テスト中には、最後の有効フレームだけ攻撃が見えなくなる不具合と、停止中に離したキーが古い押下として残る不具合を直しました。「避けたのに当たった」「押したのに出ない」を減らすため、派手さより先に境界を確かめています。

3状況の固定入力、普通歩行の回避開始を前後6tickずらす検査、クラウドLinuxの実入力を確認しました。動画は実Pyxel描画の自動入力・無音記録です。Windows/macOS実機、音の実聴、人による初見の面白さは未確認です。

試遊で知りたいのは、「同じ攻撃を避けるなら、なぜそちらへ動いた？」という理由。単に無傷で終わるだけでなく、自分で次の一撃を作れたと感じるかを、これから確かめます。
