分析游戏服务器使用何种语言?

前言

???

  • C/C++
  • java
  • node.js
  • C#
  • scala

相关文章

1. 为什么多数游戏服务端是用 C++ 来写呢,是历史原因还是性能方面的考虑?来源知乎

  • 知乎用户 韦易笑 分析后认为:

    java 比 C++ 占优。 这是否意味我们可以放弃C/C++了?也不是:C语言是一把锋利的匕首,而现代动态语言是一把长剑。平时匕首可以藏在身上,大部分时候用长剑披荆斩棘就够了,但当你碰到坚硬的石头,长剑不管用了,那么拿出匕首来果断的切碎他。

  • 知乎用户 放浪者:

    很多人对 C++ 的极端推崇,归根到底是眼界不够广,也不知道不同场景该用什么不同工具,更不知道国外不断推出的python/ruby/node/go/scala 等等到底是为了解决什么问题针对什么场景,不会去选择最合适的工具,只能用他们自己比较熟悉的 C++ ,然后标榜“高效”。其实这个跟政府采购设备反正往最贵的买不会有错,总可以给上面交代,是同一种思维模式。

  • 知乎用户 王迅 给出已下分析(具体内容原文查看

    1. 为什么都用C++做游戏服务端?
    2. 那为什么不能用C++来写游戏服务端?
    3. 那用C++来写服务端会有什么弊端呢?
    4. 那现在为啥还有团队招C++程序员呢?
    5. 好吧,那究竟该用什么语言写游戏服务端呢?
    6. 那现在还有纯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++ 也是没有问题的。)

补充:棋牌游戏后台有网狐的源码,对于有 C++ 经验开发者可做参考来开发

posted @ 2020-11-06 17:00  itzhangbao  阅读(1012)  评论(0编辑  收藏  举报