~4 мин чтения

Глоссарий — термины Phaser глазами веб-разработчика

Короткие определения ключевых понятий Phaser 4 с аналогами из веба и других движков.

Сводный список терминов Phaser 4, которые встречаются в энциклопедии. Phaser живёт прямо в браузере на JavaScript/TypeScript, поэтому веб-аналогии здесь особенно близки.

Игра и сцены

Game — корневой объект (new Phaser.Game(config)): создаёт canvas, заводит игровой цикл, менеджеры рендера, ввода, звука и сцен. Аналог: корень приложения (ReactDOM.createRoot), который монтируется в DOM один раз.

Scene — самостоятельный «экран» или режим: владеет своим списком отображения, камерой, обработчиком ввода и (опционально) миром физики. Аналог: маршрут (route) в SPA. Сцены не взаимоисключающие — несколько могут идти параллельно (геймплей + HUD + пауза).

Lifecycle — методы сцены, которые движок вызывает по порядку: init(data)preload()create(data)update(t, dt) … → shutdown(). Аналог: хуки жизненного цикла компонента (constructor → монтирование → render каждый кадр → размонтирование).

preload / create / updatepreload ставит ассеты в очередь загрузки; create строит сцену, когда загрузка завершена; update вызывается каждый кадр. Аналог: загрузка данных → первый рендер → анимационный кадр (requestAnimationFrame).

Объекты на экране

Game Object — всё, что можно поместить в сцену: Sprite, Image, Text, Container, Graphics и т.д. Аналог: DOM-элемент. Создаются фабрикой this.add.* (например this.add.sprite(...)).

Sprite — игровой объект с текстурой, который умеет проигрывать анимации. Аналог: <img>, который ещё и анимируется покадрово.

Image — как Sprite, но без анимаций; легче по накладным расходам. Берите, когда кадр статичен.

Container — игровой объект-группировщик с собственным трансформом: двигаешь контейнер — двигаются дети. Аналог: <div>-обёртка, задающая систему координат для вложенных элементов.

Group — пул/коллекция игровых объектов для массовых операций и переиспользования (например пули). В отличие от Container, не задаёт общий трансформ — это про управление множеством, а не про вложенность.

Display List — упорядоченный список игровых объектов сцены; порядок задаёт порядок отрисовки (z-order). Аналог: дерево DOM, где порядок элементов влияет на наложение. Это retained-mode: вы описываете объекты один раз, а движок перерисовывает их каждый кадр сам.

Графика и ассеты

Texture — растровые данные изображения в видеопамяти, на которые ссылаются спрайты по ключу. Аналог: уже декодированная картинка в кэше браузера, готовая к отрисовке.

Sprite Sheet — одна картинка с сеткой кадров одинакового размера. Phaser нарезает её на кадры по индексам. Основа покадровой анимации.

Texture Atlas — одна картинка + JSON с произвольными прямоугольниками кадров (имена, координаты). Гибче спрайт-листа; экономит вызовы отрисовки. Аналог: CSS-спрайты с картой координат.

Loader — система загрузки ассетов (this.load.image(...), this.load.audio(...)), которая работает в preload. Аналог: пакетный fetch с прогрессом и событиями завершения.

Cache — типизированное хранилище загруженных ассетов (текстуры, аудио, JSON). После загрузки ассет доступен по ключу из любой сцены. Аналог: in-memory store загруженных ресурсов.

Цикл и время

Game Loop — главный цикл: каждый кадр движок обновляет логику (update) и перерисовывает кадр. Аналог: бесконечный requestAnimationFrame, но с менеджментом сцен, ввода и физики поверх.

delta (dt) — сколько миллисекунд прошло с прошлого кадра. Умножайте перемещения на dt, чтобы скорость не зависела от частоты кадров. Аналог: разница timestamp между двумя rAF.

