我可以使用 Lance 制作多人 Phaser 游戏吗?

Can I make a multiplayer Phaser game using Lance?

如何将现有的 Phaser 游戏变成多人游戏?

我可以为此目的使用 Lance 库吗?这两个库都控制自己的游戏对象,所以我不知道如何在同一个游戏中同时使用这两个框架。

免责声明:我是 Lance

的共同创作者之一

不幸的是,Phaser 的 2.* 架构很难与 Lance 配对来制作实时 Javascript 多人游戏。

问题在于 Phaser 做出了很多不适用于多人游戏设置的假设。例如,渲染和游戏循环是捆绑在一起的。服务器,显然不需要渲染任何东西。

Phaser 还假设存在 DOM 和 window 对象,它们在服务器上也不存在。此外,保存世界游戏状态对象、精灵等的所有数据结构都保存在扩展实例 PIXI 对象上,这在服务器上下文中没有意义。这些限制和紧耦合与 Lance 的模块化方法不兼容。

完全有可能 运行 服务器上的 Phaser 使用模拟 DOM 和 Canvas 的库,例如 JSDOM and Node Canvas,但这确实意味着性能会显着下降通过 运行在服务器上安装 PIXI,您还需要解决同步 PIXI 数据结构的问题。

好消息是 Phaser 3.0 是对 Phaser 2.0 的持续、完全重写,采用更加模块化的方法,有望使其更容易与 Lance 集成。我们计划在不久的将来让这种集成变得更容易。