选择golang做游戏服务器开发
经过大半年的手机游戏运营、维护、后续开发,对下一个网络游戏的服务器端开发技术选型的需求如下:1. 体系成熟,有大型成功案例2. 开发效率高3. 性能高,最好是支持并行技术充分利用多cpu资源4. 代码加密发布5. 开发逻辑简单,如多线程同步、加锁、多进程同步就比较复杂6. 易学易用,如果是新技术
可选技术对比
我对可以选择的技术平台经过自己的一些分析总结如下(一己之言):
项目 | nodejs | python | c++/ruby | erlang | golang |
---|---|---|---|---|---|
体系成熟 | 4 | 3 | 5 | 4 | 3 |
开发效率 | 5 | 5 | 3 | 3 | 5 |
性能 | 3 | 3 | 5 | 5 | 4 |
加密发布 | 3 | 0 | 4 | 3 | 5 |
逻辑简单 | 5 | 5 | 3 | 4 | 5 |
易学易用 | 5 | 5 | 2 | 1 | 4 |
跨平台 | 5 | 5 | 5 | 5 | 5 |
其实聪明的读者,看以上表,你就已经知道我是最中意golang的,是的!其实以上表只是个幌子,其实选哪种都可以达到目的,同时我看好erlang和golang的并行开发模式来进行游戏开发,我2011年就开始学习erlang和golang,一度沉迷,结合自身的条件和团队情况,我最终选择了golang。
我超喜欢python的代码风格和开发效率,也用它做了近两年的开发,但是它的性能比较低。我无奈放弃了。
我看好golang的出生(三个伟大的发明者)、简洁(关键字最少的语言了吧)、开创性(struct、interface、channel、goroutine),我关注golang快两年,直到去年它发布1.0,且越来越多的项目案例和开发者,我认为现在可以用在生产项目上了。
给golanger的话
我很荣幸我成为了你们中的一员,希望我们可以多交流。我以后的golang代码不涉及到商业秘密的部分我都会放在github.com上与你们共享并接受你们的帮助。我主要用golang开发tcp服务器类的应用,如游戏服务器。
(转自:http://blog.5d13.cn/work/golang/2013/06/16/whyiusegolangtowritegameserver.html)