下载 App

与塔啦啦携手:没有编辑器的关卡编辑

精华03/30153 浏览开发交流 包含 AI 合成内容
做《觅光》的时候我遇到了一个很现实的问题:游戏需要多个关卡,但taptap制造只有对话框,没有没有TiledMap 之类的手动关卡编辑器,怎么办呢?后来我摸索出了一套"文档驱动"的关卡制作流程——我在 Markdown 文件里画 ASCII 网格当地图,写个表格摆放火把、敌人、钥匙,然后让 AI 把这些文档转成游戏能跑的代码。改关卡的时候也不用碰代码,直接说"把第三关的torch_01 移到 (25, 8)"就行。靠这套流程,我做完了《觅光》的 11 个关卡。
先简单说下背景吧,顺便给自己打个广告[表情_猫咪举手]。《觅光》是一款 2D 平台解谜游戏,玩家在黑暗洞穴里靠火把生存,核心玩法是点亮火把、在火把之间穿梭、收集钥匙开门通关。
而作为基于瓦片地图框架的2D游戏,每个关卡本质上就两样东西:
  1. 一张瓦片地图——哪里是地面、哪里是平台、哪里是空气
  2. 一堆实体——玩家出生点在哪、火把放哪、敌人在哪巡逻、钥匙和门的位置
如果纯靠自然语言和图片描述让塔啦啦理解我的关卡设计,那效率太低了,而且不够精准。

核心思路:一个关卡,三种文件

我的做法是让AI对每个关卡同时维护三种文件形态,各有分工:
level_protocol_*.md — 这是关卡的"存档",用 JSON 格式记录精确、完整的数据,主要用于存档和备份。它可以转换成可视化的 edit 文件,也能从 edit 文件反向生成。
level_edit_*.md — 这是我日常编辑关卡的入口,包含 ASCII 可视化网格和实体坐标表格,让人一眼就能看出地图长什么样。它可以从 protocol 文件生成,也能转换成游戏运行的代码。
levels.lua — 这是游戏实际运行时引擎直接读取的代码,由 AI 从 protocol 或 edit 文件生成。
这三种文件之间可以随时互相转换。我改了 edit 文件,就让 AI 同步到 levels.lua;如果在代码里直接改了数据,也可以让 AI 重新导出 edit 文件。level_protocol_*.md作为改坏了的存档点。

地图怎么表示:一个字符一格瓦片

觅光的地形非常简单,只有四种瓦片:
  • 0 代表空气,无碰撞,玩家可以自由穿过。
  • 1 代表实体方块,包括地面和墙壁,有碰撞,玩家无法穿过。
  • 2 代表木质平台,有碰撞,玩家可以站在上面,通常用于跳跃平台或浮空地形。
  • 3 代表装饰块,无碰撞,纯视觉效果,不影响玩家移动,用于丰富场景细节。
所以一个关卡的地形就是一个字符串数组,每行字符串代表一行瓦片,肉眼就能看出地图结构。经过处理以后的地形数据长这样:
TapTap
markdown文件可预览效果

level_edit 文件:我的"可视化编辑器"

光看数字可能还是不够不太直观,所以我让 AI 生成了带坐标标尺的可视化版本。这就是 level_edit
文件,它长这样:
TapTap
markdown文件可预览效果
下面跟一个实体表格:
TapTap
markdown文件可预览效果
第一步:用自然语言或者字符串表格描述基础设计
你可以自己先在脑内构思好,甚至在像画图一样把关卡用约定好的字符串画出来,直接把参考文件作为项目文档发给塔啦啦。或者使用模糊一点的描述:
右侧山体作为终点屏障,门置于山顶形成目标感;左侧开阔区域降低初始压迫感,出生点设于此引导玩家向右探索;中间平台层创造垂直移动节奏;两支火把形成接力关系,亮着的火把暗示安全路径;钥匙位置需要小幅绕行,增加一点探索感;底部深坑通道提供备选路线,敌人巡逻制造动态障碍。
描述的精细度可以灵活控制。模糊构思时,只需说明结构层次和核心挑战;明确想法时,再指定关键坐标。AI 会自主补足尺寸、地形细节和具体位置。总之,先构思关卡的大致内容——地形结构、起点终点、障碍与收集品——再让 AI 落实具体数据。
第二步:预览,发现问题
生成之后构建游戏,实际玩一遍。通常会发现一些问题:
  • 这个平台跳不上去,太高了
  • 钥匙太容易拿了,想藏得更隐蔽一点
  • 这个火把的距离不对,不能很好的衔接上另一个火把
  • 这段暗区太长了,LP 扛不住
