一、(译)使用“马里奥方法”设计游戏关卡

2024-01-31 09:50

本文主要是介绍一、(译)使用“马里奥方法”设计游戏关卡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

译者序

《马里奥》的关卡设计历经多个系列的积淀和发展,已经达到了同类游戏无法企及的高度。关于《马里奥》关卡设计方法的论述和研究,无论是通过开发者采访还是研究者解构游戏反推,目前游戏业界已有不少相关文章。然而很多设计师依然没能从这个长寿的游戏系列中汲取到养分,大量粗制滥造的Platformer关卡设计就是证据。这里翻译的这篇文章利用一个完整的游戏关卡实例深入浅出地讲解了“马里奥方法”的核心概念,是我看过的最佳相关教材。

作者序

几年前,我写了一本书专门分析《超级马里奥世界》中的每一个关卡(1990),书中我阐释了每一个游戏关卡在设计时所遵循的系统方法。《超级马里奥世界》是值得学习的一代经典,但从中习得的知识却可以广泛地应用于各类游戏设计领域。”马里奥关卡设计法“,或者说”任天堂关卡设计法“实际上存在于大量游戏之中——甚至是那些并非任天堂开发的游戏。

本教程中,我们将一睹自90年代起便不断在进化的优雅关卡设计方法。随着游戏设计师(特别是任天堂的设计师)对于他们的技艺日臻成熟,他们排布关卡内容的方法也日趋直观。在此,我将为你讲解如何在自己的游戏中使用这些直观的关卡设计方法。

我的范例

我使用”马里奥方法“搭建了一个《超级马里奥制造》关卡用于教学,视频如下:

width="100%" height="400" src="http://player.youku.com/embed/XMTQxOTIzODExMg==" frameborder="0" allowfullscreen="" style="box-sizing: border-box;">

关卡ID:0740-0000-00CD-4D5B

挑战,韵律,技巧主题

我们将要学习的关卡设计法的全名是”挑战,韵律,技巧主题“(Challenge, Cadence, Skill-Theme),简称CCST。为了方便起见我将使用《超级马里奥制造》中的关卡来讲解CCST方法的核心思想。不过我在《洛克人》、《银河战士》、《传送门》、《半条命》、《超级食肉男孩》等很多其他游戏中也看到了CCST方法的运用。通过实践,你也可以在自己钟爱的某些游戏中洞悉到CCST的存在,并将其运用于自己的游戏之中,更好的组织关卡内容并为游戏增加深度。

挑战

首先需要定义并理解什么是”挑战“。

一个挑战是指被 安全边界包围的、玩家必须 一次性完成的、一小段 任务

下图展示了一个挑战:马里奥必须跳到悬崖上方的移动平台上然后跳下来。


在移动平台的左右两侧,玩家可以安全地驻足等待,不过一旦跳上移动平台,玩家就必须格外小心以防坠落悬崖损命——因此,这个挑战开始、结束于移动平台左右两侧安全而稳固的地面。

让我们再看一个更复杂些的例子:我为接下来的挑战增加了一个不同类型的移动平台(纵向移动平台)。对于这个挑战,安全的边界依然是两侧的固定地面,但这一回玩家必须跳过两个不同类型的移动平台才能再次抵达安全地带。


虽然这个挑战的内容更多、难度更大,但它依然是一个挑战,因为玩家必须一次性跳过两个移动平台才能抵达右侧的挑战安全边界

挑战有时可以做得很庞大,但你必须牢记一个挑战一定会被安全(相对的)边界所隔开,在这些安全边界区域中玩家可以稍作”休息“以应对下次挑战。挑战和安全边界在不同的游戏中也会有所不同,例如在《索尼克》中某些挑战要比《马里奥》长很多,因为索尼克移动速度极快,需要更长的距离来减速、急停、变相。即便如此,挑战的概念在这里依然是一致的。

为关卡填充挑战

仅仅知道挑战为何物是远远不够的,优秀的设计师知道如何将他们填充到关卡中。关卡应该逐渐变难,否则就会让人感到无聊。然而设计师决不能将各种挑战杂乱无章地散落在关卡之中——挑战与挑战之间的关系应该连贯而清晰,因此我们需要学习不同类型的挑战以及他们彼此之间的关系。

进化(Evolutions)

我们先来看看上文展示的两个挑战之间具有怎样的联系:

这两个挑战有何不同?他们都是基于移动平台的挑战,只是第二个挑战增加了一些新内容:两个不同类型的移动平台,沿着不同的运动轨迹,依照不同的节奏同时移动。所有这些新增的复杂度均来自”类型“或”方式“的改变。


