【游戏设计原理】21 - 解谜游戏的设计

news2024/12/23 5:28:51

在这里插入图片描述

你想象一下,刚坐下准备玩游戏,想着“今天得挑战一下我的智商极限!”可结果碰上一个谜题,傻眼了,心里默念:“这啥玩意儿?这游戏是在玩我吗?”如果这个谜题太简单了,你可能会开始怀疑自己智商正常不正常;要是又太难,那你可能会忍不住把手机扔一边,嘀咕:“这游戏是不是不给我活路?”

一个好的解谜游戏就得让玩家既不觉得自己是天才,也不至于被难题搞得怀疑人生。谜题的难度得合适,不能让你觉得“一秒钟就解了”,也不能让你卡得喘不过气。最重要的是,谜题要考验你的脑袋,不是靠“随便点点,试试运气”解决的那种低级操作。

而且,最关键的是,谜题得告诉你:目标是什么? 你得清楚自己要做啥,不然你就会觉得“这游戏到底是在玩我,还是我被它玩了?”这种感觉。

怎么在游戏设计中用上这个原理

  1. 难度适中,不能太简单也不能太难
    游戏的谜题难度得循序渐进,不可能一上来就让玩家觉得“哎呦,咋这么简单啊,我都能瞎猜”。如果一开始就简单的让人想打人,那就不行。关卡得有点挑战,能让玩家有种“哇,难度提升了,但我还能搞定”的感觉。
  2. 面包屑式引导,给玩家点线索
    面包屑是什么?就像是《哈利波特》里的赫敏,时不时给你丢点线索,告诉你该往哪个方向走。游戏中,可以通过小提示慢慢引导玩家,不至于让他们觉得“这到底是啥鬼?”给个小线索,能让玩家自己慢慢发现谜题的解法。
  3. 智慧为主,不是蛮力
    “这关能过吗?”“乱点几下试试看,能行就行。”这种操作方式绝对不适合解谜游戏。好的谜题要让玩家动脑筋,用智慧去解决,而不是靠乱试。游戏要设计得让玩家明白,解决问题靠的是聪明才智,而不是“死磕”或者“碰运气”。
  4. 目标明确,不能搞不清楚
    设计谜题时,给玩家一个明确的目标——“该做啥才行”。不能让玩家一直懵逼,想:“我是不是漏了什么线索?我该做啥?”这样太不爽了。目标得清晰,玩家知道“我得干这个,才能过关”。
  5. 公平和确定性
    解谜游戏可不能随便让你猜。谜题的答案应该是确定的,玩家只要按照正确的方法解决,结果就该是一样的。而不是“今天好运解了,明天坏运就过不去了”这种随机因素。得有规律可循,让玩家知道“只要做对了就能过关”。

小结

设计解谜游戏时,难度要适中,让玩家既能挑战自我,又不至于卡住放弃;要有面包屑式的引导,让玩家逐步获得线索,避免迷失方向;谜题的解答要靠智慧而非“碰运气”;目标明确,让玩家知道自己要做什么,避免困惑;公平性和确定性是必须的,让每个玩家都能通过智慧解决问题,而不是靠随机因素。这些都是设计一个既有挑战性又能让玩家享受的解谜游戏的重要因素。


原理21:解谜游戏的设计

解谜游戏(Puzzles)是游戏中很有意思的一类。设计师斯科特·金(Scott Kim)这样定义“谜题”(puzzle):“有趣的东西,并且有一个正确的解答”。这个定义尽管模糊,却至少提出了一个定义谜题的有用元素:它是有解的。而一个谜题要想达到效果,还有一些其他的要求。

一个好的谜题对它的受众而言既不能太容易,也不能太难。一个完美的谜题应该有恰到好处的难度,让玩家感到挑战,又不会因为太过困难而受挫放弃。要让一个谜题游戏做到这一点,一个好的方式就是面包屑式(breadcrumbs)的引导。这些谜题内或谜题外的提示一步一步引导用户接近答案。例如,在数独(Sudoku)或纵横填字(crossword)游戏中,随着一个一个空格被填上,玩家也就得到了对剩下的空格更多的提示,那些剩下的空格也就变得越来越好填了。在玩纵横填字时,尽管一个玩家在刚开始并不知道其中的一个单词,随着其他单词的填入,这个未知单词的其中一些字母会被陆续填上。面包屑式的引导将游戏中的线索渐进式地提供给玩家,一步一步地降低难度,接近玩家对困难的容忍度。

