杀戮尖塔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.SdkNuGet 解析流程里, 查找 .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 喜欢游戏、热爱技术、追求艺术、崇尚自由、渴望精彩、最爱唠叨