日期:2009-9-6 tengjiaozhao@gmail.com
上次说到了游戏中的地图编辑器。我们提出的疑问是为什么不能用图形软件做地图编辑器呢?
首先我 们来看看一个普通的地图做了哪些事情。游戏世界中一副地图除了把场景中的物体加以阻止意外,还需要处理的一部分的逻辑,我们称这部分逻辑为事件。当条件满 足的情况下就出发了这些事件。比如,当到达某个时间时候,天就开始下雨,下雨之后,地上就会出现各种新的NPC,这类事情的逻辑都是需要放在地图信息当中 的(当然,地图编辑器还有其他的功能,比如设置物理外壳供碰撞检测之用等等)。所以说地图并不只是我们表面所看到的那些信息而已。
有了上 面这个例子,我们就可以说说为什么不能用图形软件来做地图编辑器了。地图编辑器和图形编辑软件的共性是,他们都能将一个个独立的物品组织在一起,并声称特 定格式的数据文件给程序使用,程序使用这些数据,可以正确的将地图的外貌显示出来。但是,面对事件逻辑,图形编辑软件就无能为力了。因为,大部分的时间逻 辑都是以脚本的形式进行描述的,这类脚本一般都是由程序自动生成的,所以图形编辑器面对这类东东的时候就无能为力了。
好了,通过上面的一个功能就否定了图形工具不能进行地图之类的编辑。下面,我们就仔细的说说地图编辑器的功能吧。
一般地图编辑器提供如下功能:
1. 生成基础地面:这个地面我们可以把它想象成一个平面就好了;
2. 地形编辑:让使用者(一般是策划)能够随意的跳着"基本地面“的地形外貌,比如:高度,倾斜角度等等;
3. 地形贴图:能够对地面设置各种地面纹理贴图,比如,我们想做一个雪山,我们可以用”地形编辑“功能对一块地形作出山的形状,然后,我们就要开始给山铺上一 层厚厚的“雪”了,这层雪就是一张张图片(比如,bmp 格式的位图图片,一般的游戏厂商都使用tga格式,为什么?google 一下吧)。我们称这一张张雪的图片为为纹理贴图;
4. 物理外壳:给地图中的某些物体设置上物理外壳,比如,一颗树我们不让玩家穿过,就可以给这棵树刷一层物理的外壳(一般都是一个矩形盒子),让程序根据这个壳做碰撞检测之用;
5. 设置地区特征:(这类特征一般都是以脚本的形式描述的,地图编辑器可以提供一些简单的UI接口让策划通过简单的鼠标操作就可以完成以下任务)
a):该地区的NPC产生类型,产生数量,产生时间等参数;
b):该地区的天气变化情况:什么时候下雨,什么时候下雪等等;
c):该地区的属性特征,比如该地区是熔岩地带,所有火属性装备都要增加50%的攻击力等等;
e):其他,所有其他你能想到的东东;
通过地图编辑器编辑好的这些场景,我们就可以通过程序去解析他们,然后根据这些设置去进行游戏逻辑了,所以,一般的“跑图”程序就是一个对地图数据文件的 解释器而已。地图编辑器一般都是给策划人员使用的,他们把美术人员制作好的各个模型文件导入进地图编辑器。然后,把这些文件按照游戏世界观的规则组织在一 起,并设置好地图的各种属性。这个过程需要很大的想象力。所以,制作一幅地图并不仅仅是我们所看到它们的样子而已,其中也蕴含了各种逻辑。
有了地图编辑器我们就可以制作一个个游戏场景,去一步一步的构建我们的游戏世界了。好像还缺了点什么。少了些什么呢?(待续)