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

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

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


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


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


精致1010中的关卡编辑器。



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



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



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


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



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


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


好了,就是这么简单。


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


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



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



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


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


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



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


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



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


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

相关文章
|
4月前
|
图形学 开发者 存储
超越基础教程:深度拆解Unity地形编辑器的每一个隐藏角落,让你的游戏世界既浩瀚无垠又细节满满——从新手到高手的全面技巧升级秘籍
【8月更文挑战第31天】Unity地形编辑器是游戏开发中的重要工具,可快速创建复杂多变的游戏环境。本文通过比较不同地形编辑技术,详细介绍如何利用其功能构建广阔且精细的游戏世界,并提供具体示例代码,展示从基础地形绘制到植被与纹理添加的全过程。通过学习这些技巧,开发者能显著提升游戏画面质量和玩家体验。
186 3
|
7月前
|
定位技术
Pyglet综合应用|推箱子游戏地图编辑器之图片跟随鼠标
Pyglet综合应用|推箱子游戏地图编辑器之图片跟随鼠标
63 0
起司AVG游戏编辑器
起司AVG游戏编辑器
194 0
|
缓存 开发工具 图形学
游戏开发实战教程(14):关卡编辑器的制作以及关卡分享功能的实现
上周在制作完闯关模式后,我有了在游戏中做一个关卡编辑器的想法,让玩家可以在游戏中制作自己的关卡进行挑战,甚至可以将自己制作的关卡与朋友进行分享。 原有的关卡编辑器是使用Unity做的,因为可以方便的进行文件的读取和写入,可以将设计好的关卡数据写入到文件中,然后在将文件中的数据导入到微信小游戏开发工具中。
335 0
|
存储 数据可视化 索引
聊聊关卡编辑器
关卡编辑器一直都是小蚂蚁游戏中的必备品,在做的所有关卡制的游戏中,我都增加了关卡编辑的功能。关卡编辑功能用的人多吗?说实话,不多。但是为什么要去做呢?因为我总觉得如果一个玩家能够参与到游戏的创作中,那么这个游戏对他来讲就会变得不一样。虽然做游戏跟玩游戏是完全两码事,而且几乎 99.99% 的游戏玩家都不会去做游戏。但是,关卡编辑器仍然能够给所有的玩家一个以极低的门槛体验游戏创作的机会,这大概就是我认为一定要去做这个东西的意义。
87 0
|
缓存 小程序 开发工具
微信小游戏开发实战15-关卡编辑器的制作以及关卡分享功能的实现
本节主要内容有游戏中的关卡编辑器的实现思路以及如何利用分享功能将自己制作的关卡与好友分享。 如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
189 0
|
缓存 小程序 开发工具
微信小游戏开发实战15-关卡编辑器的制作以及关卡分享功能的实现
**微信小游戏开发实战系列的第15篇,点击上方的#微信小游戏开发实战话题可以查看本系列的所有内容。 本节主要内容有游戏中的关卡编辑器的实现思路以及如何利用分享功能将自己制作的关卡与好友分享。
260 0
微信小游戏开发实战15-关卡编辑器的制作以及关卡分享功能的实现