Phaser 3.90: What Changed and Should You Upgrade?

Phaser 3.90: What Changed and Should You Upgrade?

Honesty note: my game runs on Phaser ^3.90 (per my package.json), so this is the version I shipped against — the review below is from the official 3.90 changelog and my own use of it.

TL;DR

  1. Phaser 3.90 “Tsugumi” (May 23, 2025) is a focused QoL release, not a rewrite: rounded-corner rectangles, angle math helpers, and a pile of fixes. No breaking API changes for typical games (changelog).
  2. The headline feature is Rectangle.setRounded(radius) — rounded corners on the Rectangle Shape game object without custom graphics. Zero for sharp corners. Small, but it kills a common UI hack.
  3. The useful fixes for game devs: Firefox Web Audio fallback (missing positionX/Y/Z on AudioListener), EXPAND scale mode now clamps on ultra-wide displays, chained tween persistence after stop(), Chrome 134+ RTL text, and particle emitter color-array/moveTo fixes.
  4. Should you upgrade? Honest advice: if you’re on 3.85–3.88, the upgrade is low-risk (mostly additive + fixes); if your game is stable and you don’t need the new features, “not yet” is a defensible position — but read the changelog before you decide, because the fixes may already be biting you.
  5. Why 3.90 and not Phaser 4? Purpose-driven, not shiny-driven. My game runs 3.90 by decision, not default: it’s a mature, stable version that’s completely sufficient for a casual H5 game, its tutorials and documentation are the deepest in the ecosystem, and a brand-new major version doesn’t automatically mean better stability or compatibility. When a newer version exists, the question isn’t “is it newer?” — it’s “does it solve a problem I have?” (see below).

What’s actually in 3.90

AreaChangeWho benefits
ShapesRectangle.setRounded(radius) + isRoundedUI, buttons, panels without texture hacks
MathAngle.GetCounterClockwiseDistance(), Angle.GetShortestDistance()Angle-based gameplay, AI steering
AudioFirefox Web Audio fallback for missing AudioListener positionX/Y/ZWeb audio on Firefox
ScaleEXPAND mode clamps on ultra-wide displaysDesktop ultra-wide layouts
TweensChained tween persistence after stop()Tween chains (my tween use)
TextChrome 134+ RTL rendering fixRTL text
ParticlesEmitter color array + custom moveTo fixesParticle effects (particle guide)

What it means for a casual game like mine

The upgrade path (low-risk, ~30 min)

  1. npm install [email protected] (or bump ^3.90.0).
  2. npm run build — if it compiles, run the game.
  3. Smoke test the features you use: tweens, particles, audio, scale mode (verification habit).
  4. Roll back instantly if anything regresses (npm install [email protected]).

The honest risk profile: additive changes + targeted fixes; the regression surface for a typical game is small.

Why 3.90 and not Phaser 4 (the purpose-driven answer)

Phaser 4 exists (in development, 4.0.0 changelog published) — so “why not the latest?” deserves an honest answer, and mine is purpose-driven:

  1. 3.90 is mature and sufficient. For a casual H5 game, 3.90 covers everything needed — scenes, tweens, particles, input, scale management, arcade physics. Nothing in Phaser 4’s roadmap is required for the games I make; features I don’t need are cost, not value (tutorial reality).
  2. Tutorials and docs are deepest on 3.x. Every guide, forum answer, and example in this site’s Phaser series is 3.x; a newer major means a thinner learning ecosystem and more “works differently in v4” surprises (docs reality).
  3. Newer ≠ more stable. A new major version carries new architecture and new bugs; stability and compatibility are earned over releases, not promised by version numbers. 3.90 is the version with years of fixes behind it (upgrade discipline).
  4. The decision rule: adopt a new version when it solves a problem you have, not when it exists. “Is it newer?” is marketing; “does it solve a problem I have, at acceptable risk?” is engineering. For my game, the answers are: no unsolved problem, and 3.90’s risk profile is known.

That’s the same logic as the whole site: choose the tool that fits the job and the developer (engine choice).

Should you upgrade? (decision table)

Your situationVerdict
On 3.85–3.88, game in active developmentUpgrade — fixes + rounded rects, low risk
On 3.90 already (like me)Stay; watch for 4.0 when it stabilizes
Stable shipped game, no new features needed“Not yet” is fine — pin your version
Using Firefox-audio or chained tweens heavilyUpgrade — the fixes target you

Pitfalls

  1. Upgrading mid-crunch — a release week is the wrong time; do it between milestones.
  2. Assuming “upgrade = rewrite” — 3.90 is additive; most games change nothing.
  3. Ignoring the changelog — “did they fix my bug?” is answered in the changelog in two minutes.
  4. Not pinning versions — ^3.90.0 is fine, but a lockfile is your rollback story (setup).
  5. Chasing 4.0 now — Phaser 4 is in development; a new major doesn’t mean better stability or compatibility. For a casual H5 game, 3.90 is the stable, well-documented, purpose-driven choice (why not 4.0).

Bottom line

Phaser 3.90 (Tsugumi, May 2025) is a quality-of-life release: rounded rectangles, angle helpers, and targeted fixes (Firefox audio, EXPAND ultra-wide, tween chains, RTL, particles) with no breaking changes for typical games. Upgrade if you’re actively developing (low risk, real fixes); pin and wait if your game is stable and needs nothing new — and either way, the changelog answers “does this fix me?” in two minutes. And on “3.90 vs Phaser 4”: choose by purpose, not novelty — a mature version that’s sufficient, with the deepest tutorials and a known risk profile, is the engineering answer, not the marketing one (the full Phaser setup).