[WEB App] LAIN RETRO ARCADE — 外部画像ゼロで動くレトロゲームコレクション

[WEB App] LAIN RETRO ARCADE — 外部画像ゼロで動くレトロゲームコレクション

Canvas2D Retro Arcade Games

1970〜1980年代の伝説的アーケードゲーム(PONG、平安京エイリアン、スペースインベーダーなど)を、外部画像ファイルを一切使わずに Pure Canvas2D のみで完全再現・リメイクした Web ゲームコレクションです。

画像アセットのロード待ちや依存を排除し、すべてのグラフィックを fillRect による 8×8 数値配列スプライト描画で構築。React の再レンダリングサイクルから描画系を切り離すため useRefrequestAnimationFrame を組み合わせたゲームループを構築し、軽量かつ滑らかな 60fps 動作を実現しています。

スクリーンショット

起動

トップページの左下にある「ターミナル」で game コマンドを実行。

[WEB App] LAIN RETRO ARCADE — 外部画像ゼロで動くレトロゲームコレクション

タイトル

カーソルキーの上下で選択、ENTERで決定

[WEB App] LAIN RETRO ARCADE — 外部画像ゼロで動くレトロゲームコレクション

OPTION

タイトルバーの「⚙」アイコンクリックでOPTION画面。

ウインドウ全体の透明度、ネオンカラー、背景色を変更可能。

[WEB App] LAIN RETRO ARCADE — 外部画像ゼロで動くレトロゲームコレクション

1.PONG (1972)

[WEB App] LAIN RETRO ARCADE — 外部画像ゼロで動くレトロゲームコレクション

02. HEIANKYO ALIEN (1979)

[WEB App] LAIN RETRO ARCADE — 外部画像ゼロで動くレトロゲームコレクション

03. SPACE INVADER (1978)

[WEB App] LAIN RETRO ARCADE — 外部画像ゼロで動くレトロゲームコレクション

04.PAC-MAN (1980)

[WEB App] LAIN RETRO ARCADE — 外部画像ゼロで動くレトロゲームコレクション

動画(GIF)

1.PONG (1972)

[WEB App] LAIN RETRO ARCADE — 外部画像ゼロで動くレトロゲームコレクション

02. HEIANKYO ALIEN (1979)

[WEB App] LAIN RETRO ARCADE — 外部画像ゼロで動くレトロゲームコレクション

03. SPACE INVADER (1978)

[WEB App] LAIN RETRO ARCADE — 外部画像ゼロで動くレトロゲームコレクション

04.PAC-MAN (1980)

[WEB App] LAIN RETRO ARCADE — 外部画像ゼロで動くレトロゲームコレクション

収録タイトル・ステータス

No.タイトルオリジナル年ステータス概要
01PONG1972v1.0 (Playable)ATARI RETRO TABLE TENNIS
02HEIANKYO ALIEN1979v1.0 (Playable)DIG HOLES & TRAP ALIENS
03SPACE INVADER1978v1.0 (Playable)DEFEND EARTH FROM ALIENS
04PAC-GHOST1980v1.0 (Playable)DOT EATING MAZE ACTION

特徴

  • 完全画像レス(Pure Canvas2D):
    PNG/SVG などの画像ファイルを一切ロードせず、すべて 8×8 の数値配列データから fillRect を用いてリアルタイムにドット絵スプライトを生成。
  • React レンダリングと切り離したゲームループ:
    ゲーム内の座標・速度・フラグ管理は useRef に保持し、requestAnimationFrame ループ内で直接 Canvas に描画することで React の state 再描画オーバーヘッドを回避。
  • 物理・AI メカニクス実装:
    • PONG: 1打ごとに球速が 5% 加速する物理挙動と、パドル打撃位置のオフセットに応じた反射角制御。
    • 平安京エイリアン: プレイヤーの穴掘り/埋めアクションおよびグリッド移動、直線・視線追跡アルゴリズムによるエイリアン AI。
    • スペースインベーダー: 敵の残存数に応じた段階的移動スピードアップ、22×16 ビットマップで再現された破壊可能シールド。

使い方

1. ゲームタイトルを選択

メニュー画面の GAMES リストからプレイしたいタイトル(PONG、HEIANKYO ALIEN、SPACE INVADER など)を選択します。

2. 操作方法

各ゲーム共通で、キーボード操作に対応しています。

  • PONG: / キーでパドル上下移動
  • 平安京エイリアン: 方向キーで移動、Z キーで穴掘り / X キーで埋め
  • スペースインベーダー: / キーで左右移動、Space キーでビーム発射
  • パックマン: 方向キーで移動

技術スタック

  • HTML5 Canvas API (2D Context) — 8×8 スプライト描画および 2D ゲームグラフィックレンダリング
  • React (useRef, useEffect) — ゲーム状態管理および Canvas ライフサイクル制御
  • Astro — Web アプリケーション基盤

技術記事

更新履歴

  • [2026-09-11]: v1.0 初回公開。
    • Pure Canvas2D 描画エンジンの構築(8×8 数値配列スプライト生成機能)
    • PONG (1972) 実装(パドル反射角・5%連続加速物理演算)
    • HEIANKYO ALIEN (1979) 実装(穴掘り・埋めメカニクス、追従 AI)
    • SPACE INVADER (1978) 実装(生存数依加速度制御、22×16 破壊可能シールド)
    • PAC-GHOST (1980) 実装(4種ゴースト個別追跡 AI、イジケモード反転・スコア倍率演算)