当前位置: 首页 > news >正文

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

在这里插入图片描述

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

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

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

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

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

小结

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


原理21:解谜游戏的设计

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

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

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

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

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

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

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

相关文章:

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

你想象一下,刚坐下准备玩游戏,想着“今天得挑战一下我的智商极限!”可结果碰上一个谜题,傻眼了,心里默念:“这啥玩意儿?这游戏是在玩我吗?”如果这个谜题太简单了,你可能…...

【漏洞复现】Wordpress GutenKit 插件 远程文件写入致RCE漏洞复现(CVE-2024-9234)

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦 一、漏洞概述 1.1漏洞简介 漏洞名称:Wordpress GutenKit 插件 远程文件写入致RCE漏洞复现漏洞编号:CVE-2024-9234漏洞威胁等级:超危影响范围:GutenKit <= 2.1.0…...

深度学习任务简介:分类、回归和生成

深度学习任务简介&#xff1a;分类、回归和生成 文章目录 深度学习任务简介&#xff1a;分类、回归和生成一、分类任务&#xff08;Classification Task&#xff09;什么是分类任务&#xff1f;**分类任务的常见应用**分类任务的输出主要算法 二、回归任务&#xff08;Regressi…...

【测试】Unittest

近期更新完毕&#xff0c;建议关注收藏&#xff01; 目录 简介TestCaseTestSuiteTestRunnerTestLoaderFixture tips:ctrl? 可以看方法的help文档 简介 python自带的单元测试框架&#xff0c;也可以做自动化测试 组织多个用例去执行&#xff0c;用例都是用单独的目录存放的 丰…...

java 根据路径下载文件转换为MultipartFile,并且上传到服务器

