~1 мин чтения

Настройка проекта

Рекомендуемая структура проекта, инструменты сборки и настройки TypeScript для серьёзных проектов на Phaser 4.

Для наброска или однофайлового демо достаточно фрагмента из раздела установка. Для настоящего проекта несколько решений сэкономят вам недели.

Сборщик

Vite — рекомендуемая отправная точка: Phaser 4 поставляется в формате ESM, а Vite обрабатывает URL ресурсов и HMR без настройки.

npm create vite@latest my-game -- --template vanilla-ts
cd my-game
npm install phaser

Структура каталогов

Структура, которая масштабируется от джем-игры до выпущенного проекта:

src/
  main.ts            ← создаёт Game и регистрирует сцены
  scenes/
    BootScene.ts     ← предзагружает ресурсы глобальной полосы загрузки
    PreloadScene.ts  ← предзагружает всё остальное, показывает прогресс
    TitleScene.ts
    GameScene.ts
  objects/           ← переиспользуемые подклассы GameObject
  systems/           ← игровая логика, не зависящая от фреймворка
  data/              ← типизированные манифесты ресурсов, таблицы конфигурации
public/
  assets/            ← изображения, аудио, тайловые карты, атласы

По возможности держите systems/ свободным от импортов Phaser — чистую логику проще тестировать.

TypeScript

Phaser 4 поставляется со строгими типами. Используйте их:

// tsconfig.json
{
  "compilerOptions": {
    "target": "ES2022",
    "module": "ESNext",
    "moduleResolution": "Bundler",
    "strict": true,
    "noUncheckedIndexedAccess": true,
    "skipLibCheck": true
  }
}

Нюансы горячей перезагрузки

HMR в Vite работает для всего, что находится вне запущенной сцены. Чтобы подхватить изменения внутри сцены, перезапустите её через this.scene.restart() или используйте предназначенную только для разработки привязку клавиши, делающую то же самое.