当前位置: 首页 > 线上学习 > 技术文章 > 为何主流游戏大都是c++游戏开发?

为何主流游戏大都是c++游戏开发?

来源:汇众教育 编辑:小汇 2019-08-02 1139

摘要:早年进行游戏开发是必须要用c++的,因为那个时候java还没有nio,其他的动态语言是不抗重负的,只能只用c/c++能开发出完整可用的游戏服务端。但是现在技术的发展使得有了更多的选择,比如java + javascript、c+python、c+lua、scala、go、erlang。

 早年进行游戏开发是必须要用c++的,因为那个时候java还没有nio,其他的动态语言是不抗重负的,只能只用c/c++能开发出完整可用的游戏服务端。但是现在技术的发展使得有了更多的选择,比如java + javascript、c+python、c+lua、scala、go、erlang,但是为什么主流游戏大都是c++游戏开发?



  C语言是一把锋利的匕首,而现代动态语言是一把长剑。平时匕首可以藏在身上,大部分时候用长剑披荆斩棘就够了,但当你碰到坚硬的石头,长剑不管用了,那么拿出匕首来果断的切碎他。


  对于一个成熟领域而言,我的建议是尽量用更高级一点的开发语言,因为游戏开发很多核心技术都有了较为妥当的解决方法。大量的服务端逻辑其实都是在等待,等待网络,等待数据库,这种情况下用得不偿失。但是服务端有一些地方还是躲不开C/C++,比如当服务器涉及到 3D计算的话(国内很多2D服务端,国外很多3D服务端),大量的矢量矩阵,除了用C++封装出一套好用的数学库外,即便直接用java写,那也是很麻烦的。


  再比如现在快速动作越来越多,为了让玩家操作更流畅,我需要基于 UDP快速可靠协议,协议开发用 java或者scala,性能上是没办法满足要求的,况且协议实现后要和客户端通信,你没法让所有客户端跟着你一起用java/scala。再比如某些cpu密集的抽象度高的模块,如 aoi或者 ai模块。


  对于一个新兴领域而言,C/C++很多情况下是你别无选择的东西。比如移动化浪潮刚起步的时候,还没有啥 cocos或者 unity你真要开发游戏,你必须迅速的使用起 OpenGL ES和 OpenSL,然后再叠加某一脚本以快制胜,第一批移动浪潮上发财的就是这些游戏。

相关文章

关注我们

  • 官方微信

    咨询热线

    010-82826482 校区地址
  • 官方微博

    建议与投诉

    400-0065-789 联系我们
  • 线上直播平台