20年来,有一群用这个引擎探索“格斗”的极限

永远追求最强。
一款游戏引擎的寿命是多久?
很复杂。如果只是这个引擎本身,寿命短则2年,长则5年,不会太久,就会被代码技术的进步淹没。但如果把引擎的名字一代代继承下去,不断更新代码,那理论上这个引擎就能活很久,我们熟知的大部分引擎都是这么干的:虚幻4、Unity 2019、RPG Maker MV……
Mugen是一款格斗游戏引擎,它诞生于1999年前后,基于Dos系统。
在将引擎适配到当时已经成为主流的Windows系统上以前,Mugen的开发者就停止了对引擎的更新。
2003年,支持Windows系统的winmugen被内测用户泄露出来,但是由于开发者停止更新,这个引擎没有办法再做大的调整,只能打一些小补丁——降低崩溃率,增加语言文件,支持更高分辨率。
Mugen的用户们真的把winmugen用到了2020年。今天,在哔哩哔哩等视频站上的很多最新Mugen视频,仍然用的是winmugen这个舞台。

1
关公战秦琼
Mugen最初的动机非常简单,可以称得上是相当朴素:格斗玩家想要满足自己关公战秦琼的欲望。
这可能是人类最底层的强者崇拜观念。从张无忌能不能打过扫地僧,到泰森能不能打过老虎,再到《魔兽世界》里的法师能不能打得过哈利波特里的法师,大家总是想把完全不相干的两个东西拿到一起比一比,看看谁更强。Fate系列最初就是这么火起来的,谁不爱看亚瑟王大战拿破仑啊。

2012年的一个回答,那时候拿破仑还没变成FGO里的角色
Mugen就能让玩家很容易地做到这一点。
Mugen作为一款引擎而言,非常简洁,也非常开放。格斗场景中的一切都可以修改,开场动画、选人界面、场地背景、血条样式,当然还有格斗对战中最重要的角色人物。玩家可以自己导入贴图,制作角色,不仅是角色的模样,连他的连招、动画效果乃至招数的伤害数值都可以随意编写。

Mugen中两位拳皇人气角色八神的对决
编写完的角色可以被打包成人物文件,在任意一台电脑上的Mugen里加载出来,用于对战。想知道泰森和东北虎哪个强,双方支持者各做一个角色出来,约一个时间在Mugen里打一架不就知道了——这倒是很符合人们对于跨世界对战的朴素判定法则:讨论两本书里人物的强度高低,直接让两本书的作者出来打一架。
不过,Mugen本身并没有什么联机功能,官方连开发工作都停了,自然也不会搞什么对战平台。在2000年前后,网络环境又不太发达,格斗游戏偏偏又是个对网络延迟有着非常极端要求的游戏类型,线上对战直到今天也还问题重重。
这就导致了在Mugen发展的最早期,关公战秦琼的“战”这个部分很难实现。“做出喜爱的人物,还原他的各种招数,把人物包分享给大家”是Mugen引擎最主要的作用。这就有点类似于在现在各种各样能精准捏脸的游戏中,捏出一个知名角色,并把数据分享给其他人一样。

玩家用《噬血代码》捏出的杰洛特
直到有玩家想到:“没法和人对战,我可以做AI对战啊”。
和AI人物对战,其实是个古老的设计。街机上的格斗游戏在没有第二名玩家时,大都可以和内置AI对战,玩家们一般管这叫“打电脑”。
Mugen当然也是可以自己编写AI的,虽然这个AI名不符实,不能学习、记忆(因为每局战斗都会重置数据),但有那么个意思就行了,好歹可以真的战起来了。
那时候的AI当然是打不过人的。不能学习的AI,打出的连招套路很容易就被人类玩家看穿,再者,程序设计得再完美,机械的判断也总有漏洞,这就会被人类玩家“屈死”(指玩家利用AI的判断漏洞“不光明正大”地干掉AI),在去年的《只狼》中,我们已经见过很多招数强大却被玩家用阴招屈死的Boss了。

