如何在游戏中实现一个关卡编辑器

简介: 如何在游戏中实现一个关卡编辑器

嗨!大家好,我是小蚂蚁。


今天我们来聊聊如何做一个关卡编辑器。


关卡编辑器一直都是小蚂蚁游戏中的必备品,在做的所有关卡制的游戏中,我都增加了关卡编辑的功能。


精致1010中的关卡编辑器。



精致点点连线中的关卡编辑器。



疯狂泡泡龙中的关卡编辑器。



关卡编辑功能用的人多吗?说实话,不多。但是为什么要去做呢?因为我总觉得如果一个玩家能够参与到游戏的创作中,那么这个游戏对他来讲就会变得不一样。虽然做游戏跟玩游戏是完全两码事,而且几乎 99.99% 的游戏玩家都不会去做游戏。但是,关卡编辑器仍然能够给所有的玩家一个以极低的门槛体验游戏创作的机会,这大概就是我认为一定要去做这个东西的意义。


关卡编辑器到底是怎么做的呢?接下来我们简单的说一下关卡编辑器的制作思路。



先看一下上方的这个图片,左侧是游戏界面,右侧是数据表格,我们可以把游戏的界面进行数据抽象,得到右侧的数据表格,也可以通过右侧的数据表格构建出左侧的游戏界面。了解更多与数据抽象和关卡创建相关的内容,可以参考【这篇文章】


关卡编辑器要实现的其实就是上方的从左到右的过程:我们提供一个可视化的易于理解的界面,让玩家可以在上面进行编辑操作,最后再将玩家编辑完的界面转换成游戏中的关卡数据。


好了,就是这么简单。


我做的三个游戏逻辑都比较简单,关卡编辑器看起来也很直观,对于那些复杂的游戏编辑器都是怎么做的呢?其实都是同样的原理,1 可以表示一个方块,可以表示一个圆点,可以表示一个颜色的泡泡,同样还可以表示一座炮塔,一块障碍,一个道具,一个士兵......一个数字可以表示任何一个游戏中的任何一个物体,所以无论是看起来多么复杂的关卡编辑器,做的其实都是同一件事情:把可编辑的游戏界面抽象成能在游戏中使用的数据。


接下来,我们了解一下在制作关卡编辑器中需要用到的一个重要的转化:表格数据和字符串数据的转化。



如图,左侧的这一张数据表格和右侧的这一长串数字其实是“等价的”,即不论当前拿到任何一个,都可以转化成另一个,其实可以把它们当作是一种数据的两种表现形式。



两者之间可以互相转换,表格中任意的“行列号”上的数据,都可以根据“行列号”计算出它在字符串中的位置索引。例如表格第 2 行第 1 列的的数值 2,对应的就是字符串中的第 6 个位置 2。而知道了字符串中任何一个数的“位置索引”,也能够计算出它位于表格中的哪一行哪一列。


为什么我们要把表格数据转换成一个字符串?因为字符串数据更方便存储或者传输。有了这个字符串,不论你是想要把数据保存在本地,还是上传到云端,亦或者是通过分享发送给好友(利用分享参数),就都不成问题了。


最后,关卡编辑器提供的是编辑功能,应该尽可能的简单易用。在制作泡泡龙游戏第一个版本的编辑器时,做的就不是很好用。



如图,在编辑其中点击任何一个泡泡切换颜色,这也是延续了上两个游戏的思路,但是之前的游戏数字比较少,所以设置一个位置时不需要点击太多次,但是泡泡龙游戏中包含 8 种颜色的泡泡,也就是说,如果这个关卡中想要设置多个第 8 种颜色的泡泡,就得挨个泡泡点击 8 次,实在是有些麻烦。


在第二个版本时,我对此做了改进,想法其实是来源于绘图软件,在绘图软件中都会有一个工具条,上面放置着各种各样的工具,当你选择画笔工具时,在画布上执行的一切操作都是绘制操作,当你选择橡皮擦工具时,在画布上执行的操作就是擦除操作。借鉴了这种方法,我在关卡编辑器中也增加了“工具条”,上面摆放着各种颜色的泡泡,选中一种颜色的泡泡,在上方填充的将都会是这种颜色的泡泡。



