萝莉式“屈腿”,《魂斗罗》里被人忽略的真正秘技竟然是?

在“古董级”游戏玩家圈里,总会时不时提到“萝莉式屈腿俯卧”,这个话题专属于经典游戏《魂斗罗》,大家的“吐槽点”很简单——游戏主角每次趴下射击的时候,腿总是翘着的。在军事电影中,战士们大都紧贴地面,以减小暴露在外的面积,降低被子弹击中的概率。但《魂斗罗》中的屈腿姿势如此惬意,仅仅是为了赢得玩家眼缘吗?

文/张书乐

TMT行业观察者、游戏产业时评人,人民网、人民邮电报专栏作者

新著有《微博运营完全自学手册》

从游戏设计角度来说,受到当年硬件水平的限制,在游戏人物活动过程中,只能确保很小一块像素组成的图形能被成功渲染,一旦画面超过限定长度,就会变得闪烁起来。因此,《魂斗罗》设计师只能让游戏主角“挤一挤”,于是玩家就看到了那屈腿的战士。

在流行红白机的时代,人物设定往往“上下长、左右短”。现在,硬件性能大幅度提升,就连智能手机的“跑分”也很惊人,游戏设计者已经不再有类似的困惑了。但问题依然存在,除了避免“一闪一闪亮晶晶”的问题之外,游戏人物往往很小,小到面目模糊的程度,但空间自由度变得更大。试想,占据小半个屏幕的游戏角色在跑动过程中,一颗花生米大小的子弹飞过来,玩家怎么躲?上蹿下跳、空中翻跟斗,也得预留一定的空间。

由于PPU(物理运算处理器)性能限制,FC游戏机(即红白机)每个水平扫描行只能显示8个活动块。硬件性能上的限制,并没有束缚游戏设计者的想象力,却造就了许多好游戏。比如,《魂斗罗》这款128KB大小的游戏,承载了许多游戏设计技巧,让玩家不仅比拼火力,更要比拼灵活性、弹跳力,等等。如果不受限于8个活动块,又有多少空间可以让玩家更自如地发挥呢?

在当下许多射击类游戏中,就出现了这样的问题。第一人称视角,到处都是视觉死角,很多新手遇到子弹,只能被对手当靶子打。屏幕大小有限,游戏人物设计得太大,根本没有腾挪空间。第三人称视角的游戏,游戏人物如果采取“追尾”模式,可以做到360度无死角。

现在的游戏设备运算能力非常出色,游戏厂商为了吸引玩家,游戏角色往往喜欢用肌肉线条鲜明的威猛先生、胸大腰小的九头身美女。为了让玩家在小小的手机屏幕上看得更清楚,游戏人物占据屏幕的面积就只能变大了。但是,这也让手机屏幕显得不够用,玩家缺少了闪转腾挪的空间,很难进行游戏操作。

如此看来,“萝莉式屈腿”带来了设计师意料之外的效果:游戏人物变短小了,不仅可以节约内存,还不容易被子弹击中。这恰恰是游戏设计师最渴望实现的一个境界,而且往往是无意之中达到的。《幽浮X-Com》游戏的设计师朱利安·格鲁普曾说过:“我设计了游戏的整个系统,但是我仍不知道什么才是最佳的战略或战术。正是这一点造就了优秀的游戏。”

奇怪吗?一点也不。设计游戏的那位大师,或许连刚玩游戏一两个小时的新手都打不过,这很正常,因为设计师可以超越游戏设定本身。正因如此,游戏纪录才受到玩家关注。比如,去年12月,一名俄罗斯玩家刷新了《魂斗罗》的通关纪录,用时仅为11分15秒,将之前的纪录足足提升了9秒,引发轰动。

玩家不是机器人,在游戏设计者作为“上帝”定义的“伊甸园”里,玩家有个任务,就是找到游戏漏洞,然后“偷吃禁果”。(刊载于《人民邮电报》2017年5月26日《乐游记》专栏145期)

时间: 2024-10-12 19:44:12

萝莉式“屈腿”,《魂斗罗》里被人忽略的真正秘技竟然是?的相关文章

30年前《魂斗罗》里藏着的秘密,你竟然是这样一个关卡!

