1987年,《魂斗罗》发售。

这款游戏有多大?128KB。

放到今天,这么点容量,连一张手机照片都装不下。

可就是在这128KB里,装下了两个硬汉——按施瓦辛格和史泰龙的样子做的——还有一整套玩法。

不过有个细节,玩过的人大概都有印象。

这两位肌肉猛男,只要一趴下射击,腿就翘起来了。

翘得还挺秀气。

网上给它起了个名字,叫"萝莉式屈腿"。

打开网易新闻 查看精彩图片

趴在地上打枪,为什么非得翘着腿?这到底是画师的趣味,还是另有原因?

答案在硬件里:一行最多画8个活动块

要讲清楚这事,得先知道当年的红白机是怎么画图的。

FC的图像处理器(PPU),有一条很硬的规矩——

在同一个水平扫描行上,最多只能同时渲染 8 个活动块(sprite)。

这里的"活动块",指的是会动的那些东西:人物、敌人、子弹。

超过8个会怎么样?不会报错,也不会卡死。

它会让多出来的那些,轮流闪烁,甚至干脆不显示。

这就是那个年代的游戏,为什么经常"一闪一闪"。

站着占2个格,趴直了要占6个

现在把这条规矩,套到人物身上。

《魂斗罗》里的人物,是"上下长、左右短"的造型。这不是随便画的,是有意为之。

打开网易新闻 查看精彩图片

主角站着的时候,横向只占 2 个活动块。

这一行里,还能容下 3 个敌人正常活动。

可他要是趴下、两条腿直直伸出去呢?

横向一下就占到 6 个活动块。

这一行里,就只剩 1 个敌人的位置了。

多出来的敌人,开始闪。

对一款满屏敌人、横轴狂刷的射击游戏来说,这是要命的。

腿一翘,省下两个格

科乐美的设计师想了个办法。

把趴下时的腿,改成往上翘。

腿一弯,人物横向占用的活动块,从 6 个压到了 4 个。

这一行里,就能容下至少 2 个敌人了。

你看,那个看起来很"少女"的姿势,本质上是一次内存优化。

它不好看,但它管用。

打开网易新闻 查看精彩图片

那为什么不干脆蹲着?

有人会问:趴着占地方,蹲着不是更省吗?

蹲姿确实能让横向占用更少。

问题是,《魂斗罗》需要趴下来躲炮弹。

那些横着飞过来的绿色炮弹,是平着走的。你要是蹲着,炮弹正好打在脸上。

所以只能趴。

那趴,就只剩两个选项:要么直着腿趴、满屏闪烁,要么把腿翘起来。

科乐美选了后者。

再补一个冷知识:人物死亡倒下的时候,腿反而是伸直的,占的还是 4 个活动块。

为什么这时候就不怕闪了?因为死亡动画很短,没人会盯着看。

打开网易新闻 查看精彩图片

三十多年过去,这个姿势成了记忆

现在回头看,"萝莉式屈腿"根本算不上设计上的加分项。

它是被硬件逼出来的妥协。

当年的设计师,手里就那么多资源,想要的东西一样不能少,只能从人物身上一点点抠。

抠出来的那个不那么好看的姿势,反倒成了《魂斗罗》最容易被记住的画面之一。

今天你打开手机上任何一个动作游戏,角色都做得又大又帅,屏幕塞得满满当当。

但你也很难再看到,一个角色会因为"省两个活动块",而变得这么有辨识度。

硬件越来越好。

有些被限制逼出来的巧思,也就跟着,回不去了。