登录社区:用户名: 密码: 忘记密码 网页功能:加入收藏 设为首页 网站搜索  

文档

下载

图书

论坛

安全

源码

硬件

游戏
首页 信息 空间 VB VC Delphi Java Flash 补丁 控件 安全 黑客 电子书 笔记本 手机 MP3 杀毒 QQ群 产品库 分类信息 编程网站
  立华软件园 - 安全技术中心 - 技术文档 - 入门基础 技术文章 | 相关下载 | 电子图书 | 攻防录像 | 安全网站 | 在线论坛 | QQ群组 | 搜索   
 安全技术技术文档
  · 安全配制
  · 工具介绍
  · 黑客教学
  · 防火墙
  · 漏洞分析
  · 破解专题
  · 黑客编程
  · 入侵检测
 安全技术工具下载
  · 扫描工具
  · 攻击程序
  · 后门木马
  · 拒绝服务
  · 口令破解
  · 代理程序
  · 防火墙
  · 加密解密
  · 入侵检测
  · 攻防演示
 安全技术论坛
  · 安全配制
  · 工具介绍
  · 防火墙
  · 黑客入侵
  · 漏洞检测
  · 破解方法
 其他安全技术资源
  · 攻防演示动画
  · 电子图书
  · QQ群组讨论区
  · 其他网站资源
最新招聘信息