前不久,有一位读者在微博上给我留言,针对我写的一篇回顾红白机时代射击类游戏的文章,他问道:"你对射击游戏的认知甚至停留在上世纪80年代,请问<毁灭战士><反恐精英><战地><荣誉勋章>等等,是被你吃了吗?" 我当时真的有想回复的冲动,比如回复"吃不下.会噎着"之类的话语.可最后,我还是克制了自己,言不由衷地回复道:"谢谢对我上世纪80年代回忆文章的批评指正." 文/张书乐(TMT行业观察者.游戏产业

魂斗罗、双截龙你一定玩过,但你知道为什么它要“山寨吗?

"初代游戏两关纵深行进的军事基地.第七关充满机械利爪的工厂.<超级魂斗罗>第四关巨大的升降梯,都契合了<终结者>(1984).<机器战警>(1987)以及<霹雳五号>(1986)等科幻电影对于机械与机器人的描绘."看到网上这段文字时,我的脑海里突然有了一种恍然大悟的感觉. 文/张书乐 TMT行业观察者.游戏产业时评人,人民网.人民邮电报专栏作者 新著有<微博运营完全自学手册> 经典游戏<魂斗罗>里两位主角可以让人看

模拟售票窗口前的顾客队列,在队列最前面的人最先买到票。已经买到票的顾客出队,当库存票售完或队伍里没人则停止销售。

<script>var queue = new Array(); //购票队列function client(name) //顾客对象{ this.name = name; //顾客名字 this.ticket = NaN; //票号}queue.push(new client("Lily"),new client("Peter"),new client("Vicky"),new client("Tom"),new

js实现魂斗罗版的棍子英雄小游戏ContraHero

一直想用canvas写一个魂斗罗游戏,但是发现自己水平和学习能力差太多,收集好素材之后发现一个棍子英雄的小游戏挺火,就产生了写本文这个游戏的想法.直接上demo,建议在chrome下:点我. 简单说下写这个小游戏遇到的2个坑爹问题: 1.之前下的素材music.mp3这个文件,其实是3段音频.最后几秒是魂斗罗结束时的音乐,我想在结束的时候直接从调用最后几秒的音频.查了一下audio,很容易找到了audio的currentTime这个属性可以设置音频的播放位置.但是我本地测试的过程中,这个属性是一

发现爱因斯坦被人忽略的理论

一本被科学家们忽略了几十年的手稿曾透漏:爱因斯坦曾经有过一个替代我们现在所知的宇宙大爆炸理论,而不是提出宇宙在逐步并永久扩大的理论.最近挖掘出的著作,写于1931年,让人不禁想起有英国天体物理学家弗雷德·霍伊尔倡导了近20年的理论.爱因斯坦很快就放弃了这个想法,但手稿揭示他曾继续犹豫,接受宇宙是在一个单一的爆炸事件中建立的理论. 大爆炸理论的证据首次出现是在20世纪20年代,当时美国天文学家埃德温·哈勃和其他人发现,遥远的星系正在远离,空间本身正在扩大.这似乎意味着,在过去,可观测的宇宙中的内容

MyBatis 中 @Param 注解的四种使用场景,最后一种经常被人忽略!

有一些小伙伴觉得 MyBatis 只有方法中存在多个参数的时候,才需要添加 @Param 注解,其实这个理解是不准确的.即使 MyBatis 方法只有一个参数,也可能会用到 @Param 注解.但是,在你总结出规律之前,你可能会觉得莫名其妙,有的时候一个参数明明不用添加 @Param 注解,有的时候,却需要添加,不添加会报错. 有的人会觉得这是 MyBatis 各个版本差异的锅,不可否认,MyBatis 发展很快,不同版本之间的差异还挺明显的,不过这个加不加 @Param 注解的问题,却并不是版

javaScript函数式编程-包含闭包、链式优化及柯里化

本文着重介绍个人理解的函数式编程. 函数式编程个人理解为:以函数为主要载体的编程方式. 好处: 语义更加清晰 可复用性高 可维护性好 作用域局限.副作用少 基本函数式编程: //实现数组中每个单词首字母大写 //一般写法 const arr = ['apple','orange','pear']; for(const i in arr) { const c = arr[i][0]; arr[i] = c.toUpperCase() + arr[i].slice(1); //slice()从已有的

花花世界里的人(文/高莎莎)

我相信因果循环,这个世界上所有发生的事情都是有成因的.你若种下善的因,也定会结出善的果.一个人一辈子最重要的仪式大概只有两个:一个是婚礼,一个是葬礼.婚礼大概是一生最鼎盛的时期,那个时期的你拥有着爱情,事业,以为得到了全世界.葬礼就真正体现了你这个人一辈子的人品,大家会真正地严肃地评价一下你的一生.其实有一个矛盾,有些人追求现世生活的美好,为了有些目的不择手段,他活着的时候的确很风光,死了却被人诟病.而另一些人平常并不起眼,死了却被很多人记得.不同人的不同追求,罢了!

获取响应式表单FormGroup里的formControl对象示例

获取FormGroup里的FormControl对象,通过FormGroup对象的get("FormControlName 名") 示例: 在根模块导入 import { ReactiveFormsModule } from '@angular/forms'; @NgModule({ declarations: [ AppComponent, HeroFormComponent, FormcontrolComponent ], imports: [ BrowserModule, App