什么是Mod Mod的介绍、定义、作用以及原理讲解 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的介绍、定义、作用以及原理讲解 Mod是如何运作的
什么是Mod Mod的介绍、定义、作用以及原理讲解 Mod的使用
【COM3D2Mod 制作教程(2)】Mod 底层原理
mod的定义
怎么制作游戏MOD,会用到什么软件?
MOD是什么?探索其定义与应用
制作游戏mod需要什么编程
什么是mod
mod模组游戏哪个好玩 2024最有趣的mod模组手游大全

网址: 什么是Mod Mod的介绍、定义、作用以及原理讲解 Mod的原理 http://www.hyxgl.com/newsview391703.html

推荐资讯