多人游戏服务器

Posted

技术标签:

【中文标题】多人游戏服务器【英文标题】:multiplayer game server 【发布时间】:2011-06-21 21:30:11 【问题描述】:

我想编写一个服务器端应用来管理多人游戏通信(可能用于多个简单游戏,主要是回合制游戏)。它应该是健壮且高度可扩展的。

我想进一步了解我所拥有的技术可能性。有人对Erlang有任何经验吗?创建服务器是否比使用其他语言花费更多的开发时间?它比其他更快,还是具有更好的可扩展性?

您认为哪种语言最好?

【问题讨论】:

参见,例如,“How/why do functional languages (specifically Erlang) scale well?”。 是的。不,但这假设您没有同时学习该语言。它足够快速且可扩展,但前提是您知道自己在做什么。 Erlang 无疑是此类应用程序中最好的语言之一,但对于那些懒得好好学习它的人来说,它是一种糟糕的语言。 我同意你的论点在这里是有效的。让一个程序表现好很难,但让它表现糟糕却很容易。如果你有正确的想法并了解 Erlang,它是一种非常好的解决方案语言。但是,如果您没有必要的知识,那么您只会在自己的脚下开枪。所以 tl;dr:是的,一般来说,Erlang 是解决这类问题的绝佳选择。 可以在这里给出一些轶事答案:三年前我选择Erlang进行一个真正的生产项目,并且我在进行过程中学习了它。事后看来,这是一个不错的选择,而且我的实现速度并不比我使用 C 或类似的非函数式语言慢。我的应用程序是一个非常规的选择,但这使今天的产品有所不同,因为实际上 erlang 非常适合。免责声明:我学习编程语言很快并且知道超过 20 种语言,并且之前在 Lisp 中做过一些程序是为了好玩。所以YMMV。 补充一点:去年我还在 Erlang 中实现了一个作为一个玩具项目(用于纸牌游戏),Erlang 非常适合。所以我的意见是:去做吧,把它当作学习一门好语言的借口……但请好好学习,不要抱怨;-) 【参考方案1】:

如果不确切知道您要解决什么问题,就没有很好的方法来回答您的问题。然而,Erlang 通常确实可以很好地扩展,前提是你既能很好地编码它,又能很好地构建它。如果您正在考虑将后端实现为 RESTful 服务,我会质疑任何使用 Erlang 的决定——也许它仍然很合适,但我会问你为什么。但是,如果您决定将游戏的后端基于 XMPP,我建议 erlang 和 ejabberd 非常适合。这完全取决于您编写软件的方式。

另外,与其他语言相比,它是否花费更多的开发时间?很有可能。作为一名 Python 专家和 Erlang 学习者,我可以在 10 分钟内编写 Python 代码,而在 Erlang 中我需要 2 小时才能完成。但我敢打赌,Joe Armstrong(Erlang 发明者)可以非常快地编写 Erlang 代码。

简而言之,您的问题无法准确回答。我试图提供一些信息来帮助您理解原因。

【讨论】:

以上是关于多人游戏服务器的主要内容,如果未能解决你的问题,请参考以下文章

Google Play 游戏服务多人游戏和后端

多人游戏服务器

Google Play 游戏服务实时多人游戏停止工作

带有活动切换的 Google Play 游戏服务多人游戏

Android Google Play 游戏服务回合制多人游戏不自动匹配

Google Play 游戏服务中的多人游戏 API 将不再可用。如何迁移到 Firebase?