c++写引擎

引擎就是软件核心架构和功能, 是提供给外围的开发的人员用的.

例如游戏里要显示3D模型, 完整的实现非常复杂, 包括解析文件/生成网格/贴图/光照/阴影/剪裁/动画等等等等. 涉及的知识面很广, 难度相当大, 普通的程序员是做不出来的.

这种功能一般就要找高手做, 封装到引擎里, 只给外部暴露几个函数接口如LoadModel, RenderModel, Animate等, 这样就算是新来的菜鸟也能用起来了.

引擎的实现, 也并非一定要用C++, 用其他语言也照样可以实现, 像Android的手机基本上只能用java, iPhone基本只用Object-C, 也照样有很多优秀的游戏引擎.

C++的缺点其实很明显, 常见的数组/指针越界问题就能把整个开发团队搞得焦头烂额, 编译速度慢得跟蜗牛一样脚的. 也缺少很多高级语言的特性, 如反射/垃圾回收/事件/属性, 要实现这些功能就很麻烦.

如果现在让我做一个只在Windows平台用引擎, 我肯定会毫不犹豫地选C#, 开发效率在那摆着呢. 更重要的是普通水平的人也能写出很好的较好的代码, 不容易出错, 招人也更容易了.