Navigation

Should we merge Pixi v4 with Phaser?

Published on 5th February 2016

I've been working hard on the Phaser 2.4.5 update recently, closing off countless issues on GitHub and implemented fixes and updates. And there is a re-occurring theme I'm noticing which bothers me: essentially, Phaser is paying for its decision to stick with version 2 of Pixi.

I've done a lot to fix issues directly but there are some that would only be solved by moving to a later release of Pixi, especially when it comes to problems around Graphics rendering and masks.

So I'm left with a dilemma and need your thoughts to decide on the best course of action. The options as I see it are:

1) Do nothing. I carry on fixing what issues I can in Phaser, but if they are just too deep down the Pixi well then they are left un-fixed.

2) Take Pixi v4 and merge it with Phaser. This is a major task, it will not be an easy integration. There are two major problems: First I've added a lot to Pixi over the years to make it work more nicely with Phaser (the CanvasPool for example). Secondly Pixi v4 is a complete re-structuring. I would have to redo the entire Phaser build process, recode how Phaser uses Pixi and extends Pixi objects, and make some huge sweeping changes. It would be a significant API overhaul.

Part of me really wants to pick option 2, because I don't like seeing issues left unresolved in Phaser. I guess it's a pride thing, rather than a logical one though.

So I'd like to know your thoughts on this. You can comment here, or twitter or in this forum thread.

How would it directly affect you and what you're doing? It would be such a massive change to Phaser that you are very unlikely to be able to just run an existing Phaser 2 game under Phaser 3 (or whatever version we use). Also don't assume it will give your game any kind of significant performance increase - the core underlying sprite batching in Pixi hasn't changed all that much (Edit: actually they did add multi-texture batching, which would speed-up under WebGL, so its entirely possible your game would render faster as a result. Canvas remains the same). Where it has changed most, especially around Graphics rendering, it would be very noticeable.

Please don't under-estimate the sheer volume of work involved in picking option 2. It is not a trivial step, will require a major version release and weeks of dev time. And you could rightly argue maybe that is time better spent on Lazer instead.

You are the ones supporting my work on Phaser, so it's only right that you decide where my time should be spent (I am asking this on the forum too, but I will prioritise Patreon backers opinions)