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

你想象一下,刚坐下准备玩游戏,想着“今天得挑战一下我的智商极限!”可结果碰上一个谜题,傻眼了,心里默念:“这啥玩意儿?这游戏是在玩我吗?”如果这个谜题太简单了,你可能会开始怀疑自己智商正常不正常;要是又太难,那你可能会忍不住把手机扔一边,嘀咕:“这游戏是不是不给我活路?”
一个好的解谜游戏就得让玩家既不觉得自己是天才,也不至于被难题搞得怀疑人生。谜题的难度得合适,不能让你觉得“一秒钟就解了”,也不能让你卡得喘不过气。最重要的是,谜题要考验你的脑袋,不是靠“随便点点,试试运气”解决的那种低级操作。
而且,最关键的是,谜题得告诉你:目标是什么? 你得清楚自己要做啥,不然你就会觉得“这游戏到底是在玩我,还是我被它玩了?”这种感觉。
怎么在游戏设计中用上这个原理
- 难度适中,不能太简单也不能太难
游戏的谜题难度得循序渐进,不可能一上来就让玩家觉得“哎呦,咋这么简单啊,我都能瞎猜”。如果一开始就简单的让人想打人,那就不行。关卡得有点挑战,能让玩家有种“哇,难度提升了,但我还能搞定”的感觉。 - 面包屑式引导,给玩家点线索
面包屑是什么?就像是《哈利波特》里的赫敏,时不时给你丢点线索,告诉你该往哪个方向走。游戏中,可以通过小提示慢慢引导玩家,不至于让他们觉得“这到底是啥鬼?”给个小线索,能让玩家自己慢慢发现谜题的解法。 - 智慧为主,不是蛮力
“这关能过吗?”“乱点几下试试看,能行就行。”这种操作方式绝对不适合解谜游戏。好的谜题要让玩家动脑筋,用智慧去解决,而不是靠乱试。游戏要设计得让玩家明白,解决问题靠的是聪明才智,而不是“死磕”或者“碰运气”。 - 目标明确,不能搞不清楚
设计谜题时,给玩家一个明确的目标——“该做啥才行”。不能让玩家一直懵逼,想:“我是不是漏了什么线索?我该做啥?”这样太不爽了。目标得清晰,玩家知道“我得干这个,才能过关”。 - 公平和确定性
解谜游戏可不能随便让你猜。谜题的答案应该是确定的,玩家只要按照正确的方法解决,结果就该是一样的。而不是“今天好运解了,明天坏运就过不去了”这种随机因素。得有规律可循,让玩家知道“只要做对了就能过关”。
小结
设计解谜游戏时,难度要适中,让玩家既能挑战自我,又不至于卡住放弃;要有面包屑式的引导,让玩家逐步获得线索,避免迷失方向;谜题的解答要靠智慧而非“碰运气”;目标明确,让玩家知道自己要做什么,避免困惑;公平性和确定性是必须的,让每个玩家都能通过智慧解决问题,而不是靠随机因素。这些都是设计一个既有挑战性又能让玩家享受的解谜游戏的重要因素。
原理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…...
深度学习任务简介:分类、回归和生成
深度学习任务简介:分类、回归和生成 文章目录 深度学习任务简介:分类、回归和生成一、分类任务(Classification Task)什么是分类任务?**分类任务的常见应用**分类任务的输出主要算法 二、回归任务(Regressi…...
【测试】Unittest
近期更新完毕,建议关注收藏! 目录 简介TestCaseTestSuiteTestRunnerTestLoaderFixture tips:ctrl? 可以看方法的help文档 简介 python自带的单元测试框架,也可以做自动化测试 组织多个用例去执行,用例都是用单独的目录存放的 丰…...
java 根据路径下载文件转换为MultipartFile,并且上传到服务器
直接上代码 controller层 GetMapping("/downloadAndUploadAttachment")UpdateOperationLogging(msg "根据路径下载文件转换为MultipartFile,并且上传到服务器")Operation(summary "根据路径下载文件转换为MultipartFile,并且上传到服务器", de…...
Onvif服务端开发
实现了Onvif服务端的设备搜索和RTSP流的功能。用 ONVIF Device Manager 测试工具可以成功搜索到设备和获取到RTSP流,有的路由器可能不支持239.255.255.250组播,我一开始用的电信的那种光猫路由器二合一的,一直搜不到设备,后面用So…...
【jvm】主要参数
Java 虚拟机(JVM)有许多参数用于控制其行为和性能,下面是一些 主要的 JVM 启动参数,这些参数通常分为以下几类: 内存管理相关参数 这些参数主要用来配置 JVM 的内存分配策略、堆内存、栈内存等。 -Xms 设置 JVM 启动…...
【优选算法】—移动零(双指针算法)
云边有个稻草人-CSDN博客 想当一名牛的程序员怎么能少的了练习算法呢?! 今天就立即开启一个新专栏,专干算法,提高算法能力(废柴的我也在准备蓝桥杯哈哈)—— 目录 1.【 283. 移动零 - 力扣(Lee…...
PostgreSQL标识符长度限制不能超过63字节
文章目录 问题:标识符太长会被截断分析相关源码可以尝试以下案例 问题:标识符太长会被截断 在创建表时,发现表名太长会自动被截断,导致查询表时报错了。 分析 参考:https://www.postgresql.org/docs/current/limits…...
嵌入式硬件面试题
1、请问什么是通孔、盲孔和埋孔?孔径多大可以做机械孔,孔径多小必须做激光孔?请问激光微型孔可以直接打在元件焊盘上吗,为什么? 通孔是贯穿整个PCB的过孔,盲孔是从PCB表层连接到内层的过孔,埋孔…...
深度解析 OneCode 混合编译:创新驱动的开发变革
前言 在软件开发领域,不断追求高效、灵活与强大的开发模式是永恒的主题。OneCode 作为一款引领潮流的开发工具,其混合编译特性正逐渐成为开发界瞩目的焦点。本文将深入剖析 OneCode 的混合编译机制,揭示它如何为软件开发带来前所未有的变革与…...
[文献阅读] Unsupervised Deep Embedding for Clustering Analysis (无监督的深度嵌入式聚类)
文章目录 Abstract:摘要聚类深度聚类 KL散度深度嵌入式聚类(DEC)KL散度聚类软分配(soft assignment)KL散度损失训练编码器的初始化聚类中心的初始化 实验评估总结 Abstract: This week I read Unsupervised Deep Embedding for Clustering Analysis .It…...
ajax中get和post的区别,datatype返回的数据类型有哪些?web开发中数据提交的几种方式,有什么区别。
在 Web 开发中,GET 和 POST 是两种常见的 HTTP 请求方法,它们有一些显著的区别。此外,datatype 参数在 jQuery 的 ajax() 请求中指定了预期的响应数据类型。接下来,我会详细解释这些问题。 1. GET 和 POST 请求的区别 GET 请求 和…...
网络七层杀伤链
声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽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个方法教你回到东八区
🗺️博客地图 📍方法一、timedatectl 命令 📍方法二、手动链接 /etc/localtime 📍方法三、修改时区变量 在 Linux 系统中,可以通过以下3种方式将系统时区修改为 CST(中国标准时间,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: 谁更具选择性?
目录 一、聚焦源码回顾 (一)源码分析和理解 (二)简短的回顾对比建议 二、ApplicationContext vs BeanFactory特性对比 (一)主要特性总结 (二)直接建议 三、案例简单说明 &am…...
一篇梳理清楚http请求知识点
HTTP请求是Web开发中的重要组成部分,它涉及到客户端和服务器之间的通信。掌握HTTP请求的知识点对于前端开发和后端开发都至关重要。以下是关于HTTP请求的详细梳理,结合代码进行说明。 1. HTTP请求概述 HTTP(超文本传输协议)是一个…...
从‘过拟合’到‘稳如狗’:聊聊EEG情感识别中数据增强与噪声注入的那些坑
从‘过拟合’到‘稳如狗’:EEG情感识别中的数据增强与噪声注入实战指南 当你第一次看到训练集准确率突破95%的EEG情感识别模型,在实际测试中面对新用户时表现却像从未训练过一样糟糕,这种落差感想必每个从业者都深有体会。个体差异就像一把双…...
07-打造个性化 AI 助手
OpenClaw 第七篇:记忆系统进阶——打造个性化 AI 助手 “Memory is the treasury and guardian of all things.” — Cicero 在人工智能领域,有一个永恒的挑战:如何让 AI 记住「我是谁」、「你是谁」,以及「我们之前聊过什么」。OpenClaw 作为新一代 AI 自动化平台,构建了…...
MDS vs PCA:哪种降维方法更适合你的数据?
MDS与PCA深度对比:从算法原理到实战选型指南 当面对高维数据时,降维技术就像一把打开数据奥秘的钥匙。在众多降维方法中,多维尺度变换(MDS)和主成分分析(PCA)是最常被比较的两种经典技术。它们都能将复杂的高维数据简化为更易理解的二维或三维…...
Deep-Live-Cam架构深度解析:构建实时AI换脸系统的技术实现与优化策略
Deep-Live-Cam架构深度解析:构建实时AI换脸系统的技术实现与优化策略 【免费下载链接】Deep-Live-Cam real time face swap and one-click video deepfake with only a single image 项目地址: https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam 在数字…...
3大场景解放双手:SteamShutdown智能管理下载与自动控制电脑的完整方案
3大场景解放双手:SteamShutdown智能管理下载与自动控制电脑的完整方案 【免费下载链接】SteamShutdown Automatic shutdown after Steam download(s) has finished. 项目地址: https://gitcode.com/gh_mirrors/st/SteamShutdown 你是否曾在深夜开启游戏下载后…...
mysql技巧(十六):覆盖索引 vs 回表 —— 让查询效率提升 10 倍的核心技巧
📝 本章学习目标本章聚焦数据库性能优化,帮助读者彻底掌握覆盖索引与回表的核心原理。通过本章学习,你将全面理解覆盖索引 vs 回表这一核心主题,并能在实际工作中应用这些技巧,让查询效率提升 10 倍以上。 一、引言&am…...
SPM12实战:手把手教你搞定fMRI数据预处理(从时间矫正到空间平滑)
SPM12实战:零基础入门fMRI数据预处理全流程解析 第一次接触功能磁共振成像(fMRI)数据分析时,面对SPM12复杂的界面和晦涩的术语,很多新手都会感到无从下手。这篇文章将带你从零开始,用最直观的方式掌握fMRI数…...
从连续到离散:用Python小例子复现Mamba SSM的零阶保持离散化(含完整代码)
从连续到离散:用Python小例子复现Mamba SSM的零阶保持离散化(含完整代码) 在深度学习领域,状态空间模型(State Space Model, SSM)因其对序列数据的强大建模能力而备受关注。Mamba作为SSM的最新演进&#x…...
域名常见问题集(十六)——常见的域名投资陷阱
关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…...
MaxKB:企业级AI知识库部署实战指南
MaxKB:企业级AI知识库部署实战指南 【免费下载链接】MaxKB 🔥 MaxKB is an open-source platform for building enterprise-grade agents. 强大易用的开源企业级智能体平台。 项目地址: https://gitcode.com/GitHub_Trending/ma/MaxKB 面对企业AI…...
