700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 不用编程的游戏引擎 橙光游戏是用什么语言编写 – 游戏开发 – 前端

不用编程的游戏引擎 橙光游戏是用什么语言编写 – 游戏开发 – 前端

时间:2020-08-11 19:12:44

相关推荐

不用编程的游戏引擎 橙光游戏是用什么语言编写 – 游戏开发 – 前端

首先一般的游戏开发架构(Windows)从底到顶一般是Direct X?——游戏引擎——游戏。

Direct X?相当于所有显卡的一个统一接口,为游戏提供一个利用硬件渲染的编程模型,但Direct X?接口为了追求高性能功能非常单纯和松散,不利于游戏的高效开发。此时就需要根据游戏特点对其进行适当的取舍和封装,实现一组更高抽象的游戏开发接口和框架,可以理解成游戏引擎中的图形引擎。这部分的开发一般使用的语言是C/C++和少量的汇编语言。

至于游戏引擎是一个非常复杂的功能聚合体,所有的游戏开发工作都是在之上进行的。包括图形引擎,音频引擎,碰撞引擎,艺术资源管理,脚本引擎等等。到此为止几乎还没有涉及到你所说的游戏开发。

首先在图形渲染方面,例如光照阴影处理等等,现代显卡一般是通过可编程着色器实现对图形效果的控制,所采用的编程语言一般是一些着色器语言,例如Direct X?采用的HLSL,OpenGL使用的GLSL等等,语法类似C语言,游戏执行时被编译加载到显卡上,在实现硬件渲染速度的同时又实现了编程的灵活性。

大型游戏开发的绝大部分工作其实都是在编写游戏脚本,脚本是大型游戏得以如此高速开发和发布的主要原因。脚本化的开发让游戏开发摆脱了硬编码的种种弊端,让游戏内容可以轻易的修改和调试。游戏故事如何进行,各种事件如何触发,何时该播放哪些声音或动画,如何使用艺术团队创作的资源,这些都是在脚本中编写的,可以说引擎决定了游戏能做什么,而脚本才真正决定了游戏做了什么。一些著名的引擎如虚幻系列都有自己独特的脚本语言,其他一些引擎可能会采用一些第三方的脚本语言,比如比较流行的Lua。所以开发一个新游戏最简单的情形就是沿用之前的引擎,创作艺术资源,然后编写脚本将其组织成一个游戏,几乎不需要什么底层的编程语言。

开发环境方面,游戏团队内部可能会使用一些开发和设计工具对资源进行处理,可以理解成游戏引擎的IDE,这部分因为是内部工具,而且可能需要经常修改所以一般采用比较高效的开发和语言,比如暴雪就是部分使用.NET和C#进行一些内部工具的开发。

至于引擎核心的开发,Windows比较流行的方法是使用最新版本的Visual Studio,显卡厂商如NVIDIA也会为VS开发一些插件来简化显卡编程和调试。

有什么好用的游戏开发工具?

以下以PC Windows平台的游戏开发为例,开发工具一般用Visual studio

游戏开发一般从客户端和逻辑开始,客户端的话需要了解一些UI(用户界面)设计的知识,C++的话可以从MFC之类的入手,另外不论朝哪个方向深入C++的一些基础知识都很重要,推荐看《C++ Prime》、《Effective C++》之类的,有了一定的基础,专注于游戏开发需要选择平台,例如Windows平台的游戏开发需要了解Windows平台的一些内部机制,可以看看《Windows核心编程》之类的书籍,另外还有一些早期的经典书籍《Windows游戏编程大师技巧》。客户端更深入一些,例如引擎开发维护方面需要了解一下图形处理技术,例如Windows的DirectX编程,最好有一些图形学的知识。还有一些脚本语言例如lua之类的都很实用。

做网游的话服务器方向就对逻辑性严谨性要求比较高,需要了解诸如网络编程数据库方面的知识。

现在一般的游戏或者软件都用什么语言编程?

这里有两个问题,一个是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++在这方面基本没什么用武之地,本来以为可以在物联网上大展宏图,结果半路杀出一个python,随后连Ubuntu都将其作为官方开发语言,这也是一个悲伤的故事。

但对于嵌入式工程师,C/C++这个目前还无法替代,而且门槛极高,要熟悉Linux架构,会对内核进行裁剪,要为特定硬件编写驱动,需要丰富的软硬件知识积累。

游戏目前主流的编程语言是C#,各大主流的商业游戏引擎,如unity,cryengine等都使用C#,目前只有unreal4采用的C++,当然unreal4也可以采用蓝图。像前几年盛行的cocos2dx也是采用C++,但目前基本已经淘汰了。

游戏编程对数学能力要求较高,首先需要掌握高等数学和线性代数等理论知识,然后看一些计算机图形学的相关知识,伴随着这些理论知识的学习掌握相关的图形api,比如OpenGL或directx,如果是从事移动端,需要学习opengl es,而OpenGL es是在OpenGL上精简而来的,抛离了OpenGL中的固定功能管线,采用可编程管线,即shader(shader是一种类c语言,语法很简单,但需要一定的数学功底才能写好),所以要重点学习OpenGL 3.0以上的版本。在这之后就可以开始学习游戏引擎了,有了上面的知识,游戏引擎就想对简单了,就相当于使用ide。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。