为什么知名游戏开发者吐槽C++是一门糟糕的编程语言

2018-10-13 21:11:40  从不加班的程序猿

前不久,知名游戏”Braid“和”The Witness“的作者 Jonathan Blow接受采访时表示,C++ 太复杂了,严重影响了他的工作,他被迫在项目中工作时停下来思考编程可以悲惨到什么程度,并开发了自己的 Jai 语言来替代 C++。

为什么知名游戏开发者吐槽C++是一门糟糕的编程语言

然而C++ 真的有这么糟糕吗?

其实不同的游戏之间业务逻辑和适用架构区别很大,小编认为不能一概而论,毕竟游戏也分不同领域。比如对于大部分手游、页游来说,追求短平快的开发节奏也不要求太高的实时性和计算效率,C++在这些领域的使用属于杀鸡用牛刀。

先来列举一些曾经比较流行的游戏平台/类型:

PC单机游戏(Windows)

PC网络游戏(Windows、Linux)

移动平台游戏(J2ME、Symbian、Palm……)

家用游戏机游戏(PS1/2/3/4、XBox、Wii……)

掌上游戏机游戏(GB、GBA、NDS、PSP……)

网页游戏(HTML、Flash)

智能移动设备游戏(iOS、Android)

不难发现,除了J2ME和网页游戏外,大多数的平台都支持(或只支持)原生编程。而原生编程最常用的就是C/C++和汇编。其实做游戏开发并不是全部都用C++,只是最主要的架构核心部分用C++而已

一个游戏引擎涉及到的内容超级庞大,又要搞效率高性能,又要好效果和易于扩展。高性能的关键核心代码会使用汇编实现,比如SIMD指令进行各种浮点数学运算,高开发效率比如工具层,会使用脚本等来实现。而只有C++这样的全能语言才能做到在汇编和脚本语言中间进行承上启下。也就是说C++在游戏引擎中负责最主要的架构部分

这部分包含了最重要的工程组织,从底层的基础库: 扩展std/boost数据结构,封装时间、IO/文件系统、多线程、反射、内存管理、数学库……到中间层:窗口、游戏循环、输入设备/消息、图形渲 染接口层抽象、实时图形渲染管线设计、物理/碰撞检测、寻路、骨骼、动作、模型……再到通用最上层的世界空间层次组织、天空盒、植被、水、粒子特效、相机……

分享到微信朋友圈 ×
打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。
热点/新闻
换一批
浏览/记录
下载

官方微信公众号:东方网体育

官方App:东方体育

官方球迷QQ群

×