Navigation

Phaser 3.21.0 Released

Published on 22nd November 2019

Another month, another big release of Phaser 3 :)

It was really great to receive a bunch of quality Pull Requests from you wonderful lot, many of which found their way into 3.21. The past few versions have seen a lot of significant improvements, from comprehensive Spine runtime support to Video Game Objects, and this version is no exception.

New in 3.21 is the ability for you to directly set the mipmap filter levels that the WebGL Renderer uses when creating textures. Any valid WebGL1 filter is allowed and you can set the filter in your game config, or at runtime, as needed. This gives you far more control over the quality of highly scaled textures, as the comparison below shows:

(you may need to view it full-size to see the difference, but it's there!)

Also new in 3.21 is the ability to soft-wrap BitmapText objects, based on a fixed pixel width. This allows you to do whitespace based line wrapping, regardless of the text changing, as this example demonstrates:

You can even define the wrapping character to be used, if a space character isn't suitable for you.

Arcade Physics has updates including overlapCirc which allows you to return all bodies (both dynamic and static) that intersect the given circular region. There are a bunch of new Arcade Physics examples to be found on the Phaser site (and in the Labs) and I spent some time cleaning them all up, so there are no broken ones any longer.

The Tilemap system has been updated to support Group Layers, which were introduced in a recent update of the Tiled Map Editor. These, along with Infinite Tilemaps, are now parsed correctly.

As usual, there's more: Including lots of new Group features, several new Actions for setting scroll factors, the ability to run at a fixed frame rate under setTimeout, a new method that lets you rebind the Web Audio Context (handy for PWA environments), fixes for drag distances and we even fixed a few IE9 (yes, really!) compatibility issues.

As usual, grab Phaser 3.21 from your favorite place (GitHub or npm). The Examples, web site, TypeScript Defs and API Docs have all been updated for this release as well. Talking of TypeScript, I also spent some time creating a Phaser 3 TypeScript Project Template for you. This uses Rollup as the bundler, which was quite an effort in itself (due to the way Common JS modules need ingesting), but is a handy project to look at even if you don't want to use TypeScript, but do want to use Rollup.

Version 3.21 continues my efforts to keep Phaser 3 updated and enhanced, even while working on Phaser 4. This is the 9th major release in 2019 alone and the 31st version of Phaser 3 since 3.0.0 came out (not including all the beta versions.)

Stats fans may be interested to know that since 2013 there have been:

11 versions of Phaser v0.x
14 versions of Phaser v1.x
30 versions of Phaser v2.x
40 versions of Phaser CE
31 versions of Phaser v3.x

Figures not including countless betas.

We've now had more releases of Phaser 3 than there were of the official line of Phaser 2. As some of you may remember, the Phaser 2 releases were named after the characters and locations from Robert Jordan's Wheel of Time series - and can I just say I'm really excited that a TV series of that is in production! Phaser 3 has been named after characters from my favorite anime shows, including Ghost in the Shell and Akira. 3.21 starts with the character Senku from the series Dr. Stone - easily one of the best this season and well worth watching :)

With 3.21 released I'm going to spend next week finishing off the November Patreon Code Bundle (no, I haven't forgotten about it!) - I've got something a little special planned, which you'll see soon. I'll then return to Phaser 4. I've actually made a load of progress since the last Dev Report, including a really nice quad renderer, so I'll write about that in the next update and share some more code and examples.

Until then, enjoy the latest release! Things do tend to get a bit quieter this time of the year, with the holiday season fast approaching, but I'll still be around, working away, for several weeks to come yet. So if you're a patron, and need help, book me up now! (or grab me on Discord / Slack) - and if you do find any issues with 3.21, please open them on GitHub so I can take a look and work on them for 3.22.

Aside from this, have a fun weekend everyone, and catch you soon.