为什么游戏引擎大多选择使用 c++ 而不是 c 开发?

游戏引擎常选择C++而非C,因其在开发效率、代码可读性和性能间取得平衡。C++用于核心架构,提供面向对象、反射等特性,连接汇编和脚本语言。虽然C++复杂,但规范使用可提高可读性,且在大型项目中优于C。C++的模板库和跨平台抽象能力使其在游戏引擎开发中更具优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么那些引擎选择 C++ 而不是 C,或者说在游戏引擎的开发中有哪些功能、特性是可以通过 C++ 开发而不可以通过 C 的?

我也曾经试着用C写,可结果发现开发效率、代码可读性,都不是一个档次的。最后才明白,发明C++的人确实是为了解决一些问题,而不是闲的蛋疼。

 

如何成为一个优秀的高级C++程序员

 

当初我是非常讨厌C++语言的,我认为C++能做的C都能做,它只是个语法糖而已,简单才是最美的,为什么我要去浪费时间研究那些诡异的特性。

后来慢慢的我对C++的态度变了,现在我觉得C++虽然不完美,但是够用。它比C可读性好,做到了开发效率和运行效率的折中,是我写代码的首选语言。

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

也就是说C++在游戏引擎中负责最主要的架构部分。

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

C++的开发效率肯定是高于C的,高一倍没压力,所以可以用省下来的开发时间去做性能优化。

一般来说,没有优化过的C++代码用 Profiling工具压榨出2~4倍的性能是很可能的。

而用C就算性能好,也没好到C++的3~4倍,好10~30%就不错了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值