1987年,《魂斗罗》发售。
这款游戏有多大?128KB。
放到今天,这么点容量,连一张手机照片都装不下。
可就是在这128KB里,装下了两个硬汉——按施瓦辛格和史泰龙的样子做的——还有一整套玩法。
不过有个细节,玩过的人大概都有印象。
这两位肌肉猛男,只要一趴下射击,腿就翘起来了。
翘得还挺秀气。
网上给它起了个名字,叫"萝莉式屈腿"。
趴在地上打枪,为什么非得翘着腿?这到底是画师的趣味,还是另有原因?
答案在硬件里:一行最多画8个活动块
要讲清楚这事,得先知道当年的红白机是怎么画图的。
FC的图像处理器(PPU),有一条很硬的规矩——
在同一个水平扫描行上,最多只能同时渲染 8 个活动块(sprite)。
这里的"活动块",指的是会动的那些东西:人物、敌人、子弹。
超过8个会怎么样?不会报错,也不会卡死。
它会让多出来的那些,轮流闪烁,甚至干脆不显示。
这就是那个年代的游戏,为什么经常"一闪一闪"。
站着占2个格,趴直了要占6个
现在把这条规矩,套到人物身上。
《魂斗罗》里的人物,是"上下长、左右短"的造型。这不是随便画的,是有意为之。
主角站着的时候,横向只占 2 个活动块。
这一行里,还能容下 3 个敌人正常活动。
可他要是趴下、两条腿直直伸出去呢?
横向一下就占到 6 个活动块。
这一行里,就只剩 1 个敌人的位置了。
多出来的敌人,开始闪。
对一款满屏敌人、横轴狂刷的射击游戏来说,这是要命的。
腿一翘,省下两个格
科乐美的设计师想了个办法。
把趴下时的腿,改成往上翘。
腿一弯,人物横向占用的活动块,从 6 个压到了 4 个。
这一行里,就能容下至少 2 个敌人了。
你看,那个看起来很"少女"的姿势,本质上是一次内存优化。
它不好看,但它管用。
那为什么不干脆蹲着?
有人会问:趴着占地方,蹲着不是更省吗?
蹲姿确实能让横向占用更少。
问题是,《魂斗罗》需要趴下来躲炮弹。
那些横着飞过来的绿色炮弹,是平着走的。你要是蹲着,炮弹正好打在脸上。
所以只能趴。
那趴,就只剩两个选项:要么直着腿趴、满屏闪烁,要么把腿翘起来。
科乐美选了后者。
再补一个冷知识:人物死亡倒下的时候,腿反而是伸直的,占的还是 4 个活动块。
为什么这时候就不怕闪了?因为死亡动画很短,没人会盯着看。
三十多年过去,这个姿势成了记忆
现在回头看,"萝莉式屈腿"根本算不上设计上的加分项。
它是被硬件逼出来的妥协。
当年的设计师,手里就那么多资源,想要的东西一样不能少,只能从人物身上一点点抠。
抠出来的那个不那么好看的姿势,反倒成了《魂斗罗》最容易被记住的画面之一。
今天你打开手机上任何一个动作游戏,角色都做得又大又帅,屏幕塞得满满当当。
但你也很难再看到,一个角色会因为"省两个活动块",而变得这么有辨识度。
硬件越来越好。
有些被限制逼出来的巧思,也就跟着,回不去了。
热门跟贴