游戏是怎样炼成的? (关于地图编辑器)
发表日期:2007-01-17作者:[转贴] 出处:  

  地图编辑器,顾名思义,就是用来编辑地图的工具,如果玩过魔兽争霸或是帝国时代2,英雄无敌的话,应该会知道这几款游戏都附有地图编辑工具,可提供玩家自行编辑地图关卡,地图编辑器就具有类似的功能。
  这套东东通常是由程序,美工,企划三人所讨论出来的,理由很简单,因为美工是使用这套编辑器的“使用者”,程序则作出这一套编辑器提供美工去使用,企划则居中作协调工作,间或与程序讨论编辑器的用途。 
  程序开发编辑器软体的目的何在?事实上这是一个大问题,这得从头开始谈起了其实一般常玩游戏的玩家应该都可以发现,几乎没有一款游戏是不带背景的,小从大富翁,大到角色扮演,战略,其实玩家应该都会发现这种事实才是,换句话说,背景(或说是背景地图)在游戏中,正扮演著一个不容忽视的角色。「不过是背景图罢了,有啥大惊小怪的,只是把图贴上去而已不是吗?」 
  当然,有人会这样评判背景图的功能性,或者,我该举个例子让大家知道它的功能究竟包含了什么?最方便解释的应该是事件处理的部份,玩过角色扮演游戏的人应该都知道,当玩家控制主角行经某处时,会出现一些偶发事件,像是忽然有人会跑出来跟你讲话,或是遇到特定的敌人等等,像这些事件,通常都是由地图编辑器来 予以设定的。 另一个例子是障碍物的设定,譬如玩星际争霸,如何让军队无法越过高山河流,又譬如玩英雄无敌,如何让军队在途经沼泽地带时,减缓其行进速度,这些都是靠地图编辑器予以设定的。也就是说,其实地图编辑器不光是将图秀在背景这个简单的任务而已,它所包含的功能几乎占了游戏的大半,凡跟背景牵上关系的,全部都要靠地图编辑器来付予其适当的功能,想制作游戏的人不可不知道这个重点。就以星际争霸的地图编辑器来说,通常玩家只要开出一个地图编辑器,将你所要的高山河流图案「贴」上去,然后再放几个军种,设定过关条件,最后储存档案,然后只要玩家想玩自己设计的地图,很简单,进入游戏,选择自己设计的档案,按OK,然后就开始可以玩了,像这样子简单的工作就可以处理好一个游戏关卡(玩家连程序都不必写),可以想见地图编辑器包含了多少的设定与功能。再换另一个角度来说,像这样的地图编辑器,甚至连玩家都可以自订关卡,可以想见该游戏公司的美工是如何轻松愉快了,所以,一个好的地图编辑器不仅可以包含游戏大部份的功能设定,还可以减少公司开发游戏时所耗费的成本,无怪各游戏公司几乎都是采用地图编辑器这种演算法来制作游戏了。 
  那么地图编辑器究竟含有什么玄机? 对制作游戏的人来说,不论他是企划、程序或美工,相信都可以回答这个问题,整个问题的答案可以用一个词儿来涵盖说明,那就是「Tile」(瓷砖)! 
  Tile算是地图编辑器的一个专有名词吧!对美工而言,说它是贴图的元素也可以;而对企划而言,说它是事件引发的记录点也没什么不对,就看整个Team(游戏制作团队)要怎么样看待它所代表的功能性了,而且这方面的 
  问题,最好还得经过三方面的协调,才能够真正的确定。当然,如果你只是一个人想制作游戏的话,那就不需要沟通这方面的问题了。 究竟Tile这种东西该如何解读呢? 
  我们可以试著这样想,今天我们要制作一张背景图,这张图上面,有一面墙壁,大约占掉画面上约百分之七十的面积,而画面下方剩下的百分之三十,则是路面... 
  OK,现在我们开始画了,一种方法是开启小画家(或类似小画家之类的绘图工具),一笔一画地将图给完成... 至于另一种方法,则是将墙壁分成一块块地先画好,路面也是一样的处理,然后,再将这些画好一块块的东西,像拼图一样的拼上去... 似乎有人会开始比较这两种方法的优劣性「似乎第一种方法会比较有效率,而且也会画得比较有质感吧!」当然,如果工程就只是这么一张图的话,利用第二种方法的确是有点画蛇添足,而且利用拼图的方式,恐怕也会拼得不是很好看的样子。但如果我们换一个角度来思考,可能答案就不同了:如果我们准备要画10张这种图,同样是墙壁跟路面,但是比例可能会不同(有几张可能是六成墙壁四成路面,有些则是九成墙壁一成路面),而且,理所当然地,这些墙壁路面不可能每一张都长得一模一样....好,问题来了,你仍然会认为第一种方法最快吗? 
  那如果要你画五十张呢?或者一百张?究竟是那一种方法最快?换句话说,地图编辑器最大的优点就在于:重覆使用性高,背景地图制作速度快,简单易用等。譬如你想制作一个RPG游戏,很明显的,RPG游戏一定会有城镇,而且由于文化的一致性,一般来说城里的房屋都是大同小异,如果我们以暗黑破坏神II来说明,其中有一个阿拉伯城(玩过的人应该知道)就是一个很典型的例子。 
  现在假设你的游戏背景设定在中古世纪的阿拉伯,并且整个游戏共有二十个城镇,首先我们会注意到的是:这二十个城镇的建筑物排列是肯定不会一样的,但由于文化上的一致性,肯定长得也会差不多;其次是城里的道路,房屋,几乎也相差不大,于是,地图编辑器在此发挥了功效,试想,如果你一开始的时候就先把具有阿拉伯风格的几个墙壁的Tile(小瓷砖)给画好,然后当然,你的每一张背景就开始利用Tile贴图的方式来制作了,而且相信速度将会非常的快。也有人问,如果光靠几个Tile就想画出二十个城镇好几百个建筑物的外观,似乎也太难、太懒了吧!个人完全同意这种看法,所以事实上,真正要做出好几个城镇的背景图的话,所准备的Tile也不能太少,譬如说,有些Tile可能同样都是墙壁,却有好几种不同的样式,有的Tile上面有斑驳的痕迹,有的Tile上面可能有涂鸦等,像这样同样是墙壁但样式不同的,就必须要准备好几个来使用,又如树之类的背景,可能也要准备个好几种不同树的Tile,否则的话一个游戏从头到尾就只有一种树,岂不荒唐!不过一般游戏还是会重覆使用到一些Tile的,玩家如果不信,可以在玩RPG的时候稍微注意一下,应该会发觉有重覆的地方,譬如树这种东西,应该是最容易发现到的。至于是否简单易用,那就得看程序设计师的功力了,功力好的,制作出来的编辑器可能比小画家还要简单。但也并非全然如此,如果这套编辑器被企画付予太多的功能,恐怕再厉害的设计师也不一定做得出简单好用的编辑器系统。但唯一能够给予肯定的,是它仍然比传统的画法要更为方便好用,光是这一点,就足以支持我们用地图编辑器这个演算法了。但我们也必须承认,如果光只是这个原因来驱使我们使用地图编辑器,那也太小看地图编辑器的「勇猛」了,它在其它功能的强大,似乎更使得我们不得不承认它存在的价值。 
  地图编辑器---地图之外? 前面谈到地图编辑器可以拿来节省绘图的工时成本,这一点确实蛮吸引人的(至少 对游戏开发公司而言是如此),但我们也不得不赶紧将它更强大的功能给介绍出来 ,好让大家知道在地图之外,它所代表的地位依然也是无可取代的。相信玩过魔法门英雄无敌的人都知道,每次玩家在控制英雄行动时,他的 速度经常是时快时慢的,譬如当英雄行走的是一条路面时,一回合下来,就可以走的很远; 如果行走的是草原的话,一个回合下来,走得就慢了一些;如果经过的是沙漠区的话,速度更是慢了下来;甚至当英雄经过沼泽区时,能走到三步就已经很偷笑了。 这类形的游戏其实很多,通常战略游戏都有作这样的设定,即便是三国 志,也没有 例外。 这样的设定其实必须归功于地图编辑器的功效,它是怎么做到这样一件事的? 其实也不难,只要程序设计师在制作编辑器时,顺便设定一个值,然后让 这个值跟 著一个 Tile跑,这样一来,每一个Tile就会带有一个值,而这个值所代表的就是该 Tile所消耗的步数。 还不通吗?再详细一些你可能就晓得了,假设今天已经设计好一套地图编 辑器让美 工去绘背景地图: a. 此美工先开启地图编辑器和一张背景地图,这张背景地图因为还没贴图,所以是空 的。b. 地图编辑器要求美工选取Tile,美工便将自己先前画好备用的图案选进地 图编辑器 中,这些图案应该是一些沙漠,草原之类的,先假定该美工已画好了十五种沙漠图 案跟二十种草原图案,所以美工将这些图案选进来当作 Tile。 c. 编辑器要求美工针对每一个Tile给定一个数值,由于美工不知道每个Tile的 数值是多 少,所以跑去问企划,于是企划跟他说只要是草原数值就给 2,沙漠的 Tile就给4。(这一个步骤非常重要,因为这一个步骤,先前所述各游戏的效果才能显现出来)d. 数值给定之后,美工开始将这些Tile贴进整张地图编辑器中,贴完之后,整张背景 地图于焉完成。这是一张有沙漠跟草原参杂的背景地图。 
  e. 美工将做好的背景地图交给程序师,再来就是程序师的功夫了,理论上,程式会 写一个程序让一个假人在这张地图上跑,假定这个假人的行走能力是每回合8步, 所以当假人往前走到草原区的Tile时,程序会判断该地区的数值是2,所以 会消耗掉 2步的能力(还记得草原给定的数值是2吗),剩下6步,照这样看来,如果这个假人一直都在草原区行走的话,算算每一回合应该可以走4格Tile的长度(8步÷2 步= 4);但如果该假人是在沙漠区行走的话,由于程序判断该地区每一个Tile的长度会 消耗掉4步,所以假人一回合只能走两个Tile的长度,相形之下,这种因地形不同而有速度快慢的效果,就可以做出来了。当然啦!如果经过两个草原和一个沙漠的话,也是刚好能在一回合走完喔(2个2步+1个4步=8步)从上述的例子,我们就不难发现,地图编辑器甚且具有地形标示的功效呢!地图编辑器之事件处理谈到事件处理,恐怕有很多人不知道它是干什么的,这里我们希望能够先 聊聊这个东西。
  事件处理,顾名思义,就是用来处理事件的,不过还是举例比较快: 
  譬如『轩辕剑参』这个游戏,玩家应该在玩的过程中,常会碰到一些突发 状况,譬如主角跑到一个地方,就会有人跑出来跟你讲话,或是会在该处秀一段动画等,像这类的东东,就可以说是事件。事件可以分为两种,一种是自发性的,另一种则是非自发性的,如果是非自发性的,就比较难用地图编辑器来设定(也是可以啦!只是比较难,程序设计师跟企划必须多花点脑筋做沟通才行);而如果是自发性的话,利用地图编辑器就方便很多了。什么事件是非自发性的呢?又什么事件是可以自发的呢?譬如现在我们正在设计游戏,游戏过程是主角接受了一位城里的美女请 托,希望主角能从城外的贼窟里救出她父亲,这里总共有三个事件: 
  第一个是主角经过美女面前时发生,此时主角会自动停下来(理论上此时鼠标按键是不能操控的),该位美女会走到主角面前说话,要主角救她父亲,主角同意了。 
  第二个是主角找到美女的父亲,然后自动播放动画,主角将父亲从牢里放出来。第三个则是主角再度经过美女面前,主角再度停下来,然后美女跑过来给主角一个热吻,表达感谢之意。其中,第一个和第二个就是自发性的事件,而第三个事件,如果没有经过第一个和第二个事件的话,是不可能会发生的,所以第三个事件并非自发性的事件。之所以自发性事件可以利用地图编辑器来反映,这边就做一个说明:同样地,程序在与企划沟通过之后,针对每一个Tile再给定一个数值,用来表示事件的处理,所以现在的Tile除了有上次提过的地形数值之外,又增加 了一个事件的数值。OK!我们继续:这个事件数值,同样地,美工人员在 贴Tile的时候,事件数值也应该给定一个值,所以美工跑去问企划该设定多少?企划就跟它说,在美女附近的场景路面的Tile,给定事件数值1,另外,在城外父亲被关的地牢附近的Tile,其事件数值给2,其余的地方就给 0,美工照做了。
  做好之后,程序设计师拿来试用,当假人在地图上乱跑时,程序设计师会要求程序去侦测假人所在之处的事件数值,如果是0的话就没事,如果是1 的话,就让程序去跑那一段美女要求主角帮忙的动画;如果是2的话,就让程序去跑那一段从地牢救人的动画,果然,因为美工在美女附近的地面Tile 之事件数值都设为1,所以当假人跑到美女附近时,事件启动了,要求帮忙的动画也就出现了;同样地,当假人跑到地牢附近时,也会踩到美工设定事件数值为2的Tile上,同样会触发事件2的启动,救人的动画也就出现了! 所以我们已经检视过,一连串的自发性事件是如何地被编入背景地图的每一个Tile中,当然,并不是每一个Tile都会用到这个事件数值,所以有些人会认为,为了引发几个事件,要弄到地图上的Tile都得跟一个事件数值,会不会不太划算(这一点跟程序设计师大有关系)?唯我必须强调的是,如果整个游戏就只有少数几个事件的话,诚如所说的,确实是有点不太划算,只不过,事实并非如此,按照目前发行的游戏 水准来看,通常一套完整的RPG,所包含的事件至少就应超过500个(这还 算小喔),如果企划统一将那些宝物获取、室内外进出、地图间切换等也一并算进来当成是事件的话,更可以肯定将会超过1500个以上,在这种情形之下,利用地图编辑器来处理事件,就不是一件不划算的事了。当然, 如果万一类似的自发性事件真的不多的话,却也可以考虑另一种节省的办法,那就是将事件处理的数值和地形数值合并在一块使用,如此的话,就可以解决所谓的浪费问题了。但说是浪费,其实每一个Tile不过只多用了2个位元组的空间,算算一个游戏如果有一万个Tile的话,也不过是多用了两万个位元组的空间,相较现在的记忆体动辄一亿几千万的位元组容量,似乎也不必太吹毛求疵吧!自发性可以利用地图编辑器,非自发性呢?
  嘿!那可难多了,通常会让程序师最后放弃采地图编辑器来处理事件的原因,多半就是非自发性事件过多,过杂的因素。一般采多线式剧情的 RPG,也是不建议用地图编辑器来处理事件的,原因很简单,如上面谈过的例子,我们已设定美女要求主角救她父亲的事件是1,所以美女所在地区的Tile事件数值都已经设为1了,意思就是说只要主角走到该处,事件1就会 被启发,现在如果我们设定美女亲吻主角的事件数值为3的话,试问,这事件数值3应该被设定在那里?没错,我们在这儿遇到了冲突,那就是---当主角走到美女附近的时候,应该有可能会出现两种情形:
  事件1:美女要求救她父亲
  事件3:.美女亲吻主角
  试问,如今美工已设定附近Tile都是事件1了,那么事件3该怎么办?如果将附近Tile又全改为事件3的话,那事件1又该如何?
  换句话说,我们该如何编辑地图,好让主角走到美女附近时,会先启动事件1(而不启动事件3),等到救到她父亲了之后,又能够在美女附近 启动事件3(而不会启动事件1)呢?
  我想,如果只利用这个地图编辑器的话,应该是办不到吧!地图编辑器进阶说明之前谈了好几个有关地图编辑器的基本作用,现在谈谈它的进阶。
  这次想要来谈谈有关多层的概念。什么叫作多层的概念?其实就字面上来说,大家应该不难猜出它是什么,简单来讲,就是地图编辑器具有多层贴图的功效。那什么是多层贴图呢?我们可以举个例子,譬如我们曾玩过博德之门或是 轩辕剑参的朋友们,应该会发现主角有时候会被一些高耸的建物,或是几 棵树挡住,这种「建物图盖在角色的图上」或是「树图盖在角色图上」的状况,使我们在玩的时候,很容易地就产生了一种「角色在建物或树后 面」的错觉,这种错觉运用,在RPG或是动作类游戏中最常被运用,而所采用的,就是多层贴图的观念。这种概念说穿了也没什么,如果当主角站在草原上的树后面的话(以玩家的角度看),它的方法就是先贴草原图,然 后贴主角人物图,最后再贴树图,然后就达到这个功效了。作法似乎很简单不是吗?
  还有另一种情况也很常用多层贴图,譬如一个主角站在湖的船上,以玩家在岸上的角度看,近处先有杨柳,然后较远处的湖中,主角正站在那儿,更远的地方则有高山白云,当游戏画面想要制造远近效果时,可能会先贴最远的山图,然后再贴湖面和主角(包括船),最后才贴近处的杨柳,如此的话,三层图共分远、中、近,就可达到立体远近的效果了。当然,如果想要强化这个效果的话,还有妙招,一般人都晓得,当一个人坐在火车上从车窗向外看风景时,最远的山是移动最慢的,而最近的火车电竿则是 移动最快的,所以当景物越远,它的移动就越慢,我们尝试将这个观念运用上去--当主角在湖中移动时,我们让最靠近玩家的杨柳图层位移的比较快,然后让最远离玩家的高山白云的图层位移变缓,然后中间的主角不动你猜会怎样?没错,看起来就好像是主角的船正在移动一般,而且它的立体效果肯定会非常好,要是没记错的话,轩辕剑贰倒是运用了不少这方面的技术,不知是否还有玩家记得?

