大家好!我叫哈大锤,万万没想到我竟然开始学习UI 编程了!学完之后,我就能够设计出一款不错的游戏引擎,然后找到工作,妈妈再也不用担心我的学习了!用不了多久,我就能升职加薪,打败纳德拉,追上比尔·盖茨,赢取小度娘,走上人生巅峰!嘿嘿,想想还真有点小激动呢!
此文由哈利_蜘蛛侠原创,转载请注明出处!有问题欢迎联系本人!
开场白
======================================================================
可能有人要问了:你丫还有三个坑没填呢,怎么又开新坑啦?在此先对大家说声抱歉,之前的几个坑短期内不会很快更新了(不过如果回复数比较多的话,我可能会改变主意的,嘿嘿!)。这里我要开始一个新的系列,讲的是使用DX 9 进行游戏的UI 设计与实现的。
大家一定会问为何要学习这个?这个说来话长。
比较关注本人的同学应该知道,我有一个终极目标,就是用DX 9 开发出一款值得一玩的RPG!不过这个目标毕竟太难以实现了。我先是参考了Jim Adams 的《Programming Role Playing Games with DirectX 9: 2nd edition》这本书,但是这本书毕竟很老了,而且讲得不太科学(比如说单单是第2章就涵盖了“龙书”第二版花了10章才讲完的内容……),内容不是很好懂,所以我就暂时将它扔在一边了。可能以后适当的时候会参考的——虽然里面的游戏貌似很粗糙,但是涵盖的范围还是挺广的。
然后我基本上就一直在继续学习“龙书”第二版了。不过到了网格那里的时候,遇到了两个问题,一个是跟纹理间的赋值有关的,另外一个是跟网格的Clear 有关的。第一个问题花了我几个星期才搞定,其实是COM 组件的特殊性所导致的;而另一个问题至今没有解决。所以我就对“龙书”第二版有了些许失望,然后我就一拍脑门买了“龙书”的第四版,然后学起了DX 11 编程。
这两个多星期的学习还是挺顺利的。毕竟有了“龙书”第二版的基础,虽然DX 11 相对于DX 9.0c 变化了许多,但是吸收起来是不难的。
不过到了纹理映射那一章,我发现一个不太复杂的、有山有水的、有光线有动态顶点缓存有纹理贴图的场景的帧数只有80多帧了。我学习DX 9.0c 的时候没有载入过这么大的场景,也不确定如果换成DX 9.0c 的话会不会这样慢;但是我对于DX 11 有点不放心了起来。虽然我的电脑比较新,完全支持DX 11,但是毕竟被我玩坏过几次,还是个笔记本,所以我有点不太敢继续往下学了。毕竟,开发游戏的过程中,也许对硬件的要求比到时候实际运行游戏的时候还要高!
所以我又有点想回归DX 9了。另外一个方面是,学了这么久还没有做出来过一个特别好玩的东西,未免有点不耐烦。于是前几天我有了一个大胆的想法,就是开发出一个游戏引擎!
当然,绝对不是虚幻3 那样的引擎了。实际上做一个游戏的同时基本上也就是做一个引擎了,只要你的程序具有某种通用性。我现在最想知道的就是在进行游戏编程的时候,如果对角色和物体的位置进行调节?比如说有一栋三层建筑,如何把一个敌人准确地放置到2楼上?又如果正在做一个迷宫的关卡的话,如何让敌人在某些角落里出现?
用纯粹的数字坐标去指定的话显然不靠谱,因为要修改起来太麻烦了;最好就是有一个可视化的界面,能够让你用一种面对面的方式对载入的模型进行仿射变换(平移、旋转和放缩),就像Blender 等建模软件的界面那样;或者,像孢子冒险编辑器那样的给力的东东。
我如果能够做出来这样的一个东西就好了!我先是看了会《Game Engine Architecture》这本书。好吧,我承认我被这本书的第一章给打败了——尼玛太复杂了啊!看来我能够实现上面的那个小小的愿望就十分了得了!
不过一口气吃个胖子肯定是不行的。我得先了解一些游戏引擎才行啊!其实前面提到的孢子冒险编辑器也是一个游戏引擎了,不过它的限制条件太多。我根据书上的介绍,找到了两个候选的:ORGE