大型游戏开发绝不的开发架构及应用

大型游戏开发绝不的开发架构及应用

一般的大型游戏开发绝不是使用某种语言这么简单的事情。 一款大型游戏的开发需要庞大的团队使用多种语言和工具来完成。 总结起来主要有C/C++、汇编语言、shader语言、脚本语言、高效的开发语言C#或者Java。

首先,一般的游戏开发架构(Windows平台)一般是Direct X™-游戏引擎-游戏自下而上。

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

至于游戏引擎免编程游戏开发引擎,是一个非常复杂的功能集合体,所有的游戏开发工作都在它上面进行。 包括图形引擎、音频引擎、碰撞引擎、美术资源管理、脚本引擎等。 到目前为止,它几乎没有触及所谓的游戏开发。

首先,在图形渲染方面3D动画,比如光影处理等,现代显卡一般都是通过可编程的shader来控制图形效果,所使用的编程语言一般都是一些shader语言,比如HLSL和Direct X™ 使用的 OpenGL 使用的 GLSL 等具有类似于 C 语言的语法。 游戏执行时编译加载到显卡上,在实现硬件渲染速度的同时实现了软件编程的灵活性。

大型游戏开发的大部分工作其实就是编写游戏脚本。 脚本是大型游戏能够以如此高的速度开发和发布的主要原因。 脚本化开发让游戏开发摆脱硬编码的各种弊端,让游戏内容可以轻松修改和调试。 游戏剧情如何推进,各种事件如何触发,什么时候应该播放哪些声音或动画,如何使用美术组创造的资源,都写在了剧本里。 可以说引擎决定了游戏能做什么免编程游戏开发引擎,而脚本才是真正决定了游戏能做什么。 一些知名的引擎如Unreal系列有自己独特的脚本语言,而另一些引擎可能会使用一些第三方的脚本语言,如比较流行的Lua。 所以开发一款新游戏最简单的情况就是使用之前的引擎,创建美术资源,然后编写脚本将它们组织成游戏,几乎不需要底层编程语言。

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

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