Phaser (game framework)


Phaser is a free software 2D game framework for making HTML5 games for desktop and mobile. It is developed by Photon Storm.
Phaser uses both a Canvas and WebGL renderer internally and can automatically swap between them based on browser support. This allows for fast rendering across desktop and mobile. It uses the library for rendering.
Games can be compiled to iOS, Android and native desktop apps via 3rd party tools like Apache Cordova and phonegap.
Whilst you can wrap your game into a native app using tools such as Cordova and Phonegap the game itself is never compiled. The 'game' is simply run as JavaScript in a bundled browser. This means performance is nothing like a native compiled app.

Overview

The only requirement to use Phaser is a web browser that supports the HTML tag. For desktop this includes Chrome, Firefox, Safari, IE9+ and Opera. Development can be done in either JavaScript or TypeScript.
Some of the elements available are:
  • Images, spritesheets and tweens - Static and dynamic images, and a mechanism to animate them.
  • Input control
  • Game Physics - Phaser includes three main physics engines.

    History

Richard Davey announced the first release of Phaser on a blog post on April 2013. Version 1.0 was released on September, incorporating the Pixi.js library for rendering.
The last official version of Phaser 2 was 2.6.2, but to allow improvements to the stable version while working on Phaser 3, a new repository was created: Phaser CE. Phaser CE is thus the currently recommended stable platform for development with Phaser.
Phaser 3.0.0 was released on February 13, 2018 and development is ongoing on Github. Most elements and features of the framework have been rebuilt from scratch using a fully modular structure and data-orientated approach. Phaser 3 includes a brand-new custom WebGL renderer designed for modern 2D games. Since then, much of the documentation and examples for users has been completed, and the majority of features have been implemented.
Currently in development is Phaser 4, announced August 19th, 2019, which is an attempt to rewrite Phaser 3 in TypeScript. It is not an API rewrite and will instead be focused on porting the scripts that are currently in Phaser 3 to TypeScript.

Architecture and features

Games made with phaser are developed either in JavaScript or TypeScript.
The game is rendered either on WebGL or Canvas element
Phaser has support for Spritesheet, sprites loading; which can be used for animating, moving, etc. It also has support for loading tiled maps.

Rendering

Phaser can be either rendered in WebGL or a canvas, with an option to use WebGL if the browser supports it or if a device doesn't support it is'll fall back to Canvas.

Physics

Phaser ships with Arcade Physics system, Ninja Physics and P2.JS - a full body physics system.

Animation and Audio

Animation can be done in phaser by loading a spritesheet, texture atlas and creating an animation sequence.
Web audio and HTML5 audio can be used to play sound in phaser.

Scripting

Phaser games can be made either in JavaScript or Typescript