Erlang开发MMO的一些思考
最近混了一些群,发现用erlang做页游的越来越多了,时不时的还有人站出来让新手去学erlang。 不过主要还是应用于页游后端,游戏逻辑简单的就可以一试。还未见到有实时的MMORPG采用erlang作为后台。 原因不外乎端游几乎是C++一脉相承,从客户端延伸到服务端,当然是同种语言方便。此外计算性能和员工招聘也是重要的理由。 而页游和手游的客户端往往采用flash,java,objectc等,除java外都很少用于服务端开发,所以服务端语言的选择就有了更多自由。 早两年erlang技术人员还很少,现在已经有一定的量了。出于兴趣,我重新考虑用erlang开发实时战斗的MMORPG的方法。 有利的部分 erlang是好的,吸引了很多人的兴趣。不少人甚至将erlang体系的影响带到了自己所在的其他语言项目中,构建一些类似erlang的基础设施。包括我。 随意挥霍的process。 端游从早期的单进程支持一个游戏服,发展到现在的多进程支持一个游戏服。其中涉及多个进程协作的逻辑越来越多,异步任务相互之间由于时间差带来的问题也越来越频繁。 通常我总会利用状态机或者类似的办法管理异步任务,但并不能顾及到每一处,而且状态机增加了理解代码的难度。 erlang轻量的process使我能为每个异步任务创建一个独立的执行过程,同时变量不可变的机制几乎消除了多线程中的资源共用的问题。 发送消息太简单。