-
Notifications
You must be signed in to change notification settings - Fork 74
feat: Write tutorial how to install GameStudio on Linux (wine) #555
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Jklawreszuk
wants to merge
5
commits into
stride3d:master
Choose a base branch
from
Jklawreszuk:wine-gamestudio
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
7abb562
feat: Installation guide for Linux using Proton
ferafiks becd140
feat: Write tutorial how to install GameStudio on Linux (wine)
Jklawreszuk 9b1ecc4
feat: Installation guide for Linux using Proton
ferafiks f506465
fix: Addressed small grammar errors
ferafiks 4ec13e9
Merge remote-tracking branch 'fera/linux-wine' into wine-gamestudio
Jklawreszuk File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This should be removed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,103 @@ | ||
| # Install Stride (Wine) | ||
|
|
||
| <span class="badge text-bg-primary">Intermediate</span> | ||
|
|
||
| > [!IMPORTANT] | ||
| > While Stride Engine offers support for running game projects on Linux (runtime), GameStudio is a WPF application that is currently only officially supported on Windows. The experience when running it via Wine may vary, and the performance, stability and functionality of the emulated application **are not guaranteed.** | ||
|
|
||
|
|
||
| This guide outlines a robust process for setting up the Stride development environment on Linux, utilizing Wine to run the Windows-based game editor - GameStudio. | ||
|
|
||
|
|
||
| # Prerequisites and Preparation | ||
|
|
||
| Before getting started, ensure your Linux system is ready. | ||
|
|
||
| 1. **Install Wine:** Ensure Wine is properly installed on your Linux distribution. We'll need it to launch the [GameStudio](../game-studio/index.md) app. | ||
| 2. **Install .NET 10 SDK for Linux:** Download and install the latest Long-Term Support (LTS) version of .NET (currently .NET 10). See [Install .NET on Linux](https://learn.microsoft.com/en-us/dotnet/core/install/linux?WT.mc_id=dotnet-35129-website) for more information. | ||
| 3. **Install Stride.CLI:** This tool allows you to download Stride NuGet packages on any operating system. | ||
| ```bash | ||
| dotnet tool install --global Stride.Cli; | ||
| stride sdk install --prerelease; # Installs the latest Stride nuget packages (at least 4.4.0-beta5 is required) | ||
| ``` | ||
| Once Stride.CLI is fully installed, you'll be able to create and run your games **from the terminal**. | ||
|
|
||
| ## Install Stride.Launcher using Wine | ||
|
|
||
| We will install the necessary components within a specific Wine prefix to keep the environment organized. | ||
|
|
||
| 1. Download the Stride Installer from the [Stride website](http://stride3d.net/download/) and use Wine to install `StrideSetup.exe` into your designated Wine prefix. | ||
| ```bash | ||
| wine StrideSetup.exe | ||
| ``` | ||
|
|
||
| 2. **Install the latest LTS .NET SDK for [Windows](https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-10.0.400-windows-x64-installer):** Crucially, the .NET 10 SDK must be installed within the **exact same Wine prefix** that the `Stride.Launcher.exe` is using. | ||
| ```bash | ||
| wine <path_to_dotnet_windows_installer.exe> | ||
| ``` | ||
|
|
||
| ## Resolve NuGet-related Certificate Errors | ||
|
|
||
| > [!IMPORTANT] | ||
| > | ||
| > Due to unknown package validation, the initial installation of Stride components via the launcher is almost guaranteed to fail with an "unknown NuGet CA certificate validation error." | ||
| >  | ||
|
Jklawreszuk marked this conversation as resolved.
|
||
|
|
||
|
|
||
| The following steps are the necessary manual workaround to force the required dependencies into the Wine environment. | ||
|
|
||
|
|
||
| ### Download Required Packages | ||
|
|
||
| 1. On your native Linux machine, create a new Console Application. | ||
| 2. Add the following packages to the project's .csproj file: | ||
| *(Note: These packages are required to satisfy the dependencies of the Stride.GameStudio within the Wine prefix.)* | ||
|
|
||
| ```xaml | ||
| <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> | ||
| ``` | ||
|
|
||
| 3. Restore Packages by building the test application (`dotnet build`). This process forces NuGet to download all listed dependencies into your local Linux `.nuget/packages` folder. | ||
|
|
||
| ### Link Packages into Wine | ||
|
|
||
| Symbolic links allows the Wine application to access the packages directly from your Linux system without having to duplicate massive directories. Imagine this as an advanced shortcut for accessing files. | ||
|
|
||
| 1. Navigate to the expected NuGet location within your Wine prefix and remove the existing `.nuget/packages` directory (if it exists and is empty, this is safe). | ||
|
|
||
| 2. Run the following command in your Linux terminal, ensuring the source path (your actual cache) is the target of the link, and the Wine path is where the link is placed | ||
| ```bash | ||
| ln -s ~/.nuget/packages ~/.wine/drive_c/users/<your_user>/.nuget/packages | ||
| ``` | ||
|
|
||
|
|
||
| After this process is complete, try to open the Stride.Launcher.exe via Wine. The launcher should now be able to resolve dependencies locally within the prefix and the Stride components should appear and be runnable. | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be removed.