Erlang做为游戏服务器使用语言

这是在使用Erlang OTP作为游戏服务器网关之后空缺了很久没有写完的一点东西。有不少人之前应该尝试过几乎完全使用Erlang来作为唯一的游戏服务器开发语言,但这未必是一个很好的选择。

Erlang OTP的最大优势在于对于消息并发的高效处理,以及提供了一套经过实践沉淀的消息服务器模型,但在对消息本身数据处理之外,对更多业务逻辑和运算的实现并不太便利。如果团队中有对C语言把握非常好的人存在,那么完全围绕Erlang虚拟机做开发还是可行的,若是只依赖于Erlang语言,会遇到许多问题。

另外,近一两年来Node.js变得逐渐流行起来,而且由于移动设备的流行,针对移动设备的一些应用,需要的主要是数据服务接口,同时很多场景下并不需要采用保持连接的频繁通讯模式。在这样的场景下,Node.js确实是一个还不错的选择。现在也有许多在Node.js平台上尝试开发游戏服务器框架的项目,但都还不是太成熟,而且Node.js暂时还没有像Erlang OTP那样比较成熟的体系。

Zack认为,如果在服务器技术中采用了Erlang OTP,那么在偏重业务逻辑的方面最好使用另外一个更适合的体系,比如基于Java VM就是一个不错的选择,可以和Erlang之间很方便的结合在一起。 而对于一些主要要求数据接口,不需要维持连接的应用场景,Node.js可能是一个更好,上手更快的平台。