谢夏戈 @ xiexiage.com

导出、上架与复盘

Sep 12

导出:三处名字必须一致

项目 → 导出 → Web 预设:

  • 导出路径 build/web/index.html——必须叫 index.html,itch 的硬要求
  • 资源页的「排除文件筛选器」(Exclude Filter,不是上面那行 Include)填 build/*
  • .gitignorebuild/

导出目录名、筛选器、.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/webpython -m http.server 8000 → 浏览器开 localhost:8000。浏览器里插上手柄再试一遍——先随便按一个手柄键,浏览器才会把手柄交给网页。

itch

手动打 zip(Godot 不会替你打):压缩 web 文件夹里的内容,不是文件夹本身——解压后第一层必须直接是 index.html。上 itch,Embed 尺寸填 1280×720(画面会自己等比缩放,不用填 1920)。

发布要准备的图:

放哪尺寸
Godot项目图标 / 启动画面128×128 / 512×512
GitHubREADME 首图 / Social preview1280×720 / 1280×640
itch封面 / 截图 3~5 张630×500 / 1920×1080

截图前关书签栏、只框游戏区域——上次截图把浏览器书签栏一起截进去了。

开源

和小鸟一样:LICENSE(MIT,代码 + 原创美术)、README.md 加简 / 繁 / 粤三个译本、CREDITS.md(第三方字体 OFL 列出来)、.gitignoreexport_presets.cfg 提交——里面只有 Web 预设和相对路径,别人拉下来就能照样导出;一旦以后加了 Android / iOS,签名密钥会被明文写进去,那天再把它加进 .gitignore

推之前扫一遍:绝对路径、用户名、邮箱、token,一个都不能有。先私有仓库 push,网页上看一遍再转公开。

复盘

和计划不一样的地方(都是合理的变奏):

  • 菜单只留了"撞墙 / 穿墙"一个选项,棋盘大小和皮肤固定——每多一个可选项,菜单、代码、测试都多一份;但它们在代码里仍然当"设置"写,以后露出来就能选
  • 按钮弹动、标题呼吸、入场动画这些动效跳过了,留给下一个项目专门学
  • 音效用自制工具,图标自己画,主按钮没做变体

这次踩的坑(已经写回我的标准流程):

  1. 导出目录 / 筛选器 / .gitignore 三处名字不一致;Include 和 Exclude 填错栏 → .gdignore 根治 + strings 自检
  2. _ready() 里先生食物后建蛇 → 食物可能长在蛇出生的格子上。初始化顺序:先有主角,再生世界
  3. Godot 4 默认 ui_accept / ui_cancel 没有手柄键,每个项目都要补
  4. StyleBox 的 Content Margins 和 Expand Margins 填反了,然后去改容器间距补——补错了地方
  5. 场景里摆的节点尺寸和代码里的常量是两份真相(星星画成 4 格)→ 尺寸也收归代码
  6. 代码里留了给 AI 的疑问注释和教程痕迹("原来是 die()")→ 问完就删,注释只写代码现在在干什么

这个项目真正学到的:不是贪吃蛇,是外壳——设置菜单怎么把选择交给游戏、暂停的 process_mode 传染、手柄焦点、Theme 总表、自己封装一个 UI 组件。第三个游戏开始,这些是在"搬"而不是"写"。

到这里,《XGGame-Snake》记录完了:

  • ✅ 立项表写死"不做什么"
  • ✅ 蛇是一个数组,画面是它的镜子
  • ✅ 四个 Timer 各管一件事
  • ✅ EventBus 喊、GameManager 判、SaveManager 存
  • ✅ 设置菜单、暂停、结算、手柄全流程
  • ✅ Theme + 左右选组件
  • ✅ 导出上架 itch,MIT 开源

下一款游戏见 💪

2023-PRESENT © 谢夏戈