Lab/Phaser 4 Lab

ゲームエンジン・ショーケース公開中2026

ゲームエンジンPhaser 4の物理・タイルマップ・パーティクル・カメラ・入力を機能別デモで体験。画像アセットは一切使わず、全テクスチャをコード生成しています。

サイトを開く
Phaser 4ラボ(ゲームエンジンを部品で触る実験台)

Screenshots

Phaser 4ラボ(ゲームエンジンを部品で触る実験台) スクリーンショット 1
Phaser 4ラボ(ゲームエンジンを部品で触る実験台) スクリーンショット 2

Overview

概要

Phaser 4は、WebGL/Canvasの描画・物理・入力・シーン管理を備えたゲームエンジンです。本サイトはその機能をあえて部品単位に分解し、物理(Arcade)・タイルマップ・パーティクル・カメラ・入力の5デモとして触れる実験台。最大の特徴は外部の画像・音声アセットをゼロにし、すべてのテクスチャをGraphics.generateTextureでコード生成している点で、『アセットが無くてもここまで動く』を体現します。締めくくりに、シーン遷移まで含めた完成ミニゲーム『ネオンブレイクアウト』を収録しています。

How to use

遊び方・使い方

各デモは基準解像度960x540でスケール表示されます。物理デモは画面クリックでボールを追加し、重力・反発・空気抵抗のスライダーで挙動が変化。タイルマップは矢印キー/仮想ボタンでプレイヤーを操作し当たり判定を確認、パーティクルは噴水/爆発/雪/炎のプリセットと各パラメータで演出を調整、カメラは追従開始・停止・ズーム・シェイク・フェードを試せます。入力デモはキーボード・ポインタ・ドラッグ&ドロップを一望。ゲームは『ネオンブレイクアウト』でパドルを動かしてブロックを崩し、ハイスコアはブラウザに保存されます。

Tech stack

技術スタック

TypeScriptNext.js 16React 19Phaser 4Tailwind CSS v4

物理はArcade Physicsに限定(Matterは不採用)し、タイルマップはmake.tilemapに2次元配列とgenerateTexture製タイルセットを与えて構築。ハイスコアはlocalStorage、ミニゲームはTitle→Play→Resultのシーン遷移自体もPhaserの見どころとして設計しています。

Highlights

工夫した点

  • 外部アセットを排し、Graphics.generateTextureで角丸矩形・円・星型などを実行時に生成。テクスチャ生成関数を全シーンで共有し、グロー表現も重ね描きで作成
  • 3層構成(page → Client wrapper → dynamic ssr:false)でPhaser.GameをuseEffect内に生成し、破棄時はgame.destroy(true)でWebGLコンテキストのリークを防止。React StrictModeの二重マウントもrefガードで抑止
  • React↔Phaser間はregistryのchangedataイベントとカスタムイベントで連携し、更新を250msにスロットル。IntersectionObserverでゲームループをsleep/wakeし、画面外での無駄な処理を停止

To improve

改善したい点

  • Arcade Physicsのみのため、Matter.jsによる多角形・ジョイントを使った物理デモは未収録
  • モバイルの仮想ボタン操作は最適化余地があり、機種ごとの入力遅延の検証が必要
  • パーティクルの同時数など高負荷設定時の自動品質調整は未対応

What's next

今後の展望

  • 各デモにコード表示を付け、Phaserの記述を読み解けるように
  • タイルマップエディタや、ミニゲームのステージ追加
  • Matter Physics・サウンド合成デモなど機能デモの拡充

Category

3D・実験

Genre

ゲームエンジン・ショーケース

Year

2026

Status

公開中