[转] [知乎] 浅谈Roguelike

浅谈Roguelike
从柏林诠释说起
在2008年召开的国际Roguelike开发会议上,众多的Roguelike开发者与爱好者共同制定了《柏林诠释》,规定了Roguelike游戏需要具备如下的重要元素:
- 游戏使用过程生成地图来增加可重玩性。
- 游戏的角色会永久死亡,存档无法用来从永久死亡状态恢复角色。
- 游戏采用回合制、网格化地图,玩家可以有足够的时间思考每一步的决策。
- 游戏非模式化,玩家可以采取的行动不根据游戏的状态而变化。
- 游戏路线非线性,玩家可以用不同的手段来达成相同的游戏目标。
- 游戏具备资源管理玩法,玩家必须合理配置其资源的消耗来最大化生存的可能。
- 游戏专注于怪物战斗,玩家没有和平选项来跳过战斗。
- 游戏鼓励玩家探索地图来获取随机分布在地图上的各类道具。
除此之外,Roguelike游戏还往往包括如下的次要元素:
- 玩家采用单一角色通关游戏。
- 怪物具备一些和玩家相同的能力,如与场景道具互动,施放法术等。
- 游戏具备战术上的挑战,迫使玩家需要尝试很多次才能学会最适合的生存战术。
- 游戏采用ASCII字符表示的地块组成的地图。
- 游戏包含地下城探索,地下城由房间和连接房间的走廊组成。
- 游戏会将玩家角色的统计显示出来。
然而,给游戏制定一个“标准”往往就是一个立flag的事情。当下所流行的,为我们所熟知的roguelike游戏中,有许多游戏不完全具备上述特点。我这里将一些steam上标有rogue-like标签的热门游戏列出来,与上述的柏林诠释进行比对:
《杀戮尖塔》(Slay the Spire):不完全具备网格化地图。
《死亡细胞》(Dead Cells):非回合制,不具备网格化地图。
《暗黑地牢》(Darkest Dungeon):不完全具备网格化地图。
《饥荒》(Don't Starve):非回合制,不专注于怪物战斗。
《以撒的结合》(The Binding of Isaac):非回合制。
《挺进地牢》(Enter the Gungeon):非回合制。
可以看出,回合制、网格化地图、ASCII字符地图等游戏元素带有深刻的时代烙印。随着机器性能的发展和开发工具的多样化,回合制和网格化地图不再是roguelike的必选项了,并且它们对roguelike的本质,对这一品类的核心乐趣,不具备足够的贡献度。真正能被继承下来的,是随机生成游戏内容(Procedural Generation)+永久死亡(Permadeath)+资源管理(Resource Management)这三大核心要素。
可这三大核心要素,在太多的玩法迥异的游戏中都出现了。带有永久死亡元素的有P社游戏铁人模式,骑砍直面人生,Diablo专家模式等,在此基础上带有随机生成内容和资源管理的也有Minecraft,无人深空等等游戏的部分模式,而我们不可能把它们都称作Roguelike。这说明三大核心要素自己并不能构成核心玩法,这些游戏的核心玩法还是动作与战斗,是采集与建造,是策略,是解谜等。Roguelike元素能做的,是围绕这个核心玩法,给它添油加醋,创造出与常规玩法不同的体验。
那Roguelike游戏为何要把这三个要素放在一起呢?这些要素显然存在紧密的联系,我想先从永久死亡说起。
核心要素:永久死亡
永久死亡的机制,是和存档系统密不可分的。存档系统主要分为检查点存档和即时存档。存档系统的初衷,是为了便于玩家恢复游戏状态,避免因非游戏因素(现实中出门办事/晚上睡觉)等被迫终止而带来损失,也是PVE游戏的一大优势。存档系统避免的损失,是玩家的游戏时间,是玩家必须重来的游戏部分。游戏设计中,让玩家重新去玩一部分一模一样的游戏内容只有一种原因:玩家没有消费完这部分内容,也就是没能成功掌握这部分内容。而存档系统在这里便可以限制最大失败惩罚,在玩家失败时让游戏恰好回溯到玩家未能掌握的内容之前,而不是让他从头玩一遍。
不过存档系统的存在,也限制了游戏设计中的风险设计。在现实中,任何可能引起的损失都会是风险的一部分;而在游戏里,由于存档这种回溯时间线的方法存在,只要损失达到玩家不可接受的程度,玩家都可以通过重来来回复。所以“永久死亡”机制,解决的就是风险设计的问题,把删档作为损失的一部分来增加坏决策的风险。与之相对的是,能让你继续玩下去的,就是好决策。坏决策和好决策共同组成了一个“决策池”(Decision Pool),让玩家从中去做有意义的选择。可如果游戏是单线式,何时何地出现什么怪物都是固定的,那永久死亡的作用,就变成了让玩家重新去玩一部分一模一样的游戏内容,这是非常伤害游戏体验的一件事情,这样的决策池,不也毫无惊喜了吗。
核心要素:随机内容
为了避免上述问题,Roguelike需要引入随机地图以及其他过程生成内容,制造不确定性(Uncertainty),让每次开始游戏的所可能面对的体验都不尽相同。从叙事角度看,在每次游玩中玩家操纵的角色所经历过的一切“历史事件”都具备唯一性与不可回溯性;玩家在失去这个角色时,不仅失去了那段游戏时间的努力,也会永久失去那个角色所伴你度过的记忆。可以说过程生成系统及其带来的非线性体验,是永久死亡机制下,避免内容高度重复的一个手段。
上面说到的“决策池”,是玩家当下能进行的、对游戏会产生深远影响的行为总和,此前说到的Roguelike“非模式化”的特点,就是指游戏不会因当前状态与模式上的不同而使决策池发生根本变化。而决策池中,包含了好的决策与坏的决策,但不应该包含“明显好”的决策和“明显坏”的决策。根据Meaningful Choice的观点,所有的决策收益都必须和当下的游戏状态紧密相连。而引入随机元素制造非线性体验的结果,便是玩家的可以得到的选择极难达成全局最优。永久死亡+随机因素在决策层面产生的影响,就是强迫玩家就必须接受“非最优”的选择无处不在这个事实,接受当下的局部最优解,减少玩家追求全局最优解的动力,把精力转向“继续游戏”这件事情上。
然而对于缺乏经验的玩家来说,如果在游戏中缺少前后的连接(Context)和显性的提示时,他是很难时刻分辨游戏的决策优劣的。因此,在roguelike游戏的高惩罚到来之时 ,他会倾向归因为“是这游戏没教会我,我才失败的”,而不是“我之前有几个决策做的不对,我才失败的”。这样的决策系统,即使玩家失败了,想要从头再来,学习如何掌握这样的游戏,也会因为缺少相关的线索而无从下手。
核心要素:资源管理
资源管理系统,在这里就是决策对应的线索。游戏用资源对玩家的选项浅度量化,把决策的一部分引导到资源管理上,便于玩家从中学习和重来。一般意义上,虽然有随机因素的干扰,玩家消耗资源越多的地方,在这上面得到的帮助也越大;在玩家失败并接受删档惩罚的时候,可以从资源的角度分析失败的原因,从而在下次重来时重新配置资源分配。资源管理玩法,最怕出现的情况之一,是由于系统的简单化,让全局最优解可以很容易通过数值意义上迭代来逼近;而在Roguelike这里,随机生成的游戏内容恰好一定程度隐藏了全局最优解,帮助达到了延长游戏可重玩性的目的。
总的来说,符合Roguelike定义的游戏往往同时使用永久死亡、随机生成和资源管理玩法等要素,在一个外来的核心玩法的推动下,围绕决策的风险和收益,大大延长了游戏的可玩时间,并创造了独特的游戏体验。然而,上面提到的逻辑,也就是roguelike们想做到的事情,一直都能这么顺利的实现吗?
Roguelike并非完美
在Roguelike游戏中,存在着诸多的技术和设计隐患,限制了往这一方向靠近的部分游戏作品的表现。最常见的之一便是存档系统的问题了。永久死亡机制高度依赖于存档,而大多数游戏的存档是存放于本地的,这意味着玩家只要乐意,是具备完全的解读和修改的能力的,隐藏存档位置和加密移位也只是延后了修改器的研发而已。只有逻辑和存档放在服务器端上的游戏,其永久死亡模式才可以说是完备的,但带来的成本也是不容忽视的。存档破解的选项存在意味着最大死亡惩罚在永久死亡模式下只是从重新读档变成了上网查看如何破解存档,哪怕干掉存档系统,内存修改器的存在也使其意义降低,而存档系统的缺失却会完全限制游戏的总通关时长。
存档问题,限制的其实是游戏拔高难度降低容错的能力。Roguelike还往往具备高度随机的关卡、怪物和奖励;在随机因素的作用下,非即时制的Roguelike游戏除了考验玩家的运气和对游戏的了解以外,很难有其他拔高难度的做法;而后者是会很快被玩家摸清的,导致高难度的回合制roguelike在压榨数值时,往往变成一个纯看脸的游戏。看脸的游戏结合高死亡惩罚会带来无效的重复劳动和糟糕的体验,这点爬过塔的同学应该深有体会。因此,基于存档系统的死亡惩罚高度依赖玩家的自觉前提下,从随机因素上制造难度只会挑战玩家的这种自觉,而对通关后的胜利体验帮助不大。
除此之外,大多数Roguelike的非线性游戏特点,也使其很难具备单线性和多线性游戏那样容易的叙事和机制-叙事自洽(Ludonarrative Consistence)能力。以《永恒之柱》为代表的TRPG同样具备永久死亡模式作为可选项和丰富的资源管理玩法,但是为了突出剧情和与逻辑自洽的世界观设定,很难引入过程生成的游戏环境来制造可重玩性。在这一点上,《环世界》作为非线性“过程生成叙事”的代表,通过复杂而自洽的系统演示了高度过程生成的游戏如何创造与玩家存在紧密情感连接的有特点的角色;但它的殖民地管理的核心玩法使其无法完全归入Roguelike标签下,只能说是值得参考的另一种游戏设计的方向吧。总之,大多数Roguelike的关注方向,也并不在此。
其实一个游戏的机制-叙事自洽能力,从商业角度上能很大程度决定这个游戏与竞品相比的体验差异,给玩家一个选你而不是选别人的理由。Roguelike游戏们对这方面的关注度往往低于它们对核心玩法本身的打磨,但一旦打磨不成功便很难在同类中制造区分度,这也是许多打着Roguelike旗号本质换汤不换药的原因。《暗黑地牢》所引入的痛苦系统可以说是这个方向上比较成功的一次尝试,也算是替Roguelike游戏在摆脱柏林诠释的刻板印象,寻找新的突破口指明了方向吧。
[转] [知乎] 浅谈Roguelike的更多相关文章
- 浅谈Android编码规范及命名规范
前言: 目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑. 现大框架已经完成,正在进行细节模块上的开发 抽空总结一下Android项目的开发规范:1.编码规范 ...
- 浅谈 Linux 内核无线子系统
浅谈 Linux 内核无线子系统 本文目录 1. 全局概览 2. 模块间接口 3. 数据路径与管理路径 4. 数据包是如何被发送? 5. 谈谈管理路径 6. 数据包又是如何被接收? 7. 总结一下 L ...
- 浅谈配置chrome浏览器允许跨域操作的方法
浅谈配置chrome浏览器允许跨域操作的方法 一:(Lying人生感悟.可忽略) 最近有一天,对着镜子,发现满脸疲惫.脸色蜡黄.头发蓬松.眼神空洞,于是痛诉着说生活的不如意,工作没激情,工资不高,一个 ...
- 浅谈Java的集合框架
浅谈Java的集合框架 一. 初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...
- js—浅谈方法和思路的重要性(首篇求大佬支持)
js-浅谈方法和思路的重要性 学了这么久的js,我从老师的,同学的代码中发现,老师写的代码比我们的要清楚的很多,基本上没有太多累赘啊,能少的没有少啊等等..... 废话不多说,下面我们来看看这个我的一 ...
- 【javascript】浅谈javaScript的深拷贝
前言: 最开始意识到深拷贝的重要性是在我使用redux的时候(react + redux), redux的机制要求在reducer中必须返回一个新的对象,而不能对原来的对象做改动,事实上,当时 ...
- 浅谈CDN、SEO、XSS、CSRF
CDN 什么是CDN 初学Web开发的时候,多多少少都会听过这个名词->CDN. CDN在我没接触之前,它给我的印象是用来优化网络请求的,我第一次用到CDN的时候是在找JS文件时.当时找不到相对 ...
- Linux的文本处理工具浅谈-awk sed grep
Linux的文本处理工具浅谈 awk 老大 [功能说明] 用于文本处理的语言(取行,过滤),支持正则 NR代表行数,$n取某一列,$NF最后一列 NR==20,NR==30 从20行到30行 FS ...
- 浅谈.Net异步编程的前世今生----APM篇
前言 在.Net程序开发过程中,我们经常会遇到如下场景: 编写WinForm程序客户端,需要查询数据库获取数据,于是我们根据需求写好了代码后,点击查询,发现界面卡死,无法响应.经过调试,发现查询数据库 ...
随机推荐
- MySQL笔记(5)-- SQL执行流程,MySQL体系结构
MySQL的体系结构,可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程:Server层包括连接层.查询缓存.分析器.优化器.执行器等,涵盖MySQL的大多数核心服务功能,以及所有 ...
- Cisco 综合配置(三)
要求: 1.PC1 PC2使用DHCP,获取IP ,VLAN为10 和20,网关在Core Switch 2上2.DHCP和web server VLAN为100,网关在Core Switch 1上3 ...
- command > /dev/null command > /dev/null 2>&1nohup command &> /dev/null的区别
1.对以下命令进行依次区分 command 执行一条普通的命令 command > /dev/null '>'表示将标准输出重定向 '>>'表示追加,/dev/null是一 ...
- [JVM教程与调优] 了解JVM 堆内存溢出以及非堆内存溢出
在上一章中我们介绍了JVM运行时参数以及jstat指令相关内容:[JVM教程与调优] 什么是JVM运行时参数?.下面我们来介绍一下jmap+MAT内存溢出. 首先我们来介绍一下下JVM的内存结构. J ...
- TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人。
简介 TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人. 文章包括一下几个部分: 1.为什么要尝试做这个项目? 2.为 ...
- 为什么我的PayPal 买家账号往商家账号付款,反而从商家账号里面扣款?
如果读者踩了跟我一样坑的话,建议赶紧去检查一下 application.properties 配置文件!!! 解决方法: 不妨试试将上面的 clientId和clientSecret 切换为你的商 ...
- PyCharm3.0 快捷键
1.编辑(Editing) Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + Space 快速导入任意类Ctrl + Shift + Enter 语句完 ...
- iOS UmbrellaFramework
一.umbrella framework 将几个已经封装好的 framework 封装成一个,封装的这种 framework 就是 umbrella framework. Apple 的官方文档中明确 ...
- [noip2012]国王游戏<贪心+高精度>
题目链接: https://vijos.org/p/1779 https://www.luogu.org/problem/show?pid=1080 http://codevs.cn/problem/ ...
- USACO07MAR Face The Right Way G 差分
题目链接 https://www.luogu.com.cn/problem/P2882 分析 这个题来看的话好像有点难下手,不如再去读一遍题 N遍,发现一句话很重要Each time the mach ...