免责声明:我是Lance的共同创始人之一
不幸的是,Phaser 2.*架构使得将其与Lance配对以制作实时JavaScript多人游戏变得困难。
问题在于,Phaser做出了很多假设,在多人游戏设置下这些假设是不成立的。例如,渲染和游戏循环是绑定在一起的。而服务器显然不需要渲染任何东西。
Phaser还假设DOM和window
对象的存在,但这些在服务器上不存在。此外,所有保存世界游戏状态对象、精灵等数据结构的PIXI对象都是扩展实例,在服务器上没有意义。这些限制和紧密耦合与Lance的模块化方法不兼容。
使用像JSDOM和Node Canvas这样的库可以在服务器上运行Phaser,模拟DOM和Canvas。但是,这意味着在服务器上运行PIXI会出现显著的性能降级,并且您仍需处理同步PIXI数据结构的问题。
好消息是,Phaser 3.0正在进行中,完全重写了Phaser 2.0,采用了更加模块化的方法,这将有望使其更容易与Lance集成。我们计划在不久的将来使这种集成变得更加容易。