Phaser 2からの変更点

Phaser 3はPhaser 2とは別物と言ってもいいくらいに多くの点が変化しました。 変更点に関してはPhaser World Issue 116に詳しいことが書いてあります。

madmimi.com

個人的に気になった変更点

その中から個人的に気になった変更点をいくつかピックアップしたいと思います。

ディスプレイツリー構造が廃止になった

Phaser 2ではあるオブジェクトに別のオブジェクトを子要素として追加し、全体としてはツリーの構造にして一つの表示物を作るのが一般的でした。
Phaser 3ではそのようなことができなくなっています。ゲームオブジェクトが他のゲームオブジェクトを子要素として含むことはできず、全てのゲームオブジェクトがフラットになるようです。
この変更はかなり影響があるのではないでしょうか。Containerを使えばディスプレイツリーと同じようなことはできますが、Phaser 2の構造をそのままPhaser 3には移植できないと思います。

シーンの導入

Phaser 2にあったステートという仕組みの代わりに、シーンという仕組みが導入されています。
Phaser 2を使っていた頃にはステートをあまり使っていなかったのでどの程度変わったのかは分かりませんが、Phaser 3ではシーンを理解して使いこなすことが鍵になりそうです。

デフォルトで中央揃えになった

ゲームオブジェクトの基準となる位置は、Phaser 2では左上でした。Phaser 3では中央に変更されています。
そして基準となる位置を設定していたanchorプロパティが廃止になり、setOrigin(x, y)で設定するようになりました。

setDepth

ゲームオブジェクトの描画順を制御する機能として、setDepth()が導入されました。
Phaser 2の頃は描画順の制御が面倒だった記憶があるので、これは素直にありがたいです。

最後に

個人的に気になった変更点を挙げましたが、フラットディスプレイリストとシーンに関しては全てのPhaser 3プログラマーが気にしなくてはいけない点だと感じました。
それ以外にも多くの変更点があるので、Phaser 2に熟練したプログラマーでもPhaser 3は基礎から勉強する必要があると思います。
私も引き続き調査をしていきたいと思います。