如果两个挑战的区别来自于新增的” 质变类“元素,我们就将后面这个挑战定义为前者的”进化“。挑战2是挑战1” “上的迭代与提升( 质变)。

我们再看一个进化的例子:


这一次我在两个移动平台之间增加了一个上下移动的电锯。这使得复杂度再一次得到了“质”的提升,使得玩家更难找到合适的跳跃时机。

在复杂度方面这显然不是一个多大的飞跃。任天堂的游戏通常会一小步一小步地提高游戏难度:在一个高难度关卡的结尾,逐渐堆砌起来的进化最终创造出最难的挑战,但是这个过程总是通过一次次小幅度进化完成的。

增量(Expansions)

还有另一种方法可以在遵循关卡核心设计思路的前提下增加挑战难度。在下图展示的挑战中我重新迭代了挑战1,但加入了一处显著的变化:


我增加了固定地面和移动平台之间的距离。由于马里奥的跳跃距离增加了,跳跃的难度也得以略微提高。这就是我所说的增量挑战。

增量是指在上一个挑战的基础上进行某些“ ”上的增加。

如上例所示,两个平台之间的距离被增加至3倍。让我们再看一个例子:


这个挑战和此前第二个“进化”挑战很像,只是我将两个移动平台之间的电锯数量加倍了。由于安全的跳跃时机进一步减少跳跃难度再次提高——不过这些改变均来自简单的“量变”——电锯从1个变成2个。

增量挑战很容易实现,因为设计师只需增加挑战中已经存在的元素。也正因如此,经验不足的设计师经常会过度使用增量挑战(关于这一点我们会在另一篇教程中做进一步讨论)。

进化,增量,重置

在为你的关卡添加进化增量类挑战之前,还有几条设计方法值得一提。

首先,《马里奥》的游戏关卡不会沿着一个方向持续进化,而是经常“重置”回初始状态,再从另一个方向重新开始进化过程。

如下图所示:


我的关卡并未沿着循环移动平台的方向一直增加复杂度,而是中途转向了另一个方向。在这个挑战中,移动平台进化成了单向线性移动平台,马里奥不再需要想方设法跳到另一个平台上,而是要在平台前进的过程中躲避敌人。

虽然运用的技巧是相同的——在恰当的时机跳跃——但这是一个全新的进化方向。在后续的几个挑战中,我们将沿着这个方向持续进化每一个挑战。

接下来的挑战延续了线性移动的点子:


不难发现在这个挑战中我同时使用了“进化”和“增量”。下沉的移动路线属于“质变”,而中间平台上方更多数量的敌人则属于“量变“。因此这个挑战即是一个进化也是一个增量。

在《超级马里奥世界》中,同时进化和增量的挑战和仅在单方面变化的挑战几乎一样常见。

最后,我的关卡结束于这个挑战,在这里我加入了最初的循环移动平台元素:


这是一个惯用的策略——两个不同的进化分支最终在关卡结束时会和。在我的关卡中,循环移动平台和线性移动平台共同构成了最后的高潮挑战。

韵律

现在,我想回到关于“韵律”的定义上来。

韵律是指关卡中所有挑战之间的联系和组合方式。

为了更直观的讲解这个概念,我给我制作的关卡画了一张韵律图:


如你所见,关卡可以分解为两条支线,我称之为“叉子”韵律,然后在终点汇合。

在《超级马里奥世界》和其他任天堂游戏中,我们可以看到各式各样的韵律:


在其他开发者开发的游戏中可以看到更多种类的韵律。韵律结构并不会在关卡设计中束缚你的创意,恰恰相反,韵律带来的限制反而可以更大限度地激发你的创意。

CCST框架只是辅助设计师将他们的关卡内容变得更有条理、更加连贯的工具。“进化”和“增量”理论上可以应用于任何游戏的任何游戏机制。韵律可以辅助理解关卡背后内在的设计模式。

结语

尽管我将上述理论称为我的研究成果,可实际上本文所讨论的所有东西(还有接下来将会讨论的)都浑然天成地融入在了传统游戏之中。理论与实践同样重要,关卡设计没有通用的良方,带上CCST框架,希望它可以帮到你。

原文链接:http://gamedevelopment.tutsplus.com/articles/how-to-design-levels-with-the-super-mario-world-method--cms-25177

这篇关于一、(译)使用“马里奥方法”设计游戏关卡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/663357

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施: