前不久,知名游戏”Braid“和”The Witness“的作者 Jonathan Blow接受采访时表示,C++ 太复杂了,严重影响了他的工作,他在项目中工作时停下来思考编程可以悲惨到什么程度,并开发了自己的 Jai 语言来替代 C++。
其实不同的游戏之间业务逻辑和适用架构区别很大,小编认为不能一概而论,毕竟游戏也分不同领域。比如对于大部分手游、页游来梦见掉头发说,追求短平快的开发节奏也不要求太高的实时性和计算效率,C++在这些领域的使用属于杀鸡用牛刀。
不难发现,除了J2ME和网页游戏外,大多数的平台都支持(或只支持)原生编程。而原生编程最常用的就是C/C++和汇编。其实做游戏开发并不是全部都用C++,只是最主要的架构核心部分用C++而已
一个游戏引擎涉及到的内容超级庞大,又要搞效率高性能,又要好效果和易于扩展。高性能的关键核心代码会使用汇编实现,比如SIMD指令进行各种浮点数算,高开发效率比如工具层,会使用脚本等来实现。而只有C++这样的全能语言才能做到在汇编和脚本语言中间进行承上启下。也就是说C++在游戏引擎中负责最主要的架构部分
这部分包含了最重要的工程组织,从底层的基础库: 扩展std/boost数据结构,封装时间、IO/文件系统、多线程、反射、内存管理、数学库……到中间层:窗口、游戏循环、输入设备/消息、图形渲 染接口层抽象、实时图形渲染管线设计、物理/碰撞检测、寻、骨骼、动作、模型……再到通用最上层的世界空间层次组织、天空盒、植被、水、粒子特效、相机……
本文由来源于财鼎国际(www.hengpunai.cn)