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