If you've ever wanted to build a first-person dungeon crawler or a Wolfenstein-style game in Phaser 3, TwoPointFive is the plugin you've been waiting for. It adds a pseudo-3D viewport to your game, with a perspective camera, tile-based floor, walls and ceiling, sector culling, and 3D-positioned entities. All inside Phaser.

It's a port of the original ImpactJS plugin, recently released by Jamaal Sawyerd, and it already comes with a full recreation of the original demo game so you can jump straight in and see what it can do.

Pseudo-3D Rendering in Phaser 3

The plugin handles perspective rendering, tile-based environments, sector culling for performance, and entities positioned in 3D space, all inside Phaser 3. That means you keep all the scene management, input handling, and tooling you already know, with a pseudo-3D viewport on top.

How to Use the Plugin

Setup is straightforward. Install with npm install, build with npm run build, and serve with npm start. Register the plugin in your game config, load your level data in the Impact/Weltmeister JSON format, and call this.tpf.update(delta) and this.tpf.draw() in your scene.

One thing to keep in mind: Weltmeister, the ImpactJS level editor, is not included in the repo yet. So for now you'll need to work with the existing level data or roll your own.

An Open Source Port Worth Contributing To

This is still an early stage project and Jamaal is actively looking for contributors to help build it out. If pseudo-3D rendering in Phaser 3 is something you want to see grow, this is a great time to get involved.

Check the Plugin Repo