Phaser
Phaser — это фреймворк для 2D-игр, используемый для создания игр HTML5 для компьютеров и мобильных устройств. Это бесплатное программное обеспечение, разработанное Photon Storm.

Phaser использует внутренние средства визуализации Canvas и WebGL и может автоматически переключаться между ними в зависимости от поддержки браузера. Это обеспечивает быстрый рендеринг на компьютерах и мобильных устройствах. Он использует библиотеку Pixi.js для рендеринга.

Игры можно развернуть на iOS, Android и в нативных приложениях для компьютера с помощью сторонних инструментов, таких как Apache Cordova и phonegap.

История 
Ричард Дэйви объявил о первом релизе Phaser в своем блоге в апреле 2013 года. В сентябре была выпущена версия 1.0, включающая библиотеку Pixi.js для рендеринга.

Последней официальной версией Phaser 2 была 2.6.2, но для улучшения стабильной версии во время работы над Phaser 3 был создан новый репозиторий: Phaser CE (Community Edition). Таким образом, Phaser CE в настоящее время является рекомендуемой стабильной платформой для разработки с использованием Phaser.

Phaser 3.0.0 был выпущен 13 февраля 2018 г., и разработка до сих пор продолжается на GitHub. Большинство элементов и функций платформы были построены с нуля с использованием полностью модульной структуры и подхода, ориентированного на данные. Phaser 3 появился совершенно новый пользовательский рендерер WebGL, разработанный для современных 2D-игр. С тех пор большая часть документации и примеров для пользователей была завершена, и реализовано большинство функций.

В настоящее время в разработке находится Phaser 4, анонсированный 19 августа 2019 года, который представляет собой попытку переписать Phaser 3 на TypeScript. Это не переписывание API, а вместо этого он будет сосредоточен на переносе скриптов, находящихся в настоящее время в Phaser 3, на TypeScript.

Архитектура и особенности 
Phaser может работать в любом веб-браузере, поддерживающем элемент canvas . Игры, созданные с помощью Phaser, разрабатываются либо на JavaScript, либо на TypeScript. Веб-сервер необходим для загрузки таких ресурсов, как изображения, аудио и другие игровые файлы, поскольку браузеры требуют, чтобы веб-страницы имели доступ к файлам только из одного источника.

Рендеринг 
Phaser может рендериться либо в WebGL, либо в элементе Canvas с возможностью использования WebGL, если браузер поддерживает его. Если устройство его не поддерживает, он вернется к использованию Canvas.

Физика 
В Phaser доступны три физические системы: Arcade Physics, Ninja Physics и P2.JS.

Arcade Physics предназначена только для высокоскоростных столкновений AABB. Ninja Physics позволяет использовать сложные плитки и склоны, которые подходят для ландшафта уровня, и P2. JS — это система физики всего тела, которая среди прочего поддерживает препятствия, пружины и полигоны.

Начиная с Phaser версии 3.6, имеется 2 основных физических движка, а именно Arcade и Matter. Также имеется менее известных движок схожий с Arcade- Impact. 

Arcade можно считать наиболее используемым, поскольку он самый простой и быстрый. Он использует выровненные по оси прямоугольники и круги для определения столкновений, помимо всех остальных функций движка, таких как гравитация, акселерация и сопротивление. Однако он также обладает ограничениями. Например будет затруднительно выполнить сложные хитбоксы, исходя из допустимых фигур. Также объекты находящиеся в непосредственной близости друг от друга могут вызвать проблемы со стабильностью.

В свою очередь Matter является наиболее продвинутым, что и делает его сложнее исходя из объема дополнительных функций. Он способен передавать полноценную и реалистичную физику тела.  Он также поддерживает множество функций: твердые и составные тела, упругие столкновения, а также  физические свойства, такие как масса и плотность.

Impact схож с Arcade однако имеет ряд преимуществ. Например он поддерживает наклоны на tilemaps, что невозможно в условиях прямоугольной физики Arcade. Однако для этого вам придется использовать редактор "Weltmeister" от создателя движка Impact.

Анимация и аудио 
В Phaser анимацию можно создать, загрузив спрайт-лист, текстурный атлас и создав последовательность анимации.

Веб-аудио и аудио HTML5 можно использовать для воспроизведения звука в Phaser.

Смотрите также 
 Список игровых движков
 Разработка видеоигр

Источники

Внешние ссылки 

 
 Repository at GitHub
 Discussions at Discord
 Discussions at the HTML5 Game Devs Forum
Игровые движки
Свободные программы трёхмерного моделирования