苇名七本枪可以被玩家用卡悬崖的方式屈死
于是有些非要自己做的角色无人能敌、强大无比的Mugen作者,就动起了别的主意:既然角色的连招和伤害数值我都能自己改,那我干脆做个完全不平衡的角色出来,你打我一拳只掉一滴血,我打你一拳连击带顺劈直接秒杀你,那人类再强不也打不过了。
这种不平衡的角色当然被很多人抵制,但是也没什么用。这种“作弊”就像恶魔的灵药,一旦喝下整个圈子就回不去了,更何况改数据本来也算不上作弊,Mugen引擎本身完全允许这种做法。
如果事情就这样下去,Mugen可能就像很多小众圈子一样,持有不同观念的玩家逐渐分裂、争吵,圈子的氛围被破坏,最后所有人逐渐离开Mugen。但是有一群经常在网上交流Mugen创作经验的权威玩家,偏偏想出了一个完美的解决办法。
他们的解决办法其实非常直觉:格斗游戏,本质上不就是对于现实中拳击比赛的模拟吗,那么既然拳击比赛都要按照选手的体重分重量级,那么Mugen为什么不能也给角色们也划分出一个重量级来呢?相同重量级的角色对战才有效力,不然就像90公斤的拳王打败了75公斤的拳王一样,不算数。
问题解决了,他们当然没有想到,这个决定从此掀起了Mugen神魔混战的序幕。
2
从军备竞赛到降维打击
最初,玩家们把Mugen人物分为5个等级:纸、并、强、凶、狂,一目了然,非常好理解(并是日语里普通的意思)。
纸角色就像名字所述一样,和纸片一样不堪一击。要么血量很低,要么防御很低,他们还大都没什么有效的伤害手段,有的甚至压根连攻击手段都没有,还有的开打后不用对手碰,自己就死了。
这类角色大多是作者为了玩梗制作出来的,用来嘲讽某些非常弱小的游戏/动漫角色。比如,鲤鱼王。鲤鱼王是精灵宝可梦中公认“最弱最可怜的宝可梦”(宝可梦图鉴语),一开始只有水溅跃这种“什么都不会发生的招式”。在Mugen里,鲤鱼王则只有1点血,除了能前进后退外,什么也做不了,悲惨至极。

鲤鱼王使用了水溅跃!然而什么都没有发生
并,就是普通的角色。基本上就是一般格斗游戏中的角色平均水平,连招难度一般,伤害一般,血量和防御一般,总之就是都很普通的角色。这种角色很少,因为人类是个众所周知讨厌平庸的种族。
强,其实也差不多。大概是格斗游戏中比较厉害角色的水准,比如拳皇中的机炮拳拉尔夫和K。

拉尔夫部分强在他的基础连招比较简单
到了凶等阶,就都是一些正常格斗游戏绝不会提供给玩家的角色了。要么是攻防都很高,要么就是有无敌技能或者超高伤害的必杀技。代表人物是《拳皇2001》的最终Boss伊格尼兹,有近十个必杀技。
而当时被判定为狂阶的角色,简单来说就是“基本无法击败”。不需要任何条件的全屏闪电,快速的回血回气,都还是狂阶比较基础的手段,一击必杀、低血量时无敌并快速回血,在狂阶角色身上都不少见。很多时候,两个狂阶打来打去,屏幕乱闪,却谁也不掉血。

