|
没做过引擎的人经常以为做部引擎就像做做地形,显示一下3D对象,做一些动画,好像就可以做成游戏了。
不是不是。图形,声光部分在游戏中只起到一个输出作用,跟游戏的运行完全是两码事。
现在网上很多关于3D,2D的图形方面的demo程序,初一运行时,视觉出来的效果非常棒,甚至比很多游戏都要出色。但这样demo绝对不是游戏。或则说,它只是图形制作技术上的demo。跟具体制作游戏,那真的是天差地远。
那么,ARPG游戏的引擎又怎么做出来的呢?制作ARPG应该从哪里入手呢?需要具备什么条件呢?
作为一个游戏引擎的制作老道,我要提醒你几点。首先,你应该做过一些中大规模的软件,对于程序在构架上,应该有一些感悟心得。其次,你具备一定图形学方面的知识,不用在某方面很精深,但必须要全面。还有,也是最重要的一点,你要不怕辛苦,可以不被酒香美色那些东西迷惑,可以心平气静的思考和做事。
如果你具备以上条件,那么好了,可以开始进入引擎制作的正题了。
制作一部ARPG引擎,你需要先定好一个基本构架。这里的基本构架是指,层次结构,以及功能模块的划分。一般的Realtime引擎,以及ARPG,构架都是这样的。由上到下。
游戏运行层
高层脚本层(负责任务部分,游戏控制部分)
高层数据定义层(负责高层脚本运行时所需要的数据)
底层脚本层(负责动画,粒子,模型等等的控制,还包括AI部分,如寻路,模拟的等等控制)
底层数据定义层(负责底层脚本运行时候所需要的数据,如,动画的关键贞数,和模型对应的纹理等等)
-----------------------------------(下面为独立层不依靠任何模块)
图形驱动层(驱动3D动画,粒子,模型,地形,光线,阴影,天空等等,这里只提供一个供底层脚本调用的接口)
地图驱动层(这里的地图指存放地图数据的数据库)
AI驱动层(在某些有无限地图的模式中,AI的寻路部分是个大模块,你可以用ASTAR,也可以用D*,这些都无所谓,关键是,你要结合地图开发寻路,这不是一件容易的工作)
-----------------------------------(下面为制作一部3D游戏时,所必备的工具,某些东西必须要自己开发)
首先你需要一个,自己引擎所支持的动画,模型的格式。如,obj,3ds,md3,md2,md5,smd,等等。你可以使用3dmax,lightwave,但你应该有一个可以导出导入的plugins。
其次你需要一个自己的world editor,script editor,data editor
如果以上我列举的你能看懂八成,我相信基本上你已经对ARPG的引擎构架有一个大致的了解了。那么,当着手开发的时候,应该从哪里入手呢?
我可以用经验明确告诉你。从脚本入手,主要是将图形驱动层的接口在脚本中全部支持完,做成脚本的类,或则库。由于ARPG在中后期制作有大量的脚本,所以还应该有一个很好用的脚本的编辑/开发环境。
其次是AI驱动部分,AI部分,是说起来简单,理解起来也简单,就是做起来有太多太多的细节问题,AI是非常伤脑筋的一块。就用大家都熟悉的A*来说,在3D的ARPG中,往往A*有很多层,要求非常苛刻,并不是几个格子一算出来就行了的。远远不止这么简单。
然后就是数据的结构框架了。它是一种自定义的标准。你需要花很多时间和脑精去做这一块。不过这块比起AI并不难。很容易,只是有很多之前你没有考虑到的,你需要提前考虑到,反正多想想就行。
请相信我。我已经制作过几部类似的mmo以及单机的ARPG了。
部分工作流程的截图,你可以去gameres查我的历史。前几年我发过很多相关图片。
祝学习顺利。
完。
|
|