导出、上架与复盘
Sep 12
导出:三处名字必须一致
项目 → 导出 → Web 预设:
- 导出路径
build/web/index.html——必须叫 index.html,itch 的硬要求 - 资源页的「排除文件筛选器」(Exclude Filter,不是上面那行 Include)填
build/* .gitignore里build/
导出目录名、筛选器、.gitignore 三处写的名字必须一致。我这次 .gitignore 写的 builds/、文件夹叫 build/——差一个字母,11 MB 的产物差点进仓库;筛选器又填进了 Include 栏,pck 把 build/ 自己打了进去(和小鸟同一个坑的另一种踩法)。
更稳的根治:在 build/ 里放一个空文件 .gdignore,编辑器就完全不扫描它——不导入、不打包、文件系统面板里也不显示。连导出产物里的 PNG 被反向导入生成 .import 垃圾的问题也一起没了。
导完必须验一下有没有把自己打进去:
strings build/web/index.pck | grep -c res://build # 必须是 0
点「导出项目」,不是「导出 PCK/ZIP」(后者只有资源包,没有 index.html)。本地试玩:cd build/web → python -m http.server 8000 → 浏览器开 localhost:8000。浏览器里插上手柄再试一遍——先随便按一个手柄键,浏览器才会把手柄交给网页。
itch
手动打 zip(Godot 不会替你打):压缩 web 文件夹里的内容,不是文件夹本身——解压后第一层必须直接是 index.html。上 itch,Embed 尺寸填 1280×720(画面会自己等比缩放,不用填 1920)。
发布要准备的图:
| 放哪 | 图 | 尺寸 |
|---|---|---|
| Godot | 项目图标 / 启动画面 | 128×128 / 512×512 |
| GitHub | README 首图 / Social preview | 1280×720 / 1280×640 |
| itch | 封面 / 截图 3~5 张 | 630×500 / 1920×1080 |
截图前关书签栏、只框游戏区域——上次截图把浏览器书签栏一起截进去了。
开源
和小鸟一样:LICENSE(MIT,代码 + 原创美术)、README.md 加简 / 繁 / 粤三个译本、CREDITS.md(第三方字体 OFL 列出来)、.gitignore。export_presets.cfg 提交——里面只有 Web 预设和相对路径,别人拉下来就能照样导出;一旦以后加了 Android / iOS,签名密钥会被明文写进去,那天再把它加进 .gitignore。
推之前扫一遍:绝对路径、用户名、邮箱、token,一个都不能有。先私有仓库 push,网页上看一遍再转公开。
复盘
和计划不一样的地方(都是合理的变奏):
- 菜单只留了"撞墙 / 穿墙"一个选项,棋盘大小和皮肤固定——每多一个可选项,菜单、代码、测试都多一份;但它们在代码里仍然当"设置"写,以后露出来就能选
- 按钮弹动、标题呼吸、入场动画这些动效跳过了,留给下一个项目专门学
- 音效用自制工具,图标自己画,主按钮没做变体
这次踩的坑(已经写回我的标准流程):
- 导出目录 / 筛选器 /
.gitignore三处名字不一致;Include 和 Exclude 填错栏 →.gdignore根治 +strings自检 _ready()里先生食物后建蛇 → 食物可能长在蛇出生的格子上。初始化顺序:先有主角,再生世界- Godot 4 默认
ui_accept/ui_cancel没有手柄键,每个项目都要补 - StyleBox 的 Content Margins 和 Expand Margins 填反了,然后去改容器间距补——补错了地方
- 场景里摆的节点尺寸和代码里的常量是两份真相(星星画成 4 格)→ 尺寸也收归代码
- 代码里留了给 AI 的疑问注释和教程痕迹("原来是 die()")→ 问完就删,注释只写代码现在在干什么
这个项目真正学到的:不是贪吃蛇,是外壳——设置菜单怎么把选择交给游戏、暂停的 process_mode 传染、手柄焦点、Theme 总表、自己封装一个 UI 组件。第三个游戏开始,这些是在"搬"而不是"写"。
到这里,《XGGame-Snake》记录完了:
- ✅ 立项表写死"不做什么"
- ✅ 蛇是一个数组,画面是它的镜子
- ✅ 四个 Timer 各管一件事
- ✅ EventBus 喊、GameManager 判、SaveManager 存
- ✅ 设置菜单、暂停、结算、手柄全流程
- ✅ Theme + 左右选组件
- ✅ 导出上架 itch,MIT 开源
下一款游戏见 💪