Phaser版コレマカベーダー ゲーム仕様書
本ドキュメントは、Phaser 3 / TypeScriptで構築されたWebブラウザ版シューティングゲーム
『Phaser版コレマカベーダー』のゲーム仕様書です。
1. 基本概要
1.1 ゲームコンセプト
往年の名作アーケードゲーム「スペースインベーダー」のクラシカルなゲーム性をベースに、「敵の分裂システム」「真ん中撃ちによる一撃撃破」「精密な防壁破壊」「オンラインハイスコア&リプレイ機能」などの独自ルールと現代的なWeb技術を融合させた、レトロ&ハイテンポな固定画面シューティングゲームです。
1.2 動作環境・技術スタック
| 項目 | 仕様 |
|---|---|
| 画面解像度 | 640 × 480 ピクセル(固定解像度 / 60FPS動作) |
| ゲームエンジン | Phaser 3 (^3.90.0) |
| 言語 / ビルド | TypeScript (~5.9.3), Vite (^7.1.7) |
| サウンド | Web Audio API(TGW形式ADPCM BGM / MP3 SE) |
| 乱数生成器 | SFMT(SIMD-oriented Fast Mersenne Twister)による決定論的乱数 |
2. 操作方法 & 画面構成
2.1 コントロール仕様
| キー / 入力 | ゲーム中 | タイトル・設定画面 |
|---|---|---|
| ← / → / A / D | 自機(キャノン)の左右移動 | オプション値変更(BGM ON/OFF、BGM/SE音量) |
| ↑ / ↓ / W / S | (未使用) | メニュー項目選択(START / OPTION 等) |
| SPACE | ミサイル発射 | 決定 / ゲーム開始 |
| XInput | 左スティック / 十字キーで自機を左右移動、A / Xでミサイル発射 | 左スティック / 十字キーで選択、A / XまたはSTARTで決定、B / Y / BACKで戻る |
2.2 画面レイアウト(HUD)
+-------------------------------------------------------------------+ | SCORE<1> HI-SCORE SCORE<2> | | 00000000 00015000 00000000 | | | | [========= UFO 50~300 PTS ==========>] | | | | [Sm][Sm][Sm][Sm][Sm][Sm][Sm][Sm] Sm=teki1(small) 10pts each | | [Lg][Lg][Lg][Lg][Lg][Lg][Lg][Lg] Lg=teki3(large) 30pts each | | [Lg][Lg][Lg][Lg][Lg][Lg][Lg][Lg] | | [Lg][Lg][Lg][Lg][Lg][Lg][Lg][Lg] | | [Lg][Lg][Lg][Lg][Lg][Lg][Lg][Lg] | | | | [Wall1] [Wall2] [Wall3] [Wall4] | | | | [ CANNON ] | | =================================================================| | 3 [i] [i] | +-------------------------------------------------------------------+
- 最上段: 1Pスコア(左)、全国ハイスコア(中央)、2Pスコア(右)
- プレイスペース: UFO出現ゾーン、敵編隊(横8列×縦5段 = 計40体)、トーチカ(防壁4基)、自機
- 最下段: 残機数(数字+ミニチュアアイコン)
3. ゲームルール・システム
3.1 ゲームの進行とクリア条件
- ウェーブ開始: 画面上部に敵編隊が出現(ステージが進むごとに初期配置のY座標が下がり、難易度が上昇)。
- ステージクリア: 画面内の敵インベーダーを全滅させるとステージクリアとなり、次ステージへ移行。
- ゲームオーバー条件: 自機の残機がすべて失われる(初期3機、0機になると終了)。
インベーダーの侵略・占領: 敵がトーチカ・自機ライン(最下段)まで到達すると即座にゲームオーバー。
3.2 敵キャラクター仕様
編隊は横8列・縦5行(最大40体)で構成されます。
| キャラクター | 初期得点 | 特徴・ギミック |
|---|---|---|
| 小さい敵 (teki1) | 10 PTS | 1発で倒せる一般的なインベーダー。編隊の数を減らすと全体の移動スピードが加速。 |
| 大きい敵 (teki3) | 30 PTS (一撃) | 独自ギミック: ・真ん中撃ち(中央座標差3px未満): 一撃で撃破(30 PTS)。 ・端撃ち: 左右に2体の小さな敵へ分裂する。分裂した敵はそれぞれ独立して10 PTS。 |
| UFO | 50 / 100 / 150 / 300 PTS | 画面上端を周期的に高速横断するボーナスキャラ。プレイヤーの総射撃数に応じて撃破得点が決定する。 |
3.3 敵の攻撃と移動
- 行進: 横移動を繰り返し、端に到達すると一段降下して反転。残存数が減るほど行進テンポが速くなります。
- 敵ミサイル: 最下段の敵から発射。初回120フレーム待機後、常に最大3発発射してきます。
4. 攻略法・高等テクニック(裏技再現)
4.1 名古屋撃ち
仕様: 敵のミサイルは敵本体の少し下の座標から発生するため、最下段まで降りてきた敵の真下に自機が密着している状態では、敵の弾に当たらず一方的に撃破できます。
4.2 300点UFO稼ぎ
仕様: UFO撃破時の得点テーブルは射撃回数のカウンタに連動しています。
- 得点順:
[100, 100, 100, 50, 150, 100, 100, 50, 50, 100, 150, 100, 100, 50, 300] - ミサイルの射撃数カウンタは初期値6から始まり、発射成功ごとに加算後15で循環します。UFOを8発目、23発目、38発目…(15発周期)に撃ち落とすと、最高得点の300点になります。
4.3 大きい敵の「真ん中撃ち」
大きい敵(teki3)の中央部(中心軸から±3px以内)にミサイルをヒットさせると、分裂させずに一撃(30 PTS)で消滅させることができます。分裂させて数を増やす前に素早く処理する重要なテクニックです。
5. 防壁(トーチカ・シールド)仕様
5.1 ビットマップ破壊判定
- 画面上に4基配置。
- 自機のミサイルおよび敵のミサイルが命中すると、着弾地点を中心に特殊なマスクパターン(
AC3_CLEAR_MASK)でピクセル単位に削れ、徐々に防壁としての耐久力を失っていきます。 - 敵本体が防壁に接触した場合は、接触した部分がそのまま消去されます。
6. スコア・エクステンド(残機)仕様
- 初期残機: 3機(画面左下に表示)
- エクステンド(1UP): スコアが1,500点に到達した時点で自機が1機追加(ファンファーレSEが鳴動)。
※1プレイにつき初回1,500点達成時のみ適用。
7. オンラインハイスコア & リプレイシステム
7.1 リプレイデータ構造
本作は完全な入力再現型(決定論的)リプレイエンジンを搭載しています。
- 乱数シード: ゲーム開始時にSFMTシード(
seed)を記録。 - 入力ログ: 毎フレームのキー入力状態(左右移動、発射ボタン)をバイナリストリームとして記録。
- 圧縮転送: 生データをDeflate(zlib)圧縮し、Base64エンコードしてサーバーと通信。
7.2 全国ハイスコア連動
- ゲームオーバー時、獲得スコアがサーバーのハイスコアを上回った場合にネームエントリー画面が表示。
- 入力した名前(最大16文字・空欄の場合は「コレマカ」が自動入力)、スコア、リプレイ文字列がWeb API(
shoot.php)へPOST送信されます。 - プレイデモ機能: タイトル画面で何も操作せずに放置すると、サーバーから最新ハイスコアのリプレイデータを自動ダウンロードし、トッププレイヤーの神プレイがタイトル画面上で自動再生されます。
8. サウンド & 演出仕様
- BGM: TGW形式のカスタムADPCMサウンドドライバーにより、ブラウザネイティブのWeb Audio APIで再生。ループ開始・終了位置を厳密に管理したシームレスなループ再生。OFF時は、敵の行進SE 4種に切り替わります。
- 効果音 (SE): 自機発射音、命中爆発音、敵行進音、UFO飛行音、残機アップ音などをパンニング(音の左右定位)再生。
- ラスタースクロール演出: タイトル画面の文字表示部に、レトロアーケード基板を模した波打つラスタースクロールを実装。BitmapDataのコピー処理によるソフトウェアラスター演出であり、WebGLシェーダーは使用していません。
9. 設定(OPTION)画面機能
タイトル画面から設定可能な項目:
- BGM: ON / OFF 切替
- BGM音量: 0〜16段階
- SE音量: 0〜16段階
- 設定内容はブラウザ(LocalStorage)に保持され、次回起動時にも引き継がれます。