国内环境的不友好, 相比懂互联网的老鸟们都有体会.
最近更新了一直用的 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
正式编译
下载游戏本体
两个选择:
- 在 steam 里下载安装 (需先购买)
默认安装位置: C:\Program Files (x86)\Steam\steamapps\common\Slay the Spire 2
- 网上找打包好的官方中文版 (免费, 但要小心甄别)
截至目前用 v0.100.0 (推荐) 或 v0.99.1 均可
可以逛逛 3DM论坛的资源贴
解包资源
使用 Godot RE Tools 解包游戏资源, 得到完整的 godot 工程
- 运行
gdre_tools.exe打开工具界面:

-
打开 游戏本体 安装目录
C:\Program Files (x86)\Steam\steamapps\common\Slay the Spire 2 -
将
SlayTheSpire2.exe文件拖入Godot RE Tools窗口:

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

- 点击
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