開発ブログ
VOID STRIKERを個人開発する中で出会ったバグ・設計判断・試行錯誤を記録しています。実装の詳しい挙動を知りたい場合は 攻略ガイド もあわせてご覧ください。記事はいずれも「開発ログ」として、実際に手を動かした順番のまま、うまくいった判断もつまずいた点も含めて記録することを方針にしています。
現在公開している4本の記事は、いずれも実際の開発中に起きた課題への対応を時系列で記録したものです。スマートフォン実機でしか再現しないタッチ座標のズレを追ったデバッグの記録、弾のプリミティブから見直した敵とボスのコンテンツ拡張、スコアをそのまま資産に変えるクレジット経済とHANGAR画面のUI設計、そして音量・画面演出・データ初期化をまとめたOPTION画面のアクセシビリティ対応まで、それぞれ異なる開発フェーズでの判断を扱っています。
-
スマホ実機のタッチ座標ズレをどう直したか
公開日: 2026-07-11
もとはキーボード操作だけを前提に作り、あとからタッチ操作を追加したVOID STRIKERで、「タイトル画面のSTARTを押したつもりがHANGARに飛ぶ」「HANGARの項目をタップしたのに1つ下の項目が選択される」といった報告を受けて調査した記録。原因はCSS
transform:scaleとモバイルブラウザの自動ズームが二重にかかってしまい、タップ位置と判定位置がズレていた不具合だった。URLにdebugtouchを付けると内部座標に十字マーカーを描画するデバッグオーバーレイをまず実装し、実機でのズレを定量的に観測したうえで、#frameの幅・高さを計算済みの縮小率にもとづく実寸ピクセル値に直接指定する方式へ切り替えて解決した。あわせて、タップ時にキーボード操作用のカーソル位置も更新するよう修正し、見た目と実際の選択項目のズレも解消している。この不具合はエミュレータや開発者ツールのタッチシミュレーションでは再現しにくく、実機でしか発覚しない類のものだったため、先にデバッグ用の可視化ツールを作ってから原因を追い込む、という調査の進め方自体も振り返っている。 -
敵12種・3ボスへのコンテンツ拡張
公開日: 2026-07-11
基本4種の雑魚敵とボス1体(現在のvanguardアーキタイプ)だけだった構成を、敵12種・ボス3アーキタイプへ拡張した過程を振り返る。まず弾のプリミティブを
orb(時限炸裂)・mine(設置起爆)・homing(緩やかな追尾)・wall(隙間のある弾の壁)の4種に増やし、既存の衝突判定コードを変えずに新しい弾を追加できるようにした。その部品を使ってweaver・sniper・splitter・bomber・aegis・minerの6種の敵と、serpent・fortressの2アーキタイプのボスを設計し、ステージごとの解禁タイミングと難易度スケーリングでバランスを取っている。それぞれの敵は見た目や数値を変えるだけでなく、sniperなら「見てから避ける」反射神経、weaverなら「追わずに待つ」我慢、splitterなら「倒した後の分裂を見越す」先読みというように、プレイヤーに要求する行動がなるべく被らないよう役割を意識して設計した点にも触れている。さらに、12種類を最初から全部出すと初見のプレイヤーには情報過多になるため、序盤(ステージ1)は基本4種のみ、ステージ2以降で新顔を段階的に解禁し、1ステージの中でも序盤35%・中盤40%・終盤25%という3幕構成でウェーブの抽選プールを切り替える、という段階的な出し方の工夫についても記録している。 -
クレジットとハンガーの設計
公開日: 2026-07-11
プレイの継続動機となる「クレジット」というゲーム内通貨と、それを使うHANGAR画面をどう設計したかを振り返る。複雑な実績システムやミッションを別立てで作るより、既存のスコアという指標をそのまま経済に接続したほうが、既存のプレイループを崩さずに「もっと上手くなりたい」というモチベーションへ「クレジットが貯まる」という新しい価値を上乗せできる、という設計判断がまず語られる。ゲームオーバー時のスコアを100で割った値をそのまま加算するというシンプルな稼ぎ方に加え、8桁の紹介コードにチェックディジットを組み込んで不正利用を抑止する仕組みを解説している。また、タイトル画面用の自機描画をHANGAR/CODE/OPTIONでも使い回していたためにUI要素が隠れていたバグの修正や、価格順にDPSが厳密に増加するよう調整したスキンの性能設計にも触れている。現在のクレジット経済は
localStorageだけで完結するオフライン実装だが、将来的にCloudflare Workers上のバックエンドと連携して所持アイテムを複数端末で同期する構想(Phase 2)も見据え、net.jsという通信レイヤーをあらかじめ切り出してある、という今後の展望にも言及している。 -
音量・演出軽減・データ初期化を実装した話
公開日: 2026-07-11
音量・画面演出・データ初期化という3系統の設定をまとめたOPTION画面の実装を振り返る。ミュートと音量調整が互いに干渉しないよう、マスターゲインの下にSFX/BGM専用のゲインノードを配置する3段構成の音量ミキシングを組んだこと、被弾・ボム時の画面揺れやフラッシュを約25%まで弱められるSCREEN FX設定を既存のAPIを変えずに追加したことを解説している。「ミュート中でも音量設定は保持される」「音量を0%にしてもミュートボタンの状態には影響しない」という2つの操作が互いに干渉しない挙動や、BGM再生中に音量スライダーを動かすと次の音符を待たずその場で即座に反映される、という操作の手応えへのこだわりにも触れている。さらに、
alert/confirmを使わずに実装した、3秒以内の再操作でのみ実行される二段階確認のWIPE DATAフローについても触れている。設定はvoidstriker_settingsというキーで、クレジットなどの経済データ(voidstriker_meta)とは別にlocalStorageへ保存し、それぞれの読み書きをtry/catchで保護することで片方の読み込み失敗がもう片方に影響しないようにした、という保存設計の分離についても記録している。
あわせて読みたい
記事内で触れている数値の実装や仕様の詳細は、攻略ガイドの各ページにまとめています。敵12種の耐久・攻撃パターンは敵図鑑、ボス3アーキタイプのフェーズ構成はボス攻略、ステージが進むごとの数値変化は難易度スケーリング解説、クレジットの稼ぎ方と紹介コードの形式はクレジット/紹介コードの仕組み、スキンとテーマの価格・性能差はスキン&武装カタログとテーマカタログで確認できます。