开场就释放全屏伤害技能的狂角色
一个角色的等级判定,是有严格标准的。Mugen玩家们选出最能代表每个阶级顶端和低端的两个“标准角色”,一个新的角色出现,就让它从纸阶最强者开始对战,如果击败了纸阶最强的,就打并阶最弱的,依次对战下去,直到不敌为止。日本的Mugen玩家还有个审核员制度,每年审核这些标准角色能不能很好地反应各阶的区别。
这个制度一出现,玩家们就不怎么再抱怨“强度失衡没意思”了。想把角色在一个阶别内调整到最强,也是一门手艺,稍有不慎,就可能击败下一阶的守门人,脱离这个级别。有玩家自豪地在Mugen论坛里评价强度制度,说这个制度中有“平衡的精髓”。
他可能没有想到,格斗玩家永远是追求更强、最强的玩家。很快,Mugen玩家们就开始研究,如何击败其他的狂角色,让自己的角色变成“最强Mugen角色”。改数值这条军备竞赛的道路明显是走不通了:当双方的攻防都是无限大时,数值又有什么意义呢。
Mugen最复杂、也最迷人的一面终于被掀开了,玩家们之间的代码战开始了。在这种战斗面前,之前所有靠修改数值登上狂阶的角色,都像是火炮、机枪面前的竹刀木剑一样,不堪一击。
3
幕后的战斗
最基础的代码战是即死。既然对方的防御是无限大,那么就不用攻击,而是用判定直接将对手杀死。这是很直接的逻辑推理。
就是即死这一条,就衍生出了若干层的复杂攻防战。
即死在程序上总要有个触发条件,比如说“对方血量满”,那么开场即死就可以直接击败对手。但是如果对手知道了这点,直接把自己的血量调成开场不满呢。这只是个最简单的例子,实际上大部分即死都采用了多个判定条件:“对方血量满或不满”、“对方站在我的左边或者右边”,力求覆盖所有可能性。
但是防御方也不是没有办法可言。一个普遍的做法就是把自己的角色判定隐藏起来,让对方的逻辑条件找不到目标。我们之前介绍了《灵魂能力》里把自己用彩虹方块包起来的角色,而Mugen里防御即死的角色也是同理,他们在代码层面给自己套了一层彩虹方块。

用彩虹方块让对手摸不到自己的角色
除此之外,还可以直接让游戏的时间停止。既然时间不继续走,对手当然就不能进行任何判定了。
即死逐渐在Mugen里发展出了一套专门的“即死技术”,专门研究各种即死的实现方法和防御方法。用这些方法武装起来的角色被称为神阶,神们对战起来其实根本毫无观赏性可言,因为真正的战斗已经不再发生在可以看见的屏幕上,而是在程序内部。虽然大部分作者都会给自己的角色加上大量特效,但是这些特效根本也没什么意义,被Mugen玩家们戏称为“灯光师”。
不过也有很有创意的“灯光师”角色。有人做了一个叫“现实”的角色,这个角色除了武装了很多即死技术外,还会给对手施加精神攻击:一开场,它就会把模型变成对方的样子,然后不停在屏幕上放出大量辱骂对方的话语,“失败者”、“高龄童贞”、“星期一”(指又要上班了)、“天天写简历”……

还有很多精神攻击的话,就不一一翻译了
神阶并不是Mugen作者们研究的尽头。有些作者发现,光靠Mugen内提供的代码已经不能满足他们了,他们开始研究Mugen程序本身的漏洞。
这几乎是降维打击,大部分即死都没法抵抗这种盘外招。比如阻止代码和替换代码,这种人物包干脆直接向对方的角色下手。当对战者电脑加载了人物包,这个人物包就会修改Mugen的程序,让别人对战自己时无法读取代码,也就是直接不让对手上场,或者把对手替换成一个鲤鱼王,那当然是天下无敌。

使用阻止代码技术的人物P蛟
还有些更匪夷所思的盘外招,比如修改获胜画面。有些人物本身毫无战斗力,一上去就被对手击败,但是它会直接修改获胜画面,即使自己输了,也让游戏显示“You win”。
修改代码的巅峰是一个名字为“魔女之混元至尊”的人物。这个人物的根基建立在Windows XP系统的某个内存泄露漏洞上,因此即使是其他修改Mugen程序的人物,也无法击败直接从系统下手的魔女。

