使用 Wine 安装编辑器
中级
虽然你可以在 Linux 上编译和运行 Stride 游戏,但由于编辑器使用 WPF 作为其 UI 框架,它仍然仅限 Windows 使用。不过,从 4.4.0-beta5 版本开始,已经可以借助 Proton 等兼容层在 Linux 上使用编辑器。
Note
编辑器正在重写为跨平台版本。
Warning
通过兼容层运行 Game Studio 不受支持! 请做好途中遇到问题的准备。
限制
- 你可能会在编辑器中遇到图形显示异常。
- 引擎的一次更新可能会破坏你的环境配置。
- 无法通过编辑器构建。 你必须原生构建游戏来进行测试。
stride studio命令将无法打开编辑器。
前言
虽然可以使用 Wine 运行 Game Studio,但在 Proton 上的体验要好得多。本指南将使用 ge-proton11-5,这是撰写本文时 GE-Proton 的最新版本。
此外,本指南将提供针对 Bottles(一个 Wine/Proton 管理器)的详细说明。如果你希望使用其他应用,例如 UMU Launcher 或 Heroic Game's Launcher,总体步骤仍然适用。
先决条件与准备
开始之前,请确保你的 Linux 系统已准备就绪。
安装 Bottles。 可以从 flathub 下载。
安装 Linux 前置依赖。 了解更多请访问设置与要求。
安装适用于 Linux 的 .NET 10 SDK。 下载并安装最新的 .NET 长期支持(LTS)版本(目前为 .NET 10)。详情请参阅在 Linux 上安装 .NET。
安装 Stride.CLI。 该工具可以让你在 Linux 机器上管理不同版本的引擎,无需使用启动器。
dotnet tool install -g stride.cli # 安装 CLI 工具有关 Stride CLI 工具的更多信息,请访问 Stride CLI
此外,你还需要下载几个 Windows 应用程序。
- 下载适用于 Windows 的 .NET 10 SDK 安装程序。 我们需要通过兼容层安装它,Game Studio 才能正常工作。可以从此页面获取。
- 下载 Stride 安装程序。 我们实际上只需要用它来安装 Stride 的 Windows 前置依赖。可以从官方网站获取。
安装步骤
安装 Proton 运行器。 打开 Bottles,通过菜单(位于右上角)> Preferences > Runners 安装 Proton。本指南将使用
ge-proton11-5,但通常建议使用最新版本。
Note
你之后随时可以更改 Proton/Wine 的版本。
创建新的前缀(prefix)。 在 Bottles 中点击左上角的 ➕ 按钮即可完成。

为你的 bottle(前缀)取一个名称,并确保选择正确的 Proton 运行器。

bottle 创建完成后,点击它进入。

使用 Proton 运行适用于 Windows 的 .NET 10 SDK 安装程序。 在 Bottles 中,点击 ▶️ Run Executable... 并选择 SDK 安装程序的
.exe文件。如果你在先决条件一节中漏掉了这一步,可以从此页面获取安装程序。
按照屏幕上的说明完成安装。

运行 Stride 安装程序。 在 Bottles 中,点击 ▶️ Run Executable... 并选择
StrideSetup.exe文件。如果你在先决条件一节中漏掉了这一步,可以从此页面获取安装程序。
按照屏幕上的说明操作,直到安装成功或崩溃(只要它成功装好了前置依赖,就没问题)。

