前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >『塞尔达-旷野之息』的二段跳是如何实现的

『塞尔达-旷野之息』的二段跳是如何实现的

作者头像
沙因Sign
发布2018-12-21 09:53:33
27K0
发布2018-12-21 09:53:33
举报
文章被收录于专栏:SignSign

首先,正常情况下,塞尔达(林克)只能进行一段比较近距离的跳跃。

但是,在跳起后进行『盾跳』,再取消盾牌,则会恢复『非盾跳』状态,这时候可以操作炸弹进行爆炸,把林克炸的更远。

看下大神操作里的示例:

一些玩过塞尔达的同学可能会表示,这不是bug吗?什么2段3段,桃白白飞,都是利用游戏bug进行的操作,有什么好实现的?难道bug还是程序员人为写的?

嗯,这个先放一边,我们等下讨论,我们还是先说这个是操作的过程中发生了什么吧。

在塞尔达里,林克踩上盾牌之后是不能进行其他的道具操作,但是在盾跳起跳后,林克就会获得一个远比普通跳跃高的多的跳跃初始速度。

一般情况下,跳跃的代码实现是一个很简单的物理公式。

一个 向上的初始速度+重力加速度。

而盾跳的向上初速度是远比普通跳跃的初速度高上许多。

(旷野之息的物理法则比这要复杂很多,比如向上初速度可能就是由各种牵引力产生,这里只分析最简单的情况)

因为盾跳会导致林克在空中产生更长的滞空时间,所以游戏里默认,盾跳后不能进行其他操作。

因此在这一步骤中,林克的状态里会添加一项『盾跳滞空状态』。

但是在空中解除盾牌后,林克却返回了『初始状态』。这导致林克又重新可以进行道具操作。

最后实现这远比『游戏规定』的跳跃距离远的多的『2段跳』。


说完原理,然后,我们来讨论下,这个是『bug』吗?

emmm

这个可以说是『bug』,但又不是『bug』。

首先,这个操作不难。玩过『马里奥 奥德赛』的同学应该知道,奥德赛里有类似的操作,而你如果仅仅是想收集到奥德赛里『接近一半』的月亮,你都会频繁的用到类似的操作。

所以在旷野之息里,很明显这对制作者而言不是什么『没想到还能这样玩』的操作。

但是,这的确是由于『解除盾牌』触发的『状态初始化』而产生的结果。

一般情况下,这种触发很大概率是『程序员』设计时遗漏的(至少我经常这样)。

所以,我们需要从『本质』去看待这个东西。

『bug』分很多种,有些是毁灭性的,有些无伤大雅,而有些是良性的。

很显然,这个bug并不是那种『非修不可』的东西,甚至于,可能是制作者故意遗留下来的。

毕竟塞尔达里有太多地方,你以为你走到了这个游戏的『世界边缘』,想大肆分享炫耀,结果发现那里藏着个呀哈哈……

一切都在制作者大神的计算之中,气skr人。

所以,如果是制作者故意遗留下来的bug,那还是原本意义上的bug吗?

(这里不是说旷野之息毫无bug,因为有些地方明显是出了问题,比如某次我在山上遛马的时候就卡到缝隙里去了……)


正文完,后面是碎碎念。

有同学表示,『为啥要讲这种『虚无缥缈』(不实用)的技术啊?我们正常人有机会开发塞尔达或怪猎什么的吗?你这看起来就是为了蹭热度的感觉,还不如多讲讲一些更『实用』的技术』。

然后给我发了几篇类似『俄罗斯方块的制作教程』一类的文章,大概是想说『技术文章就该这么写』。

emmm

首先,那种文章随便一搜一大堆,不需要我再去复制黏贴吧……

其次,明人不说暗话,我抽空发这些文章是为了给『精灵之息』打广告。

毕竟如果之后每篇都是在广告精灵之息,那样也不太好。

所以的确是有蹭热度的意思哈。(不要脸的承认了)

最后,虽然内容引用了『塞尔达』这种顶尖游戏做示例,但讲的东西其实非常浅显,并不能归类到『不实用』里……

很多『大游戏』的技术架构是很复杂而且伟大,但那不意味着他们里面一小部分的互动不会使用的是基础而又通用的技术。

而『大游戏』和『小游戏』的差距,很多同学没搞明白。

很多同学认为,游戏的『大小』就是指游戏的体积。基本上就是这个游戏10g,它是大游戏,这个游戏只有2m,它是小游戏。

『这个登录微信小游戏平台的游戏有100m,所以它是重度h5游戏』。

emmm,至少,我每次提到的游戏『大小』不是指这么粗浅的东西。

具体的,这里还是不讨论了,只是可以告诉大家。

画面当然很重要,甚至可以说,这个时代的最尖端的游戏技术之一,就是在和画面做交易。但其却不是决定一款游戏『大小』的最主要因素。

有些游戏看似有『一万多个关卡』,但它还是『小的不行的小游戏』。

旷野之息的原型就是个fc上的像素游戏,但它不比其他的游戏『小』。


最近忽然找到一些合适的词汇去描述一些事情。

有些人比较在意形式,而有些人更看重本质。

我属于后者。

这什么意思呢?

举个例子,对于在意形式的人来说,『做网站』和『做游戏』,这是两件完完全全不同的事,对吧?『正常人都是这样想的啊』。

但,对于我这种只看重『本质』的人来说,这两者的区别并没可能从制作内容或方式上就简简单单的分为 完完全全的不同的事。

毕竟,不管『做网站』还是『做游戏』,还不是一样『用代码把图拼起来』?

对于我而言,要区分这两件事,唯一的方法就是,如果我正在制作时,感到很开心,那说明我在『做游戏』。非常的唯心主义对吧?

但实际上很好理解,一个提需求的人,他为了告诉你他要的效果,他可能会去体验你做好的东西,几十遍,然后提出各种修改意见。

但是,你为了制作这个东西,实际上已经体验了成百上千遍,难道你不觉得痛苦么?

『不会啊,因为如果制作网站的话,我会很不爽,但是如果制作的内容是游戏,我就是很高兴,因为我就喜欢做游戏啊~』

『你真棒!』

这里就涉及到另一个很明显的区别:

对在意形式的人而言,什么是『游戏』?

其实我也不是很了解,但是最近发现貌似,比起本质更在意形式的人认为『游戏必须有游戏的样子,特别是画面表现形式』。

但是对于看重本质的人(比如我)而言,『游戏就是游戏,只要好玩,什么都可以是游戏』。

特意找了一下以前的文章,发现我的观点一直没变过,但是却被人误会越来越深……

月千之夜


当然,这里并不是说『看重本质的人』和『在意形式的人』孰好孰坏。只是简单的摊开讲了有这两种不同的看待事物的方式。

而且,『只看重本质』的人的确应该多『在意形式』一点才行,这个也是一直在告诫自己,却一直没有办到的……


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Sign 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档