分析游戏服务器使用何种语言?
前言
???
- C/C++
- java
- node.js
- C#
- scala
相关文章
1. 为什么多数游戏服务端是用 C++ 来写呢,是历史原因还是性能方面的考虑?来源知乎
-
知乎用户 韦易笑 分析后认为:
java 比 C++ 占优。 这是否意味我们可以放弃C/C++了?也不是:C语言是一把锋利的匕首,而现代动态语言是一把长剑。平时匕首可以藏在身上,大部分时候用长剑披荆斩棘就够了,但当你碰到坚硬的石头,长剑不管用了,那么拿出匕首来果断的切碎他。
-
知乎用户 放浪者:
很多人对 C++ 的极端推崇,归根到底是眼界不够广,也不知道不同场景该用什么不同工具,更不知道国外不断推出的python/ruby/node/go/scala 等等到底是为了解决什么问题针对什么场景,不会去选择最合适的工具,只能用他们自己比较熟悉的 C++ ,然后标榜“高效”。其实这个跟政府采购设备反正往最贵的买不会有错,总可以给上面交代,是同一种思维模式。
-
知乎用户 王迅 给出已下分析(具体内容原文查看)
- 为什么都用C++做游戏服务端?
- 那为什么不能用C++来写游戏服务端?
- 那用C++来写服务端会有什么弊端呢?
- 那现在为啥还有团队招C++程序员呢?
- 好吧,那究竟该用什么语言写游戏服务端呢?
- 那现在还有纯C++写服务端的游戏吗?
2.游戏的后台是否可以用 scala 加 node.js 来代替 C++?来源知乎
3.该使用什么编程语言开发游戏服务器端呢?来源百度知道
看你团队规模了。 大公司有自己的后台框架。 小公司用用photon什么的, 但是不死完全开源。 完全开源的我推荐一个叫pomelo的吧, nodejs的,js坑比较多, 但是做做棋牌游戏还是够了。
如果只是语言性能上来考虑, 由于不少游戏后台有tick这样的概念, 需要性能比较高的。python ruby nodejs go 什么的性能不够。 java 的jvm可以胜任, 但是还不够。 c++ 本身开发难度太高, 设计模式太混乱,也做不大。 个人推荐可以关注rust这种高性能语言, 目前还没有太多的第三方库, 但是比 c++ 好用很多。
总结
- node.js:现有一套完整的棋牌服务器框架,对于棋牌游戏后台够用了。
- C++ : 如果有能驾驭 C++ 的开发者,性能这方面绝对没问题。C++ 开发难度大与其他语言。
- java: 开发棋牌游戏性能比 C++ 不差多少,能发会 C++ 的70% 性能,优点:上手比较 C++ 容易,jvm 不会奔溃,最多抛异常。而 C++ 复杂的多例如缓冲区溢出漏洞等问题。
- 其他语言: 如果有用其他语言开发过棋牌游戏后台经验的可参考。
最理想的方案应该是是用 java 或者 node.js 或 scala 等语言配合 C++。(PS:完全使用 C++ 也是没有问题的。)