DotA是只使用了war3的地图编辑器制作出来的吗?还是自己也要写代码?war3提供了相应的API吗?
魔兽地图DotA的代码全数利用了魔兽3地图编纂器所开放的api(参加额外的API需要安拆诸如JAPI一类的补钉,而且需要平台撑持)。美术和声音资本次要利用魔兽自带素材,也有少量导入的素材(集成在8M中)。
魔兽地图文件自己是利用暴雪早期的MPQ压缩手艺的资本压缩包,能够用MPQ查看器翻开,和wow(6.0以前)的资本查看器几乎完全兼容。
但DotA的地图文件不克不及用地图编纂器(World Editor)翻开,因为地图编纂器的图形界面的触发编纂器需要读取额外的文件(记得是w3t仍是w3g)。而保留地图时,地图编纂器会把那个触发编纂器里的内容编译为游戏自己的脚本代码,即jass(*.j文件),并在游戏运行时利用,因而那个触发编纂器的对应文件其实不是地图运行的必须品。值得一提的是jass是“Just Another Script System”的缩写。
所有Jass可用的API都在魔兽3资本里的common.j(简称CJ)文件中列出。除此之外,暴雪还编写了blizzard.j(简称BJ)基于CJ供给的API,把对战初始化及一些常用的函数(好比组拔取)整合起来。因为很多BJ函数自己存在泄露问题(利用新建句柄而不收受接管),以至存在准确性问题(好比组中随机拔取多个对象的函数存在代码遗漏),因而大都we利用者都利用WE MOD来做图,导入批改过的BJ笼盖魔兽自带的文件等。国内那一块做的更好的,应该就是YDWE了。
理论上只利用地图编纂器是能够做出DotA如许的地图的。但许多Jass里的功用难以在触发编纂器中实现,移植性和维护成本也差别,所以大都资深做者仍是选用了Jass为主导的脚原来造做地图。YDWE的开发初志之一,就是允许利用者在完全不会jass的前提下也能实现本来jass才气实现的内容。除此之外,因为触发编纂器自己能够在GUI里插入或者转化为自定义代码,因而你也完全能够在we里实现纯jass代码的造做。
DotA固然不克不及用we翻开,但那不代表它就完全不是用we做的了。造做者完全能够用we所见即所得的编纂体例来更改地形地貌和物体属性(也可能是间接更改的slk文件),然后把编纂器生成的对应文件(好比w3e地形文件)间接提取出放入地图中,并撰写相关脚本。DotA的脚本中的变量与函数定名也颠末了特殊处置,定名都是一些随机字母数字组合,毫无可读性,应该是颠末定名替代处置的。
DotA为什么要那么做让玩家手中的地图文件难以翻开和编纂呢?那当然是为了制止玩家窜改地图,以至操纵某些版本的破绽造做互通图。当然,因为魔兽地图自己的限造,可读性再差的代码也能被资深地图开发者所理解,但那些“加密”手段多几少提拔了破解的门槛,提拔了破解的成本,对魔兽地图的反改图起到了必然的感化。