地图编辑器进阶II
  上周谈到地图编辑器中有关多层的概念,并且也举了例子,事实上这种例子很多,不胜枚举,就连微软提供的DirectX Demo中,也用到了类似的概念(安装过的人应该知道熊吃狐狸的那个例子吧!),一套特别强调多层技术的游戏,有时候甚至会用到八九层的贴图也不是没有可能。至于地图编辑器制作多层的界面,通常是用某些按键来切换的,就我之前 来说,有关地图编辑器的撰写,就曾有做过四层的记录,方法自然是利用function 键来切换了。按F1时,画面是秀最底层,而且这时美工所编辑的也 是最底层的,如果按F2的话,就编辑第二层,如此类推,按F4的话就是编辑最上面一层。那如果要看四层贴图合起来的效果,就可以按F5,利用这 样的方式,想写多层地图编辑器的人,或许可以参考参考(虽然个人界面 这样的设定未必是最好的)。 
  多层谈完之后在来是有关3D的地图编辑器探讨,这部份算是所有地图编辑器中,属于较麻烦的部份,个人在此并不打算深谈,因为这已经牵涉到3D 中有关Z-Buffer以及Ray Tracing的技术了,谈下去恐怕会停不了,并且也有点离题过远,有关3D的部份以后如果有机会的话再来专题讨论一番。这次只打算谈到一些相关技术的游戏,如毁灭战士系列的游戏(例如毁灭公爵,古墓奇兵等),都是利用了3D地图编辑器来编辑场景贴图的,作法是先利用一张某固定比例的2D平面图,然后在上面画出线条(好像在画建筑工程图一样),并利用不同的颜色来表示壁面材质,如灰色线是指墙壁,咖啡色线是指木头等,等画好之后,这张图在将来就是游戏过程中,玩家可以拿来看自己所在位置的小型地图了,然后当美工要开始贴图的时候,就执行3D地图编辑器,读取这张2D平面图,之后便可发现,自己好像身在一个利用线条所组织起来的迷宫之中,没错,这就是该2D平面图所展现出来的 3D效果,只是目前只有线条而已。这时美工该做的,就是在这些只用线条 架构起来的迷宫,一格一格地将图贴上去,而且还要在迷宫中边走边贴喔!

我来说两句】 【发送给朋友】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 游戏是怎样炼成的? (关于地图编辑器)

 ■ [欢迎对本文发表评论]
用  户:  匿名发出:
您要为您所发的言论的后果负责,故请各位遵纪守法并注意语言文明。

最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放 / 友情链接  
Copyright ©2001-2006 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.0018