杀戮尖塔2 本地编译 (godot项目)

2026-03-24
2分钟阅读时长
921字
阅读
Featured Image

国内环境的不友好, 相比懂互联网的老鸟们都有体会.

最近更新了一直用的 v2ray 的客户端, 突然发现电脑频繁的出现代理抽风的问题, 折腾了1天算解决了

必需环境

  • .NET SDK (装 9.0.14 就行)

    自动安装到 C:\Program Files\dotnet

  • Godot 4.5.1 .NET (下 .NET 版)

    假设: 下载安装到 D:\godot\v4.5.1_mono

  • GDRE tools (下 v2.5.0-beta.4 及以上就行)

    假设: 下载解压到 D:\GDRE_tools-v2.5.0-beta.4

  • fmod (下 addons.zip)

    下载解压出 fmod 文件夹, 后面用

  • 游戏本体

    参考下文

也可以下载我打包好的: 夸克网盘

前置准备

先装 .NET SDK

这个必需要先装好, 后续的步骤都会用到

验证版本

dotnet --version

9.0.312

确保 .nupkg 依赖正确引用

这步一定要 提前做 (原因看 这里 和 这里), 且一定要确保正常后, 再继续下一步的 正式编译

由于后面的 解包资源 过程到最后会自动编译 (默认开启), 这步没做好, 就会编译出错

当然, 编译出错不影响产出 godot 工程, 后面这步做好后, gidit IDE里重新编译也行, 但提前做好, 一步到位更稳

查询注册源

dotnet nuget list source

注册的源:
  1.  GodotLocal-4.5.1 [已启用]
      D:\godot\v4.5.1_mono\GodotSharp\Tools\nupkgs
  2.  nuget.org [已启用]
      https://api.nuget.org/v3/index.json

正式编译

下载游戏本体

两个选择:

  1. 在 steam 里下载安装 (需先购买)

默认安装位置: C:\Program Files (x86)\Steam\steamapps\common\Slay the Spire 2

  1. 网上找打包好的官方中文版 (免费, 但要小心甄别)

截至目前用 v0.100.0 (推荐) 或 v0.99.1 均可

可以逛逛 3DM论坛的资源贴

解包资源

使用 Godot RE Tools 解包游戏资源, 得到完整的 godot 工程

  1. 运行 gdre_tools.exe 打开工具界面:

未解析

  1. 打开 游戏本体 安装目录 C:\Program Files (x86)\Steam\steamapps\common\Slay the Spire 2

  2. 将 SlayTheSpire2.exe 文件拖入 Godot RE Tools 窗口:

已解析

  1. 修改导出设置: 关闭 Copy referenced assemblies 选项

已解析

  1. 点击 Extract 按钮, 等待解包完成即可

Godot RE Tools 作者发布了 v2.5.0-beta.4 版本, 已经增加了针对的适配编译问题, 解包后就不需要再修复一次了, 直接可以运行测试了

更新 fmod 插件

将下载好的 addons.zip 解压后的 fmod 文件夹, 整体覆盖到 解包后的godot工程目录下的 addons 文件夹里 (里面有同名文件夹 fmod)

打开运行工程

用 Godot_v4.5.1-stable_mono_win64.exe 导入解包工程, 运行即可

运行

编译报错

无法解析 Godot.NET.Sdk

这个容易踩坑的地方

出现这种情况, 主要因为 Godot.NET.Sdk 下的 NuGet 的包解析流程与 原生的 .NET 不太一样

查看解包工程文件 sts2.csproj 可以看到:

<Project Sdk="Godot.NET.Sdk/4.5.1">
...
</Project>

Godot 自己的 SDK 并没有被注册到 dotnet / MSBuild 里, 编译走的是系统的 MSBuild, 找不到就报错了

Godot.NET.Sdk 实际在 D:\godot\v4.5.1_mono\GodotSharp\Tools\nupkgs\ 里

解决办法: 补充 Godot目录 到 NuGet 注册源

dotnet nuget add source "D:\godot\v4.5.1_mono\GodotSharp\Tools\nupkgs" -n GodotLocal-4.5.1

找不到 .Ref 包

看到这类错误, 因为 Godot.NET.Sdk 的 NuGet 解析流程里, 查找 .Ref 包时, 本地找不到就会去 nuget.org 找,

而 本地的注册源 没有官方源的配置, 所以就报错了

比如, 可能执行过 dotnet nuget locals all --clear 或 其他原因

error NU1101: 找不到包 Microsoft.NETCore.App.Ref
error NU1101: 找不到包 Microsoft.WindowsDesktop.App.Ref
error NU1101: 找不到包 Microsoft.AspNetCore.App.Ref
...

解决办法: 补充 官方源 到 NuGet 注册源

dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
Avatar
zfkun 喜欢游戏、热爱技术、追求艺术、崇尚自由、渴望精彩、最爱唠叨