免责声明:我是Lance的共同创作者之一
不幸的是,Phaser的2. *架构使得很难与Lance配对制作Realtime Javascript多人游戏。
问题在于Phaser做出了很多假设,这些假设并不适用于多人游戏设置。 例如,渲染和游戏循环绑在一起。 服务器显然不需要渲染任何东西。
Phaser还假设存在DOM和window
对象,这些对象在服务器上也不存在。 此外,所有包含世界游戏状态对象,精灵等的数据结构都保存在扩展实例PIXI对象上,这些对象在服务器上下文中没有意义。 这些限制和紧耦合与Lance的模块化方法不兼容。
使用模拟DOM和Canvas的库(如JSDOM和Node Canvas )完全可以在服务器上运行Phaser,但它确实意味着通过在服务器上运行PIXI会显着降低性能,并且您仍然存在同步PIXI数据的问题要与之抗衡的结构。
好消息是, Phaser 3.0是一个持续的,完全重写的Phaser 2.0,采用更加模块化的方法,希望能够更轻松地与Lance集成。 我们计划在不久的将来使这种集成变得更容易。