这个项目能做什么
2dog 是一个反转 Godot 与 .NET 通常关系的项目:不是 Godot 加载 .NET,而是 .NET 应用托管 Godot。它将经过轻微修改的 libgodot 打包为一个可供 .NET 应用嵌入的库,因此由 .NET 运行时掌控进程。
由于由 .NET 驱动应用,开发者可以通过 browser-wasm 进行浏览器发布,使用普通的 dotnet 工具链,并实现诸如单元测试之类的自动化。项目附带预构建的原生库,因此用户无需自行编译 Godot。一个显著成果是能够将 Godot C# 项目导出到 Web。
入门选项:
- 对于现有的 Godot 项目,在项目目录中运行 `dnx 2dog add` 以添加嵌套的 .NET 宿主,然后运行 `dotnet run --project MyGame.2dog`。再次运行该命令会添加另一个宿主。
- 对于新项目,运行 `dnx 2dog new MyGame`,然后运行 `dotnet run --project MyGame.2dog`。还通过 `dotnet new install 2dog && dotnet new 2dog -n MyGame` 提供了 `dotnet new` 模板。
- 熟悉的 Godot 编辑器工作流仍可用于可视化场景编辑。
Web 导出:使用 wasm-tools 工作负载将生成的 .NET 应用发布到 browser-wasm,然后用 dotnet-serve 提供 AppBundle 目录。文档站点涵盖了开发循环、部署选项和当前限制。
项目结构:2dog 添加包含“宿主”的子目录,这些宿主使用 libgodot 而不是导出模板或编辑器可执行文件来运行 Godot 项目。典型布局包括带有 project.godot 和游戏 C# 程序集的 Godot 项目根目录,以及一个桌面 .NET 宿主、一个浏览器 WebAssembly 宿主和一个无头 xUnit 测试宿主。每个嵌套宿主都带有一个 .gdignore,以便 Godot 忽略它,从而保持原始游戏项目不变,同时每个宿主都有自己的入口点和依赖项。
要求和状态:
- .NET SDK 10.0 或更高版本,并带有 wasm-tools 工作负载
- 仅在需要可视化场景编辑时使用 Godot 4.7.x 官方 .NET 编辑器
- 支持的构建平台:win-x64、linux-x64、osx-arm64
- 已发布构建支持的 RID:win-x64、linux-x64、osx-arm64、browser-wasm
- 包可在 NuGet 和 GitHub releases 上获取
2dog 自身的开发:使用子模块克隆,并使用提供的 poe 任务构建原生包和 .NET 包。包含一个展示演示和测试套件。该项目记录了其在代码库不同部分对 LLM 的使用,包括审查门控和通过 Trusted Publishing 进行人工签名的发布。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。