2D-разработка на Phaser глазами веб-программиста
Phaser 4 — это игровой фреймворк на чистом JavaScript/TypeScript, который работает прямо в браузере. Никакого отдельного движка и C#: знакомый стек, npm, WebGL под капотом. Здесь — концепции, гайды и запускаемые примеры с песочницами.
Старт
Знакомство с Phaser 4 — что это такое, чем он не является и чем отличается от Phaser 3.
Установка Phaser 4 через npm или CDN и проверка установки на однострочной сцене.
Создание и запуск вашей первой сцены Phaser 4 — прыгающего логотипа — в изолированной песочнице.
Рекомендуемая структура проекта, инструменты сборки и настройки TypeScript для серьёзных проектов на Phaser 4.
Концепции
Ментальная модель, лежащая в основе Phaser 4 — для чего нужна каждая подсистема и как они сочетаются друг с другом.
Как Phaser 4 планирует update и render, что означает delta и как писать код, независимый от частоты кадров.
Единица «экрана» или «режима» в Phaser — жизненный цикл, параллельные сцены и передача данных.
Сохраняемый (retained-mode) список отображения — что такое игровые объекты, как работает иерархия трансформаций и когда какой встроенный тип использовать.
Вьюпорты, прокрутка, масштабирование, следование и эффекты — как Phaser решает, что и где отрисовывать.
Клавиатура, указатель (мышь + касания) и геймпад — и то, как Phaser направляет события игровым объектам.
Как работает конвейер ресурсов — постановка в очередь в preload, типизированный кеш и шаблоны для больших игр.
Гайды
Практические рецепты для систем, которые вы действительно будете использовать — физика, тайлмапы, анимация, аудио, частицы, шейдеры и плагины.
Быстрая AABB-физика для платформеров, шутеров и большинства аркадных игр — тела, столкновения, группы и подводные камни, на которые натыкаются новички.
Полноценная симуляция твёрдых тел для укладки стопкой, соединений, составных тел и всего, что не может смоделировать Arcade.
Загрузка карт Tiled в формате JSON, отрисовка слоёв, построение столкновений и изменение тайлов во время выполнения.
Покадровые анимации из спрайт-листов и атласов — определение, воспроизведение, объединение в цепочки и реакция на события анимации.
Система твинов Phaser 4 — интерполяция любого числового свойства во времени. Цели, функции плавности (easing), цепочки, твины значений и подводные камни.
Интеграция Web Audio в Phaser 4 — музыка против звуковых эффектов, разблокировка по жесту пользователя, микширование и пространственный звук.
Эмиттер частиц — типичные эффекты, анатомия конфигурации и компромиссы производительности, которые действительно важны.
Собственные WebGL-эффекты в Phaser 4 — встроенная библиотека фильтров (Filter), свой GLSL через игровой объект Shader и место RenderNodes во всём этом.
Создание и использование плагинов Phaser 4 — три формы плагинов (глобальный, сценический, игрового объекта) и разобранный пример системы сохранения.
API `scene.transition()` — анимированная передача управления между сценами с одновременной работой обеих сцен в момент наложения.
Примеры
Запускаемые примеры Phaser 4 — каждый представляет собой изолированную песочницу, которую можно прочитать, форкнуть и изменить.
Минимально возможный пример Phaser 4 — загрузить текстуру и однократно её отрисовать.
Перемещение спрайта на WASD или стрелках с опросом ввода каждый кадр и скоростью на основе delta-time.
Затухание между двумя сценами через API fade-out / fade-in камеры.
Выстроить последовательность эффектов-твинов на одном объекте — перемещение, вращение, затухание, сброс, цикл.
Клик в любом месте создаёт физический шарик — шарики сталкиваются друг с другом и с границами мира.
Клик в любом месте запускает однократный взрыв через режим explode эмиттера частиц.
Заходите в звёзды, чтобы собирать их — канонический паттерн «пересечение как триггер» с подсчётом очков.
Применить встроенный фильтр Glow к спрайту и анимировать его силу твином.