一个好的谜题应该需要一个聪明、智慧的解决方法,而不是通过简单的蛮力就能解决。看这个例子:“我现在想的是1到10中的一个数字。你猜是哪个?”“1?”“不是。”“2?”“不是。”“3?”“不是。”这就不是一个好的谜题。一个仅有寥寥数条错误路径的迷宫不是一个好迷宫。因此,一些小测试和谜语都不是好的谜题,因为答题者要不就知道答案,要不就不知道,没法把这些谜题分解成一步一步来进行解答。

一个谜题的产生可以是随机的,但当玩家开始解答它时,它必须是确定的。例如,一个数独题可以被随机生成,但当玩家开始解答这道题时,任何两个填了同样数字的玩家都会得到完全相同的结果。如果两个玩家在玩同一个扫雷游戏,当他们以同样的顺序点了同样的方格,他们的经历将是一样的。相反,如果两个人在打网球,当他们做了完全一样的动作,他们的经历会完全不一样。国际象棋,除非你的对手是专门为这个目的而设计的人工智能,也是不确定的。如果一个玩家走了5次相同的棋,他的5个不同对手会有5个(甚至以上)的应对方式。如果规定好确定的几步棋和一些明确的规则,我们也可以设计一个与国际象棋有关的谜题。比如一些解谜杂志中的国际象棋问题,会规定对手的走棋规则,要求在这种情况下在X回合后将死对手。

最后,一个好的谜题必须让玩家知道目标是什么,他们需要进行怎样的操作来达成这个目标。有些谜题让人困扰,就是因为玩家不知道规则。一些老的探险游戏就有这样的问题——像是二个房间里有一些元素很明显是一个谜题,但是这个谜题的目标是什么、需要操作哪些东西、如何操作这样的信息却不展示给玩家。这些“谜题”的设计师通过模糊化规则来增加解谜的难度,但是这样的谜题是不公平的。“玩家需要解决‘如何解决这个问题’的问题”只是一个自以为聪明的借口,让我们不能设计出真正有趣的谜题。

总而言之,当我们设计一个谜题时,要确保:

  • 在难度上要让玩家保持在一个“心流”(参见原理38“心流”)的状态;
  • 需要一个聪明、智慧的解决方法;
  • 是确定的;
  • 从其目标和机制上来说是明确而公平的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2264070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解析交通事故报告:利用 PDF、AI 与数据标准化技术构建智能分析系统

在交通事故处理中,数据的准确性与完整性至关重要。传统上,交通事故报告通常以 PDF 格式呈现,这使得手动提取数据成为一项繁琐且容易出错的任务。随着人工智能与数据处理技术的发展,如何自动化这一过程并提升数据质量,成…

基于Python+Vue开发的体育用品商城管理系统,实习作品,期末作业

项目简介 该项目是基于PythonVue开发的体育用品商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的体…

7.C语言 宏(Macro) 宏定义,宏函数

目录 宏定义 宏函数 1.注释事项 2.注意事项 宏(Macro)用法 常量定义 简单函数实现 类型检查 条件编译 宏函数计算参数个数 宏定义进行类型转换 宏定义进行位操作 宏定义进行断言 总结 宏定义 #include "stdio.h" #include "string.h" #incl…

【LeetCode】906、超级回文数

【LeetCode】906、超级回文数 文章目录 一、通过数据量猜解法 枚举 数学 回文1.1 通过数据量猜解法 枚举 数学 回文1.2 多语言解法 二、打表法 一、通过数据量猜解法 枚举 数学 回文 1.1 通过数据量猜解法 枚举 数学 回文 减小数据规模: 先构成回文, 再平方, 再判断是否是范围…

SpringBoot的创建方式

SpringBoot创建的五种方式 1.通过Springboot官网链接下载 注意SpringBoot项目的封装方式默认为Jar 需要查看一下,自己的Maven版本是否正确 创建成功 2.通过 aliyun官网链接下载 修改服务路径为阿里云链接 创建成功 3.通过Springboot官网下载 点击,拉到最…

Android Studio AI助手---Gemini

从金丝雀频道下载最新版 Android Studio,以利用所有这些新功能,并继续阅读以了解新增内容。 Gemini 现在可以编写、重构和记录 Android 代码 Gemini 不仅仅是提供指导。它可以编辑您的代码,帮助您快速从原型转向实现,实现常见的…

物理信息神经网络(PINN)八课时教案

物理信息神经网络(PINN)八课时教案 第一课:物理信息神经网络概述 1.1 PINN的定义与背景 物理信息神经网络(Physics-Informed Neural Networks,简称PINN)是一种将物理定律融入神经网络训练过程中的先进方…

双臂机器人

