如何使用现有的Phaser游戏并使其成为多人游戏?
我可以为此目的使用Lance库吗?两个库都控制自己的游戏对象,所以我不知道如何在同一个游戏中同时使用这两个框架。
免责声明:我是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 集成。我们计划在不久的将来让这种集成变得更容易。