Phaser能够支持大型多人在线游戏吗?

10

新手上路。我正在使用Phaser,具体来说是使用等角插件。

我想知道是否可以像agar.io一样在Phaser中创建游戏,处理实时的多个连接,在一个巨大的地图上生成约300个玩家,并且所有这些都不会对游戏性能产生太大影响。我真的不知道如何处理多人游戏部分(可能是socket和node.js)以使其真正良好地工作。至于生成一个真正大的地图,我也相当茫然。

  • 在Phaser中是否可以创建类似等角类型的游戏,处理多个实时多人游戏和巨大的地图,当用户到达可见“地图”的边缘时生成?怎么做?
  • 如果不能,请问我应该选择什么(JS游戏引擎和其他应用程序),以实现我想要的内容?

1
你确定你要用“JavaScript”标签,而不是“Java”吗? - Gerardo Furtado
是的,我指的是JavaScript...过去的10天里,我一直在使用JavaScript中的Phaser库...哦,我是指这个Phaser:http://phaser.io/docs/2.4.4/Phaser.Game.html。已经更正了。 - Kunis
2个回答

10

你的问题方向不对,但很接近了!

你的第一个猜测是正确的。你不能使用Phaser来处理多人游戏,你需要使用Web Sockets、Node.js或其他后端技术。因此,在处理多人游戏时,Phaser并不会限制你的创意,因为网络编程和Phaser没有任何关系。

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

关于Node.js中的多人游戏,请查看Socket.io。这个库非常容易使用。我已经设置了一个简单的示例,您可以从这里找到。如果您需要帮助,这里有一个我用Phaser制作的开源游戏,其中包含网络功能(这个游戏只适合两个玩家之间相互连接的情况,但正如我所说,这仅限于我使用的多人游戏框架peerjs.com,与Phaser本身无关,Phaser可以处理您的所有渲染和游戏逻辑需求。)

希望这些能回答你的一些问题!


哇,不错! :) 我会去看看的,你的游戏似乎也很酷!非常感谢! - Kunis
1
@PhasedEvolution 我建议你尝试使用 Firebase 来处理网络。我们正在生产中使用它来开发聊天应用程序,我对它的同步速度感到惊讶。不妨试试! - Rahul Gupta
@RahulGupta 看起来不错 :p 我还没有进入网络阶段,但我向你保证 Firebase 将是它的开始。 - Kunis

9
至少在其2.0版本中,Phaser不是实时游戏网络实现的好选择,如此解释:https://dev59.com/OKHia4cB1Zd3GeqPa-gT
如果您正在寻找JavaScript多人游戏引擎,您应该看一下专为此目的编写的Lance:http://lance.gg,然后可以选择自己喜欢的渲染器(例如Pixi.js,如果您想要实现类似Agar.io的游戏,它是Phaser使用的相同的渲染器)。
关于PhasedEvolution上面的评论-Firebase是一个不错的工具,如果您正在做回合制游戏。对于实时游戏开发来说,它并不达到标准,因为它不允许低级别访问任何减轻延迟的游戏关键功能,例如客户端预测、弯曲、插值和外推。
适当的披露:我是Lance的共同创始人之一 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接