当前位置:网站首页>益智类游戏关卡设计:逆推法--巧解益智类游戏关卡设计
益智类游戏关卡设计:逆推法--巧解益智类游戏关卡设计
2022-07-31 04:42:00 【Clank的游戏栈】
前言
益智类的游戏非常有意思,但是它的关卡设计并不容易,看上去是随机,同时难度又要由简到难的按顺序增加,同时还要有标准的提示的解法,本节給大家分享一类益智类游戏的关卡设计的解决方法,这个方法我称为: 逆推法。
这里有个游戏开发交流小组 大家可以一起来学习交流哦

逆推法适应的场景举例
首先举2个经典游戏例子来看下逆推法适用的游戏场景。首先我们来看《拼图游戏》的关卡设计, 《拼图游戏》在做关卡设计的时候,大家可能觉得会很简单,只要把图片分成若干的块,然后随机打乱就可以了,这样一个关卡就做完了。那么问题来了:
(1) 如何保证能让难度是按照由低到高的顺序一关关的递增呢?
(2) 如何保证每一组随机打乱以后的关卡,能一定有解,按照一定的步骤能还原回原来的图片状态呢?
(3) 如何能通过计算机自动求解,实现智能提示拼出整个拼图的过程呢?



关卡求解智能提示
再来看一个经典的游戏案例《华容道》,他的主要玩法就是用不同形状的积木块包住物体,然后让玩家移开木块,让玩家和出口之间能有一条直达的路出来,同时还有智能提示,能够提示出每个关卡的移动方法。这里关卡设计同样也面临3个问题:



什么是逆推法
做关卡设计的时候,我们給策划编写关卡编辑工具,所谓逆推法就是从结果出发来经过难度等级的迭代生成关卡的初始状态。和玩家求解是反着来的,所以叫做逆推法。主要包含一下步骤:


《华容道》如何制作做关卡编辑器
接下来我们以《华容道》为例,讲解关卡编辑器的制作,按照逆推法的第一步,我们需要将结果生成出来,在《华容道》的游戏盘上,我们先生成”玩家块”到”终点”的数据块,这些数据块等下生成关卡地图的时候,这个路径之间不允许有其它的块占用,接下来我们給用户一个可以编辑的工具,让关卡设计着把积木摆好(也可以代码生成块)如下图所示:

接下来,我们就是经过N次步骤,每次用代码随机移动里面可以移动的块,这样就得到了N次操作,将每次操作保存起来。同时得到了经过N次操作以后的关卡结果,这个关卡的结果就是我们呈现給玩家的初始状态,最终游戏的结果,就是关卡编辑者摆出的状态(也可以程序生成)。而保存的N次迭代步骤,反过来就是智能求解。这样就解决了上面所说的关卡编辑的3个问题:
(1) 我们从结果开始逆推,保证了肯定是有解的;
(2) 我们是通过难度+次数来控制经过多少次迭代得到的关卡状态,这样难度是可以控制的。
(3) 我们把关卡编辑器中的步骤反推过来就是智能提示。
好今天的逆推法游戏关卡设计就到这里了,关注我们可以学到更多的关卡编辑的使用技巧。

边栏推荐
- errno error code and meaning (Chinese)
- Component pass value provide/inject
- Open Source Database Innovation in the Digital Economy Era | 2022 Open Atom Global Open Source Summit Database Sub-Forum Successfully Held
- 两个地址池r2负责管地址池r1负责管dhcp中继
- ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost3306‘ (10061)解决办法
- Minesweeper game - C language
- Safety 20220715
- Understanding and Using Unity2D Custom Scriptable Tiles (4) - Start to build a custom tile based on the Tile class (below)
- "A daily practice, happy water problem" 1331. Array serial number conversion
- [shell basics] determine whether the directory is empty
猜你喜欢

两个地址池r2负责管地址池r1负责管dhcp中继

Basic knowledge of mysql (2)

【小土堆补充】Pytorch学习笔记_Anaconda虚拟环境使用

PWN ROP

数字经济时代的开源数据库创新 | 2022开放原子全球开源峰会数据库分论坛圆满召开

Hand in hand to realize the picture preview plug-in (3)

BUG destroyer!!Practical debugging skills are super comprehensive

C language confession code?

已解决(最新版selenium框架元素定位报错)NameError: name ‘By‘ is not defined

已解决:不小心卸载pip后(手动安装pip的两种方式)
随机推荐
ClickHouse:设置远程连接
Musk talks to the "virtual version" of Musk, how far is the brain-computer interaction technology from us
(六)枚举、注解
专访 | 阿里巴巴首席技术官程立:云+开源共同形成数字世界的可信基础
$parent/$children and ref
Minesweeper game - C language
Safety 20220718
Open Source Database Innovation in the Digital Economy Era | 2022 Open Atom Global Open Source Summit Database Sub-Forum Successfully Held
MySQL模糊查询可以使用INSTR替代LIKE
Two address pools r2 are responsible for managing the address pool r1 is responsible for managing dhcp relays
el-image标签绑定点击事件后没有有用
[Linear Neural Network] softmax regression
马斯克对话“虚拟版”马斯克,脑机交互技术离我们有多远
input输入框展示两位小数之precision
BUG destroyer!!Practical debugging skills are super comprehensive
Summary of Huawei Distributed Storage FusionStorage Knowledge Points [Interview]
MATLAB/Simulink & & STM32CubeMX tool chain completes model-based design development (MBD) (three)
Understanding of the presence of a large number of close_wait states
C language confession code?
C# 实现PLC的定时器