第三步:微调——最高效的部分
这就是这套流程最舒服的地方了。微调的时候完全不需要碰代码,直接用自然语言说改什么就行。
移动一个实体:
  "Level3 的 key_01 从 (15, 9) 移到 (8, 12)"
改地形:
  "Level3 的 y=10 行,x=25 到 x=30 的实体块挖空改成空气"
增删实体:
  "Level6 新增一支火把 torch05,放在 (15, 18),初始状态灭"
  "Level9 的 enemy
02 删掉"
改参数:
  "Level3 的 torch_02 改成初始点亮"
一次改多个:
  Level8 做以下修改:
  1. 地形:y=7, x=3~x=7 改成平台
  2. 实体:torch03 移到 (25, 15)
  3. 实体:新增 key
04 在 (30, 8)
  4. 实体:删除 enemy_02
AI 收到后直接改 levels.lua里对应关卡的数据,重新构建就能看到效果。

文档同步:代码和文档保持一致

改完关卡后,我会让 AI 把最新数据重新导出为文档:
  "把 Level3 的最终版本重新导出为 level_edit 和 protocol 文件"
AI 读取 levels.lua里的数据,重新生成带坐标标尺的可视化网格和 JSON 协议文件。这样三种文件始终保持一致。
反过来也行。如果改动比较大,我也可以直接编辑 level_edit
文件——在 ASCII 网格里加几行实体、在表格里改坐标——然后告诉 AI:
  "我修改了 leveleditlevel8.md,请读取它并更新 levels.lua"
甚至可以批量操作:
  "把所有关卡(Level3 到 Level9)重新导出为 level_edit 文件"

从零到完成一关的完整流程

把上面说的串起来,做一个关卡的完整过程是这样的:
第一步:描述设计
  "帮我做第三章,48×22,右边是山,门在山顶……"
      ↓
第二步:AI 生成三个文件
  · level_protocol_level3.md  (JSON 存档)
  · level_edit_level3.md      (可视化编辑视图)
  · levels.lua 里的对应数据  (运行代码)
      ↓
第三步:构建 & 试玩
  发现钥匙太好拿、深坑太窄……
      ↓
第四步:口头微调
  "key_01 移到 (8, 12);深坑通道拓宽到 x=22~x=31"
      ↓
第五步:再次构建 & 试玩
  满意 → 进入下一关;不满意 → 重复第四步
      ↓
第六步:同步文档
  "把 Level3 重新导出为 edit 和 protocol 文件"
实际做起来比写出来快得多。一个中等复杂度的关卡,只要自己提取构思好地图,用字符串从生成到最终定稿大概就是"说三句话 + 玩两遍"的事。

这套流程好在哪

回头看,这套"文档驱动"的做法有几个我很喜欢的点:
1. 零工具依赖
不需要 TiledMap、不需要 LDtk、不需要任何图形化编辑器。一个文本编辑器 + AI 就是全部工具链。Markdown 文件谁都能打开。
2. 改关卡不碰代码
最常用的微调方式就是说一句话:"torch_01 移到 (25, 8)"。不用找代码、不用数数组索引、不用担心改错格式。
3. 设计意图和数据分离
我描述的是"右边有座山,门在山顶"这种设计语言,AI 负责翻译成具体的在我限制范围内的网格数据。我不需要关心每个格子是 0 还是 1。
4. 改动可追溯
三种文件形态互相备份。protocol 是精确的 JSON,edit 是人类可读的可视化,levels.lua 是运行时代码。任何一个出了问题,都可以从其他两个恢复。
5. 批量操作很高效
一句"所有关卡重新导出 edit 文件"就能批量同步。做完一轮大改之后刷新所有文档,很方便。