魔女会让Mugen只能播放自己的画面
这种修改代码走火入魔之后,就变成了真的电脑病毒。有些玩家在加载了人物包后上论坛反映说,自己用了这个人物包后游戏一打开就是这个人物的动画,就连重新安装游戏也没办法解决。大家推测是这个人物修改了系统的注册表,最后他只能重装了系统。
Mugen玩家们开始反思这种愈演愈烈的代码战是不是过了火。几年前,几位研究代码战的资深玩家号召将超出一定限度的人物包收回,不要让它们伤害到Mugen圈——有些玩家根本不懂这些代码人物包怎么用,就为了炫耀和争强好胜,就把它们下载下来和别人对战,最后双方都闹得不愉快,这污染了Mugen的环境。
Mugen版的核武器不扩散条例效果不错。像混沌魔女、P蛟这种修改代码的超级人物现在已经基本没法在网络上搜到人物包或者代码了。很快,他们变成了神话故事里的传说人物,一些玩家会在过去神级人物对战的视频下评论:“这个角色都这么强了,当年被评为最强角色的XXX真是令人神往啊”

混元魔女视频下的评论
尾声
很多人并不能理解研究Mugen人物的强度到底有什么意义可言。
一位国内制作Mugen对战视频的作者曾经说过一个有些好笑的例子:他说他年轻时带一个朋友入坑Mugen,上来就给朋友看了好几场代码战,结果朋友看完后一个劲嘲笑他“好强哦即死哦神哦”:因为代码战斗双方就是站在那,屏幕闪了一会就结束了,胜负在后台已定。没研究过Mugen代码的人完全弄不懂这到底有什么意思。
这个疑问不妨用Mugen诞生之初的故事来回答。
Mugen的开发者叫Elecbyte。他开发出Mugen时,只给这款格斗引擎写了一个内置角色,叫功夫男。功夫男还有一段挺无聊的背景故事,有天他和女朋友出去散步,结果被坏人抓走了女朋友,功夫男前往坏人的基地救女友,打败了一个自己的复制人后却发现,更强的敌人还没被开发者做出来,因此坏人方无法被击败,他的女朋友当然也就救不回来。

剧情这么写道:“不要哭,功夫男,也许下次你有机会……”
这个故事没什么逻辑可言,可能是Elecbyte觉得剧情对于一个格斗引擎并不重要。但是这个剧情背后的某些东西却一直伴随着Mugen。直到二十多年后,Mugen已经衍生出了他当年肯定无法想象的圈子和体系后,“更强的敌人还没有被做出来”这点仍然是Mugen最核心的主题。
做出更强的人物击败对手,而不是追求可玩性、故事性,这就是Mugen作为一款游戏引擎和其他游戏引擎最大的区别。在每一个苦心孤诣试图做出最强角色的Mugen作者耳边,可能都回响着这样的声音:“不要哭,开发者,也许总有一天你有机会……”

乾坤奥妙大葫芦
校验提示文案
大仙鱼
校验提示文案
[已注销]
校验提示文案
zian
校验提示文案
黑与夜的白
校验提示文案
永夜归返
校验提示文案
大镰有个阿瓦隆
校验提示文案
Raphael韬
校验提示文案
手推车
校验提示文案
眺望南极
校验提示文案
清天幽梦
校验提示文案
Tuzi先生
校验提示文案
我擦嘞闹不住姑
校验提示文案
我擦嘞闹不住姑
校验提示文案
Tuzi先生
校验提示文案
清天幽梦
校验提示文案
眺望南极
校验提示文案
手推车
校验提示文案
Raphael韬
校验提示文案
乾坤奥妙大葫芦
校验提示文案
大镰有个阿瓦隆
校验提示文案
永夜归返
校验提示文案
黑与夜的白
校验提示文案
zian
校验提示文案
[已注销]
校验提示文案
大仙鱼
校验提示文案