直接上代码 controller层 GetMapping("/downloadAndUploadAttachment")UpdateOperationLogging(msg "根据路径下载文件转换为MultipartFile,并且上传到服务器")Operation(summary "根据路径下载文件转换为MultipartFile,并且上传到服务器", de…...

Onvif服务端开发

实现了Onvif服务端的设备搜索和RTSP流的功能。用 ONVIF Device Manager 测试工具可以成功搜索到设备和获取到RTSP流&#xff0c;有的路由器可能不支持239.255.255.250组播&#xff0c;我一开始用的电信的那种光猫路由器二合一的&#xff0c;一直搜不到设备&#xff0c;后面用So…...

【jvm】主要参数

Java 虚拟机&#xff08;JVM&#xff09;有许多参数用于控制其行为和性能&#xff0c;下面是一些 主要的 JVM 启动参数&#xff0c;这些参数通常分为以下几类&#xff1a; 内存管理相关参数 这些参数主要用来配置 JVM 的内存分配策略、堆内存、栈内存等。 -Xms 设置 JVM 启动…...

【优选算法】—移动零(双指针算法)

云边有个稻草人-CSDN博客 想当一名牛的程序员怎么能少的了练习算法呢&#xff1f;&#xff01; 今天就立即开启一个新专栏&#xff0c;专干算法&#xff0c;提高算法能力&#xff08;废柴的我也在准备蓝桥杯哈哈&#xff09;—— 目录 1.【 283. 移动零 - 力扣&#xff08;Lee…...

PostgreSQL标识符长度限制不能超过63字节

文章目录 问题&#xff1a;标识符太长会被截断分析相关源码可以尝试以下案例 问题&#xff1a;标识符太长会被截断 在创建表时&#xff0c;发现表名太长会自动被截断&#xff0c;导致查询表时报错了。 分析 参考&#xff1a;https://www.postgresql.org/docs/current/limits…...

嵌入式硬件面试题

1、请问什么是通孔、盲孔和埋孔&#xff1f;孔径多大可以做机械孔&#xff0c;孔径多小必须做激光孔&#xff1f;请问激光微型孔可以直接打在元件焊盘上吗&#xff0c;为什么&#xff1f; 通孔是贯穿整个PCB的过孔&#xff0c;盲孔是从PCB表层连接到内层的过孔&#xff0c;埋孔…...

深度解析 OneCode 混合编译:创新驱动的开发变革

前言 在软件开发领域&#xff0c;不断追求高效、灵活与强大的开发模式是永恒的主题。OneCode 作为一款引领潮流的开发工具&#xff0c;其混合编译特性正逐渐成为开发界瞩目的焦点。本文将深入剖析 OneCode 的混合编译机制&#xff0c;揭示它如何为软件开发带来前所未有的变革与…...

[文献阅读] Unsupervised Deep Embedding for Clustering Analysis (无监督的深度嵌入式聚类)

文章目录 Abstract:摘要聚类深度聚类 KL散度深度嵌入式聚类(DEC)KL散度聚类软分配&#xff08;soft assignment&#xff09;KL散度损失训练编码器的初始化聚类中心的初始化 实验评估总结 Abstract: This week I read Unsupervised Deep Embedding for Clustering Analysis .It…...

ajax中get和post的区别,datatype返回的数据类型有哪些?web开发中数据提交的几种方式,有什么区别。

在 Web 开发中&#xff0c;GET 和 POST 是两种常见的 HTTP 请求方法&#xff0c;它们有一些显著的区别。此外&#xff0c;datatype 参数在 jQuery 的 ajax() 请求中指定了预期的响应数据类型。接下来&#xff0c;我会详细解释这些问题。 1. GET 和 POST 请求的区别 GET 请求 和…...

网络七层杀伤链

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&…...

GAN网络详解及涨点大全总结(源码)

(需要源码请私信或评论) GAN原理 GAN的基本原理建立在 生成模型和判别模型的博弈过程 上。这种独特的机制使得GAN能够在复杂的分布上实现高效的无监督学习。在这个过程中,生成器G和判别器D相互竞争,最终达到一种平衡状态,在此状态下,G能够产生高质量的合成样本,而D则无…...

【自动化】Python SeleniumUtil 工具 开启开发者模式 自动安装油猴用户脚本等

【自动化】Python SeleniumUtil 工具 【Python】使用Selenium 操作浏览器 自动化测试 记录-CSDN博客文章浏览阅读58次。文章浏览阅读42次。【附件】Selenium chromedriver 驱动及浏览器下载。【附件】Selenium chromedriver 驱动及浏览器下载-CSDN博客。3.安装Chrome浏览器驱动…...

【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区

&#x1f5fa;️博客地图 &#x1f4cd;方法一、timedatectl 命令 &#x1f4cd;方法二、手动链接 /etc/localtime &#x1f4cd;方法三、修改时区变量 在 Linux 系统中&#xff0c;可以通过以下3种方式将系统时区修改为 CST&#xff08;中国标准时间&#xff0c;GMT8 或称 …...

android:sharedUserId 应用进程声明介绍

背景 adb install 安装系统软件报错,原因是签名不一致,进程改变。 代码分析 AndroidManifest.xml 定义的 android:sharedUserId 应用归属进程不同,从phone切换到system。 初始配置 <manifest xmlns:android="http://schemas.android.com/apk/res/android"c…...

解锁ApplicationContext vs BeanFactory: 谁更具选择性?

目录 一、聚焦源码回顾 &#xff08;一&#xff09;源码分析和理解 &#xff08;二&#xff09;简短的回顾对比建议 二、ApplicationContext vs BeanFactory特性对比 &#xff08;一&#xff09;主要特性总结 &#xff08;二&#xff09;直接建议 三、案例简单说明 &am…...

一篇梳理清楚http请求知识点

HTTP请求是Web开发中的重要组成部分&#xff0c;它涉及到客户端和服务器之间的通信。掌握HTTP请求的知识点对于前端开发和后端开发都至关重要。以下是关于HTTP请求的详细梳理&#xff0c;结合代码进行说明。 1. HTTP请求概述 HTTP&#xff08;超文本传输协议&#xff09;是一个…...

Kotlin - 协程结构化并发Structured Concurrency

前言 Kotlin的Project Lead&#xff0c;Roman Elizarov的一片文章https://elizarov.medium.com/structured-concurrency-722d765aa952介绍了Structured Concurrency发展的背景。相对Kotlin1.1时代&#xff0c;后来新增的Structured Concurrency理念&#xff0c;也就是我们现在所…...

新版国标GB28181设备端Android版EasyGBD支持国标GB28181-2022,支持语音对讲,支持位置上报,开源在Github

经过近3个月的迭代开发&#xff0c;新版本的国标GB28181设备端EasyGBD安卓Android版终于在昨天发布到Github了&#xff0c;最新的EasyGBD支持了国标GB28181-2022版&#xff0c;还支持了语音对讲、位置上报、本地录像等功能&#xff0c;比原有GB28181-2016版的EasyGBD更加高效、…...

豆包MarsCode测评:编程效率再提升

豆包MarsCode测评&#xff1a;编程效率再提升 本文正在参与豆包MarsCode AI 编程体验家活动 随着人工智能技术的发展&#xff0c;编程的方式也在悄然发生变化。最近&#xff0c;豆包推出的 AI 编程工具 MarsCode 在开发者社区引发了不小的关注。这是一款支持多种主流编程语言…...

二叉树 -- 堆(详解)

目录 1、堆的概念及结构 2、堆的实现(附代码) 2.1、向下调整算法建堆 3、堆的应用(附代码) 3.1、堆排序 3.2、TOP-K问题 1、堆的概念及结构 如果有一个关键码的集合K { k0&#xff0c;k1 &#xff0c;k2 &#xff0c;…&#xff0c;k(n-1) }&#xff0c;把它的所有元素…...

【Apache Paimon】-- 11 -- Flink 消费 kakfa 写 S3 File

目录 1、项目构建 2、项目新增和修改 2.1 pom.xml 新增依赖 2.2 本地测试或者 flink on k8s 时,新增 S3FileSystemFactory.java 第一步:创建包=org.apache.flink.fs.s3hadoop 第二步:新增 java 类 S3FileSystemFactory 特别注意 (1)本地测试时需要新增以下内容 (…...

SQL MID()

SQL中的MID()函数是一个用于从指定位置开始截取字符串中指定长度的子串的函数。这个函数在数据库查询和数据处理中经常被使用&#xff0c;特别是在需要从较长的文本字段中提取特定信息时。 MID()函数的基本语法是&#xff1a;SELECT MID(column_name, start, length) FROM tab…...

jsp | servlet | spring forEach读取不了对象List

导致这个问题的原因有很多的&#xff0c;这里讲到的只是原因之一 原因 taglib不认识forEach 解决办法 添加<% taglib uri"http://java.sun.com/jsp/jstl/core" prefix"c" %> &#xff08;我忘写这个东西了哈哈哈&#xff09;...

【ArcGIS Pro微课1000例】0063:处理无人机数据(空三、生成DOM、DSM、DTM)

使用ArcGIS Pro 正射拼接处理无人机数据流程化工具,不需要额外产品许可的支持,只需要桌面是高级版许可即可支持。ArcGIS Pro处理无人机摄影测量数据主要内容有:空三、生成DOM、DSM、DTM。 文章目录 一、创建映射项目二、提交自由空三三、添加控制点优化四、提交产品生产一、…...

【pytorch】深度学习计算

1 层和块 块由类&#xff08;class&#xff09;表示。它的任何子类都必须定义一个将其输入转换为输出的前向传播函数&#xff0c;并且必须存储任何必需的参数。注意&#xff0c;有些块不需要任何参数。最后&#xff0c;为了计算梯度&#xff0c;块必须具有反向传播函数。 1.1…...

详解磁盘IO、网络IO、零拷贝IO、BIO、NIO、AIO、IO多路复用(select、poll、epoll)

1、什么是I/O 在计算机操作系统中&#xff0c;所谓的I/O就是输入&#xff08;Input&#xff09;和输出&#xff08;Output&#xff09;&#xff0c;也可以理解为读&#xff08;Read&#xff09;和写&#xff08;Write)&#xff0c;针对不同的对象&#xff0c;I/O模式可以划分为…...