一、五分钟上手
- 打开 创作工坊,它会自动载入官方原版包体(22 层),不用先下载任何东西。
- 在左边画布上左键画、右键擦;右侧选工具,最下面是楼层按钮。
- 改完点「导出游戏包体」,得到一个
.json文件,这就是你的整座塔。 - 打开 试玩页,在标题画面选「载入本地游戏包」,选刚导出的文件,就能玩自己的版本。
- 满意后再登录 Gitee,点「上传游戏包体」提交;审核合并、维护者发布后,作品出现在创意工坊。
工坊会自动把改动存成浏览器草稿。关掉页面再回来,会问你要不要恢复;换电脑或清浏览器数据就没了,重要进度请及时「导出游戏包体」留档。
二、认识游戏包体
「游戏包体」是一个 JSON 文件,装着整座塔的全部内容:地图格子、怪物数值、道具、对话、商店、结局文本和贴图。引擎是同一套,换一个包体就是另一座塔。
| 位置 | 放什么 | 会出现在哪 |
|---|---|---|
packs/classic/ | 官方原版包体 | 主站「游戏」页签 → 魔塔;不进创意列表 |
packs/community/<你的 id>/ | 社区玩家作品 | 只在「创意」页签的魔塔区域 |
两边的入口是:官方 play.html?pack=classic;社区列表 community.html,单个作品是 play.html?pack=community/<id>。
包里有什么
- 地图:每层一行行格子,每格是一个编码,编码在「贴图/物件表」里定义成地面、墙、门、楼梯、宝物、怪物、人物、路牌。
- 数值:勇士初始属性、每级成长、钥匙数量、怪物生命/攻击/防御/金币/经验、商店价格。
- 剧情:开场、结局、路牌、NPC 对话、事件脚本(给道具、改属性、开门、计时、结局)。
- 贴图:每格一张图,单色是 16×16 / 32×32 的十六进制,彩色是 32×32 的 PNG(直接存在包体里)。
三、六个编辑工具
右侧从上到下就是工作流:先用「地图重构」搭骨架,再填怪物/道具/人物数值,最后写对话、换素材。
地图重构
- 上方选类别(地面 / 墙 / 门 / 楼梯 / 宝物 / 怪物 / 人物 / 路牌),下方点一张画笔,然后到画布上画。
- 「起点」类别:左键点一格,把勇士出生点放过去;朝向在「人物编辑」里改。
- 「本层」里有新增楼层、删除末层、铺满地面。新增的层会自动带好罗盘落点和上楼落点,不必手填。
- 「游戏信息」里的标题 / 副标题 / 版本 / 简介会显示在试玩页和创意列表卡片上,版本号请随手改。
怪物编辑
- 改名字、生命、攻击、防御、金币、经验;右侧「删除」在还有门、宝物或事件引用它时会拒绝。
- 「新增怪物」会自动分配一个编码,再到「地图重构」里画到格子上。
人物编辑
- 勇士出生层 / 行 / 列 / 朝向,初始等级、生命、攻击、防御、金币、经验。
- 每种钥匙的初始数量、升级时生命/攻击/防御的成长值。
- NPC 和路牌的显示名,也能在这里统一改。
道具编辑
- 道具的名字就是状态栏里显示的字;可新增、改名、删除(被引用时拒绝)。
- 宝物的效果脚本可以直接改 JSON,点「应用脚本」生效;不确定就先看别的宝物怎么写的。
- 圣光徽(图鉴)与风之罗盘的功能绑定在「特殊功能」里,换道具 id 时记得一起改。
对话编辑
- 开场、好结局、坏结局、通关、制作名单,一段一行。
- 路牌、事件对话按段写;事件还能加条件(有某道具 / 某标记 / 属性达标)和脚本。
- 「在本层新增事件」会放在本层一个空地上,并给一个示例事件,改掉就行。
素材替换
- 每张塔内贴图和勇士四个方向都能单独「替换 / 还原」。
- 「批量替换」一次选多张图,按文件名自动对上号,命名规则见下一节。
- 「全部还原为原始贴图」回到载入时的样子,适合改坏了重来。
四、换素材
素材替换页最上面先选导入方式,两种都支持,可以混着用:
- 彩色 · 32×32 PNG:照片、图标、绘画直接给,工坊等比缩放到 32×32,保留颜色和透明;非正方形会留透明边。彩色图存进包体后仍然是 PNG,换电脑打开也一样。
- 单色 · 16×16 取墨:和官方包同一口径,按明暗压成黑白。透明处留底色,亮度低于 128 算墨色。
- 两种方式的图片尺寸都随意(16、48、160 都行):单色放大取最近点、缩小取块平均;彩色放大取最近点、缩小平滑采样。
- 批量替换的文件名(不分大小写):编码如
2a.png;贴图名如铁剑.png;怪物用图鉴名如骷髅王.png;勇士用上.png/下.png/左.png/右.png。重名(比如三个「祭坛」)请改用编码。 - 单色也可以直接给十六进制:
42.hex。
彩色贴图会被画成 32×32 再按格子缩放;想让画面更大更细,包体里的 board.tile 可以设到 32(最大 64),整块棋盘随之变大。官方原版包目前仍是单色自绘贴图,没换彩色。
五、导出、试玩与存档
- 点「导出游戏包体」。工坊会先跑一遍检查;有错误会拦下并告诉你第一条错误,按提示改完再导。
- 打开试玩页,标题画面选「载入本地游戏包」,选导出的 JSON。标题会显示你的作品名和版本。
- 游玩时按 Esc 打开菜单,可以导出存档 / 导入存档;存档是一个小 JSON,换浏览器也能接着玩。
存档会记住游戏包 id 和版本号:别人的包不能导入你的存档,工坊 / 引擎会提示「这是某作品的存档」。改了版本号以后,标题画面的「继续游戏」会消失(本地存档只认同版本);先把旧存档「导出存档」留底,载入新版本后再「导入存档」,界面会提示它来自哪个版本。
六、上传到创意工坊
上传走你自己的 Gitee 账号:工坊会自动 fork 仓库、在 community/<id> 分支写入你的包体、提一个 PR。合并与发布由维护者做,你不需要会 git。
- 注册 / 登录 Gitee,在「设置 → 私人令牌」新建一个令牌,勾选 user_info、projects、pull_requests 三项权限,复制令牌。
- 回工坊点右上角「Gitee 登录」,粘贴令牌。令牌只存在你自己的浏览器里,不上传到别处。
- 登录后下方会出现「上传游戏包体」。填社区包 id、版本、提交说明,点「提交 PR」。
- 等十几秒,工坊会给出 PR 链接。第一次提交会自动创建你的 fork。
- 维护者合并、并在发布时重新生成社区索引后,作品出现在创意工坊。
| 字段 | 怎么填 |
|---|---|
| 社区包 id | 你的作品地址,只能小写字母、数字、连字符,1–41 位,例如 my-tower。发布后不要改;classic 是官方保留 id。 |
| 版本 | 建议 1.0.0 起步,之后每次更新往上加(如 1.0.1、1.1.0)。 |
| 提交说明 | 给审核者看的几句话:改了什么、哪里最值得玩。 |
同一个 id 只能由同一个 Gitee 账号提交。id 被占用时工坊会直接拒绝,换一个名字即可。
七、更新已发布的版本
- 重新打开工坊。想接着上次改,就恢复浏览器草稿;否则从试玩页或创意页进作品,先导出存档留底(可选)。
- 改完后在「游戏信息」里把版本号往上加,再点「导出游戏包体」自测。
- 点「上传游戏包体」,社区包 id 填和上次完全一样,提交说明写清这次改了什么,再提交 PR。
- 合并并发布后,创意列表里的版本号与简介会同步更新。
如果上一次的 PR 还没合并,新的提交会写在同一个分支上,旧 PR 会自动带上最新内容;有未关闭的 PR 时,先去 Gitee 的 Pull Requests 看一眼,别重复提交。
八、硬性规则
| 项目 | 限制 / 要求 |
|---|---|
| 画布尺寸 | 官方包 11×11;自定义包每层最多 32×32,所有层行列数一致。 |
| 层数 | 最多 200 层。 |
| 文件大小 | 本地载入 / 上传的包体不超过 8 MiB(8×1024×1024 字节)。 |
| 楼梯 | 有上楼就必须在上一层设「上楼梯落点」;有下楼就必须在下一层设「下楼梯落点」。用工坊的「新增楼层」会自动补。 |
| 罗盘 | 启用风之罗盘后,每层都要有罗盘落点(飞过去站的位置)。新增楼层会自动继承。 |
| 空地板 | 必须指向一个「地面」类编码,不能指向墙或门。 |
| 事件 | 同一格只能有一个事件;事件可以带条件,条件与脚本必须是合法 JSON。 |
| 贴图 | 单色:8–32 边长,给十六进制(16×16 = 64 个字符,32×32 = 256 个字符);彩色:边长 8–128 的正方形 PNG,单张 ≤ 512 KiB。用到的编码建议都有贴图,缺失会画成空白。 |
| 格子像素 | board.tile 8–64,默认 16;设成 32 画面更细,棋盘整体变大。 |
九、常见问题
点「导出」被拦下
说明包体还有校验错误。提示会先给第一条错误(比如楼梯缺落点、编码未定义、数值不是整数),按它改完再点一次;全部通过才会下载。
换了素材但游戏里没变
批量替换靠文件名对号:确认文件名是编码、贴图名、怪物图鉴名或勇士方向;重名贴图请用编码。也可以回到「素材替换」逐张点「替换」。
没有「上传游戏包体」按钮
还没登录,或令牌失效。点右上角「Gitee 登录」重新粘贴令牌;令牌需要 user_info、projects、pull_requests 三项权限(少了 pull_requests 会卡在提 PR 那一步)。
提交时提示分支还没准备好
第一次 fork 需要十几秒,稍等再点一次。再次提交同一个 id 时,改动会写进原来的 community/<id> 分支,旧 PR 自动带上最新内容,这是正常现象。
合并了,创意页还没出现
创意列表用的是发布时生成的社区索引。合并代码只是入库,维护者下一次发布(含索引重生成)后才会出现在线上;刷新页面、清 CDN 缓存也要等发布完成。
存档导不进
存档绑定游戏包 id。换了一座塔(或社区包改了 id)就不能导入。同 id 的新版本要先在旧版本菜单里「导出存档」留底,载入新版本后再「导入存档」;本地「继续游戏」只认同版本存档,改版本号后不会直接出现。
能改官方原版吗
工坊载入的官方包是只读模板:你改的是自己浏览器里的副本,上传时也必须用你自己的社区 id,不会覆盖官方包。
十、进阶:手动提交
不想用浏览器工坊,也可以按仓库流程来(适合会 git 的作者):
- 把包体放到
web/packs/community/<id>/pack.json,包内 id 必须等于目录名。 - 跑
node tools/validate-pack.mjs和node tools/check-reach.mjs,全绿再提交。 - 向
null_331_1413/mt_-reset的master提 PR。索引文件不用你改,维护者发布时用node tools/build-community-index.mjs生成。 - 合并后由维护者发布;社区包只进「创意」页签,不会混进官方游戏列表。
十一、素材与版权
- 请只用自己画的、自己拍的或明确允许使用的素材;来源和授权由投稿者负责。
- 不要放来源不明的商业游戏截图、动漫角色、影视剧照。审核发现会退回。
- 官方原版的剧情、数值与地图来自原作者公开的程序数据;官方包的贴图是本区自绘的单色像素图,没有第三方授权要求。
- 作品里请保留制作名单;引用他人素材时在名单里写清作者与授权方式。