Mod的定义
说的通俗一点,Mod是Modification(修改)的缩写,译为“模组”,所有由玩家和第三方团队为游戏所制作的非官方修改内容,均可称为Mod;
对游戏修改或添加 道具、武器、载具、角色、服装、功能、插件、游戏任务和剧情等内容均可称为Mod; Mod通常为免费分享,由游戏爱好者或非专业的游戏制作者以个人兴趣爱好为游戏制作的非官方内容,在狭义上,Mod指的是特定类型的游戏修改。
Mod能对游戏修改的程度,取决于游戏引擎的限制,以及官方对Mod的支持程度和Mod作者的想象力。
你可以将Mod理解为是游戏界的“同人”作品
Mod的发展
历史上第个伪Mod是1962年麻省理工的一名学生为《Spacewar(太空大战)》制作的一个“星空背景”的Mod,并且将修改后的程序分享给了其他玩家之后,当地的教授和学生开始根据自己的想法来修改游戏。 [顺便提一下,《太空大战》这款游戏是麻省理工的学生“Steve Russell”制造的,但制作这个Mod学生并不是“Steve Russell”,他们的关系应该称为“校友”]
即使《太空大战》这款游戏没有卖钱,但游戏的确被未授权的修改,并且被发布,这就已经属于发布“盗版”的行为(某种意义上“Steve Russell”可以向制造并分享这个Mod的学生起诉),但实际上“Steve Russell”并没有这么做,反而开始支持其他的学生按照自己的喜好来修改他的游戏。
虽然在1962年就已经有人在修改游戏了,但这并不算是真正意义上的Mod,真正的Mod要追溯到20年后。 1983年,家用电脑和游戏电脑开始慢慢普及,Andrew Johnson 和 Preston Nevins 为《Castle Wolfenstein(德军总部)》制作了一个Mod,并取名为“Castle Smurfenstein”,这个Mod让主角可以发射火器、手榴弹 来消灭其他敌人,玩家需要使用“Castle Smurfenstein(一个蓝色蘑菇形状的东西)”才能逃离敌人的总部。
1984年,《德军总部》的开发商为《德军总部》进行了开源,并将游戏改名为《Beyond Castle Wolfenstein(超越:德军总部)》,随后,其他的游戏开发者也陆续开始鼓励玩家自己创造,比如“Broderbunds ”和“Lode Runner(淘金者)”都推出了他们的“关卡编辑器”。
在20世纪80年代末、90年代初,射击游戏比较受欢迎,对于Duke Nukem(毁灭公爵)(1991年)
来说,开发商不仅自己制作了很多的关卡,还专门为游戏制作的“关卡编辑器”,以便于玩家可以在可视化的界面中编辑自己的关卡。
1992年,第一款“第一人称射击游戏(FPS)”《Wolfenstein 3D(德军总部3D)》发布,为了鼓励玩家为自己的下一款游戏《Doom(毁灭战士)》制作内容,John Carmack(id Software的创始人之一)觉得,如果想让玩家的创作空间变大,应该将游戏源码公开,因此,《Doom》以“半免费”的状态发售,只要制作过《德军总部3D》的Mod,即可免费获得《Doom》,
> [顺便说一下,《德军总部3D》被誉为“把计算机的第一人称射击游戏推广到大众皆晓地步”的作品,《德军总部3D》搭起了第一人称射击游戏的游戏骨架,之后市场上的第一人称射击游戏都使用了类似的游戏架构]
Modder社区不仅遵守这条规定,还开发了“安全功能”,制作的Mod仅为注册的用户使用。不仅如此,他们奠定了Modder环境的基础,尽管是在不同的场景,不同的游戏,都存在一条“潜规则”:
> 无论游戏的协议条款如何,我们都可以根据自己的喜好来为游戏做出合法的修改 原文(德语):Ungeachtet juristischer Leitlinien reguliert dieser Modding-Codex in den verschiedenen Moddergemeinschaften den Umgang mit den für Spiele erstellten Inhalten.
这不仅是游戏开发者能接受的结果,同时也是Modder想看到的结果,也是玩家所愿意看到的结果。
同时也还流传着一句名言“Give Credit, where Credit is due(大概意思应该是:只要我们彼此互相信任,那么在哪都能被信任)”,所有Modder也希望自己制作的Mod得到尊重,因此他们都会在“Readme(自述/说明 文件)”中加上自己的版权和致谢名单等内容,他们希望自己的作品能得到尊重。
虽然《Doom》的销量大增,但id Software并不满足于此,感觉还有可提升的空间,最终决定为《Final Doom(最终毁灭战士)1996》制作一个“官方Mod工具”,并在其中包含了在这之前所有Modder制作的Mod,同时为他们的下一款游戏《Quake(雷神之锤)》招募了几个Modder。
1999年,基于Valve 制作的《Half-Life(半条命)》的所展开的“Half-Life Mod Expo(半条命Mod制作比赛?)”中的一个名为《Counter-Strike(反恐精英)》的Mod引起了人们的注意,与传统的游戏模式相比,这个Mod将玩家分成了两组,分别为“潜伏者”和“保卫者”。
至少在欧美《Counter-Strike》是一个转折点,2000年时,Valve 获得该Mod的版权,并拿出来做成一个独立的游戏,直到现在,《Counter-Strike》系列的续作依然是“全球最受欢迎的游戏”之一。
虽然射击游戏在20世纪90年代占据主导地位,但在2000年开始,《角色扮演游戏(RPG)》开始崛起,然而,在这里,目标主要是由开发者决定的;它最初只是用笔和纸进行角色扮演的游戏,在后来才“移植”到电脑游戏中的,当时比较著名的《Vampire: Die Maskerade – Redemption(吸血鬼之避世–救赎)》,这款游戏实现了用电脑游戏来模拟笔和纸进行“角色扮演”游戏,尽管当时有大量的资料,并以电影式的叙事方式,但由于技术的原因并不是怎么成功。
直到2002年,“Bethesda Softworks(贝塞斯达)”在制作《Morrowind(上古卷轴3:晨风)》时,使用了BioWare公司制作的Aurora-Toolset引擎,Aurora-Toolset同时也是开发《Neverwinter Nights(无冬之夜)》使用的引擎。在使用了Aurora-Toolset之后,角色扮演游戏才开始慢慢的崛起,并且Aurora-Toolset这款引擎支持玩家制作Mod。
射击游戏的Mod一般遵循着传统的类型,但角色扮演游戏不同,角色扮演游戏的Mod可以完全让玩家“放飞自我”,它们甚至可以修改游戏的核心方向;
根据制造商的不同,对Mod的开放性也有所不同,但大多数的厂商都会支持Mod的发展。有些Mod甚至会超出原有游戏的玩家群体,比如说《Half-Life(半条命)》的Mod《Counter-Strike(反恐精英)》就是一个很好的例子。
现在,几乎所有的知名游戏厂商制作的游戏都会有一个“Mod社区”,比如说《IL-2 Sturmovik(捍卫雄鹰IL-2)》《Die Sims(模拟人生)》《Total War(全面战争)》《Command & Conquer(命令与征服)》等等。
支持Mod的游戏
拥有官方Mod工具:
ARK: Survival Evolved(方舟:生存进化) > 讲述着人类在恐龙时期进行求生的故事,官方Mod工具可以直接在虚幻4的商店中免费下载,最近它的开发商Wildcard Studios通过“赞助”的方式来鼓励Modder来为游戏制作更多的Mod,开发商每个月会给15个最受欢迎的Mod支付一定的金额以示鼓励;
Far Cry 4(孤岛惊魂4) > 这款游戏 与2014年发布,包含一个官方的Mod工具,允许玩家编辑游戏的地图,例如:道具、河流、地形、植物等;
Emergency 4(急难先锋4) > 这款游戏,官方有出过一个用于创建和修改车辆的“Emergency 4 Editor”,以及用于安装Mod的“Emergency 4 Mod Installer”;
SimCity 4(模拟城市 4) > 虽然这款游戏是2004年发布的,但到现在也依然保持火热,官方制作的Mod工具叫做“Building Architect Tool”,可以创建和修改建筑模型、游戏地图,改变角色的行为;
Don't Starve(饥荒) > 饥荒这款游戏是有官方工具,steam上面‘工具’里面下载的即是一整套Mod工具,需要拥有正版游戏才能启动;
The Elder Scrolls(上古卷轴) > 自上古卷轴第三代以来,贝塞斯达曾发布过一个工具,来允许玩家修改和添加游戏的内容;
Dragon Age: Origins(龙腾世纪:起源) > 龙腾世纪的开发团队有为游戏开放过一个Mod工具,名为“DAITools”;
Fate > 由WildTangent开发的完整的Fate系列,其开发人员Travis Baldree制作了一个基础的Mod工具来帮助玩家制作Mod;
Move or Die(暂无中文译名) > 这款游戏拥有几个能修改游戏的官方工具,在游戏的官网上有相关的Mod修改教程,玩家可以根据自己的喜好使用“Editor”工具创建自己的角色。
Super Mario(超级马里奥) > 这款游戏拥有官方的“关卡编辑器”用于玩家的制作
使用非官方Mod工具:
Deus Ex(杀出重围) > 以科幻小说为题材的动作RPG游戏的经典之作,通过民间制作的Mod工具,可以修改游戏中的模型、道具、贴图、HUD等,可以扩展游戏的分辨率,后期甚至有Mod工具可以添加游戏的任务和支线剧情;
Custom Maid 3D(3D定制女仆) > 玩家制作的Mod工具可以修改服装、角色、音乐、配音等内容
Battlefield(战地) > 其实,前期的战地是有过民间的Mod工具的,用于修改武器、角色、皮肤、贴图等内容的,不够之后由于会影响战地的多人模式的平衡,所以被干掉了;
Command & Conquer(命令与征服) > 命令与征服系列即包括了“红色警戒”,这个系列使用了Sage的游戏引擎,这款引擎的“易用性”,使玩家即使没有专门的编程技术也可以制作高级的Mod
Doom(毁灭战士) > Doom之前有提过,前期开发商只是负责游戏开源,Mod工具是由玩家自己制作的,在《Final Doom》出来之前,民间论坛上的Mod就已经达到近1000个了,《Final Doom》出现后才;
Fallout(辐射) > 辐射系列有一个民间制作,取名为“GECK”的Mod编辑器,让玩家可以自己创建属于自己的废土世界、任务、玩法等,生成的文件是.bsa格式;
Grand Theft Auto(侠盗猎车手) > GTA系列从Vice City(罪恶都市)开始,就有Mod了,但真正开始发展Mod是从San Andreas(圣安地列斯)开始,在GTA5出来之前的Mod工具包括:GTA San Andreas Admin Console、San Andreas Mods Installer(S.A.M.I)、GTA Mod Installer(G.M.I)、GTA Mod Manager(GMM)、Modloader、Alcis IMG Editor、Water Level Customizer(水位控制器)、Map Editor(地图编辑器) 等等,均为民间制作的工具,用于修改游戏中的所有内容。GTA5 PC版出来后,更多的Modder开始研究这款游戏的Mod,像OpenIV、Zmodeler、GTA5 Mod Manager这种工具也随之出现
Mount & Blade(骑马与砍杀) > 骑马与砍杀用于一个完整的Mod社区,与《Star Wars Conquest(星球大战:征服)》有点类似,汇集了众多粉丝。同时两者都有非常好的灵活性,因为它们都使用的“mods”文件夹,但并非TaleWorlds官方并没有做任何的Mod支持,是纯玩家对游戏Mod做的支持,就像GTA一样。
Age of Empires(帝国时代)
> 帝国时代的官方引用过几个Mod更新到游戏中,并且也鼓励玩家对Mod的创作,但官方却只是鼓励而已,并没有制作官方的Mod工具。 在《帝国时候2决定版》之后,微软也为Mod作者推出了官方的地图编辑器。
Minecraft(我的世界) > 在Mojang AB制作这款游戏之初,只为玩家做了皮肤贴图的修改支持而已,但随着游戏的开源之后,使用Java编写的《Minecraft》开始被Modder“盯上”了,现在的《Minecraft》可以修改方块、矿石、物体、角色、动作、武器、外观等内容。
Total War(全面战争) > 全面战争官方的Mod工具出的一向比较慢,经过几代的作品的传承,民间的Mod工具“Pack File Manager”和“Rusted PackFile Manager”甚至有时候能超越官方的Mod工具。
Pro Evolution Soccer(实况足球) > 通过PES Editor 和G.G.S(Game Graphic Studio)这两款民间工具,让大家可以修改游戏的衣服、脸型、队名、比赛 等内容,甚至实现了“只要游戏不是特别大的更新,Mod就不会失效”。
使用Source、虚幻、Unity等开源引擎的游戏均可使用一些通用的方法来制作Mod,其他游戏这里就不一一举例了。
Mod的作用
对厂商
优点: 对游戏制作商来说,一方面可以提高游戏的销售,让游戏能够更快的“流行”起来,让游戏的质量有所提升,另一方面,可以提供游戏的寿命,帮助游戏开发商来丰富游戏内容。
从积极的方面来看,游戏制作商可以从Mod中获取部分的利益,比如说:开发人员可以从Mod中获取灵感,可以将优质的Mod添加在之后的游戏更新中。这些创意对开发者来说就像“天上掉下来”的一样,但这并不代表厂商可以肆无忌惮的使用Modder的创意,至少在使用之前要和Modder商量并且得到同意。
缺点: 但Mod并不是百利无害的,Mod的出现可能会影响游戏DLC的销量,比如说《死或生》系列作品,游戏本体并不贵,但DLC售价“上天”的作品,并且DLC大部分均为人物的皮肤,但该游戏的Mod大部分都是修改人物皮肤,从而会导致游戏DLC的销量下降,虽然开发商“光荣”之前有过打压Mod的想法,但现在也已经放弃了。
除此之外,还有一个闹的比较大的“Hot Coffee(热咖啡)”事件,该Mod将游戏中本身“锁”住的18+内容解开,导致《Grand Theft Auto: San Andreas(圣安地列斯)》在ESRB(娱乐软件分级委员会)的评级从M(成熟 17+)变成了AO(仅限成人 18+),对此R星非常愤怒,若不是Modder集体反对抗议,R星差点就将Mod社区“扼杀”了。
对玩家
优点: 有了Mod之后,玩家可以体验游戏本身没有的内容,如果有一定的技术的话,玩家还可以自己为游戏添加或修改自己想要的内容。
对玩家来说,Mod可以使游戏更加的有趣,借此能够吸引更多玩家来游玩这款游戏,Mod丰富了游戏的内容,提升了游戏的可玩性。
缺点: 正当的Mod使用Mod可以使游戏变的更加有趣,但不正当的Mod会让玩家变的反感,尤其是联网游戏,当有玩家修改自己本地游戏武器伤害等数值时,造成游戏BOSS被瞬秒,会影响其他玩家的游戏体验,如果是PVP,这种就直接算是“外挂”的存在了,所以网络游戏不适宜支持Mod
对游戏
优点: Mod对游戏而言,不仅仅只是一个内容扩充而已,像《 Counter-Strike(反恐精英)》这种从游戏本体(《半条命》)中分离出来作为一个单独的游戏进行出售也是有过不少的例子,比如说《Team Fortress(军团要塞)》之前是《Quake(雷神之锤)》的一个Mod;《Jagged Alliance:Wildfire(铁血联盟:野火)》之前是《Jagged Alliance2(铁血联盟2)》的一个Mod;
对游戏进行大型的修改案例也有不少,“Multi Theft Auto”是《Grand Theft Auto III(GTA3)》的一个联机补丁,后续还对GTA VC和GTA SA做了支持,到GTA IV时,由于微软官方对R星提供了服务器的赞助,R星第一次以官方的性质为游戏制作的线上模式,多多少少也有收到“Multi Theft Auto”的启发。
《Quake》在开发商对游戏进行开源之后,《Quake》出现了众多的大型Mod,比如说:DarkPlaces (雷神之锤),eQuake (雷神世界 - FuhQuake的发布版),ezQuake (雷神世界),FuhQuake [2] (雷神世界),GQ (雷神之锤),MQWCL (雷神世界),ProQuake (雷神之锤),QuakeForge (雷神世界),Telejano (雷神之锤),Tenebrae (雷神之锤),TomazQuake (雷神之锤),ZQuake (雷神世界),MVDSV (MultiView Demo Server) (雷神世界的专用服务器)。
缺点: 由于Mod对游戏的影响比较大,安装过多的Mod时,可能会导致游戏运行不稳定,容易出现崩溃的现象,部分的两个Mod之间会存在冲突,Mod与Mod发生冲突时会直接或间接的导致游戏崩溃。
部分不法分子会利用游戏Mod对玩家的电脑注入病毒或其他非法程序,15年时,GTA5的Mod“Angry Planes”和“No Clip”这两个Mod,就对玩家的电脑植入了病毒,并窃取了玩家的Facebook和Steam的账号密码。
>【一个游戏终究会有玩腻的一天,但Mod能延长他们的寿命】
Mod的原理
为什么会出现Mod?
Mod之初,从前面的“Mod的发展”可以了解到, 在第一款PC游戏《Spacewar》出现的时候,Mod就随之出现了,我想,当初那位同学,可能只是觉得《Spacewar》的背景不好看,想换一张而已,但就是他的这个想法,制作出了历史上的第一个“伪Mod”(不要问我为什么叫伪Mod,我也不知道,维基上是这么说的,那就这么叫吧)。
之所以游戏会出现Mod,是因为有技术的玩家(高端玩家)觉得游戏中的部分内容不符合自己的“口味”,但又考虑到开发商不可能满足所有的玩家需求,对此,玩家只能“自己动手,丰衣足食”,自己来对游戏进行修改,来满足自己的需求。
而一些热心的Modder,则会将自己对游戏做出的修改,分享到社区网站来给有同样需求却没有技术不会制作Mod的玩家来游玩,当Modder将自己制作的内容分享出来时,被分享的东西即可被称为“Mod”,这就是Mod的出现。
为什么能够制作Mod?
Mod的制作(逻辑)原理,其实很简单,只要知道游戏的代码和资源文件,我们只要修改文件或代码,然后再放回去让游戏识别,就可制作一个Mod。虽然感觉很简单,但这里有3个难点:
- 如何知道游戏的代码和资源文件所在位置和格式;
- 如何将我们修改好的文件或代码重新放回到游戏中;
- 如何让游戏能识别我们修改的内容并无问题的运行出来;
只要解决这3个问题,就可以制作游戏的Mod,但如果无法解决,那么就无法制作更深度的Mod(如果没有解决,也并不代表无法制作Mod,就算无法打开游戏文件,我们也可以使用Hook的方式对游戏进行代码注入,也可以达到一些简单的效果)。
游戏是否能制作Mod,还有一个比较重要的东西——游戏引擎。
制作游戏的引擎,也是决定游戏是否能制作Mod的一个重要因素之一,使用相同游戏引擎制作的游戏,那么就表示游戏数据文件的加密方式大致是一样的,既然游戏数据文件的加密方式是一样的,那么Modder就可以解密一款简单的游戏,然后研究分析这款引擎的加密方式,接着对其进行解密,即可制作出其他相同引擎的游戏的文件解包工具,从而解决上面说的“3个难点”中的1或2个。
但是,想研究分析一款游戏引擎的加密方式并不是一件简单的事情,这将花费Modder的大量时间,并且还没有任何的回报(不过一般愿意去做这种事情的作者一般都不会去寻求经济的回报,他们只是在做自己喜欢的事情而已
)。因此,只有少部分的游戏引擎会被Modder进行解密并制作出Mod工具。
目前已经被分析完毕并且支持解包98%的游戏的游戏引擎只有:
- Unreal Engine(虚幻)的拆包工具——UE Viewer,
- Unity 的拆包工具——AssetsBundleExtractor、AssetStudio。
> 这两款游戏引擎有通用的拆包/解密工具,并且,如果虚幻引擎文件设置了额外的密码的话,也无法使用UE Viewer进行拆包。
虽然全游戏通用的引擎只有这两款引擎,但其他一些有名的游戏厂商使用的引擎却依然有拆包工具,比如说:
- GTA系列使用的雷霆引擎(Rockstar Advanced Game Engine-RAGE)可以使用OpenIV进行打开,但只支持GTA系列和马克思佩恩系列,像荒野大镖客、湾岸午夜俱乐部、这种使用相同引擎制作的游戏文件就无法打开;
- 《全面战争》系列使用的 全面战争引擎(TW Engine),官方有做Mod支持,并且还有官方的Mod工具,但民间也有2款Mod工具,分辨是Pack File Manager(PFM)和Rusted PackFile Manager(RPFM),在官方Mod工具发布之前,Modder可以使用PFM或RPFM制作Mod,但每次在新游戏发布的时候,民间工具都会有部分数据无法查看;
- 魂系列使用的游戏引擎YEBIS 2可以使用工具TKGP制作的UXM进行拆包和Yabber进行转码,但也一样无法做到所有游戏通用,新游戏推出后,工具也需要同步更新,
> 其他的还有卡普空的MT Framework引擎、模拟人生的SAGE(Strategy Action Game Engine)引擎、上古卷轴和辐射系列的Creation Engine。
既然说到了游戏解包,那就不得不再说一款优秀的解包工具——QuickBMS,这款软件为开源且支持第三方编程程序,Modder可以为QuickBMS制作支持,使其能够支持更多的游戏,目前,它支持的游戏列表可以在 https://aluigi.altervista.org/quickbms.htm 看到,软件使用代码语言为Python。
其实,有些游戏没有Mod,并不是绝对做不了,而是没有技术型玩家对其进行深度的研究,或者玩家受众不广泛、游戏局限性过大造成的。
如果想强行让游戏支持Mod的话,使用Hook(俗称脚本钩子,通常使用的语言为C++)的形式,可以在不动游戏文件的情况下,对游戏进行修改。Hook相对于DLL注入,虽然可以不修改文件,但这并不意味着不需要知道游戏内容,虽然安装Mod的玩家不需要知道,但在制作Mod的时候,必须要知道游戏运行时执行的代码结构。
除此之外,还有ReShade(游戏画质修改)和Resorep(DX11游戏贴图修改)这两款支持市面上80% 的3D游戏的通用工具。
Mod的原理
通过上面的说明,现在要理解Mod的原理就挺简单的了,说的直接点就是“因为我们修改了游戏文件的内容,所以游戏就能显示出我们修改的内容”,不过这只是普通的,我们对没有任何Mod支持的游戏Mod的原理。
如果游戏官方对Mod做了支持,这个于官方做的方法有关系,官方做的Mod支持,一般都会有启用和关闭Mod的开关,用于方便管理,但这并不代表Mod不会因为有冲突而导致游戏崩溃(但有部分游戏官方工具是支持Mod冲突检测的,比如说《求生之路》《欧卡2》等
)。
若是第三方插件做的Mod支持,一般采用Hook的形式,检测mods文件夹中的内容,然后对游戏文件进行拦截,让游戏运行mods文件夹中的内容,说实话,Hook方面的内容我也不是很懂,只是知道它的运行方式,具体拦截原理我也不怎么明白。 如果要讲清楚全部的Mod制作原理的话,我也说不清楚,每款游戏 的Mod原理与安装方法都有所不同,就不做过多的讲解了。
Mod的使用
怎么使用Mod
在了解完Mod的原理和制作之后,现在来说Mod的使用就很简单了,对于通常的游戏,替换内容一般为直接替换掉修改的文件,不过话虽然这么说,现在这种方式却已经落伍了,除非是小众引擎且官方并没有做任何Mod支持的游戏才会需要这种方式,不过,好像Unity引擎制作的游戏想要做替换游戏文件相关的Mod的话,的确需要这种替换对应文件的方式。
虽然每个游戏的Mod安装方法都不一样,但其实它们的本质都没有太大的区别,都是需要让游戏去运行我们修改过的内容,每款引擎在运行游戏数据文件的时候,看起来都不一样,但其实都是一个道理,到指定的目录运行指定类型的数据包,然后获取到数据包里面的数据文件,并且执行。
如果有技术Modder为游戏制作了Mod Hook的话(比如说《只狼》的“Mod Engine”,GTA5的“Script Hook V”和“OpenIV.ASI”),就只需要将Mod文件按游戏原数据文件的层级放到“mods”文件夹中即可。这种方法大大减小了游戏出错的几率,同时也解决了Mod冲突检查的问题(如果在安装Mod时提示替换文件,就表示两个Mod有冲突)。唯一的缺点就是,想要为游戏制作Mod Hook,技术难度较高,需要用到C++以及“逆向”的知识。
部分对Mod支持度高的游戏引擎在使用Mod的时候也很方便;
比如说卡普空的MT Framework引擎,Modder们将它的游戏数据文件拆包之后发现,所有文件的初始文件夹名称是一样的(比如说怪物猎人的初始文件夹名称都是“nativePC”),于是有人在想,“如果我们自己新建一个‘nativePC’文件夹,游戏是否能读取到呢?”人有了想法,就自然会去尝试,结果发现,游戏还真能读取到,并且优先级还比游戏原版的数据包中的优先级高。可以说,这就是卡普空给Modder们留下的一个后门。
再说一下虚幻引擎,自虚幻4开始,引擎会直接访问“XXX\Content\Paks”目录以及其子目录里面全部的.pak文件,只验证文件类型,不会验证其他的,至于它的优先级,是以修改时间较新的.pak级优先级较高。
Mod是如何运作的
关于Mod的运行原理,直接替换式的这里简单解释一下,因为文件被替换了,所以就变了,所以Mod就生效了,恩。
每个游戏引擎加载数据文件的方式都不一样,但也大同小异,一般游戏都会有一个或一群数据文件,后缀名不一定,可能是 pak、pack、dat、date、bin 等格式,这种文件一般都比较大,占据游戏总大小的80%。但,不管它的后缀名是什么,其本质都是数据包,我们都可以将他们看作是.zip格式的压缩包,只是每个游戏引擎给压缩包的加密方式不一样,所以解压的方式也不一样,需要其他的特殊工具或插件进行解密和解压。
既然游戏引擎可以读取到压缩后的文件数据,那么我们是不是也可以让游戏直接读取解压出来的数据呢?
事实证明,TW Engine和MT Framework等一些对Mod支持较高的引擎已经证明了这个猜测是可行的,只要玩家按照游戏数据文件的目录结构在相同的位置创建一个相同的结构文件夹,就可以让游戏读取到我们创建的文件夹中的文件,简单画个图来解释一下:
这个是某个游戏拆开之后的武器文件结构:
如果我们的Mod是替换掉pakchunk0.pak->Game->weapon->AlisaSword这个武器,那么这个Mod的文件结构就是:
只要将“Game”文件夹放到与pakchunk0.pak同级的目录即可让游戏读取到我们Mod中的武器。
这种Mod原理我们暂且管它叫“A方法”,因为下文还需要用到这个(不要问我为什么叫这个玩意,随便起的,没有意义)。 接下来再说一下Mod Hook 的运行原理,“Mod Hook”说的简单点就是让那些无法使用“A方法”的来安装Mod的游戏可以用“A方法”来按装Mod。
说的复杂点的话,就是在游戏运行的时候,先将游戏进行拦截,然后检测指定文件夹(通常是“mods”文件夹)中的文件和文件结构,将其与游戏数据包中的文件结构进行匹配,如果“mods”文件夹中的文件与游戏数据包中的文件匹配成功,就让游戏执行“mods”文件夹中的内容,如果没有匹配成功,则无视。
> 待续。。。。