技术开发 频道

CLR开发商业3D游戏引擎实践(一)

 

  [IT168 技术文档]    不知不觉,成为职业游戏程序员已经六年多了。从最初的程序员到技术总监,参与了多款商业游戏的开发,所有的项目都会建立在游戏引擎基础上。游戏引擎是一些常用的底层代码集合,通常包括图形、声音、网络、输入设备、脚本系统,以及对象管理等模块。游戏引擎是建立游戏的基础,可以说引擎的品质在很大程度上决定游戏的成败。好的游戏引擎,它应该具有很高的执行效率,强大的功能和方便易用的接口。考虑到效率和功能强大的因素,目前,绝大部分成熟的游戏引擎,都通常会采用C/C++语言来编写。

 

 

引擎最重要是让用户减少开发代码量么

 

       引擎的作用并非减少代码量,而减少概念,降低复杂度才是封装的意义。为了严谨,灵活,只要不造成概念混淆,让用户多写一些看起来重复,罗嗦的代码并不成问题。不要忘记,用户也是有能力为自己特定功能进行一些组合包装的。

 

 

传统的游戏程序开发模式简介

 

       不少游戏都采用C/C++全程开发。为了效率,开发人员使用C++开发底层引擎,引擎人员开发出来的引擎,通常会提供给用户C++头文件,Lib库文件,还有运行的DLL等二进制文件。为了接口一致,具体项目开发程序员们还是会选用c/c++开发项目代码。也有不少引擎,它提供了脚本包装,这样,项目开发中,人们还可以用脚本进行一些配置和简单逻辑的处理。这就是通常的传统游戏程序开发模式。

 

 

带来的问题

 

引擎到游戏,中间缺少一个过渡,项目开发人员不得不面对一大堆的h文件,还可能不得不去接触一些在引擎中的底层概念。进而对项目程序员,提出了更高的要求。C++天生的复杂性使得这个问题更加突出。

 

 

寻找解决方案,尝试使用CLR

 

       Vs2005发布后,它的C++编译器内包含了一个CLR语言的编译器,这两种代码可以混合编译!听起来,这是一个多么激动人心的特性阿!让我们看看CLR这门MS新推的程序开发语言是不是适合游戏开发,我们的分析结果是:它很有魅力,我们很值得去尝试。

 

 

0
相关文章