在你的系统上安装引擎。 Stride CLI 让你直接通过命令行管理引擎的安装。我们将用它来下载编辑器应用程序。
# 安装最新版本(包括 beta 版) stride sdk install --prerelease创建指向系统 NuGet 缓存的符号链接。 编辑器需要访问 NuGet 缓存文件夹。在大多数 Linux 发行版中,它位于
~/.nuget。对于 Bottles,点击 Browse C:/ drive 旁边的按钮,找到你的用户文件夹(应在
drive_c/users/<nameOfUser>中)。
在你的用户文件夹中打开终端,并用以下命令创建符号链接:
ln -s ../../../path/to/system/user/folder/.nuget .nugetWarning
对于 bottles 以及所有 flatpak 应用,符号链接必须是相对路径!
安装所需的 NuGet 包。 我们还需要向缓存中下载几个包。最简单的方式是:
创建一个新的 C# 项目
dotnet new classlib -n StrideProtonFix && cd StrideProtonFix编辑
.csproj文件并添加对这些包的引用<ItemGroup> <PackageReference Include="runtime.any.System.Runtime" Version="4.3.0" /> <PackageReference Include="runtime.any.System.IO" Version="4.3.0" /> <PackageReference Include="runtime.win.System.Diagnostics.Debug" Version="4.3.0" /> <PackageReference Include="runtime.any.System.Reflection.Primitives" Version="4.3.0" /> <PackageReference Include="runtime.any.System.Diagnostics.Tools" Version="4.3.0" /> <PackageReference Include="runtime.any.System.Text.Encoding.Extensions" Version="4.3.0" /> <PackageReference Include="runtime.any.System.Globalization.Calendars" Version="4.3.0" /> <PackageReference Include="runtime.any.System.Globalization" Version="4.3.0" /> <PackageReference Include="runtime.win.Microsoft.Win32.Primitives" Version="4.3.0" /> <PackageReference Include="runtime.win.System.Net.Primitives" Version="4.3.0" /> <PackageReference Include="runtime.win.System.Console" Version="4.3.0" /> <PackageReference Include="runtime.any.System.Reflection.Extensions" Version="4.3.0" /> <PackageReference Include="runtime.win.System.Runtime.Extensions" Version="4.3.0" /> <PackageReference Include="System.Security.Principal.Windows" Version="4.3.0" /> <PackageReference Include="System.Private.Uri" Version="4.3.0" /> <PackageReference Include="runtime.any.System.Text.Encoding" Version="4.3.0" /> <PackageReference Include="runtime.any.System.Runtime.Handles" Version="4.3.0" /> <PackageReference Include="runtime.any.System.Reflection" Version="4.3.0" /> <PackageReference Include="runtime.any.System.Resources.ResourceManager" Version="4.3.0" /> <PackageReference Include="runtime.win.System.Net.Sockets" Version="4.3.0" /> <PackageReference Include="System.Net.NameResolution" Version="4.3.0" /> <PackageReference Include="runtime.any.System.Threading.Timer" Version="4.3.0" /> <PackageReference Include="runtime.any.System.Threading.Tasks" Version="4.3.0" /> <PackageReference Include="runtime.any.System.Diagnostics.Tracing" Version="4.3.0" /> <PackageReference Include="runtime.any.System.Collections" Version="4.3.0" /> <PackageReference Include="runtime.any.System.Runtime.InteropServices" Version="4.3.0" /> <PackageReference Include="System.Security.Claims" Version="4.3.0" /> <PackageReference Include="runtime.win.System.IO.FileSystem" Version="4.3.0" /> </ItemGroup>构建项目
dotnet build StrideProtonFix.csproj
确保
icu.dll和icuuc.dll使用 Windows 版本。 在编写本指南时,我们发现我们的前缀会尝试使用上述 DLL 的 Linux 版本,导致 Game Studio 启动时崩溃。这个问题可能仅限于我们当时使用的 Proton 版本,因此你可能不需要这一步。在 Bottles 中,进入 Settings > Compatibility > DLL Overrides,并将
icu.dll和icuuc.dll添加到列表中。现在可以将它们的覆盖设置为 Native (Windows)。
启动 Game Studio。 最后,我们可以使用前缀启动编辑器。
在 Bottles 中,点击 ➕ Add shortcuts... 按钮,并从
drive_c/users/<nameOfUser>/.nuget/packages/stride.gamestudio/<engineVersion>/tools/net10.0-windows7.0/Stride.GameStudio.exe中选择 Game Studio 可执行文件。Tip
在快捷方式名称中加入引擎版本,以免混淆。
到这里你应该已经可以正常运行了。如果编辑器仍然无法工作,请查看故障排除。
故障排除
如前所述,这种方式使用引擎并不受支持,因此你可能会遇到一些问题。以下是其中几个问题及其解决方案/临时办法:
出现隐藏窗口
使用多个缩放比例不同的显示器时可能会遇到这个问题。作为临时办法,你可以启用虚拟桌面(virtual desktop),它会为窗口创建一个虚拟的桌面环境。
在 Bottles 中,可以进入 Settings > Display > Advanced Display Settings > Virtual Desktop 来完成。也可以按快捷方式分别调整。
StrideSetup.exe 在完成前崩溃
如安装步骤中所述,只要它成功安装了前置依赖,这不应造成任何问题。
Game Studio 提示安装 .NET Runtime
这可能意味着:
- 你在安装过程中漏掉了一步,没有运行 .NET SDK 安装程序。
- 你需要运行更新版本 .NET 的安装程序。
- Game Studio 因为你所使用的 Proton/Wine 版本而无法检测到 .NET。
要解决这个问题,你需要重新运行 Windows .NET SDK 安装程序、尝试安装更新版本的 Windows .NET SDK,或者尝试更改前缀所使用的运行器。
Game Studio 启动时崩溃
原因可能有很多,因此最好尝试从命令行运行 Game Studio。
在 Bottles 中,进入 Tools > Command Line,并尝试用以下命令启动 Game Studio。
dotnet drive_c\users\<nameOfUser>\.nuget\packages\stride.gamestudio\<engineVersion>\tools\net10.0-windows7.0\Stride.GameStudio.dll
Can't recognize 'dotnet' as an internal or external command
这表示你的前缀中没有 .NET 10 运行时安装程序。
要解决这个问题,请按照安装步骤重新运行 Windows .NET SDK 安装程序。
与 .dll 文件相关的错误
这可能是因为 Game Studio 试图使用某些库的 Linux 原生版本,而不是 Windows 版本。你需要覆盖这些 DLL,并将它们显式设置为使用 Windows 版本。
在 Bottles 中,进入 Settings > Compatibility > DLL Overrides,并将出问题的 DLL 添加到列表中。现在可以将它们的覆盖设置为 Native (Windows)。

Note
重试之前,请务必重启终端!
它居然能用了!
这意味着 Game Studio 检测不到 .NET 运行时,很可能是前缀所使用的运行器导致的。尝试更换为其他版本后重试。
我的问题不在列表中
如果是这种情况,你可以尝试以下做法:
- 尝试更改前缀所使用的运行器。
- 尝试在 Stride Discord 上求助——可能有人遇到过同样的问题。
- 使用全新的前缀重新按照指南操作。