总结

回顾做觅光这 11 个关卡的过程,最大的感受是:关卡编辑器不一定是一个软件,它可以是一套约定好的文档格式 + 一个能理解这套格式的 AI。
这套流程的核心就三件事:
  1. 定义清楚数据协议(哪些字符代表什么瓦片、哪些字段代表什么实体)
  2. 让文档可视化(ASCII 网格 + 坐标标尺,一眼看出地图结构)
  3. 用自然语言驱动修改("移到 (25, 8)"比在代码里找到对应行改数字快十倍)
有问题欢迎交流!也欢迎试玩我的《觅光》!
别再烧积分了!从每次 2000 到每次 50 的血泪经验截图
别再烧积分了!从每次 2000 到每次 50 的血泪经验
适用场景:所有在用 TapTap Code 开发游戏的小白 难度:★☆☆☆☆ 背景最近群里总有人"炫耀"一次操作花了几千积分,说实话这不是值得高兴的事——这是在告诉所有人你的开发方式有根本性问题。我也走过这条弯路,所以来说说怎么改。 积分消耗的本质是什么积分 = AI 处理的 token 数量 = 你发给 AI 的内容 + AI 回给你的内容所以烧积分的本质只有两种: 你让 AI 做了大量无效/重
精华
82 赞
23 回复
如何提升你游戏中的UI美术水平截图
如何提升你游戏中的UI美术水平
一、请为你的游戏挑选一款合适的字体 很多开发者没有注意到其实UI界面中最重要的元素是字体,一款合适的字体能给整个游戏的界面感官带来蜕变。 请看案例 那么如何挑选适合自己的字体呢? 我总结出了一些小经验可供参考: 黑体:通用 宋体:古风、武侠、修仙 楷体:古风、武侠、修仙 圆体:卡通、动漫、Q版 科技:科幻、未来、电子 顺手分享一个免费可商用字体网站: 当然 如果你不知道自己的游戏适合什么风格
精华
126 赞
44 回复
永恒虚空持续开发日记1——关于游戏中的新名词:场频截图
永恒虚空持续开发日记1——关于游戏中的新名词:场频
写在前边:首先感谢TapTap制造版主大大@汪崽 对于作品潜力的肯定,给与了我积分计划二的权限[表情_不好意思]。这边也在加紧开发改进各种功能中,期望尽快给大家带来成熟的版本。[表情_猫咪举手] 大家好,我是永恒虚空的制作人黑猫不详,大家叫我黑猫就好。从今天开始我将以后置开发日记的形式给大家分享我在TapTap制造中制作的游戏永恒虚空的开发过程,新人希望大家多多关照! 今天先给大家介绍我作品中最重
投票
3 赞
01:29
官方阅,申请积分计划2,希望官方继续支持我完成这款游戏,截图
官方阅,申请积分计划2,希望官方继续支持我完成这款游戏,
视频内容只是一部分, 本游戏耗时3个月,目前完成进度百分之80, 是生存游戏,进入修仙界,走剧情找到宗门加入, 这时游戏才是真正开始, 提升实力境界后就可以变强,获取功法法术法宝, @视频内是游戏里挑战妖族入侵一种主流玩法,游戏就是围绕着这个来进行, 还有很多地方可以战斗,获得资源修炼变强,比如去藏书阁学习功法, 去法宝楼抽法宝,每一个宗门数十个法宝抽取 去修仙界探索,获得各自的资源,可能遇见妖兽
1 赞
3 回复
本地部署 AI 对接 TapMaker 指南 —— 以 CodeBuddy 为例V1.1截图
本地部署 AI 对接 TapMaker 指南 —— 以 CodeBuddy 为例V1.1
写在前面 大家好,我是橘猫,和你一样也是TapMaker的萌新玩家。在"全能神"天哥的悉心指导下,我顺利完成了本地开发环境的部署。经过这段时间的实战测试,已经成功打通了「本地开发 → 同步至TapMaker」的完整流程。 以下内容全部来自我的个人实操经验,旨在为同样在探索本地部署的朋友提供一个参考。每个人的电脑环境、网络情况、AI工具版本都不尽相同,文中的步骤仅供交流学习。如果你照着操作后遇到问题
37 赞
21 回复
【Tap make 塔拉拉之立项干货】萌新看过来!截图
【Tap make 塔拉拉之立项干货】萌新看过来!
题外话:本人也是tap make 使用者之一。塔啦啦忠实信徒、天哥忠实拥护者、八年游戏策划经验的低级策划。但是!我已经做出来一款5000+热度、且稳定可更新的框架、并且还在持续产出更多游戏内容的橘猫! 这几天正好在开新坑。我是3月初加入的tapmake大家庭。两周时间于3月25日将这个作品上架。当时的全凭感觉摸索。如今,自己也是一个有自己项目的小菜鸡了。今天,就来分享一下,如何高效的制作一款高大上
投票精华
69 赞
24 回复
00:54
等距场景编辑器——自行编辑2D瓦片场景地图截图
等距场景编辑器——自行编辑2D瓦片场景地图
一个可嵌入任何 UrhoX 项目的完整等距瓦片地图编辑器,适用于 RPG、策略、模拟经营等类型游戏的关卡设计。 SKILL审核已通过,各位创作者可以根据自己的需要对工具进行调整修改 声明:该工具仅作为场景编辑以及序列化,交互等功能需要用户自行在项目中定义 后续会根据实际情况补充rule tile相关逻辑,实现tile map编辑自由 目录 1. 界面总览 2. 六种编辑工具 3. 双视图模式 4.
精华
21 赞
11 回复
浅记《阿方的旅程》开发历程截图
浅记《阿方的旅程》开发历程
预计阅读时长10分钟,欢迎您先品鉴游戏,再回来看这篇“流水账” 这是我第一次实际接触“用自然语言制作游戏”,也是我第一次接触游戏开发工作,所以一切都是从零开始,跌跌撞撞,懵懵懂懂。[表情_豹哭] 我是通过获得的本次开发资格,6月22日晚,在微信公众号收到了测试资格的消息,最开始公布主题“跳跃”的时候,脑子里最先想到的就是几款非常经典的游戏「马里奥」「Flappy Bird」「Doodle Jump
10 赞
1 回复
【UI教程】如何将已有的效果图应用为实际的UI界面截图
【UI教程】如何将已有的效果图应用为实际的UI界面
在经过了一些折腾和比较折磨的尝试后,我总算是摸清楚了嗒啦啦怎么把UI效果图转换为实际游戏中的UI组件,今天就给大家带来这部分的经验分享。 tips:1.本篇教程需要各位掌握最基本的ps使用,具体的操作部分我会大致讲解,但仍需各位自行学习ps的基本操作,部分可以由ai代劳的环节我会注明。 2.本篇教程需要在以我前两篇教程作为前置环节,请在阅读这两篇前置教程后再进行本篇教程内容的学习 在按照前
12 赞
5 回复
2D 等轴测视角:完整理论截图
2D 等轴测视角:完整理论
2D 等轴测视角:完整理论 一、视角的本质 什么是等轴测 人站在高处斜着往下看地面,地面上的方格子不再是正方形,而变成了菱形。这就是等轴测的视觉本质。 俯视(正上方看下去): 等轴测(斜上方看下去): ┌──┬──┬──┐ ◇ ├──┼──┼──┤ ◇ ◇ ├──┼──┼──┤ ◇ ◇ ◇ └──┴──┴──┘ ◇ ◇ ◇ 正方形网格经过旋转 + 压缩,变成了菱形网格。 为什么是 2:1
6 赞