その撃ち方、読まれてる
自動連射で敵艦隊を撃ち落とし、アイテムとウェーブ突破でレベルアップするシューティング。動いて撃ち癖を分散し、敵の裏をかこう。
所要時間4時間21分
制作メモ
- AIに任せた
- 仕様に沿ったCanvasゲーム、撃ち癖と居場所癖の学習ロジックの実装/キーボード・ポインタ操作、端末保存、Web Audio合成、画像欠損時の図形描画の実装/単体テスト76件とE2E20件、デモ・プロモ動画ツールの作成/読み取り専用の独立レビューと指摘の修正/体験評価2周(12/20→18/20)とUI採点(17/20)を別セッションで実施し、指摘を反映/熱の帯を輝度の階調へ作り直し、波ごとの難度・▽の初回ヒント・読まれ度の色分け・結果画面の共有を追加/自動連射への作り替え(撃つ入力の廃止・熱を発数でなく居た時間で積む方式への変更)/アイテムとLV1〜30の強化表、上限後のアイテムを得点に変える仕組みの実装/上手いプレイヤーを模した決定的なシミュレーション(tools/tune.mjs)を作り、敵側の定数を測りながら詰めた/実ブラウザで遊ばせてスクショを撮り、画面の読みにくさを見つけて直した
- 自分でやった
- 題材の選択と制作の依頼/画像生成をAIに任せる方針の指定/自動連射とレベルアップという方針の指示/強化の決まり方(拾った順に固定で伸びる)とレベルの持続範囲(1プレイ内のみ)の選択
- 失敗と修正
- 居場所の標本が浮動小数の誤差で200msの境界から遅れていた → 境界比較に誤差の許容を加え、1秒で5標本になることをテストした
小画面ではCanvasの文字が14px未満に縮小された → 描画倍率に応じて文字サイズを補正した
読まれ度が1発撃っただけで100に振り切れ、学習が伝わらなかった → 同じレーン6発で最大になる正規化熱と、標本15件で立ち上がる居場所の集中に分け、0.6対0.4で合成した
短い画面ではキャンバスが伸びて自機と防衛線が画面の外へ出ていた → キャンバス幅の上限をビューポートの高さから決め、開始と再挑戦のたびにHUDの上端までスクロールするようにした。ツールバーが3px切れる問題は上限を (100svh - 220px) × 0.75 に詰めて解消した
自弾1発・8列40隻ではウェーブ1が終わらず、体験評価が12/20で落ちた → 自弾を2発に増やし、艦隊を7列28隻(2波以降35隻)へ減らし、開幕3秒の猶予と敵弾のばらつきを足した
ウェーブ通過の表示と得点ポップが同じ高さで重なって読めなかった → 全滅の瞬間に浮き文字を消してから通過の文字を1件だけ置き、WAVE表示と高さを分けた
熱の帯を半透明の赤で描いていたため、暗い背景では熱の差が見分けられなかった(実戦域で背景比1.5〜2.0:1) → 不透明度ではなく輝度の階調に変え、熱0.3で3:1、熱1.0で8:1を超える色にした。上限の熱には白い線も足した
熱が上限を超えて溜まり続け、長く止まった人ほど逃げても読まれ度が下がらなくなった(20秒止まると離れて4秒経っても振り切れたまま) → 生の熱を上限6で頭打ちにし、減衰の時定数を5秒から3秒に縮めた。止まっていた時間に関係なく同じ速さで冷めることを単体テストで固定した
難易度の自動調整が「所要時間」だけを見て、敵弾を2,572px/s(画面を249msで横断)まで速くした。見てから避けられない → 弾速に上限620px/sを設け、到達まで0.45秒を確保した。圧は弾数と撃つ間隔で作り直した
次の調整では艦隊の行進が通常の30倍になり、死因が「撃たれて」から「押し潰されて」に変わった。調整用ボットが超人的に避けるため、それを殺せる設定が人には理不尽になっていた → 所要時間を目標にするのをやめ、行進速度の上限4倍・同時敵弾30発・弾速620px/sという人が遊べる条件を先に固定して、数値は設計判断で決めた
常時30発以上の自弾が画面上端の「撃ち癖の熱」の帯を横切り、中核の指標が読めなくなった → 自弾を帯の下端(y=56)で消すようにした。艦隊の最上段には届くことをテストで確かめた
デモの自動操縦が落ちてくるアイテムの真下で3秒止まり、見せたくない「止まって読まれる」動きを実演していた → アイテム追従をやめ、画面幅を往復し続けて迫る弾だけ避ける動きにした。自動操縦の読まれ度の平均が45未満であることをテストで固定した











