目录 一、双臂机器人简介 二、双臂机器人系统的组成 三、双臂机器人面临的主要挑战 3.1 协调与协同控制问题 3.2 力控制与柔顺性问题 3.3 路径规划与轨迹优化问题 3.4 感知与环境交互 3.5 人机协作问题 3.6 能源与效率问题 3.7 稳定性与可靠性问题 四、双臂机器人…

日期区间选择器插件的操作流程

我们知道,在开发过程中,为了能够在规定时间内完成项目,有时候我们都会使用插件来大大提高我们的开发效率,有些插件是可以直接拿来用,但是有些插件拿过来之后是需要进行修改,在使用插件的时候还有很多的注意…

以ATTCK为例构建网络安全知识图

ATT&CK(Adversarial Tactics, Techniques, and Common Knowledge )是一个攻击行为知识库和模型,主要应用于评估攻防能力覆盖、APT情报分析、威胁狩猎及攻击模拟等领域。本文简单介绍ATT&CK相关的背景概念,并探讨通过ATT&a…

“年轻科技旗舰”爱玛A7 Plus正式发布,全国售价4999元

12月18日,备受行业瞩目的“A7上场 一路超神”爱玛旗舰新品发布会在爱玛台州智造工厂盛大举行。 作为年末“压轴产品”的“两轮豪华轿跑”爱玛A7Plus重磅上场,以“快、稳、帅、炫、智、爽”六大超神技惊艳四座,不仅践行了爱玛科技的精品战略&…

精通Redis(一)

目录 1.NoSQL 非关系型数据库 2.Redis 3.Redis的java客户端 4.Jedis 4.1Jedis快速入门 4.2Jedis连接池及使用 5.SpringDataRedis和RedisTemplate 1.NoSQL 非关系型数据库 基础篇-02.初始Redis-认识NoSQL_哔哩哔哩_bilibili NoSQL与SQL的区别就在于SQL是结构化的、关联…

研发效能DevOps: Vite 使用 Element Plus

目录 一、实验 1.环境 2.初始化前端项目 3.安装 vue-route 4.安装 pinia 5.安装 axios 6.安装 Element Plus 7.gitee创建工程 8. 配置路由映射 9.Vite 使用 Element Plus 二、问题 1.README.md 文档推送到gitee未自动换行 2.访问login页面显示空白 3.表单输入账户…

openbmc hwmon与sensor监控

1.说明 参考文档: https://github.com/openbmc/entity-manager/blob/master/docs/entity_manager_dbus_api.mdhttps://github.com/openbmc/entity-manager/blob/master/docs/my_first_sensors.md 1.1 简单介绍 注意: 本节是快速浏览整个sensor框架,了解大致open…

thinkphp框架diygw-ui-php进销存出库记录操作

将进销存的出库明细记录存储到数据库中,thinkphp框架diygw-ui-php后台通常涉及以下几个步骤: 数据库表定义 实现我们定义了三张表、一个产品表、出库订单表、出库订单产品明细表 生成API 进入DIY可视化API代码生成器,我们生成这三张表结应…

vertx idea快速使用

目录 1.官网下载项目 2.修改代码 2.1拷贝代码方式 为了能够快速使用,我另外创建一个新的maven项目,将下载项目的src文件和pom文件拷贝到新建的maven项目。 2.2删除.mvn方式 3.更新配置 4.配置application 5.idea启动项目 1.官网下载项目 从vert…

ComE(Community Embedding) -- 基于嵌入的社区检测优化算法

ComE(Community Embedding)是一种基于嵌入的社区检测优化算法。 它结合了节点嵌入技术与社区划分的目标,能够有效识别网络中的社区结构,并在社区划分过程中捕捉复杂的节点相互作用信息。 算法背景 传统的社区检测方法,…

CSS|14 z-index

z-index z-index表示谁压盖着谁,数值大的会压盖住数值小的。只有定位的元素才有z-index值,只有设置了固定定位、相对定位、绝对定位了的元素,才会拥有z-indexz-index的值是没有单位的,值是一个正整数,默认的z-index值…

重撸设计模式--代理模式

文章目录 定义UML图代理模式主要有以下几种常见类型:代理模式涉及的主要角色有:C 代码示例 定义 代理模式(Proxy Pattern)属于结构型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。 通过引入代理对象&am…

vue中验证码的实现方式

在写登录页的时候有的系统会让你也进行一下验证码绘制,那么验证码如何实现的呢?我在写登录页的时候通过将登录框,验证码分开页面来写,最后将它们变成标签来导入到我的样式页面中,这样写不仅方便,更容易修改…