有两个问题需要我们关注:分别是C语言和C++语言的区别,以及如何进行应用软件开发。C++相较于C语言更为复杂,但却完全兼容C的语法。C++不仅提供了面向对象的特性,还加入了模版元编程,这直接提升了复杂度。但不要担心,C++的基本语法很简单,包括模版,主要是看你的熟练程度。有些东西也无需刻意去学习,比如一些语法糖,实际项目中很少用到。因此,如果掌握了面向对象,了解基本的模版编程,熟练使用STL或者Boost(里面的东西不需要全掌握,只掌握重点的容器和算法,Boost的Asio就可以了),就可以开始工作了。
软件开发这个话题太广泛,如果你已经熟悉了C/C++,那么可以学习各种API了,如Win32或POSIX等,例如可以看Windows程序设计或者Linux程序设计等这类书籍。不过,就目前来看,C/C++的路线变得越来越窄,桌面开发可以采用Qt,但是Windows还是推荐使用.NET,C++只适用于备选方案。随着互联网和云计算的盛行,C++在这方面基本没什么用武之地。本来以为C++可以在物联网上大展宏图,但是半路杀出了Python,随后连Ubuntu都将其这也是一个悲伤的故事。
但对于嵌入式工程师来说,C/C++目前仍然是无法替代的。门槛极高,要熟悉Linux架构,会对内核进行裁剪,要为特定硬件编写驱动,需要丰富的软硬件知识积累。
游戏主流的编程语言是C#,各大主流的商业游戏引擎,如Unity、Cryengine等都使用C#。目前只有Unreal4采用了C++,但是Unreal4也可以采用蓝图。像前几年盛行的Cocos2d-x也是采用C++,但目前基本已经淘汰了。
游戏编程对数学能力要求较高,首先需要掌握高等数学和线性代数等理论知识,然后学习一些计算机图形学的相关知识。掌握相关的图形API,比如OpenGL或DirectX。如果是从事移动端,需要学习OpenGL ES。而OpenGL ES是在OpenGL上精简而来的,抛离了OpenGL中的固定功能管线,采用可编程管线,即Shader(Shader是一种类C语言,语法很简单,但需要一定的数学功底才能写好)。因此,需要重点学习OpenGL 3.0以上的版本。在这之后就可以开始学习游戏引擎了,有了上述的知识,游戏引擎就会变得非常简单,就像使用IDE一样。
相关推荐
© 2023-2025 百科书库. All Rights Reserved.
我来回答