Time / Clock — таймеры и отложенные события сцены (this.time.addEvent, delayedCall). Аналог: setTimeout / setInterval, но привязанные к игровому циклу и паузе сцены.

Камера и ввод

Camera — определяет, какую часть мира и куда рисовать: скролл, зум, поворот, следование за целью, эффекты (тряска, затухание). У каждой сцены есть this.cameras.main. Аналог: вьюпорт + CSS-трансформ для всего содержимого.

Viewport — прямоугольная область экрана, в которую рисует камера. Можно иметь несколько камер (сплит-скрин, миникарта).

Input / Pointer — единый слой ввода: клавиатура, указатель (мышь + тач), геймпад. Pointer абстрагирует мышь и палец в один объект. Аналог: pointer events в DOM.

Физика

Arcade Physics — быстрая физика на основе AABB (прямоугольники, выровненные по осям) и окружностей: без вращения и стопок тел. Для платформеров, шутеров, большинства аркад. Аналог по «дешевизне»: простые проверки пересечения прямоугольников.

Body — физическое представление игрового объекта (позиция, скорость, ускорение, границы). Меняете body, а движок двигает спрайт. Бывает динамическим или статическим.

collision / overlapcollider заставляет тела отталкиваться; overlap лишь сообщает о пересечении, ничего не двигая (триггеры, подбор предметов). Аналог: hit-test без физического отклика.

Matter — интеграция Matter.js: полноценная физика твёрдых тел с вращением, стопками, соединениями и произвольными формами. Тяжелее Arcade — берите, когда нужна «настоящая» физика.

Анимация и эффекты

Animation — именованная последовательность кадров текстуры, проигрываемая на спрайте (this.anims.create, sprite.play('run')). Аналог: покадровый CSS @keyframes для спрайт-листа.

Tween — плавная интерполяция свойств объекта во времени (позиция, угол, прозрачность, масштаб): this.tweens.add({ targets, x: 100, duration: 300 }). Аналог: CSS-transition / Web Animations API.

Easing — функция плавности твина (Linear, Sine.easeInOut, Bounce …), задающая «характер» движения. Аналог: cubic-bezier() / ease-in-out.

Tween Chain — последовательность твинов, выполняемых друг за другом. Аналог: цепочка .then() или последовательность keyframes.

Particle Emitter — источник частиц (this.add.particles) для эффектов: искры, дым, взрывы. Настраивается скоростью, временем жизни, гравитацией; режим explode даёт одиночный залп.

Тайлмапы

Tilemap — сетка из тайлов, описывающая уровень; обычно импортируется из редактора Tiled (this.make.tilemap). Аналог: CSS-grid из переиспользуемых клеток, но для игрового уровня.

Tileset — изображение-источник тайлов, на которое ссылается тайлмап.

Tile / LayerTile — одна клетка сетки; Layer — слой тайлов (земля, декор, коллизии). Слои рисуются и проверяются на столкновения независимо.

Рендеринг и масштаб

WebGL / Canvas — два бэкенда отрисовки. Phaser.AUTO выбирает WebGL, где он поддерживается, иначе откатывается на Canvas 2D. Аналог: выбор между ускоренным GPU-рендером и программным.

Shader / Filter — программа на GPU для пост-эффектов (свечение, размытие, искажение). В Phaser 4 встроенные эффекты доступны через фильтры (filters.external.addGlow(...)); для своего кода пишут Shader game object на GLSL.

Pipeline / RenderNode — низкоуровневый слой конвейера рендеринга WebGL. Трогают редко — когда нужен полный контроль над тем, как объекты попадают на экран.

Scale Manager — управляет тем, как canvas вписывается в окно (режимы FIT, RESIZE, ENVELOP, …). Аналог: адаптивная вёрстка/object-fit для игрового холста.

Расширение

Plugin — переиспользуемый модуль, добавляющий возможности в Game или сцену (глобальный или сценовый). Аналог: npm-пакет / middleware, расширяющий приложение без правки ядра.