这样就方便多了,顺便说一下,在制作泡泡龙游戏的关卡时,我就是用这个关卡编辑器做的。


好了,今天的内容就到这里了。关卡编辑器是一个小众的功能,但是仍然有它存在的必要和价值,它能够为玩家提供一个创造的机会。不论做任何的事情,创造都是重要的,它能够让我们觉得自己所做的事情意义非凡。玩游戏会让你觉得快乐,但是如果还能够在游戏中进行创造的话,这个快乐或许就具有了更深层次的意义。

相关文章
|
缓存 开发工具 图形学
游戏开发实战教程(14):关卡编辑器的制作以及关卡分享功能的实现
上周在制作完闯关模式后,我有了在游戏中做一个关卡编辑器的想法,让玩家可以在游戏中制作自己的关卡进行挑战,甚至可以将自己制作的关卡与朋友进行分享。 原有的关卡编辑器是使用Unity做的,因为可以方便的进行文件的读取和写入,可以将设计好的关卡数据写入到文件中,然后在将文件中的数据导入到微信小游戏开发工具中。
265 0
|
存储 数据可视化 索引
聊聊关卡编辑器
关卡编辑器一直都是小蚂蚁游戏中的必备品,在做的所有关卡制的游戏中,我都增加了关卡编辑的功能。关卡编辑功能用的人多吗?说实话,不多。但是为什么要去做呢?因为我总觉得如果一个玩家能够参与到游戏的创作中,那么这个游戏对他来讲就会变得不一样。虽然做游戏跟玩游戏是完全两码事,而且几乎 99.99% 的游戏玩家都不会去做游戏。但是,关卡编辑器仍然能够给所有的玩家一个以极低的门槛体验游戏创作的机会,这大概就是我认为一定要去做这个东西的意义。
61 0
|
缓存 小程序 开发工具
微信小游戏开发实战15-关卡编辑器的制作以及关卡分享功能的实现
本节主要内容有游戏中的关卡编辑器的实现思路以及如何利用分享功能将自己制作的关卡与好友分享。 如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
147 0
|
缓存 小程序 开发工具
微信小游戏开发实战15-关卡编辑器的制作以及关卡分享功能的实现
**微信小游戏开发实战系列的第15篇,点击上方的#微信小游戏开发实战话题可以查看本系列的所有内容。 本节主要内容有游戏中的关卡编辑器的实现思路以及如何利用分享功能将自己制作的关卡与好友分享。
212 0
微信小游戏开发实战15-关卡编辑器的制作以及关卡分享功能的实现
|
2月前
|
存储 Linux 编译器
vim编辑器和gcc/g++编辑器的使用讲解
vim编辑器和gcc/g++编辑器的使用讲解
78 2
|
9天前
|
开发工具
Vim 编辑器:高效文本编辑的瑞士军刀
**Vim 概览:** Vim 是一个功能丰富的文本编辑器,以其高度可定制性著称。文章介绍了 Vim 的高效使用技巧,包括快捷打开文件、命令行模式下的常用命令、查找与替换、删除和复制文本。还讨论了配置 `.vimrc` 文件以自定义设置,如改变 leader 键、设置缩进和高亮,并展示了安装插件如 vim-airline 和 vim-snazzy 的方法。通过这些技巧,用户能提升 Vim 使用效率。
17 5
|
13天前
|
Ubuntu 搜索推荐 Linux
Linux的Vim编辑器详解
Linux的Vim编辑器详解
|
5天前
|
缓存 人工智能 Linux
【Linux】--- 详解Linux软件包管理器yum和编辑器vim
【Linux】--- 详解Linux软件包管理器yum和编辑器vim
13 0
|
10天前
|
Unix Linux 程序员
linux入门系列4--vi/vim编辑器
linux入门系列4--vi/vim编辑器