首先是语言方面,这个问题没有太多的选择的余地,基本上只有用C++(现在还在坚持用纯C来写引擎的估计只有卡马克同学了),语言的功底是特别重要的了;大规模项目的编写能力也是很重要的,推荐看<<大规模C++程序设计>>
软件工程方面,你可能要了解一些单元测试,系统级设计的方法;但是流行的软件方法,比如敏捷,我觉得,如果是你一个人得工程,用处可能不大,但是了解一点总没有坏处.最重要的地方就是设计和测试了.
图形方面,你需要了解至少一种图形api(比如openGL或者DirectX),建议开始还是不要写多个api的渲染器,现完成一个,以后有时间再写另外的版本.在设计的时候多花一点时间,设计良好的纯虚类,这样可以很方便的被不同的图形api渲染器继承,当然,开始你要作的只是实现其中一个派生类.
如果以前都没有接触过3D图形方面的编程,建议你还是花较多的时间学习一种API,记住,只是一种!不管是openGL还是DirectX,写好了一种再学另一种都是很简单的.但是就游戏引擎的要求来看,这方面要有比较高的水平了,因为渲染器部分是游戏引擎质量的直接体现.
物理方面,基本上你可以放弃了,这不是程序员能够搞得定的事.你可能还可以抄一下别人的算法,但是这对物理和数值计算方面的理论知识要求也比较高,所以还是建议,用别人的物理库比较好.个人觉得Novodex比较强,有免费的个人版;其他开源的引擎比如ode等等也是比较好的选择.物理方面的虚拟技术马上会有爆炸式的发展,可交互性,是其中比较热的技术,因为这可以让玩家的感觉更真实.
网络方面,这个我一点都不了解,所以不多说了.但是强调一下,现在的游戏引擎如果没有网络功能,就是失败的游戏引擎.而且网络和物理一样,在引擎编写的初期就要设计好,现在最后再整合是特别难的事情了.
还有很多关键的技术.脚本技术,可以看一下<<game scripting mastery>>,看完这本书基本上可以自己设计一个脚本解析器了(我还没看完,呵呵);地形,<< focus on 3d terrain >>,也有开源的地形引擎,比如gaia,这方面的资料特别多;模型和动画,<<focus on 3d models>>和<<advanced animation with directx>>是入门最好的书了,但是这两本书都只能帮你入门,书中的技术用在现在的游戏还算可以,以后的引擎肯定不会还用这些技术,最好了解一下现在前沿的技术(在unreal 2, 3, doom3,quake4中我们已经看到了这方面最新的研究成果的应用);还有,最好可以了解HLSL或者Cg,这样你就可以看得懂别人写出来得shaders,自己也可以尝试写一些特效了,sm 4的新标准可能成为引擎的又一挑战,所以shaders的高级语言会越来越重要.
如果只想写一般的小引擎,上面说的东西,你完成一半已经很不错了,但是如果要写出商业品质的引擎,这些还是远远不够的.你需要了解到,现在的技术每天都在发展,很多都可以应用到你的引擎中,但是这些技术都来自于论文,比如Siggraph报告会,GDC开发大会和IEEE的期刊.马上是vista和64位的时代,sm4.0和direct10引入了光线跟踪的高效实现,图形芯片飞速发展的神话还在继续,物理芯片的引入也令人侧目......所有这些都是可以让你的引擎脱颖而出的特性.
太难了,不是?因为游戏引擎几乎不可能一个人写得出来的.除非你是卡马克那样的天才.
不过不要太难过,坚持不懈的努力,每个人都可以超越卡马克的.
Don't think you are.Know you are!
怎样学习游戏编程
最新推荐文章于 2024-09-06 22:09:44 发布