Phaser 是否能够进行大型多人游戏?

Is phaser capable of large multiplayer games?

这里是新手。我正在使用移相器,特别是等距插件。

我想知道是否可以在处理实时多重连接、生成包含大约 300 名玩家的巨大地图以及所有这些方面在 Phaser 中创建类似于 agar.io 的游戏而不会对游戏性能造成太大影响。我真的不知道如何处理多人游戏部分(可能是套接字,node.js)才能让它工作得很好。至于生成一个非常大的地图,我也很空白。

你没有问对问题,但你很接近了!

你的第一个猜测是正确的。您不会使用 Phaser 处理多人游戏,您会使用网络套接字、nodejs 或其他后端。因此,Phaser 并没有真正限制您在多人游戏方面可以创建的内容,因为 none 的网络代码与 Phaser 有任何关系。

处理巨大地图的想法还取决于您如何优化图形,而不管您使用的是什么平台或框架。例如,如果你有巨大或无限大的地图,你总是可以只显示屏幕上或屏幕边缘周围的内容,并使用对象池在玩家移动时显示地图的其余部分。

对于 Nodejs 中的多人游戏,请查看 Socket.io. It's really easy to use. I've set up a barebones example using it here. And in case you might find it helpful, here's 我在 Phaser 中为 Ludum Dare 制作的开源游戏,带有网络(这个游戏只是 p2p,所以它只能处理 2 个相互连接的玩家,但就像我说的,这只是我使用的多人游戏框架的限制,在本例中 peerjs.com,与 Phaser 本身无关,它可以处理您所有的渲染和游戏逻辑需求。)

希望这有助于回答您的一些问题!

Phaser(至少在其 2.0 版本中)不是实现实时游戏网络的理想选择

如果您正在寻找 Javascript 多人游戏引擎,您应该查看 Lance,它是专门为此目的而编写的。然后您可以选择您选择的渲染器(Pixi.js,例如,如果您的目标是实现类似 Agar.io 的东西。它与 Renderer Phaser 使用的相同)

关于 PhasedEvolution 的上述评论 - 如果您正在玩回合制游戏,Firebase 是一个不错的工具。它不符合实时游戏开发的标准,因为它不允许低级别访问任何可减少延迟的游戏关键功能,例如客户端大小预测、弯曲、插值和外推。

正确披露:我是 Lance 的共同创作者之一 :)