游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7444|回复: 2

[分享] 游戏世界的物理学—《超级马里奥兄弟》滑行与跳跃的实现

[复制链接]

1万

主题

1万

帖子

3万

积分

论坛元老

Rank: 8Rank: 8

积分
36572
发表于 2015-12-23 15:12:34 | 显示全部楼层 |阅读模式
本帖最后由 小篱 于 2015-12-23 15:22 编辑

QQ截图20151223150904.jpg

  GameRes游资网授权发布 文/Pinxian Li

  有玩家发现在《超级马里奥兄弟》里,有一种“脚底抹油”的效果,放下按键后没有立马停下,还要前进一段路。有人认为这是为了提高关卡的难度。真的是这样的吗?

  作为一个开发过平台游戏,也尝试过自己实现平台游戏的马里奥玩家,我说一下我的回答——这是平台游戏多年尝试和发展的结果。

  首先说明一下什么是“脚底抹油”。其实换一个说法就是横向移动时的“惯性”。就像现实世界一样,汽车刹车后不会马上停下,而是要再前行一段。马里奥这样做,是为了让游戏体验更符合我们日常的认知。至于为什么会觉得脚下像是踩了香蕉皮一样,那是因为马里奥的世界里,阻力要小于我们的预期(以人类跑步为参考标准),简单说就是策划把惯性调大了。

1.jpg

  然而平台游戏并不是一开始就是像马里奥这样带惯性的。早期游戏,如雅达利的大部分游戏中,人物移动是没有惯性的。原因很简单,在低K游戏里,不带惯性的移动在实现上要比带惯性的简单很多,降低运算负担。不带惯性的移动是什么体验?你玩一下《影子传说》就知道了。是不是现在觉得这个人物移动像在异次元一样?

3-1204061140260-L.jpg
影子传说

  随着游戏主机性能的提高,玩家和设计者对人物移动的拟真需求越来越强烈,所以开发者开始增加惯性的概念。这基本能解答题主的问题——这是自然选择的过程。游戏是一种人类学习生存技能的过程,于是人类希望游戏展现的内容符合自己对世界的认知。于是移动中的惯性进入了游戏。只是在之后不同的游戏中,“惯性”的大小不同,产生的游戏效果也截然不同。但无论如何,现在已经很少能见到玩家一放开按键就立刻停下的游戏了(JRPG里还有),只是有的踩皮鞋,有的踩香蕉皮。马里奥属于踩滑板鞋的,似魔鬼的步伐。

  再具体解释一下马里奥中移动的实现。真实情况不是所说的,横向移动不完全符合牛顿经典力学的(跳跃是完全不符合,稍后说)。程序在实现这个游戏功能的时候,最通常的做法会设置几个参数——速度、加速度、减速度(阻力)、最大速度。每个参数还分成纵向、横向两个维度四个方向(以2D游戏为例)。

  当玩家点击横向移动按键的时候,相当于对角色产生了一个横向方向上的力,于是角色开始移动。只要玩家一直按着,这个力就是持续获得的。但和经典力学不同的是,游戏中会有最大速度。当速度超过最大速度就不再增加,即使玩家还按着移动键,移动速度也不会再增加。因为玩家不希望自己的角色最后像屁股安了火箭一样。

  当玩家松开按键时,这个力就消失了。这时一股神秘的、和移动方向相反的力出现了,产生了减速度。这也是和现实世界不同的一点——减速度只在角色停止移动的时候有效(大部分平台游戏就是这样做的,参数填起来直观)。和加速一样,当角色速度变为0(实际上判断标准是小于等于0),这股神秘力量也消失了。于是角色就停了下来。

  这就是“脚底抹油”的实现方法,和物理书上还是有点区别的。

  最后扯一下跳跃的实现

  跳跃是平台游戏的核心。可以这么说,一个平台游戏好不好,首先就看跳做的如何。这一点上,马里奥可谓登峰造极。其调试打磨的水平之高,对得起百年老店的旗号。

  和横向移动类似,当玩家按跳的按键时,会向上产生一个力。不同的是,重力始终是存在的,而不像横向移动的阻力那样时有时无。为什么说跳跃是完全不符合现实世界的规律,是因为角色在半空的时候,仍然能够获得向上的力,就像火箭一样。这样做的结果就是,玩家按键的时间越长,角色跳得就越高。当然有的游戏只在玩家按下按键的那一刻给一个力,这样做无论按多久,角色都只会跳一样的高度——请远离这样的平台游戏,因为说明制作者很业余。但是跳跃会多一个参数——有效时间,当玩家按键的时间超过这个有效时间,角色就会失去向上的力,开始往下掉。当角色掉到平台上的时候,就停了下来。

4770c2eb43e5ee576805f.gif

  这样,一个平台游戏的基础操作部分就完成了。看起来并不难,但第一次做的时候,还是颇费周折的。如果有兴趣,大家都可以尝试做一做,会对马里奥的制作者肃然起敬。

  相关阅读:

  场景互动式新手指引设计(一)从马里奥迈出的每一步

  从马里奥谈场景互动式新手指引(二):机制设置

12

主题

90

帖子

466

积分

中级会员

Rank: 3Rank: 3

积分
466
发表于 2015-12-24 23:00:32 | 显示全部楼层
估计是个策划新手写的

12

主题

90

帖子

466

积分

中级会员

Rank: 3Rank: 3

积分
466
发表于 2015-12-24 23:00:53 | 显示全部楼层
Odiwbr 发表于 2015-12-24 23:00
估计是个策划新手写的

不过我收藏了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-11-30 05:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表