The latest release of Phaser 3 is now available and it's the single biggest update ever, with hundreds of new features and fixes across the whole codebase.

Article by Richard Davey. Posted on 6th Feb 2019.   @phaser_


I'm pleased to announce that Phaser 3.16 is out. This is the culmination of 4 months of hard work that started in October 2018, and has been progressing solidly until today.

It brings together a huge number of significant changes. Most importantly of all, though, it finishes the Phaser 3 core feature set. Yes, of course, there is more I'd love to do with Phaser, but 3.16 represents the end of a very long journey. One I often wondered if we'd ever see. There will be time for reflection later. For now, it's time to celebrate and dive headfirst into the update.


You can download Phaser 3.16.1 from the GitHub releases page, or pull it in via the npm package. There are also the pre-built files available on the jsDeliver CDN.

As part of the release, I generated the brand new 3.16 documentation and published it to GitHub. As before, you can read it online, or check out the repo to have a local copy instead.

The 3.16 documentation is the best the Phaser 3 docs have ever been. The painstaking work I undertook redoing all of the Phaser Events are now visible for all to see! You can clearly find them in the Events drop-down, and every method that fires an event now links directly to the event too. This release also incorporates all the effort the community put into the Phaser Doc Jam. We collectively finished hundreds of areas of docs. As it stands today, there are just 748 items left to document in Phaser and then we'll have 100% coverage. It may sound like a lot, just remember before we started the process there were over 16,000 items to document, so it's a massive achievement for such a short space of time. I will focus on getting it down to zero in the coming months, and of course, every single new feature or change made in the API has been documented fully from the start.

I also spent a long, long time, getting the TypeScript definitions sorted out. It took some serious refactoring of the JSDocs, nevertheless, the defs are now complete. Not a single compiler warning is thrown now! I definitely want to improve the defs further, especially with regard to the new events, still, I'm happy with their current status. Again, a lot of worthwhile work. A number of you have been asking if the defs can be either moved into the main Phaser repo, or to another like DefinitelyTyped. Once we've got events strictly typed in there, this can now happen.


Phaser 3.16 includes some API breaking changes and alterations to namespaces. It's important that you are aware of these, so they are singled out clearly in the Change Log and also covered in more depth in Dev Log 139.

There were also big changes to the way input events are handled. The old event queue has been deprecated and a new immediate mode introduced. Again, please see the Dev Log for details.

Of course, there are stacks of new features too! Literally hundreds of them, from the new Scale Manager, to the snapshot feature, to the ERASE blend mode, to the new Pointer velocity properties and many, many more. I know the Change Log is large and a bit overwhelming, but it really does detail all the updates so is well worth pouring over. Also, be sure to subscribe to the Phaser World newsletter, as I'll be covering the new features each week in more depth.


As always, please check out the Change Log for comprehensive details about what recent versions contain.

If you'd like to stay abreast of developments then I publish my Developer Logs in the Phaser World newsletter. Subscribe to stay in touch and get all the latest news from the core team and the wider community.

You can also follow Phaser on Twitter and chat with fellow Phaser devs in our Slack and Discord channels.

Phaser 3 wouldn't have been possible without the fantastic support of the community and Patreon. Thank you to everyone who supports our work, who shares our belief in the future of HTML5 gaming, and Phaser's role in that.