1744 字
9 分钟
Godot C# 零基础教程 09:导出发布与学习路线图

教程一 · 第 9 章:导出发布与后续路线图#

游戏在编辑器里跑不算完成,玩家拿到的是导出包。本章走通 Windows、Web、Android 三个平台,然后给一张可执行的进阶路线图。

9.1 导出模板#

第一次导出必须装与编辑器版本号完全一致的导出模板:

  • 编辑器 → 管理导出模板(项目 → 导出对话框右上角也有入口)
  • 下载并安装约 1GB 的模板(.NET 版包含 C# 运行时)
  • 版本必须严格一致(4.7.2 编辑器配 4.7.2 模板),不一致会红字报错

9.2 导出 Windows#

项目 → 导出 → 添加 → Windows Desktop:

  • .NET 版关键选项:
    • 导出方式:默认产出 .exe + .pdb + data_* 目录(.NET 程序集)。这是正常的,别只拷 exe
    • 想单文件分发:勾选 “Embed Dotnet DLLs/C# 单文件” 相关选项(4.x 中叫 Embed MSIL / 单文件打包),产物体积大一点但只有一个 exe
  • Architecture:x86_64
  • 纹理压缩按默认(桌面用无损/VRST 都行)
  • 图标:准备 256×256 ICO
  • Product Name、公司名填好

导出后:

  1. 务必把产物目录整个拷到别人机器上测试,你机器上有 .NET SDK 和各种环境,不能代表干净系统
  2. SmartScreen 首次运行会拦(未签名应用的常态),买代码签名证书(一年几百到几千元)才能消除;个人发布初期直接写说明让用户点”仍要运行”
  3. 想上 Steam:Steamworks SDK + Godot Steam 扩展,那是独立的一课,先 itch.io 发布练手

9.3 导出 Web(itch.io / 自己的网页)#

C# 的 Web 导出在 4.x 已经可用(依赖 .NET 8+ / WASM 工具链),但有几个坑:

  • 导出预设选 Web
  • SharedArrayBuffer 要求:服务器必须发两个响应头(itch.io 默认已配;自建服务器/Nginx 要自己加):
    Cross-Origin-Opener-Policy: same-origin
    Cross-Origin-Embedder-Policy: require-corp
  • 本地测试:在导出目录跑 python -m http.server 8060 后用 Chrome 打开,不要双击 index.html(浏览器安全策略下 file:// 跑不起来)
  • 限制:不支持线程相关 API 的部分用法、文件系统受限(存档要用 user://,浏览器映射到 IndexedDB)、首次加载较大
  • 移动端浏览器适配要额外调触摸输入和视口

演示 Demo 上 Web 是极好的选择:链接即玩,转化率远高于下载。

9.4 导出 Android#

环境准备(最繁琐的一个):

  1. 装 Android Studio(只为拿 SDK/JDK,不用写 Android 代码),SDK Manager 装 Platform、Build-Tools、Platform-Tools
  2. Godot → 编辑器设置 → Export → Android:指定 JDK、Android SDK 路径
  3. 生成签名 keystore(一次):
    Terminal window
    keytool -v -genkey -keystore my.keystore -alias mygame -keyalg RSA -keysize 2048 -validity 10000
    在导出设置里填 keystore 路径和两个密码。这个文件丢了就永远无法给同一个应用发更新,多盘备份
  4. 导出预设选 Android,包名形如 com.yourname.gamename
  • .NET 版 Android 导出要求 .NET SDK 9 或更高(文档明确)
  • 触摸:UI 按钮天然可用;虚拟摇杆自己做两个 TouchScreenButton 或用 Input 事件手写
  • 性能:Forward+ 对中低端机偏重,手游项目渲染器选 Mobile
  • 上架 Google Play 需开发者账号(25 美元一次性);国内安卓渠道各自为政,独立开发者一般先走 TapTap

9.5 iOS / macOS / Linux#

  • macOS:导出需要 Mac(或 CI 云 Mac),Apple Developer ID(99 美元/年),公证流程;Godot 文档 “Exporting for macOS” 一步步照做
  • iOS:同样要 Mac + 开发者账号;Xcode 工程由 Godot 生成后归档上传
  • Linux:x86_64 导出几乎零配置,AppImage/zip 分发,Steam 兼容性好

9.6 发布前清单#

技术

  • 导出模板版本与编辑器一致
  • 干净机器测试 Windows 包、浏览器测 Web 包
  • user:// 读写正常,存档不会因更新丢失
  • 退出时存档、异常断电容忍(先写临时文件再替换)
  • 分辨率/全屏/手柄在至少两台机器验证
  • 控制台没有红字、没有 GD.Print 刷屏
  • 代码里没有作弊调试键(F1 加钱之类)
  • C# 异常全局兜底:GD.UnhandledException 记日志,别让玩家看到白屏不知道为啥

内容

  • 游戏内有标题、版本号(v0.1 写在角落)
  • 新手 30 秒内能上手(首分钟体验最重要)
  • 音量默认不炸耳朵;BGM/SFX 比例合适
  • 至少一个完整的起承转合循环(Demo 也要有”结束感”)
  • 许可合规:字体、音效、图片全有商用许可(Kenney CC0 最省心);第三方协议文件随包附上(Godot 自身 MIT 也建议附)

9.7 之后学什么:路线图#

阶段 A:把本教程的作业都做完(约 20–40 小时) Pong、平台跳跃、武器系统、菜单、暂停、导出。能独立做出来,你已经超过 80% “看了十集教程但没做完过一个游戏”的人。

阶段 B:做一个小型完整游戏并发布(1–2 个月) 范围控制是核心能力。推荐品类:肉鸽小游戏(一局 5 分钟)、弹幕、解谜、类吸血鬼幸存者。必须发布:itch.io 免费页或发给朋友。做完一个完整闭环(开始→失败/胜利→重开)比学十个高级特性值钱。

阶段 C:补引擎深度(按需,不要提前学)

  • 状态机/行为树:敌人 AI;先用 C# 状态模式(教程二第 5 章后你就有语言基础)
  • NavigationServer2D/3D:导航网格自动寻路
  • TileMap 进阶 + Y-sort:2D 俯视角色前后遮挡
  • Shader:Canvas Shader 从水面、闪白、溶解入门;The Book of Shaders 打图形基础
  • 3D:导入模型(Blender 基础)、灯光烘焙、AnimationTree 状态机混合
  • 多语言本地化、手柄重绑定、Steam SDK、成就

阶段 D:工程化(项目变大时)

  • NuGet 第三方库(Json:Newtonsoft.Json;DI:Microsoft.Extensions.DependencyInjection,谨慎)
  • 单元测试:Godot Test Driver / xUnit + 把纯逻辑从 Node 中剥离
  • Git:.gitignore 忽略 .godot/、导出产物;场景文件是文本可合并,但别让两人同时改一个 .tscn
  • CI:GitHub Actions 跑 dotnet build,导出自动化

教程资源

  • 官方文档(质量很高,C# 页示例齐全):docs.godotengine.org
  • GDScript 教程照样能学:90% 操作完全一样,查 API 时把 GDScript 语法翻成 C#(信号 connect→+=,$Node→GetNode,export→[Export]),翻不过来的查官方 C# 页
  • 源码即文档:API 命名规律极强,VS Code 里 F12 跳转看 GodotSharp 定义
  • GitHub 上的 C# Godot 项目,读真实代码

9.8 写在最后#

Godot 学习最大的坑不是引擎难,是教程地狱:一直看、一直跟着敲、从没做过自己的东西。从第 3 章的 Pong 开始,每章的作业请独立完成;卡壳先查官方文档和报错原文,再问 AI——并且要求 AI 解释原因,不要只要答案。

做游戏是个手艺,和写小说、弹琴一样,量到了才质变。去把你的第一个游戏做完。

——教程一完——


《Godot C# 零基础》系列导航

⬅️ 上一篇:Godot C# 零基础教程 08:音效、粒子、屏幕震动与调试 📑 返回系列总目录(第 01 篇) ➡️ 下一篇:为 Godot 学 C# 01:变量与类型

Godot C# 零基础教程 09:导出发布与学习路线图
https://021028.xyz/posts/default/169/
作者
021028
发布于
2026-10-14
许可协议
CC BY-NC-SA 4.0