フォルダ構成
Phaser+Vite+TypeScriptでのフォルダ構成の例。
コード
src/
├── main.ts // Vite のエントリ
├── constants/ // 固定値・イベント名など
│ └── events.ts
├── utils/ // 汎用的な関数や型
│ └── math.ts
├── scenes/
│ ├── GameScene.ts // メインゲーム
│ └── UIScene.ts // HP, インベントリなど
├── objects/
│ ├── Player.ts
│ └── Enemy.ts
├── maps/
│ └── WorldMap.ts
└── systems/
└── CameraSystem.ts- scenes/ … Phaser.Scene を継承するクラスだけ
- objects/ … 自キャラ・敵・宝箱など “置けるモノ”
- maps/ … Tilemap/オブジェクトレイヤのラッパ
- systems/ … カメラ・衝突・AI などドメイン横断の仕組み
- constants/ … Scene 間イベント名やキーコード
後で規模が膨らんだら objects/boss/ や systems/combat/ のように更に深掘り。
アセット
public/
└── assets/
├── images/
│ ├── sprites/ # キャラ・モンスター等のスプライトシート
│ ├── tilesets/ # タイルマップ用
│ ├── ui/ # HUD・アイコン・フォント画像
│ └── effects/ # パーティクル画像など
├── audio/
│ ├── music/ # BGM
│ └── sfx/ # 効果音
├── maps/
│ ├── tiled/ # Tiled で作成した JSON/TMX
│ └── collision/ # 衝突情報だけ別ファイルにする場合
├── fonts/ # Web フォントやビットマップフォント
└── data/
├── items.json # アイテム定義
└── enemies.json # 敵ステータス定義- images/ … 種類(sprites, tilesets, ui, effects)ごとに分ける
- audio/ … BGM と効果音を分ける
- maps/ … Tiled で出力したマップファイルを丸ごと置く
- fonts/ … BitmapFont(.fnt+テクスチャ)やWebフォントをまとめておく
- data/ … JSON や CSV で定義したゲーム内データ(アイテム、敵、クエスト情報など)