From c6d357c15c060630cc796892cce40e5f2bcd4271 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Tue, 30 Jun 2026 06:58:20 +0200 Subject: [PATCH 01/29] Added Stride CLI --- en/manual/get-started/create-a-project.md | 92 +++++++++++------- en/manual/get-started/next-steps.md | 2 +- en/manual/get-started/stride-cli.md | 94 +++++++++++++++++++ .../install-and-update/manage-versions.md | 4 + en/manual/toc.yml | 2 + 5 files changed, 158 insertions(+), 36 deletions(-) create mode 100644 en/manual/get-started/stride-cli.md diff --git a/en/manual/get-started/create-a-project.md b/en/manual/get-started/create-a-project.md index 5eb353335..7e0e937a7 100644 --- a/en/manual/get-started/create-a-project.md +++ b/en/manual/get-started/create-a-project.md @@ -2,30 +2,25 @@ Beginner -This page explains how to: - -* create a new empty project -* create a project based on a template or sample +This page explains how to create a new project from a template or sample using multiple ways. **Templates** are projects that contain just the necessary elements to start working on a game. **Samples** are complete games, which you can learn from or base a new game on. -## Create an empty project - -An **empty project** is project that contains only the bare minimum to make a game: a simple scene with a light, camera, and script to move the camera, plus a preconfigured rendering pipeline. This is good when you want to start your game from scratch without elements you don't need. +## Create a new project with Game Studio -To create an empty project: +To create a new project: 1. In the **Stride Launcher**, click **Start** to start Game Studio. The **New/open project** dialog opens. - ![New Project dialog](media/create-project-new-open-project-window.webp) + ![](media/create-project-new-open-project-window.webp) - You can also open a new project in Game Studio from **File > New**. + You can also open this dialog in Game Studio from **File > New**. -2. Select **New Game**. +2. Select a project template or sample. An empty template can be found in **New project > New Game**. 3. In the **Name** and **Location** fields, specify a name for the project and the folder to save it in. @@ -33,7 +28,10 @@ To create an empty project: The **Create a new game** dialog opens. - ![Create a new game dialog](media/create-project-create-new-game.webp) + ![](media/create-project-create-new-game.webp) + + > [!NOTE] + > The list of available options can differ depending on the template or sample. 5. In the **Namespace** field, specify the namespace you want to use. If you don't know what your namespace should be, leave it as default. @@ -59,33 +57,47 @@ To create an empty project: Stride creates the project and opens it in Game Studio. For more information, see [Game Studio](../game-studio/index.md). -## Create a project from a sample or template +## Create a project with Stride CLI -Stride includes several sample projects demonstrating each part of the engine (2D, 3D, sprites, fonts, UI, audio, input, etc). It also includes template games to help you make your own game. - -To create a project from a sample or template: +The Stride CLI tool provides a way of creating new projects without the need for a GUI. - 1. Open the **New Project** dialog. - - 2. On the left, navigate to **New project > Samples**. - - 3. **Select the sample** you want to create a project from. - - ![New Project window โ€” samples](media/create-project-new-open-project-samples.webp) +1. Before starting, make sure to install the Stride CLI. For instructions on how to do this, visit the [Stride CLI page](stride-cli.md). - 4. Click **Select**. +2. Find the template you want to use. The default project template is named `stride-game`. For a list of all stride templates, use this command: - The **Select Platforms** window opens. + ```bash + stride new list + ``` - ![Select Platforms window](media/create-project-select-platform.webp) - - 5. Select the platforms you want your game to support and click **OK**. + The blank template is called **game**. -Stride creates the project and opens it in Game Studio. +3. Display a list of additional parameters for the template or sample: -## Create a project without Game Studio + ```bash + stride new TemplateNameHere --help + ``` -Stride allows you to create new projects from the command line using the `dotnet` command. +4. Create the project. + + ```bash + stride new TemplateNameHere -n ProjectNameHere + ``` + +5. Enter the newly created project folder. + + ```bash + cd ./ProjectNameHere + ``` + +6. Open the project in **Game Studio**. + + ````bash + stride studio + ```` + +## Create a project with dotnet templates + +An alternative way of creating a project from the command line without the need for Stride CLI is to use dotnet templates. 1. Before starting, make sure to install the project templates from nuget. @@ -99,12 +111,22 @@ Stride allows you to create new projects from the command line using the `dotnet dotnet new list --tag stride ``` -3. Create the project. +3. Display a list of additional parameters for the template or sample: ```bash - dotnet new stride-game -n NameOfGame + dotnet new TemplateNameHere --help ``` +4. Create the project. + + ```bash + dotnet new TemplateNameHere -n ProjectNameHere + ``` + +5. Open **Game Studio** manually. + +## Command line template parameters + All Stride templates can take additional parameters to change how they are created. Here's a list of the most commonly used ones: | Parameter | Values | Description | @@ -122,13 +144,13 @@ Example command: ### [Powershell (Windows)](#tab/powershell) ```powershell -dotnet new stride-game -n ProjectX --HDR true --platform windows`|linux +stride new game -n ProjectX --HDR true --platform windows`|linux ``` ### [Bash (Linux)](#tab/bash) ```bash -dotnet new stride-game -n ProjectX --HDR true --platform windows\|linux +stride new game -n ProjectX --HDR true --platform windows\|linux ``` --- diff --git a/en/manual/get-started/next-steps.md b/en/manual/get-started/next-steps.md index 655fc438e..5fa52a0b6 100644 --- a/en/manual/get-started/next-steps.md +++ b/en/manual/get-started/next-steps.md @@ -2,7 +2,7 @@ Congratulations, by this point you should have everything to get yourself started with Stride! -The best way of learning more about the engine is to **just start making something**. Alternatively, you can check out one of the [built-in examples](create-a-project.md#create-a-project-from-a-sample-or-template) or those provided [by the community](../../community-resources/example-projects.md). +The best way of learning more about the engine is to **just start making something**. Alternatively, you can check out one of the [built-in examples](create-a-project.md) or those provided [by the community](../../community-resources/example-projects.md). In case you **get confused by certain terminology**, you can check out the [glossary](../glossary/index.md), which contains a list of all terms used in the documentation and the engine. diff --git a/en/manual/get-started/stride-cli.md b/en/manual/get-started/stride-cli.md new file mode 100644 index 000000000..65ba61e98 --- /dev/null +++ b/en/manual/get-started/stride-cli.md @@ -0,0 +1,94 @@ +# Stride CLI + +The **Stride CLI** is a tool that allows you to work with Stride through the command line. It isn't required in order to make games, but it can be a useful utility for developers that like using a terminal. + +Stride CLI features: + +* Manage different versions of the engine +* Create new projects +* Update projects +* Launch Game Studio without the launcher +* Run the asset compiler +* Can be a replacement for the Stride Launcher + +> [!WARNING] +> Even though the CLI tool removes the need for the launcher, it's still recommended to [install it](../install-and-update/install-stride.md), as it also installs prerequsities for the engine. + +## Install the CLI tool + +The CLI tool is available on nuget and can be installed directly through the command line. + +```bash +dotnet tool install -g Stride.Cli +``` + +After that you might need to open and close your terminal for the `stride` command to become available. You can check if it's working by running the following command: + +```bash +stride --version +``` + +> [!WARNING] +> If the command is still not working, you might need to update your Path environment variable in your system to include the path to dotnet tools. Steps on how to do this differ between operating systems and explaining this is outside of the scope of this page. + +## Manage versions + +Here's a list of commands that let you manage different versions of the engine on your machine: + +| Command | Description | +| :-- | :-- | +| `stride install` | Installs the latest version of the engine. | +| `stride install VERSION` | Installs a specific version of the engine. Version patch number is optional. | +| `stride list` | List all installed versions. | +| `stride update` | Update all installed versions of the engine to the latest patch. | +| `stride update VERSION` | Update a specific installed version of the engine to the latest patch. Version patch number is optional. | +| `stride uninstall VERSION` | Uninstall a specific version of the engine. | + +> [!NOTE] +> Stride versions are structured in the following way: `major.minor.patch`. For many commands, the patch version can be skipped (e.g. `4.3`). + +## Create a new project + +New projects are created from templates that are built into the engine. The most basic and most commonly used template is named `game`. You can view a list of all templates with the following command: + +```bash +stride new list +``` + +New projects can then be created from the template with the following command: + +```bash +stride new NameOfTemplate -n NameOfGame +``` + +Every template can have an additional list of parameters. To view them, pass the `--help` parameter to the command. + +```bash +stride new NameOfTemplate --help +``` + +> [!NOTE] +> You can create new projects from the command line without the Stride CLI. +> +> ```bash +> dotnet new install Stride.Templates.Games # Install the templates +> dotnet new list --tag stride # List all installed templates for stride +> dotnet new stride-game --help # Display all parameters for a template +> dotnet new stride-game -n NameOfGame # Create a new project from a template +> ``` + +## Launch Game Studio + +You can Game Studio in your current folder with the following command: + +```bash +stride studio +``` + +## Miscalenious commands + +| Command | Description | +| :-- | :-- | +| `stride version` | Displays the version of the CLI tool + the version of the resolved project. | +| `stride asset build ./NameOfGame.sln` | Runs the Asset Compiler (all arguments are forwarded). | +| `stride self update` | Updates the CLI tool to the latest version via `dotnet tool update` | diff --git a/en/manual/install-and-update/manage-versions.md b/en/manual/install-and-update/manage-versions.md index a062dfe25..f1cd87852 100644 --- a/en/manual/install-and-update/manage-versions.md +++ b/en/manual/install-and-update/manage-versions.md @@ -36,3 +36,7 @@ To remove a specific installed version of the engine: 2. Click the uninstall button. ![Picture of the uninstall button](media/stride-launcher-delete.webp) + +## Managing versions through the command line + +The **Stride CLI** let's you install, uninstall and manage versions of the engine directly through the command line. For more information, read [Stride CLI โ€” Manage versions](../get-started/stride-cli.md#manage-versions). diff --git a/en/manual/toc.yml b/en/manual/toc.yml index a1352e167..5147644dc 100644 --- a/en/manual/toc.yml +++ b/en/manual/toc.yml @@ -29,6 +29,8 @@ items: href: get-started/game-studio.md - name: Stride Extension href: get-started/visual-studio-extension.md + - name: Stride CLI + href: get-started/stride-cli.md - name: Assets href: get-started/assets.md - name: Launch a game From 5f2bd19339e5e84903d7d8d0bcdf3328a196d670 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Tue, 30 Jun 2026 07:04:58 +0200 Subject: [PATCH 02/29] slnx --- en/manual/engine/solution.md | 23 +++---------------- .../files-and-folders/project-structure.md | 4 ++-- .../files-and-folders/version-control.md | 2 +- en/manual/get-started/stride-cli.md | 2 +- .../stride-for-unity-developers/index.md | 2 +- en/manual/troubleshooting/profiling.md | 2 +- 6 files changed, 9 insertions(+), 26 deletions(-) diff --git a/en/manual/engine/solution.md b/en/manual/engine/solution.md index 771a63cd9..b494b0fa5 100644 --- a/en/manual/engine/solution.md +++ b/en/manual/engine/solution.md @@ -1,20 +1,3 @@ -# Solution - -[!INCLUDE [stride-studio-note](../../includes/under-construction-note.md)] - -In Stride Studio, the **Solution Explorer** displays the hierarchy of your game. - -The content of each package is grouped into two categories: Local packages and External packages. Local packages are the ones that you have created. External packages are the one that you have downloaded from the Internet; for example, the default Stride package. If you open a package file (```.sdpkg```), a single package of the local package category is visible. If you open a solution file (```.sln```) and the solution contains more that one package, you can see several packages. - -Each package contains the following three base elements: - -* Assets: The assets element comprises all the assets contained in a package. You can expand the Assets element to see the same hierarchy among the assets that is on the file system. When you select the **Assets** folder, the **Asset View** displays the assets contained in this folder. - -* Code: The code element contains the code libraries and executables in the package. Each of them corresponds to a single ```.csproj``` file. By right-clicking an executable, you can set it as the current project. This action enables you to compile the assets for the related platform and launch the game. - -* Dependencies: The dependencies element lists all the other packages that are referenced by a package. The packages in the **Dependencies** list have their assets accessible to this package. - ->[!Note] ->You can change the hierarchy in the **Solution Explorer** by creating folders and renaming or deleting objects. - -Stride uses Visual Studio solution files to list all the packages and code project related to a game. Thus, you can easily integrate Stride Studio and Visual Studio for your project because they use the same root file. By default, Stride Studio creates a new solution file when you create a new project, and manages references to both C# projects and packages. \ No newline at end of file +--- +redirect_url: ../files-and-folders/project-structure.html +--- diff --git a/en/manual/files-and-folders/project-structure.md b/en/manual/files-and-folders/project-structure.md index f5ce40f71..e9e070400 100644 --- a/en/manual/files-and-folders/project-structure.md +++ b/en/manual/files-and-folders/project-structure.md @@ -6,13 +6,13 @@ This page explains in detail how a Stride project's files are structured. ## Overview -A Stride project is a **standard C# solution**, consisting of a single [solution file](https://learn.microsoft.com/en-us/visualstudio/extensibility/internals/solution-dot-sln-file) (`.sln`) and multiple [project package](#project-packages) folders, which contain code, assets and resources. +A Stride project is a **standard C# solution**, consisting of a single [solution file](https://learn.microsoft.com/en-us/visualstudio/extensibility/internals/solution-dot-sln-file) (`.slnx`/`.sln`) and multiple [project package](#project-packages) folders, which contain code, assets and resources. ![](media/file-structure.webp) * **Bin** - folder containing build files. For more information visit [this section](#project-bin-folder). * **NameOfGame**, **NameOfGame.PlatformName** - project package folders. -* **`.sln` file** - the solution file used by C# and Game Studio for opening the project. +* **`.slnx`/`.sln` file** - the solution file used by C# and Game Studio for opening the project. ## Project packages diff --git a/en/manual/files-and-folders/version-control.md b/en/manual/files-and-folders/version-control.md index 3de49b9b0..36966ae4e 100644 --- a/en/manual/files-and-folders/version-control.md +++ b/en/manual/files-and-folders/version-control.md @@ -37,7 +37,7 @@ Cache/ ``` > [!WARNING] -> This file should be placed at the root of the Stride project, next to the `.sln` file. If your git repository isn't initialized at the root, the `.gitignore` file will still be detected. +> This file should be placed at the root of the Stride project, next to the `.slnx`/`.sln` file. If your git repository isn't initialized at the root, the `.gitignore` file will still be detected. > > ![](media/version-control-gitignore-location.webp) diff --git a/en/manual/get-started/stride-cli.md b/en/manual/get-started/stride-cli.md index 65ba61e98..fb0b9ad8e 100644 --- a/en/manual/get-started/stride-cli.md +++ b/en/manual/get-started/stride-cli.md @@ -90,5 +90,5 @@ stride studio | Command | Description | | :-- | :-- | | `stride version` | Displays the version of the CLI tool + the version of the resolved project. | -| `stride asset build ./NameOfGame.sln` | Runs the Asset Compiler (all arguments are forwarded). | +| `stride asset build ./NameOfGame.slnx` | Runs the Asset Compiler (all arguments are forwarded). | | `stride self update` | Updates the CLI tool to the latest version via `dotnet tool update` | diff --git a/en/manual/stride-for-unity-developers/index.md b/en/manual/stride-for-unity-developers/index.md index 128a7491d..b3b3ce3a9 100644 --- a/en/manual/stride-for-unity-developers/index.md +++ b/en/manual/stride-for-unity-developers/index.md @@ -33,7 +33,7 @@ Unityยฎ and Stride use mostly common terms, with a few differences: Like Unityยฎ, Stride projects are stored in a directory that contains: -* The project `.sln` solution file, which you can open with Game Studio or any IDE such as Visual Studio +* The project `.slnx` solution file, which you can open with Game Studio or any IDE such as Visual Studio * A **MyGame.Game** folder with project source files, dependencies, resources, configurations, and binaries ![Package folder structure](../files-and-folders/media/file-structure.webp) diff --git a/en/manual/troubleshooting/profiling.md b/en/manual/troubleshooting/profiling.md index 4d3c0eff1..4f01ddda4 100644 --- a/en/manual/troubleshooting/profiling.md +++ b/en/manual/troubleshooting/profiling.md @@ -158,7 +158,7 @@ Instead of using the Stride Game Profiler, you can use external profiling tools Visual Studio has powerful in-built profiling tools that can identify common performance issues. -1. In Visual Studio, open your project solution (`.sln`) file. +1. In Visual Studio, open your project solution (`.slnx`/`.sln`) file. 2. To open the profiler, press **Alt + F2**, or in the task bar click **Analyze > Performance Profiler**. From 457919b311a9d7f5045b983d876005bb953d8b98 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Tue, 30 Jun 2026 08:38:08 +0200 Subject: [PATCH 03/29] Updating --- en/manual/install-and-update/update-stride.md | 88 +++++++++++++++++-- 1 file changed, 80 insertions(+), 8 deletions(-) diff --git a/en/manual/install-and-update/update-stride.md b/en/manual/install-and-update/update-stride.md index 4bdf09fc8..94584cda5 100644 --- a/en/manual/install-and-update/update-stride.md +++ b/en/manual/install-and-update/update-stride.md @@ -9,11 +9,21 @@ Updating Stride is a straightforward process, but it's important to follow the s ## Updating Stride -In the **Stride Launcher**, look over to **Stride versions** and press the update button next to the version you are using. +In the **Stride Launcher**, look over to **Switch/update version** and press the update button next to the version you are using. -![Picture of the update button in the Stride Launcher.](media/stride-launcher-update.webp) +![](media/stride-launcher-update.webp) Major and minor releases will appear as a separate version in the list and will require manual installation. + +Alternatively, you can update the engine from the terminal using the [Stride CLI](../get-started/stride-cli.md): + +```bash +# Update all installed engine versions +stride update + +# Update a specific engine version +stride update 4.2 +``` ## Updating your IDE @@ -21,11 +31,73 @@ Make sure you are using the latest version of your IDE of choice to ensure compa ## Updating your project -1. **Version Control:** Before proceeding with the update, confirm that your project is under version control with all current changes committed. This provides a safety net, allowing you to revert to the previous state if needed. If you're not using version control, ensure you have a backup of your project. -2. **Opening the Project:** When you open a project created with an older version of Stride, a dialogue will appear, prompting you to update the project. Make sure to check the option to apply the update to all packages in the solution. Additionally, you can verify later whether all packages have been updated by checking your project files, specifically the `.csproj` files. - ![New Project dialog](media/update-stride-packages.webp) -3. **Saving the Project:** After Stride updates the project, it's crucial to save it immediately. This step prevents the project from being in an undefined state and solidifies the changes made during the update. - ![New Project dialog](media/update-stride-save-project.webp) -4. **Rebuild and Reload:** Finally, rebuild the project and reload assemblies. This ensures that all components are up-to-date and properly synchronized with the new version of Stride. +1. (Recommended) Commit all changes to **version control**. This will provide a safety net, allowing you to revert to the previous state in case something goes wrong. + +2. Open your project with the newer version of the engine. You will be prompted if you want to upgrade a package. Make sure to select to do this for every package in the solution and press **Upgrade**. + + ![](media/update-stride-packages.webp) + + > [!TIP] + > If you are not using version control, it's recommended to **enable the option to backup modified files**. That way, if something goes wrong, you will be able to easily revert the changes. + +3. After Stride finishes updating the project, it's crucial to **save it immediately**. This step prevents the project from being in an undefined state and solidifies the changes made during the update. + + ![](media/update-stride-save-project.webp) By following these steps, you can smoothly transition to the latest version of Stride, taking full advantage of the new features and improvements it offers. Remember, these procedures are designed to provide a hassle-free update experience and safeguard your project against potential issues. + +## Reverting a project update + +In case something went wrong while updating your project to a newer version of Stride or a newer version has a bug that prevents your game from working properly, you can revert it back to the previous version of the engine. + +> [!TIP] +> Before reverting, try to identify what happened and [open an issue on Stride's Github page](https://github.com/stride3d/stride/issues) that describes your problem, so that it can be resolved in a future version of the engine. + +### Reverting with version control + +If your project is using version control, it can be easily reverted to a previous state. + +1. Close **Game Studio** to make sure it doesn't override anything. + +2. Use your version control software to restore all changed files. + +3. Change the engine version in the **Stride Launcher** to the previous version. For more information on how to do this, visit [Manage versions](manage-versions.md). + +4. Open your project and verify that everything is working correctly. + +### Reverting without version control + +If your project is not using version control, but you have selected the option to **backup modified files** during the project upgrade, then you can restore it to the previous state from that backup. + +1. Close **Game Studio** to make sure it doesn't override anything. + +2. Open your project's folder. + +3. Locate a folder that starts with `.stride-backup` (you might need to enable viewing hidden files depending on your OS). + +4. Copy all of it's contents to your project's root directory and select to **overwrite existing files**. + +5. Change the engine version in the **Stride Launcher** to the previous version. For more information on how to do this, visit [Manage versions](manage-versions.md). + +6. Open your project and verify that everything is working correctly. + +### Reverting without version control or backups + +If your project isn't using version control and you haven't selected the option to backup modified files during the project upgrade, then you might still be able to **manually revert all of the changes**. + +> [!NOTE] +> This is why using version control is recommended. + +1. Close **Game Studio** to make sure it doesn't override anything. + +2. Open your project's folder. + +3. Manually go over every `.csproj` file and change the version of all Stride packages to the one you were previously using. You can view all available versions of the engine on [nuget.org](https://www.nuget.org/packages/Stride.Engine#versions-body-tab). + +4. Resolve all issues in your code. + +5. (Recommended) Start tracking your project using version control software such as [git](https://git-scm.com/) in case something breaks again in the future. + +6. Change the engine version in the **Stride Launcher** to the previous version. For more information on how to do this, visit [Manage versions](manage-versions.md). + +7. Open your project and verify that everything is working correctly. From ce9db2f4a2742b7630a14280ade8b349b95aa6a9 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Tue, 30 Jun 2026 08:48:53 +0200 Subject: [PATCH 04/29] launcher --- en/manual/get-started/visual-studio-extension.md | 2 +- en/manual/graphics/effects-and-shaders/custom-shaders.md | 2 -- en/manual/install-and-update/install-stride.md | 4 ++-- en/manual/install-and-update/update-stride.md | 6 +++--- en/manual/stride-launcher/index.md | 2 +- 5 files changed, 7 insertions(+), 9 deletions(-) diff --git a/en/manual/get-started/visual-studio-extension.md b/en/manual/get-started/visual-studio-extension.md index e47b2d163..2d6cb7ded 100644 --- a/en/manual/get-started/visual-studio-extension.md +++ b/en/manual/get-started/visual-studio-extension.md @@ -2,7 +2,7 @@ Beginner -The **Stride extension** is an **optional** extension for IDEs that lets you [edit shaders directly from your IDE](../graphics/effects-and-shaders/custom-shaders.md). +The **Stride extension** is an **optional** extension for IDEs that provides a few utilities for working with Stride. It isn't needed for syntax highlighting in C#. diff --git a/en/manual/graphics/effects-and-shaders/custom-shaders.md b/en/manual/graphics/effects-and-shaders/custom-shaders.md index bdf2d3079..6ac68f50c 100644 --- a/en/manual/graphics/effects-and-shaders/custom-shaders.md +++ b/en/manual/graphics/effects-and-shaders/custom-shaders.md @@ -13,8 +13,6 @@ You can also use custom shaders to create custom post effects. For more informat ### Option 1: Using Visual Studio (Recommended for Game Studio workflow) -1. Make sure you have the [Stride Visual Studio extension](../../get-started/visual-studio-extension.md) installed. This is necessary to convert the shader files from SDSL ([Stride shading language](index.md)) to `.cs` files. - 2. In Game Studio, in the toolbar, click ![Open in IDE](../../get-started/media/launch-your-game-IDE-icon.webp) (**Open in IDE**) to open your project in Visual Studio. 3. In the Visual Studio **Solution Explorer**, right-click the project (eg *MyGame.Game*) and select **Add > New item**. diff --git a/en/manual/install-and-update/install-stride.md b/en/manual/install-and-update/install-stride.md index 974162fb7..bf13bbfba 100644 --- a/en/manual/install-and-update/install-stride.md +++ b/en/manual/install-and-update/install-stride.md @@ -45,12 +45,12 @@ Changing the installation location is possible, but explaining this is outside o Stride has an optional extension that's available for some IDEs. -- **๐ŸŸฉ What it does**: let's you write shaders directly in an IDE. +- **๐ŸŸฉ What it does**: provides a few useful utilities related to the engine. - **๐ŸŸฅ What it doesn't do**: provide C# syntax highlighting for Stride (that works without the extension). The extension can be installed for Visual Studio via the launcher, by navigating to the **Visual Studio extension** section. For other IDEs, visit the [Stride Extension page](../get-started/visual-studio-extension.md). -![Image of the "Visual Studio extension" section in the Stride Launcher.](media/vs-extension.webp) +![](media/vs-extension.webp) > [!NOTE] > The "Visual Studio 2022: Install" button will also work for Visual Studio 2026. diff --git a/en/manual/install-and-update/update-stride.md b/en/manual/install-and-update/update-stride.md index 94584cda5..18efbfbac 100644 --- a/en/manual/install-and-update/update-stride.md +++ b/en/manual/install-and-update/update-stride.md @@ -63,7 +63,7 @@ If your project is using version control, it can be easily reverted to a previou 3. Change the engine version in the **Stride Launcher** to the previous version. For more information on how to do this, visit [Manage versions](manage-versions.md). -4. Open your project and verify that everything is working correctly. +4. Open your project and verify that there are no issues. ### Reverting without version control @@ -79,7 +79,7 @@ If your project is not using version control, but you have selected the option t 5. Change the engine version in the **Stride Launcher** to the previous version. For more information on how to do this, visit [Manage versions](manage-versions.md). -6. Open your project and verify that everything is working correctly. +6. Open your project and verify that there are no issues. ### Reverting without version control or backups @@ -100,4 +100,4 @@ If your project isn't using version control and you haven't selected the option 6. Change the engine version in the **Stride Launcher** to the previous version. For more information on how to do this, visit [Manage versions](manage-versions.md). -7. Open your project and verify that everything is working correctly. +7. Open your project and verify that there are no issues. diff --git a/en/manual/stride-launcher/index.md b/en/manual/stride-launcher/index.md index 616bef13f..eb4a18f70 100644 --- a/en/manual/stride-launcher/index.md +++ b/en/manual/stride-launcher/index.md @@ -20,7 +20,7 @@ If you choose to install the latest version of Stride, the Stride Launcher asks ![Install Visual Studio integration](../install-and-update/media/install-VS-plug-in-prompt.webp) -The Visual Studio extension lets you edit shaders directly from Visual Studio, and provides syntax highlighting, live code analysis with validation, error checking, and navigation (jump to definition). Installing the extension isn't mandatory, but we recommend it. +The Visual Studio extension provides a few useful utilities for working with the engine. Installing it isn't mandatory, but we recommend it. To install or reinstall the Visual Studio extension at any time, click the **Reinstall** button in the Stride Launcher. From cb3259837bd4c78381d22c33971649e69d376668 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Tue, 30 Jun 2026 09:41:21 +0200 Subject: [PATCH 05/29] Stride CLI polish --- en/manual/get-started/stride-cli.md | 52 +++++-------------- en/manual/install-and-update/update-stride.md | 26 +++++++++- 2 files changed, 38 insertions(+), 40 deletions(-) diff --git a/en/manual/get-started/stride-cli.md b/en/manual/get-started/stride-cli.md index fb0b9ad8e..f4fb1700c 100644 --- a/en/manual/get-started/stride-cli.md +++ b/en/manual/get-started/stride-cli.md @@ -12,24 +12,24 @@ Stride CLI features: * Can be a replacement for the Stride Launcher > [!WARNING] -> Even though the CLI tool removes the need for the launcher, it's still recommended to [install it](../install-and-update/install-stride.md), as it also installs prerequsities for the engine. +> Even though the CLI tool removes the need for the launcher, it is still recommended to [install it](../install-and-update/install-stride.md), as it also includes prerequisites for the engine. ## Install the CLI tool The CLI tool is available on nuget and can be installed directly through the command line. ```bash -dotnet tool install -g Stride.Cli +dotnet tool install -g stride.cli ``` -After that you might need to open and close your terminal for the `stride` command to become available. You can check if it's working by running the following command: +After that, you might need to open and close your terminal for the `stride` command to become available. You can check if it's working by running the following command: ```bash stride --version ``` > [!WARNING] -> If the command is still not working, you might need to update your Path environment variable in your system to include the path to dotnet tools. Steps on how to do this differ between operating systems and explaining this is outside of the scope of this page. +> If the command is still not working, you might need to update your system's `Path` environment variable to include the directory containing dotnet tools. ## Manage versions @@ -37,49 +37,23 @@ Here's a list of commands that let you manage different versions of the engine o | Command | Description | | :-- | :-- | -| `stride install` | Installs the latest version of the engine. | -| `stride install VERSION` | Installs a specific version of the engine. Version patch number is optional. | -| `stride list` | List all installed versions. | -| `stride update` | Update all installed versions of the engine to the latest patch. | -| `stride update VERSION` | Update a specific installed version of the engine to the latest patch. Version patch number is optional. | -| `stride uninstall VERSION` | Uninstall a specific version of the engine. | +| `stride sdk install` | Installs the latest version of the engine. | +| `stride sdk install VERSION` | Installs a specific version of the engine. Version patch number is optional. | +| `stride sdk list` | List all installed versions. | +| `stride sdk update` | Update all installed versions of the engine to the latest patch. | +| `stride sdk update VERSION` | Update a specific installed version of the engine to the latest patch. Version patch number is optional. | +| `stride sdk uninstall VERSION` | Uninstall a specific version of the engine. | > [!NOTE] > Stride versions are structured in the following way: `major.minor.patch`. For many commands, the patch version can be skipped (e.g. `4.3`). ## Create a new project -New projects are created from templates that are built into the engine. The most basic and most commonly used template is named `game`. You can view a list of all templates with the following command: - -```bash -stride new list -``` - -New projects can then be created from the template with the following command: - -```bash -stride new NameOfTemplate -n NameOfGame -``` - -Every template can have an additional list of parameters. To view them, pass the `--help` parameter to the command. - -```bash -stride new NameOfTemplate --help -``` - -> [!NOTE] -> You can create new projects from the command line without the Stride CLI. -> -> ```bash -> dotnet new install Stride.Templates.Games # Install the templates -> dotnet new list --tag stride # List all installed templates for stride -> dotnet new stride-game --help # Display all parameters for a template -> dotnet new stride-game -n NameOfGame # Create a new project from a template -> ``` +For information on how to create a new project with the CLI, read [Create a project โ€” Create a project with Stride CLI](create-a-project.md#create-a-project-with-stride-cli). ## Launch Game Studio -You can Game Studio in your current folder with the following command: +You can open your project with Game Studio using the following command: ```bash stride studio @@ -90,5 +64,5 @@ stride studio | Command | Description | | :-- | :-- | | `stride version` | Displays the version of the CLI tool + the version of the resolved project. | -| `stride asset build ./NameOfGame.slnx` | Runs the Asset Compiler (all arguments are forwarded). | +| `stride asset` | Forwards commands to the Asset Compiler. | | `stride self update` | Updates the CLI tool to the latest version via `dotnet tool update` | diff --git a/en/manual/install-and-update/update-stride.md b/en/manual/install-and-update/update-stride.md index 18efbfbac..f335ba94d 100644 --- a/en/manual/install-and-update/update-stride.md +++ b/en/manual/install-and-update/update-stride.md @@ -44,7 +44,31 @@ Make sure you are using the latest version of your IDE of choice to ensure compa ![](media/update-stride-save-project.webp) -By following these steps, you can smoothly transition to the latest version of Stride, taking full advantage of the new features and improvements it offers. Remember, these procedures are designed to provide a hassle-free update experience and safeguard your project against potential issues. +## Updating your project with Stride CLI + +Project updates can also be performed from the terminal with [Stride CLI](../get-started/stride-cli.md). + +1. Close **Game Studio** to make sure it doesn't override anything. + +2. (Recommended) Commit all changes to **version control**. This will provide a safety net, allowing you to revert to the previous state in case something goes wrong. + +3. Run the following command in order to update your project to the latest version of Stride: + + ```bash + stride upgrade path/to/your/project + ``` + + If you want to update to a specific version of the engine, you can define it with the `--version` flag. + + ```bash + stride upgrade --version 4.2 path/to/your/project + ``` + + To view a list of all available flags and parameters, run the following command: + + ```bash + stride upgrade --help + ``` ## Reverting a project update From 8dc2eaed4f59140eab52dbef6825c3734379a676 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Tue, 30 Jun 2026 10:19:54 +0200 Subject: [PATCH 06/29] Updated file structure graphics with .slnx --- en/manual/files-and-folders/media/file-structure.svg | 4 ++-- en/manual/files-and-folders/media/file-structure.webp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/en/manual/files-and-folders/media/file-structure.svg b/en/manual/files-and-folders/media/file-structure.svg index ee1a30e57..1e56657bc 100644 --- a/en/manual/files-and-folders/media/file-structure.svg +++ b/en/manual/files-and-folders/media/file-structure.svg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ad62aa2cdaf9bcfddf87887f9a3dc96e605e1b52f3ca080ad390c80d2c8259f9 -size 120415 +oid sha256:38a723d52600a2e8fae4c7ce377bfad1b3257b53bc51a5ad0b441405502725ad +size 120405 diff --git a/en/manual/files-and-folders/media/file-structure.webp b/en/manual/files-and-folders/media/file-structure.webp index ab905e62c..c3ac86177 100644 --- a/en/manual/files-and-folders/media/file-structure.webp +++ b/en/manual/files-and-folders/media/file-structure.webp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4ff7fec41e1ee979e125b8184eb2c938d33c43b0752b061d837c7e35c1843c5d -size 281018 +oid sha256:4a3029a0522bc9e0e8e966bb1fc147d5965a13cc639bc9c044629a88137f0678 +size 281260 From 82ec6e2ce4cb61df6994503b6eff991ceef97412 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Tue, 30 Jun 2026 10:49:29 +0200 Subject: [PATCH 07/29] Improvements to the cli page --- en/manual/get-started/index.md | 1 + en/manual/get-started/stride-cli.md | 43 ++++++------------- .../install-and-update/install-stride.md | 2 +- .../install-and-update/manage-versions.md | 17 +++++++- en/manual/install-and-update/update-stride.md | 4 +- 5 files changed, 32 insertions(+), 35 deletions(-) diff --git a/en/manual/get-started/index.md b/en/manual/get-started/index.md index 0743dab89..7a2baa07d 100644 --- a/en/manual/get-started/index.md +++ b/en/manual/get-started/index.md @@ -19,6 +19,7 @@ For video tutorials, have a look at [Tutorials](../../tutorials/index.md). * [Key Concepts](key-concepts.md) * [Game Studio](game-studio.md) * [Stride Extension](visual-studio-extension.md) +* [Stride CLI](stride-cli.md) * [Assets](assets.md) * [Launch your game](launch-a-game.md) * [Next steps](next-steps.md) diff --git a/en/manual/get-started/stride-cli.md b/en/manual/get-started/stride-cli.md index f4fb1700c..87ebc6c6c 100644 --- a/en/manual/get-started/stride-cli.md +++ b/en/manual/get-started/stride-cli.md @@ -1,5 +1,7 @@ # Stride CLI +Intermediate + The **Stride CLI** is a tool that allows you to work with Stride through the command line. It isn't required in order to make games, but it can be a useful utility for developers that like using a terminal. Stride CLI features: @@ -14,7 +16,7 @@ Stride CLI features: > [!WARNING] > Even though the CLI tool removes the need for the launcher, it is still recommended to [install it](../install-and-update/install-stride.md), as it also includes prerequisites for the engine. -## Install the CLI tool +## Installing Stride CLI The CLI tool is available on nuget and can be installed directly through the command line. @@ -22,7 +24,7 @@ The CLI tool is available on nuget and can be installed directly through the com dotnet tool install -g stride.cli ``` -After that, you might need to open and close your terminal for the `stride` command to become available. You can check if it's working by running the following command: +After that, you might need to open and close your terminal for the `stride` command to become available. You can check if it's working by running the following: ```bash stride --version @@ -31,38 +33,19 @@ stride --version > [!WARNING] > If the command is still not working, you might need to update your system's `Path` environment variable to include the directory containing dotnet tools. -## Manage versions - -Here's a list of commands that let you manage different versions of the engine on your machine: - -| Command | Description | -| :-- | :-- | -| `stride sdk install` | Installs the latest version of the engine. | -| `stride sdk install VERSION` | Installs a specific version of the engine. Version patch number is optional. | -| `stride sdk list` | List all installed versions. | -| `stride sdk update` | Update all installed versions of the engine to the latest patch. | -| `stride sdk update VERSION` | Update a specific installed version of the engine to the latest patch. Version patch number is optional. | -| `stride sdk uninstall VERSION` | Uninstall a specific version of the engine. | - -> [!NOTE] -> Stride versions are structured in the following way: `major.minor.patch`. For many commands, the patch version can be skipped (e.g. `4.3`). - -## Create a new project - -For information on how to create a new project with the CLI, read [Create a project โ€” Create a project with Stride CLI](create-a-project.md#create-a-project-with-stride-cli). +## Using Stride CLI -## Launch Game Studio - -You can open your project with Game Studio using the following command: +The CLI consists of many commands that provide different utilities. You can view all of them by running the `stride` command without any arguments. ```bash -stride studio +stride ``` -## Miscalenious commands - | Command | Description | | :-- | :-- | -| `stride version` | Displays the version of the CLI tool + the version of the resolved project. | -| `stride asset` | Forwards commands to the Asset Compiler. | -| `stride self update` | Updates the CLI tool to the latest version via `dotnet tool update` | +| `stride sdk` | Manage installed Stride versions (list, install, uninstall, update). For more information, read [Manage versions โ€” Managing versions with Stride CLI](../install-and-update/manage-versions.md#managing-versions-with-stride-cli). | +| `stride new` | Create a project from an installed Stride version's templates. For more information, read [Create a project โ€” Create a project with Stride CLI](create-a-project.md#create-a-project-with-stride-cli). | +| `stride upgrade` | Upgrade a project to a newer installed Stride version. For more information, read [Update Stride โ€” Updating your project with Stride CLI](../install-and-update/update-stride.md#updating-your-project-with-stride-cli). | +| `stride studio` | Open Game Studio. | +| `self` | Manage the Stride CLI itself. | +| `version` | Show the Stride CLI version and the resolved Stride version. | diff --git a/en/manual/install-and-update/install-stride.md b/en/manual/install-and-update/install-stride.md index bf13bbfba..a5ccb318b 100644 --- a/en/manual/install-and-update/install-stride.md +++ b/en/manual/install-and-update/install-stride.md @@ -45,7 +45,7 @@ Changing the installation location is possible, but explaining this is outside o Stride has an optional extension that's available for some IDEs. -- **๐ŸŸฉ What it does**: provides a few useful utilities related to the engine. +- **๐ŸŸฉ What it does**: provides useful utilities related to the engine. - **๐ŸŸฅ What it doesn't do**: provide C# syntax highlighting for Stride (that works without the extension). The extension can be installed for Visual Studio via the launcher, by navigating to the **Visual Studio extension** section. For other IDEs, visit the [Stride Extension page](../get-started/visual-studio-extension.md). diff --git a/en/manual/install-and-update/manage-versions.md b/en/manual/install-and-update/manage-versions.md index f1cd87852..c5a0f883e 100644 --- a/en/manual/install-and-update/manage-versions.md +++ b/en/manual/install-and-update/manage-versions.md @@ -37,6 +37,19 @@ To remove a specific installed version of the engine: ![Picture of the uninstall button](media/stride-launcher-delete.webp) -## Managing versions through the command line +## Managing versions with Stride CLI -The **Stride CLI** let's you install, uninstall and manage versions of the engine directly through the command line. For more information, read [Stride CLI โ€” Manage versions](../get-started/stride-cli.md#manage-versions). +The **Stride CLI** let's you install, uninstall and update versions of the engine directly through the command line. For steps on how to install it, read [Stride CLI](../get-started/stride-cli.md). + +| Command | Description | +| :-- | :-- | +| `stride sdk install` | Installs the latest version of the engine. | +| `stride sdk install VERSION` | Installs a specific version of the engine. Version patch number is optional. | +| `stride sdk list` | List all installed versions. | +| `stride sdk update` | Update all installed versions of the engine to the latest patch. | +| `stride sdk update VERSION` | Update a specific installed version of the engine to the latest patch. Version patch number is optional. | +| `stride sdk uninstall VERSION` | Uninstall a specific version of the engine. | +| `stride studio` | Launch Game Studio. | + +> [!NOTE] +> For many commands, the patch version can be skipped (e.g. `4.3`). diff --git a/en/manual/install-and-update/update-stride.md b/en/manual/install-and-update/update-stride.md index f335ba94d..d358294ec 100644 --- a/en/manual/install-and-update/update-stride.md +++ b/en/manual/install-and-update/update-stride.md @@ -22,7 +22,7 @@ Alternatively, you can update the engine from the terminal using the [Stride CLI stride update # Update a specific engine version -stride update 4.2 +stride update 4.3 ``` ## Updating your IDE @@ -61,7 +61,7 @@ Project updates can also be performed from the terminal with [Stride CLI](../get If you want to update to a specific version of the engine, you can define it with the `--version` flag. ```bash - stride upgrade --version 4.2 path/to/your/project + stride upgrade --version 4.3 path/to/your/project ``` To view a list of all available flags and parameters, run the following command: From a9481b6c95a3c59ce61021c05f74d59b358921b4 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Tue, 30 Jun 2026 11:17:48 +0200 Subject: [PATCH 08/29] Visual Studio extension --- en/manual/get-started/visual-studio-extension.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/en/manual/get-started/visual-studio-extension.md b/en/manual/get-started/visual-studio-extension.md index 2d6cb7ded..34b832b9a 100644 --- a/en/manual/get-started/visual-studio-extension.md +++ b/en/manual/get-started/visual-studio-extension.md @@ -2,7 +2,7 @@ Beginner -The **Stride extension** is an **optional** extension for IDEs that provides a few utilities for working with Stride. +The **Stride extension** is an **optional** extension for IDEs that provides utilities for working with Stride. It isn't needed for syntax highlighting in C#. @@ -30,6 +30,16 @@ The extension can be installed from [open-vsx](https://open-vsx.org/extension/te --- +## Visual Studio vs Visual Studio Code extensions + +The Stride Extension for Visual Studio Code / VSCodium is a community project that provides **different functionality** compared to the official Visual Studio extension. + +| Visual Studio | Visual Studio Code / VSCodium | +| :-- | :-- | +| Official | Community project | +| Provides Stride-related utilities | Provides tools for shader development | +| Open Source ([repository link](https://github.com/stride3d/stride)) | Open Source ([repository link](https://github.com/tebjan/Stride.ShaderExplorer)) | + ## Opening Game Studio from your IDE You can open your project in Game Studio from **Visual Studio** by going to **Extensions > Stride > Open with Game Studio**. From fbfa5c086300b09884fc4bd9445b36116bf50fa5 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Tue, 30 Jun 2026 11:31:54 +0200 Subject: [PATCH 09/29] Added .Game to all main proejct package names --- .../external-packages/using-nuget-packages.md | 2 +- en/manual/files-and-folders/media/file-structure.svg | 4 ++-- en/manual/files-and-folders/media/file-structure.webp | 4 ++-- .../files-and-folders/media/project-package-structure.svg | 4 ++-- .../files-and-folders/media/project-package-structure.webp | 4 ++-- .../project-packages/media/project-package-dependencies.svg | 4 ++-- .../project-packages/media/project-package-dependencies.webp | 4 ++-- .../project-packages/media/project-package-special-builds.svg | 4 ++-- .../media/project-package-special-builds.webp | 4 ++-- .../project-packages/media/project-package-unreferenced.svg | 4 ++-- .../project-packages/media/project-package-unreferenced.webp | 4 ++-- .../files-and-folders/project-packages/package-properties.md | 4 ++-- en/manual/files-and-folders/project-structure.md | 4 ++-- en/manual/get-started/key-concepts.md | 2 +- 14 files changed, 26 insertions(+), 26 deletions(-) diff --git a/en/manual/files-and-folders/external-packages/using-nuget-packages.md b/en/manual/files-and-folders/external-packages/using-nuget-packages.md index dedf8f355..220dc4f32 100644 --- a/en/manual/files-and-folders/external-packages/using-nuget-packages.md +++ b/en/manual/files-and-folders/external-packages/using-nuget-packages.md @@ -8,7 +8,7 @@ This is a guide on how to use external NuGet packages with Stride. An external NuGet package can be added **as a dependency of another project package** (for .NET developers: as a dependency of another C# project). -In most cases, you would add this to the **main non-platform project package** (e.g. **MyGame**, not **MyGame.Windows**), which contains the majority of code and assets. +In most cases, you would add this to the **main non-platform project package** (e.g. **MyGame.Game**, not **MyGame.Windows**), which contains the majority of code and assets. ## Finding NuGet packages diff --git a/en/manual/files-and-folders/media/file-structure.svg b/en/manual/files-and-folders/media/file-structure.svg index 1e56657bc..f019b8887 100644 --- a/en/manual/files-and-folders/media/file-structure.svg +++ b/en/manual/files-and-folders/media/file-structure.svg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:38a723d52600a2e8fae4c7ce377bfad1b3257b53bc51a5ad0b441405502725ad -size 120405 +oid sha256:562a06005d9087106830c44065abed6675142f99b88bcc23bd4697432658c795 +size 120428 diff --git a/en/manual/files-and-folders/media/file-structure.webp b/en/manual/files-and-folders/media/file-structure.webp index c3ac86177..7db617c48 100644 --- a/en/manual/files-and-folders/media/file-structure.webp +++ b/en/manual/files-and-folders/media/file-structure.webp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4a3029a0522bc9e0e8e966bb1fc147d5965a13cc639bc9c044629a88137f0678 -size 281260 +oid sha256:ccd83611ea684ead1b52d2931c31b81136f39bc006daab590927614da1c5fbc1 +size 284272 diff --git a/en/manual/files-and-folders/media/project-package-structure.svg b/en/manual/files-and-folders/media/project-package-structure.svg index 4cb8f9478..0c0f3745f 100644 --- a/en/manual/files-and-folders/media/project-package-structure.svg +++ b/en/manual/files-and-folders/media/project-package-structure.svg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c022931acfaf750775b09443e95a7058fdde61804e846a5cce31b6954ba125bd -size 112469 +oid sha256:6a00544fa8e763f0c92fcc6498fdd58d49aba8149f35e39615f060e255d62ca4 +size 112473 diff --git a/en/manual/files-and-folders/media/project-package-structure.webp b/en/manual/files-and-folders/media/project-package-structure.webp index 46a2839b3..0e48e97f5 100644 --- a/en/manual/files-and-folders/media/project-package-structure.webp +++ b/en/manual/files-and-folders/media/project-package-structure.webp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:590be7a32d99bfaceea23e02aa807ad5ff38bcb70a8418747931b0ffe601a69f -size 312210 +oid sha256:a22fb50caa46a8bd2becb8a77cd5d911775a74dff298c1ead6a46462c5b1ab10 +size 319082 diff --git a/en/manual/files-and-folders/project-packages/media/project-package-dependencies.svg b/en/manual/files-and-folders/project-packages/media/project-package-dependencies.svg index dc821b709..b00d130de 100644 --- a/en/manual/files-and-folders/project-packages/media/project-package-dependencies.svg +++ b/en/manual/files-and-folders/project-packages/media/project-package-dependencies.svg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1642fd74d25841725618146000f1be89db01b99cb8c317b0062069ff4f482970 -size 119307 +oid sha256:01f5b25435ff1eb60ff135c6fcea9592bab4986823765676e3416f8b163518bd +size 119323 diff --git a/en/manual/files-and-folders/project-packages/media/project-package-dependencies.webp b/en/manual/files-and-folders/project-packages/media/project-package-dependencies.webp index ccf885456..72f1e8a02 100644 --- a/en/manual/files-and-folders/project-packages/media/project-package-dependencies.webp +++ b/en/manual/files-and-folders/project-packages/media/project-package-dependencies.webp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fb823d52d9ede402a47ef3dc6d593369f78ed1b8fbd1754e63de5ea2fd194a12 -size 100556 +oid sha256:d653bf1d2327c6621818afc618b3026f5f40e86d5c38c9a843bad0447d7724a8 +size 101894 diff --git a/en/manual/files-and-folders/project-packages/media/project-package-special-builds.svg b/en/manual/files-and-folders/project-packages/media/project-package-special-builds.svg index f1efefe90..afb1f5faa 100644 --- a/en/manual/files-and-folders/project-packages/media/project-package-special-builds.svg +++ b/en/manual/files-and-folders/project-packages/media/project-package-special-builds.svg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:007b1f407f92d4d7d31e4be4274680d7f0b780975b43f429cfd3c2bb83fda57d -size 121805 +oid sha256:d9aef5e4c855421d78bdea7faa8ef31166c34dbe35a773d4d7870d5561e53735 +size 121815 diff --git a/en/manual/files-and-folders/project-packages/media/project-package-special-builds.webp b/en/manual/files-and-folders/project-packages/media/project-package-special-builds.webp index ba7feb3c6..4aa832390 100644 --- a/en/manual/files-and-folders/project-packages/media/project-package-special-builds.webp +++ b/en/manual/files-and-folders/project-packages/media/project-package-special-builds.webp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f97d2db51c3942076e2d46b4c79162c8908b7f362e1407b23c194bbddd81839f -size 141174 +oid sha256:cc6f0cd1dbdc6655808d80b6925a4858f302443aaa5c4eb15e136e10a0a0ebd5 +size 142158 diff --git a/en/manual/files-and-folders/project-packages/media/project-package-unreferenced.svg b/en/manual/files-and-folders/project-packages/media/project-package-unreferenced.svg index f0140f704..e9d707de6 100644 --- a/en/manual/files-and-folders/project-packages/media/project-package-unreferenced.svg +++ b/en/manual/files-and-folders/project-packages/media/project-package-unreferenced.svg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:998051b0a3768838611433d5b1e4f4227f24c371f98a8be64ca0a979d9100dad -size 107727 +oid sha256:83bb59c2e02fcfcf5fe896731311ef07a4c449be4792a0ef2f9716519f64db11 +size 107732 diff --git a/en/manual/files-and-folders/project-packages/media/project-package-unreferenced.webp b/en/manual/files-and-folders/project-packages/media/project-package-unreferenced.webp index fc3780613..1e0af16a0 100644 --- a/en/manual/files-and-folders/project-packages/media/project-package-unreferenced.webp +++ b/en/manual/files-and-folders/project-packages/media/project-package-unreferenced.webp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ab39b887b2015958f51e131cbf07b4dfb3e5ab6a20db9dc2278d77350d839d54 -size 69182 +oid sha256:9957237064460c6b59013bfa50775f7a46ce9a2b1593059108e993ff424001a7 +size 69668 diff --git a/en/manual/files-and-folders/project-packages/package-properties.md b/en/manual/files-and-folders/project-packages/package-properties.md index 8bd96e6e4..1b9c5d438 100644 --- a/en/manual/files-and-folders/project-packages/package-properties.md +++ b/en/manual/files-and-folders/project-packages/package-properties.md @@ -20,13 +20,13 @@ Every project package contains it's own set of properties, that can be customize ## Example -Here is an example `.sdpkg` file for the library "MyGame" that has two asset folders "Assets" and "Effects" and a single resource folder "Resources". +Here is an example `.sdpkg` file for the library "MyGame.Game" that has two asset folders "Assets" and "Effects" and a single resource folder "Resources". ```yaml !Package SerializedVersion: {Assets: 3.1.0.0} Meta: - Name: MyGame + Name: MyGame.Game Version: 1.0.0 Authors: [] Owners: [] diff --git a/en/manual/files-and-folders/project-structure.md b/en/manual/files-and-folders/project-structure.md index e9e070400..240896d4e 100644 --- a/en/manual/files-and-folders/project-structure.md +++ b/en/manual/files-and-folders/project-structure.md @@ -11,7 +11,7 @@ A Stride project is a **standard C# solution**, consisting of a single [solution ![](media/file-structure.webp) * **Bin** - folder containing build files. For more information visit [this section](#project-bin-folder). -* **NameOfGame**, **NameOfGame.PlatformName** - project package folders. +* **NameOfGame.Game**, **NameOfGame.PlatformName** - project package folders. * **`.slnx`/`.sln` file** - the solution file used by C# and Game Studio for opening the project. ## Project packages @@ -21,7 +21,7 @@ At the root, a Stride project is comprised of multiple [project packages](projec **For .NET developers:** a Stride project package is a standard C# project. By default, there are at least 2 project packages in a Stride project: -* **NameOfGame** - contains most code, assets and resources for the game. +* **NameOfGame.Game** - contains most code, assets and resources for the game. * **NameOfGame.PlatformName** (e.g. NameOfGame.Windows) - dedicated package for a given platform, contains the [**entry point**](project-packages/index.md#entry-point) and other files specific to the platform (such as the window icon). A project package may contain: diff --git a/en/manual/get-started/key-concepts.md b/en/manual/get-started/key-concepts.md index 9d9b30589..d03c5f266 100644 --- a/en/manual/get-started/key-concepts.md +++ b/en/manual/get-started/key-concepts.md @@ -58,7 +58,7 @@ Assets do not contain resource data. Instead, they reference a resource. For exa A Stride project is separated into multiple [project packages](../files-and-folders/project-packages/index.md), which contain their own code, assets and resources. For example, a new project consists of: -* **MyGame** - contains content for the game. +* **MyGame.Game** - contains content for the game. * **MyGame.NameOfPlatform** (such as MyGame.Windows) - contains content specific to the version of the game for a specific platform (like the window icon). For more information, read [Project structure](../files-and-folders/project-structure.md). From 3fa84570f55ca5468c4e7dbcf319a3878ba834eb Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Tue, 30 Jun 2026 11:57:35 +0200 Subject: [PATCH 10/29] Small fix --- en/manual/get-started/create-a-project.md | 30 +++++------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/en/manual/get-started/create-a-project.md b/en/manual/get-started/create-a-project.md index 7e0e937a7..6a7939a4e 100644 --- a/en/manual/get-started/create-a-project.md +++ b/en/manual/get-started/create-a-project.md @@ -71,28 +71,16 @@ The Stride CLI tool provides a way of creating new projects without the need for The blank template is called **game**. -3. Display a list of additional parameters for the template or sample: - - ```bash - stride new TemplateNameHere --help - ``` - -4. Create the project. +5. Create the project. ```bash stride new TemplateNameHere -n ProjectNameHere ``` -5. Enter the newly created project folder. - - ```bash - cd ./ProjectNameHere - ``` - 6. Open the project in **Game Studio**. ````bash - stride studio + stride studio ./ProjectNameHere ```` ## Create a project with dotnet templates @@ -108,22 +96,16 @@ An alternative way of creating a project from the command line without the need 2. Find the template you want to use. The default project template is named `stride-game`. For a list of all stride templates, use this command: ```bash - dotnet new list --tag stride - ``` - -3. Display a list of additional parameters for the template or sample: - - ```bash - dotnet new TemplateNameHere --help + dotnet new list stride ``` -4. Create the project. +3. Create the project. ```bash dotnet new TemplateNameHere -n ProjectNameHere ``` -5. Open **Game Studio** manually. +4. Open **Game Studio** manually. ## Command line template parameters @@ -137,7 +119,7 @@ All Stride templates can take additional parameters to change how they are creat | `--graphics-profile` | `9.0`, `10.0`, `11.0` | The graphics profile to use. This can be changed later. | | `--orientation` | `Default`, `LandscapeLeft`, `LandscapeRight`, `Portrait` | The game's orientation on mobile devices. This can be changed later. | -For a list of all available parameters in a template, use `dotnet new NameOfTemplate --help`. +For a list of all available parameters in a template, use the `--help` flag. Example command: From 4cbcfca54a06d9ad7238a793f275a7d0aecf1691 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Tue, 30 Jun 2026 15:44:58 +0200 Subject: [PATCH 11/29] Polished update stride --- en/manual/install-and-update/update-stride.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/en/manual/install-and-update/update-stride.md b/en/manual/install-and-update/update-stride.md index d358294ec..5c42ac562 100644 --- a/en/manual/install-and-update/update-stride.md +++ b/en/manual/install-and-update/update-stride.md @@ -31,7 +31,7 @@ Make sure you are using the latest version of your IDE of choice to ensure compa ## Updating your project -1. (Recommended) Commit all changes to **version control**. This will provide a safety net, allowing you to revert to the previous state in case something goes wrong. +1. (Recommended) Commit all changes to **version control**. This will provide a safety net, allowing you to revert the update in case something goes wrong. 2. Open your project with the newer version of the engine. You will be prompted if you want to upgrade a package. Make sure to select to do this for every package in the solution and press **Upgrade**. @@ -50,7 +50,7 @@ Project updates can also be performed from the terminal with [Stride CLI](../get 1. Close **Game Studio** to make sure it doesn't override anything. -2. (Recommended) Commit all changes to **version control**. This will provide a safety net, allowing you to revert to the previous state in case something goes wrong. +2. (Recommended) Commit all changes to **version control**. This will provide a safety net, allowing you to revert the update in case something goes wrong. 3. Run the following command in order to update your project to the latest version of Stride: @@ -72,10 +72,10 @@ Project updates can also be performed from the terminal with [Stride CLI](../get ## Reverting a project update -In case something went wrong while updating your project to a newer version of Stride or a newer version has a bug that prevents your game from working properly, you can revert it back to the previous version of the engine. +In case something went wrong while updating your project or a newer version of Stride has a bug that prevents your game from working properly, you can revert it back to the previous version of the engine. > [!TIP] -> Before reverting, try to identify what happened and [open an issue on Stride's Github page](https://github.com/stride3d/stride/issues) that describes your problem, so that it can be resolved in a future version of the engine. +> Before reverting, try to identify what happened and [open an issue on Stride's Github page](https://github.com/stride3d/stride/issues) that describes your problem, so that it can be resolved in a future update. ### Reverting with version control From da932ba052b560bfda3c2372b7b27b7bb9b0f1ab Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Thu, 4 Jun 2026 12:52:56 +0200 Subject: [PATCH 12/29] Added a native AOT page --- .../building-the-game/index.md | 1 + .../building-the-game/native-aot.md | 57 +++++++++++++++++++ en/manual/files-and-folders/index.md | 1 + en/manual/toc.yml | 3 + 4 files changed, 62 insertions(+) create mode 100644 en/manual/files-and-folders/building-the-game/native-aot.md diff --git a/en/manual/files-and-folders/building-the-game/index.md b/en/manual/files-and-folders/building-the-game/index.md index 8d8ab746c..01649cfc1 100644 --- a/en/manual/files-and-folders/building-the-game/index.md +++ b/en/manual/files-and-folders/building-the-game/index.md @@ -24,6 +24,7 @@ When you launch a game from **Game Studio** or your **IDE**, it gets built in th ## In this section * [Setup](setup.md) + * [Native AOT](native-aot.md) * [Building](building.md) * [Cleaning up](cleaning-up.md) * [Build file structure](build-file-structure.md) diff --git a/en/manual/files-and-folders/building-the-game/native-aot.md b/en/manual/files-and-folders/building-the-game/native-aot.md new file mode 100644 index 000000000..0da603c3e --- /dev/null +++ b/en/manual/files-and-folders/building-the-game/native-aot.md @@ -0,0 +1,57 @@ +# Native AOT + +C# and other languages from the .NET ecosystem are compiled into **Common Intermediate Language** (CIL), which can't be executed by a computer directly. Instead, it requires an additional piece of software called the **.NET Runtime** which uses a **Just-In-Time** (JIT) compiler to turn it into native machine code. + +This approach has it's benefits and drawbacks: + +* ๐ŸŸฉ Your code can run on any platform supported by the **.NET Runtime** +* ๐ŸŸฉ Support for high-level features +* ๐ŸŸฉ Reduced disk size +* ๐ŸŸฅ Some platforms do not support it (mainly iOS and consoles) +* ๐ŸŸฅ Requires additional overhead, slightly decreasing performance +* ๐ŸŸฅ Requires a user to install additional software (unless the app is made to be self contained) + +However, it is possible to use Native **Ahead-Of-Time** (AOT) compilation to skip the CIL entirely, creating a native application. Doing this can increase startup time and overall performance, but comes at the cost of every benefit of a standard JIT compiled .NET application. + +## Preparation + +Before enabling Native AOT, you will have to make sure your project can support it. + +1. Make sure that additional libraries your project is using support **Native AOT**. +2. Make sure your project doesn't use reflections. +3. Make sure your project doesn't use any other non-Native AOT compatible feature. + +## Enable Native AOT in a project + +1. Locate the `.csproj` file of the [platform package](../project-packages/index.md#platform-packages) you want to enable **Native AOT** for (e.g. `MyGame.Windows.csproj`). + +2. Add the following line to the `PropertyGroup`: + + ```xml + true + ``` + + Here's an example configuration: + + ```xml + + + + net10.0-windows + win-x64 + Resources/Icon.ico + WinExe + MyGame + app.manifest + + true + + + ... + + + ``` + +## Further reading + +For more information about native AOT development with .NET, read the [Microsoft article](https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/). diff --git a/en/manual/files-and-folders/index.md b/en/manual/files-and-folders/index.md index aa6b3456f..a6f3be0e0 100644 --- a/en/manual/files-and-folders/index.md +++ b/en/manual/files-and-folders/index.md @@ -19,6 +19,7 @@ This section explains how a Stride project is structured, how it works and how t * [Cached files](cached-files.md) * [Building the game](building-the-game/index.md) * [Setup](building-the-game/setup.md) + * [Native AOT](building-the-game/native-aot.md) * [Building](building-the-game/building.md) * [Cleaning up](building-the-game/cleaning-up.md) * [Build file structure](building-the-game/build-file-structure.md) diff --git a/en/manual/toc.yml b/en/manual/toc.yml index 5147644dc..fd81d518f 100644 --- a/en/manual/toc.yml +++ b/en/manual/toc.yml @@ -539,6 +539,9 @@ items: items: - name: Setup href: files-and-folders/building-the-game/setup.md + items: + - name: Native AOT + href: files-and-folders/building-the-game/native-aot.md - name: Building href: files-and-folders/building-the-game/building.md - name: Cleaning up From ea3719ece83db49358cfa901b0dd2ce30d3d12b6 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Thu, 4 Jun 2026 13:45:57 +0200 Subject: [PATCH 13/29] Improvements' --- .../building-the-game/native-aot.md | 12 ++++++------ .../files-and-folders/building-the-game/setup.md | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/en/manual/files-and-folders/building-the-game/native-aot.md b/en/manual/files-and-folders/building-the-game/native-aot.md index 0da603c3e..e121a7b42 100644 --- a/en/manual/files-and-folders/building-the-game/native-aot.md +++ b/en/manual/files-and-folders/building-the-game/native-aot.md @@ -1,17 +1,17 @@ # Native AOT -C# and other languages from the .NET ecosystem are compiled into **Common Intermediate Language** (CIL), which can't be executed by a computer directly. Instead, it requires an additional piece of software called the **.NET Runtime** which uses a **Just-In-Time** (JIT) compiler to turn it into native machine code. +C# and other languages from the .NET ecosystem are compiled into **Common Intermediate Language** (CIL), which can't be executed by a computer directly. Instead, it requires an additional piece of software called the **.NET Runtime**, which uses a **Just-In-Time** (JIT) compiler to turn it into native machine code. This approach has it's benefits and drawbacks: * ๐ŸŸฉ Your code can run on any platform supported by the **.NET Runtime** -* ๐ŸŸฉ Support for high-level features -* ๐ŸŸฉ Reduced disk size +* ๐ŸŸฉ You can use high-level language features +* ๐ŸŸฉ Compiled projects take up less disk space * ๐ŸŸฅ Some platforms do not support it (mainly iOS and consoles) -* ๐ŸŸฅ Requires additional overhead, slightly decreasing performance -* ๐ŸŸฅ Requires a user to install additional software (unless the app is made to be self contained) +* ๐ŸŸฅ Creates additional overhead, slightly decreasing performance +* ๐ŸŸฅ Requires a user to install additional software (unless the app is made to be [self contained](setup.md#self-contained)) -However, it is possible to use Native **Ahead-Of-Time** (AOT) compilation to skip the CIL entirely, creating a native application. Doing this can increase startup time and overall performance, but comes at the cost of every benefit of a standard JIT compiled .NET application. +An alternative to this is to use **Native Ahead-Of-Time** (AOT) compilation to skip the CIL entirely, creating a native application. Doing this can decrease startup time and improve overall performance, but comes at the cost of every benefit of a standard JIT compiled .NET application. ## Preparation diff --git a/en/manual/files-and-folders/building-the-game/setup.md b/en/manual/files-and-folders/building-the-game/setup.md index 559da29f4..ed14af2d5 100644 --- a/en/manual/files-and-folders/building-the-game/setup.md +++ b/en/manual/files-and-folders/building-the-game/setup.md @@ -126,6 +126,22 @@ In the `.csproj` file, add `true` and `true` to the ``. + +![](media/visual-studio-csproj.webp) + +### [Manual](#tab/manual) + +In the `.csproj` file, add `true` to the ``. + +--- + ## The output directory There are two paths which can be configured: From 84edeaf73b219221cd3f7dff1a11f49b9f274e01 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Wed, 1 Jul 2026 11:29:18 +0200 Subject: [PATCH 14/29] Misc changes --- .../project-packages/package-properties.md | 1 + en/manual/get-started/stride-cli.md | 22 ++++++++++++++++--- en/manual/install-and-update/update-stride.md | 17 +++++++++----- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/en/manual/files-and-folders/project-packages/package-properties.md b/en/manual/files-and-folders/project-packages/package-properties.md index 1b9c5d438..c9ed1ff10 100644 --- a/en/manual/files-and-folders/project-packages/package-properties.md +++ b/en/manual/files-and-folders/project-packages/package-properties.md @@ -17,6 +17,7 @@ Every project package contains it's own set of properties, that can be customize | Bundles | List of bundles and their metadata. For more information read [Asset Bundles](../../engine/assets/asset-bundles.md). | | TemplateFolders | List of directory paths containing custom templates in the `.sdtpl` format. For more information read [Custom Assets](../../scripts/custom-assets.md#adding-a-section-for-the-add-asset-menu-inside-the-editor). | | RootAssets | List of root assets (assets that will always be included with the build). | +| AssetAssemblies | A list of paths to external assemblies (`.dll` files) containing custom assets. | ## Example diff --git a/en/manual/get-started/stride-cli.md b/en/manual/get-started/stride-cli.md index 87ebc6c6c..7857f80a1 100644 --- a/en/manual/get-started/stride-cli.md +++ b/en/manual/get-started/stride-cli.md @@ -18,7 +18,7 @@ Stride CLI features: ## Installing Stride CLI -The CLI tool is available on nuget and can be installed directly through the command line. +The CLI tool is available for all platforms via nuget and can be installed directly through the command line. ```bash dotnet tool install -g stride.cli @@ -47,5 +47,21 @@ stride | `stride new` | Create a project from an installed Stride version's templates. For more information, read [Create a project โ€” Create a project with Stride CLI](create-a-project.md#create-a-project-with-stride-cli). | | `stride upgrade` | Upgrade a project to a newer installed Stride version. For more information, read [Update Stride โ€” Updating your project with Stride CLI](../install-and-update/update-stride.md#updating-your-project-with-stride-cli). | | `stride studio` | Open Game Studio. | -| `self` | Manage the Stride CLI itself. | -| `version` | Show the Stride CLI version and the resolved Stride version. | +| `stride self` | Manage the Stride CLI itself. | +| `stride version` | Show the Stride CLI version and the resolved Stride version. | +| `stride asset` | Run the Stride Asset Compiler directly (advanced; arguments are forwarded). | + +For more information about how to use a given command, use the `--help` flag. For example: + +```bash +stride sdk --help +``` + +## Example usage + +```bash +stride sdk install # Install the latest version +stride new game -n ProjectX && cd ProjectX # Create a new project and enter it's directory +dotnet run --project ProjectX.Windows # Build and run the project +stride studio # Open Game Studio +``` diff --git a/en/manual/install-and-update/update-stride.md b/en/manual/install-and-update/update-stride.md index 5c42ac562..fb946f678 100644 --- a/en/manual/install-and-update/update-stride.md +++ b/en/manual/install-and-update/update-stride.md @@ -31,16 +31,18 @@ Make sure you are using the latest version of your IDE of choice to ensure compa ## Updating your project -1. (Recommended) Commit all changes to **version control**. This will provide a safety net, allowing you to revert the update in case something goes wrong. +1. **Make sure your project can be built.** The upgrade process can modify some of your code, which requires all `.csproj` files to be compilable. -2. Open your project with the newer version of the engine. You will be prompted if you want to upgrade a package. Make sure to select to do this for every package in the solution and press **Upgrade**. +2. (Recommended) Commit all changes to **version control**. This will provide a safety net, allowing you to revert the update in case something goes wrong. + +3. Open your project with the newer version of the engine. You will be prompted if you want to upgrade a package. Make sure to select to do this for every package in the solution and press **Upgrade**. ![](media/update-stride-packages.webp) > [!TIP] > If you are not using version control, it's recommended to **enable the option to backup modified files**. That way, if something goes wrong, you will be able to easily revert the changes. -3. After Stride finishes updating the project, it's crucial to **save it immediately**. This step prevents the project from being in an undefined state and solidifies the changes made during the update. +4. After Stride finishes updating the project, it's crucial to **save it immediately**. This step prevents the project from being in an undefined state and solidifies the changes made during the update. ![](media/update-stride-save-project.webp) @@ -48,11 +50,16 @@ Make sure you are using the latest version of your IDE of choice to ensure compa Project updates can also be performed from the terminal with [Stride CLI](../get-started/stride-cli.md). +> [!NOTE] +> We recommend using the CLI tool over the `dotnet package update` command, as itt will also update some of your assets and code to ensure it works correctly with the new version. + 1. Close **Game Studio** to make sure it doesn't override anything. -2. (Recommended) Commit all changes to **version control**. This will provide a safety net, allowing you to revert the update in case something goes wrong. +2. **Make sure your project can be built.** The upgrade process can modify some of your code, which requires all `.csproj` files to be compilable. + +3. (Recommended) Commit all changes to **version control**. This will provide a safety net, allowing you to revert the update in case something goes wrong. -3. Run the following command in order to update your project to the latest version of Stride: +4. Run the following command in order to update your project to the latest version of Stride: ```bash stride upgrade path/to/your/project From 5ef167fd26cf2bd37ed1d594540ef1c3d1fe3744 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Wed, 1 Jul 2026 13:42:04 +0200 Subject: [PATCH 15/29] Glossary --- en/manual/glossary/index.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/en/manual/glossary/index.md b/en/manual/glossary/index.md index 1193d74ca..6a384bc09 100644 --- a/en/manual/glossary/index.md +++ b/en/manual/glossary/index.md @@ -3,6 +3,8 @@ - [Stride](https://www.stride3d.net/): A C# game engine for creating 2D/3D games and visualizations. - [Stride Community Toolkit](https://stride3d.github.io/stride-community-toolkit/index.html): A collection of extensions and helpers for the Stride engine. - [Code-Only](https://stride3d.github.io/stride-community-toolkit/manual/code-only/index.html): A feature of the toolkit that allows you to create a game without using the Game Studio. +- [Game Studio](../game-studio/index.md): An editor application for working on Stride projects. +- [Stride CLI](../get-started/stride-cli.md): A command-line tool that provides utilities for working with Stride directly from a terminal. ## Animation terms @@ -110,6 +112,16 @@ - [Local reflections](../graphics/post-effects/local-reflections.md): Screen-space reflections for shiny surfaces. - [Tone mapping](../graphics/post-effects/color-transforms/tonemap.md): Map HDR values to displayable range. +## Project structure terms + +- [Stride project](../files-and-folders/project-structure.md) (in .NET: solution): Contains code and assets used for creating a Stride game. +- [Project package](../files-and-folders/project-packages/index.md) (in .NET: C# project): A separated portion of a project's code and assets, used for organization. +- [Platform package](../files-and-folders/project-packages/index.md#platform-packages): A special type of project package that represents a specific platform (e.g. Windows or Linux). +- [External package](../files-and-folders/external-packages/index.md): An external project package that a project can reference in order to use it's code and assets. +- [Entry point](../files-and-folders/project-packages/index.md#entry-point): The place in code where a game's execution starts from. +- [Building](../files-and-folders/building-the-game/index.md): Process of converting raw project files into a playable game. +- [Publishing](../files-and-folders/building-the-game/index.md#what-is-publishing): Building the final version of the game that can be distributed. + ## Input terms - [Gamepads](../input/gamepads.md): Controller input support and mapping. From 335c912aa75589e6b4b972cdd77544f07833b5da Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Wed, 1 Jul 2026 16:55:38 +0200 Subject: [PATCH 16/29] Updated graphics API --- en/manual/graphics/graphics-api.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/en/manual/graphics/graphics-api.md b/en/manual/graphics/graphics-api.md index e11871575..6256cb13a 100644 --- a/en/manual/graphics/graphics-api.md +++ b/en/manual/graphics/graphics-api.md @@ -28,7 +28,22 @@ Vulkan is a modern graphics API that provides great performance benefits and con ## Changing the graphics API -To change the graphics API used by your project, add the following line to the `PropertyGroup` of a [platform package's](../files-and-folders/project-packages/index.md#platform-packages) `.csproj` file: +> [!NOTE] +> Currently all non-Windows platforms can only use Vulkan, as Direct3D is Windows-exclusive. + +### [Game Studio](#tab/game-studio) + +1. In the **Solution explorer** select the Windows [platform package](../files-and-folders/project-packages/index.md#platform-packages) (the one that ends with `.Windows`). + + TODO: IMAGE + +2. In the **Property grid** find a property named **Graphics API** and change it to your desired value. + + TODO: IMAGE + +### [Manual](#tab/manual) + +You can manually change the graphics API by adding the following line to the `PropertyGroup` of the [platform package's](../files-and-folders/project-packages/index.md#platform-packages) `.csproj` file: ```xml NameOfGraphicsAPIHere @@ -61,6 +76,14 @@ Here's an example of how this would look like: ``` +## Changing the editor API + +Game Studio's graphics API is set independently from the game. To change it, go to **Edit > Settings > Environment > Graphics API (editor only)**. The new api will be used after editor restart. + +TODO: IMAGE + +You can also force the usage of a specific API from the command line by passing the `--graphics-api ApiNameHere` flag or setting the environment variable `STRIDE_GRAPHICS_API` to your desired value. + ## Checking the API at runtime You can check which API your project is using from [`GraphicsDevice.Platform`](xref:Stride.Graphics.GraphicsDevice.Platform). From b884035fc8a80edde8c7bb8fea36611337c1ef32 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Thu, 2 Jul 2026 08:40:00 +0200 Subject: [PATCH 17/29] Removed outdated csproj from graphics api --- en/manual/graphics/graphics-api.md | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/en/manual/graphics/graphics-api.md b/en/manual/graphics/graphics-api.md index 6256cb13a..4a5505582 100644 --- a/en/manual/graphics/graphics-api.md +++ b/en/manual/graphics/graphics-api.md @@ -55,27 +55,6 @@ The following values are supported: * Direct3D12 * Vulkan -Here's an example of how this would look like: - -```xml - - - - net10.0-windows - win-x64 - Resources/Icon.ico - WinExe - MyGame - app.manifest - - Vulkan - - - ... - - -``` - ## Changing the editor API Game Studio's graphics API is set independently from the game. To change it, go to **Edit > Settings > Environment > Graphics API (editor only)**. The new api will be used after editor restart. From af8b30dc20c1f17ed4a6419340eeec9ce2f813aa Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Thu, 2 Jul 2026 17:47:41 +0200 Subject: [PATCH 18/29] Fixups --- en/manual/get-started/create-a-project.md | 21 +++++----- en/manual/index.md | 39 +++++++++---------- en/manual/install-and-update/index.md | 2 +- .../install-and-update/install-stride.md | 2 +- .../install-and-update/manage-versions.md | 6 +-- en/manual/install-and-update/update-stride.md | 16 ++++---- 6 files changed, 44 insertions(+), 42 deletions(-) diff --git a/en/manual/get-started/create-a-project.md b/en/manual/get-started/create-a-project.md index 6a7939a4e..b114c8caa 100644 --- a/en/manual/get-started/create-a-project.md +++ b/en/manual/get-started/create-a-project.md @@ -2,11 +2,9 @@ Beginner -This page explains how to create a new project from a template or sample using multiple ways. - -**Templates** are projects that contain just the necessary elements to start working on a game. - -**Samples** are complete games, which you can learn from or base a new game on. +This page explains how to create a new project from a template or sample: +* **Template** - a project that contain just the necessary elements to start working on a game. +* **Sample** - a complete game, which you can learn from or base a new game on. ## Create a new project with Game Studio @@ -20,7 +18,7 @@ To create a new project: You can also open this dialog in Game Studio from **File > New**. -2. Select a project template or sample. An empty template can be found in **New project > New Game**. +2. Select a project template or sample. An empty template can be found in **General > New Game**. 3. In the **Name** and **Location** fields, specify a name for the project and the folder to save it in. @@ -85,15 +83,20 @@ The Stride CLI tool provides a way of creating new projects without the need for ## Create a project with dotnet templates -An alternative way of creating a project from the command line without the need for Stride CLI is to use dotnet templates. +An alternative way of creating a project from the command line without the need for Stride CLI is to use **dotnet templates**. -1. Before starting, make sure to install the project templates from nuget. +1. Before starting, make sure to install the template packages. For more information about what each package contains, read the README on their [nuget.org page](https://www.nuget.org/packages/Stride.Templates.Games). ```bash + # Install the blank stride-game template dotnet new install Stride.Templates.Games + # Install other templates + dotnet new install Stride.Templates.Games.Starters + # Install samples (complete games) + dotnet new install Stride.Templates.Samples ``` -2. Find the template you want to use. The default project template is named `stride-game`. For a list of all stride templates, use this command: +2. Find the template you want to use. The default project template is named `stride-game`. For a list of all Stride templates, use this command: ```bash dotnet new list stride diff --git a/en/manual/index.md b/en/manual/index.md index 03a0b2309..2a337963d 100644 --- a/en/manual/index.md +++ b/en/manual/index.md @@ -14,34 +14,33 @@ The Stride documentation is open source, so anyone can edit it. If you find a mi To edit any page of this manual, click the **Edit this page** link at the bottom. Please make sure to follow the [writing guidelines](../contributors/documentation/index.md). -## Latest documentation +## Documentation changelog + +For a full list of changes, read the [Github release notes](https://github.com/stride3d/stride-docs/releases). **Recent updates** +- Manual + - Rewritten [Platforms](platforms/index.md) - Overhauled the platforms section + - Rewritten [Graphics โ€” Graphics API](graphics/graphics-api.md) - Updated page and added new information for Stride 4.4 + - New [Get Started โ€” Stride CLI](install-and-update/index.md) - New page for the Stride CLI tool + - New [Project โ€” Native AOT](files-and-folders/building-the-game/native-aot.md) - New page for building games with Native AOT + - Updated [Install and update - Update Stride](install-and-update/update-stride.md) - Updated instructions and added a guide for reverting updates. + - Updated [Install and update - Manage Versions](install-and-update/manage-versions.md) - Added information for Stride CLI + - Updated [Get Started โ€” Create a project](get-started/create-a-project.md) - Added information on how to create a project without Game Studio + - Updated [Get Started โ€” Stride Extension](get-started/visual-studio-extension.md) - Updated description and added information about differences between VS and VSCode extensions +- Community resources + - Updated [Embedded Stride](../community-resources/embedded-stride.md) - New project example for embedding in WPF + +**Previous updates** + - Manual - Rewritten [Get Started](get-started/index.md) - Section rewritten - New [Install and update](install-and-update/index.md) - New install and update section - New [Stride for Godot developers](stride-for-godot-developers/index.md) - New guide for people coming from Godot - New [Project](files-and-folders/index.md) - New project section - - Updated [Scripts - Types of script](scripts/types-of-script/index.md) - Updated types of script and created sub-pages for each script type + - Updated [Scripts โ€” Types of script](scripts/types-of-script/index.md) - Updated types of script and created sub-pages for each script type - Contributing - - Updated [Contribute to the engine - Bug bounties](../contributors/engine/bug-bounties.md) - Clarified a couple of points + - Updated [Contribute to the engine โ€” Bug bounties](../contributors/engine/bug-bounties.md) - Clarified a couple of points - Community resources - Updated [Games and demos](../community-resources/games-and-demos.md) - Improved the list of released games - - -**Previous updates** - -- Manual - - Updated [Scripts - Best Practices](scripts/best-practice.md) - More content added - - Updated [Physics - Script a trigger](physics/script-a-trigger.md) - Example updated - - Updated [Physics - Triggers](physics/triggers.md) - Example updated - - Updated [Graphics - Custom shaders](graphics/effects-and-shaders/custom-shaders.md) - Troubleshooting section added - - New [Glossary](glossary/index.md) - New glossary section added -- Tutorials - - Updated [Tutorials](../tutorials/index.md) - Quick Tutorials section added - - Updated [Tutorials](../tutorials/index.md) - Added lesson counts and total length -- Contributing - - Updated [Contributing - Roadmap](../contributors/roadmap.md) - GitHub Project - Roadmap link added - - New [Contributing - Core team](../contributors/core-team.md) - The Stride core team - - Updated [Contributing - Roadmap](../contributors/roadmap.md) - Status added diff --git a/en/manual/install-and-update/index.md b/en/manual/install-and-update/index.md index 04f8046dc..4656427f1 100644 --- a/en/manual/install-and-update/index.md +++ b/en/manual/install-and-update/index.md @@ -2,7 +2,7 @@ Beginner -The Stride editor is installed with a separate application, the **Stride Launcher**. This application is used for managing different versions of Stride and opening projects. +The editor is installed with a separate application, the **Stride Launcher**. It allows you to manage different installations of the engine, install additional tools and open projects. ![Screenshot of the Stride Launcher](media/stride-launcher.webp) diff --git a/en/manual/install-and-update/install-stride.md b/en/manual/install-and-update/install-stride.md index a5ccb318b..264f72b08 100644 --- a/en/manual/install-and-update/install-stride.md +++ b/en/manual/install-and-update/install-stride.md @@ -13,7 +13,7 @@ If you're interested in **building the Stride engine from source** or **contribu 2. Run the installer by double-clicking the **StrideSetup.exe** file and follow the on screen instructions until the **Stride Launcher** is installed. Make sure to accept the privacy policy. > [!WARNING] - > If the .NET SDK has never been installed on your machine, the .NET SDK installation window **might appear below** the Stride installation window. + > If the .NET SDK has never been installed on your machine, the .NET SDK installation window **might appear behind** the Stride installation window. > > ![Image of the .NET installation window](media/install-dotnet-SDK.webp) diff --git a/en/manual/install-and-update/manage-versions.md b/en/manual/install-and-update/manage-versions.md index c5a0f883e..9140e0741 100644 --- a/en/manual/install-and-update/manage-versions.md +++ b/en/manual/install-and-update/manage-versions.md @@ -17,7 +17,7 @@ You can select a different version of the engine by clicking on one under **Stri To change the patch number of a version (the last part in a version string), click the dropdown menu next to it. -![Picture of the dropdown menu showing different available patches for the engine.](media/stride-launcher-change-version.webp). +![](media/stride-launcher-change-version.webp) ## Installing a version @@ -43,8 +43,8 @@ The **Stride CLI** let's you install, uninstall and update versions of the engin | Command | Description | | :-- | :-- | -| `stride sdk install` | Installs the latest version of the engine. | -| `stride sdk install VERSION` | Installs a specific version of the engine. Version patch number is optional. | +| `stride sdk install` | Install the latest version of the engine. | +| `stride sdk install VERSION` | Install a specific version of the engine. Version patch number is optional. | | `stride sdk list` | List all installed versions. | | `stride sdk update` | Update all installed versions of the engine to the latest patch. | | `stride sdk update VERSION` | Update a specific installed version of the engine to the latest patch. Version patch number is optional. | diff --git a/en/manual/install-and-update/update-stride.md b/en/manual/install-and-update/update-stride.md index fb946f678..7d573cf29 100644 --- a/en/manual/install-and-update/update-stride.md +++ b/en/manual/install-and-update/update-stride.md @@ -33,9 +33,9 @@ Make sure you are using the latest version of your IDE of choice to ensure compa 1. **Make sure your project can be built.** The upgrade process can modify some of your code, which requires all `.csproj` files to be compilable. -2. (Recommended) Commit all changes to **version control**. This will provide a safety net, allowing you to revert the update in case something goes wrong. +2. (Recommended) **Commit all changes to version control.** This will provide a safety net, allowing you to revert the update in case something goes wrong. -3. Open your project with the newer version of the engine. You will be prompted if you want to upgrade a package. Make sure to select to do this for every package in the solution and press **Upgrade**. +3. **Open your project with the newer version of the engine.** You will be asked if you want to upgrade a package. Make sure to select to do this for every package in the solution and press **Upgrade**. ![](media/update-stride-packages.webp) @@ -51,15 +51,15 @@ Make sure you are using the latest version of your IDE of choice to ensure compa Project updates can also be performed from the terminal with [Stride CLI](../get-started/stride-cli.md). > [!NOTE] -> We recommend using the CLI tool over the `dotnet package update` command, as itt will also update some of your assets and code to ensure it works correctly with the new version. +> We recommend using the CLI tool over the `dotnet package update` command, as it will also update some of your assets and code to ensure it works correctly with the new version. 1. Close **Game Studio** to make sure it doesn't override anything. 2. **Make sure your project can be built.** The upgrade process can modify some of your code, which requires all `.csproj` files to be compilable. -3. (Recommended) Commit all changes to **version control**. This will provide a safety net, allowing you to revert the update in case something goes wrong. +3. (Recommended) **Commit all changes to version control.** This will provide a safety net, allowing you to revert the update in case something goes wrong. -4. Run the following command in order to update your project to the latest version of Stride: +4. **Run the following command** in order to update your project to the latest version of Stride: ```bash stride upgrade path/to/your/project @@ -79,7 +79,7 @@ Project updates can also be performed from the terminal with [Stride CLI](../get ## Reverting a project update -In case something went wrong while updating your project or a newer version of Stride has a bug that prevents your game from working properly, you can revert it back to the previous version of the engine. +In case something went wrong during the update or a newer version of Stride has a bug that prevents your game from working properly, you can revert your project back to the previous version of the engine. > [!TIP] > Before reverting, try to identify what happened and [open an issue on Stride's Github page](https://github.com/stride3d/stride/issues) that describes your problem, so that it can be resolved in a future update. @@ -92,7 +92,7 @@ If your project is using version control, it can be easily reverted to a previou 2. Use your version control software to restore all changed files. -3. Change the engine version in the **Stride Launcher** to the previous version. For more information on how to do this, visit [Manage versions](manage-versions.md). +3. Change the engine version in the **Stride Launcher** to the one your project was previously using. For more information on how to do this, visit [Manage versions](manage-versions.md). 4. Open your project and verify that there are no issues. @@ -129,6 +129,6 @@ If your project isn't using version control and you haven't selected the option 5. (Recommended) Start tracking your project using version control software such as [git](https://git-scm.com/) in case something breaks again in the future. -6. Change the engine version in the **Stride Launcher** to the previous version. For more information on how to do this, visit [Manage versions](manage-versions.md). +6. Change the engine version in the **Stride Launcher** to the one you were previously using. For more information on how to do this, visit [Manage versions](manage-versions.md). 7. Open your project and verify that there are no issues. From f48bf61c7a079f16a0d8ac39cddd837c3d38c7db Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Fri, 3 Jul 2026 12:18:47 +0200 Subject: [PATCH 19/29] Fixups --- .../building-the-game/native-aot.md | 29 +++---------------- en/manual/get-started/stride-cli.md | 12 ++++++-- .../effects-and-shaders/custom-shaders.md | 2 ++ en/manual/graphics/graphics-api.md | 2 ++ 4 files changed, 17 insertions(+), 28 deletions(-) diff --git a/en/manual/files-and-folders/building-the-game/native-aot.md b/en/manual/files-and-folders/building-the-game/native-aot.md index e121a7b42..fe60fcba9 100644 --- a/en/manual/files-and-folders/building-the-game/native-aot.md +++ b/en/manual/files-and-folders/building-the-game/native-aot.md @@ -1,17 +1,17 @@ # Native AOT -C# and other languages from the .NET ecosystem are compiled into **Common Intermediate Language** (CIL), which can't be executed by a computer directly. Instead, it requires an additional piece of software called the **.NET Runtime**, which uses a **Just-In-Time** (JIT) compiler to turn it into native machine code. +C# and other languages from the .NET ecosystem are compiled into **Common Intermediate Language** (CIL), which can't be executed by a computer directly. Instead, it requires an additional piece of software called the **.NET Runtime**, which uses a **Just-In-Time** (JIT) compiler to translate it into native machine code. This approach has it's benefits and drawbacks: * ๐ŸŸฉ Your code can run on any platform supported by the **.NET Runtime** -* ๐ŸŸฉ You can use high-level language features +* ๐ŸŸฉ Some high-level language features require it to work (e.g. reflections) * ๐ŸŸฉ Compiled projects take up less disk space * ๐ŸŸฅ Some platforms do not support it (mainly iOS and consoles) * ๐ŸŸฅ Creates additional overhead, slightly decreasing performance * ๐ŸŸฅ Requires a user to install additional software (unless the app is made to be [self contained](setup.md#self-contained)) -An alternative to this is to use **Native Ahead-Of-Time** (AOT) compilation to skip the CIL entirely, creating a native application. Doing this can decrease startup time and improve overall performance, but comes at the cost of every benefit of a standard JIT compiled .NET application. +An alternative to this is to use **Native Ahead-Of-Time** (AOT) compilation to skip the CIL entirely, creating a native application. Doing this can decrease startup time and improve overall performance, but comes at the cost of all previously listed standard JIT compiled .NET application benefits. ## Preparation @@ -19,7 +19,7 @@ Before enabling Native AOT, you will have to make sure your project can support 1. Make sure that additional libraries your project is using support **Native AOT**. 2. Make sure your project doesn't use reflections. -3. Make sure your project doesn't use any other non-Native AOT compatible feature. +3. Make sure your project doesn't use any other Native AOT incompatible features. ## Enable Native AOT in a project @@ -31,27 +31,6 @@ Before enabling Native AOT, you will have to make sure your project can support true ``` - Here's an example configuration: - - ```xml - - - - net10.0-windows - win-x64 - Resources/Icon.ico - WinExe - MyGame - app.manifest - - true - - - ... - - - ``` - ## Further reading For more information about native AOT development with .NET, read the [Microsoft article](https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/). diff --git a/en/manual/get-started/stride-cli.md b/en/manual/get-started/stride-cli.md index 7857f80a1..25fdc8a61 100644 --- a/en/manual/get-started/stride-cli.md +++ b/en/manual/get-started/stride-cli.md @@ -9,12 +9,12 @@ Stride CLI features: * Manage different versions of the engine * Create new projects * Update projects -* Launch Game Studio without the launcher +* Launch Game Studio * Run the asset compiler * Can be a replacement for the Stride Launcher > [!WARNING] -> Even though the CLI tool removes the need for the launcher, it is still recommended to [install it](../install-and-update/install-stride.md), as it also includes prerequisites for the engine. +> Even though the CLI tool can be a replacement for the launcher, it is still recommended to [install it](../install-and-update/install-stride.md), as it also includes prerequisites for the engine. ## Installing Stride CLI @@ -35,7 +35,7 @@ stride --version ## Using Stride CLI -The CLI consists of many commands that provide different utilities. You can view all of them by running the `stride` command without any arguments. +The CLI consists of many commands that provide different utilities. You can view all of them by running `stride` without any arguments. ```bash stride @@ -65,3 +65,9 @@ stride new game -n ProjectX && cd ProjectX # Create a new project and enter it's dotnet run --project ProjectX.Windows # Build and run the project stride studio # Open Game Studio ``` + +## See also + +* [Manage versions](../install-and-update/manage-versions.md) +* [Update Stride](../install-and-update/update-stride.md) +* [Create a project](create-a-project.md) diff --git a/en/manual/graphics/effects-and-shaders/custom-shaders.md b/en/manual/graphics/effects-and-shaders/custom-shaders.md index 6ac68f50c..bdf2d3079 100644 --- a/en/manual/graphics/effects-and-shaders/custom-shaders.md +++ b/en/manual/graphics/effects-and-shaders/custom-shaders.md @@ -13,6 +13,8 @@ You can also use custom shaders to create custom post effects. For more informat ### Option 1: Using Visual Studio (Recommended for Game Studio workflow) +1. Make sure you have the [Stride Visual Studio extension](../../get-started/visual-studio-extension.md) installed. This is necessary to convert the shader files from SDSL ([Stride shading language](index.md)) to `.cs` files. + 2. In Game Studio, in the toolbar, click ![Open in IDE](../../get-started/media/launch-your-game-IDE-icon.webp) (**Open in IDE**) to open your project in Visual Studio. 3. In the Visual Studio **Solution Explorer**, right-click the project (eg *MyGame.Game*) and select **Add > New item**. diff --git a/en/manual/graphics/graphics-api.md b/en/manual/graphics/graphics-api.md index 4a5505582..b8d47a205 100644 --- a/en/manual/graphics/graphics-api.md +++ b/en/manual/graphics/graphics-api.md @@ -55,6 +55,8 @@ The following values are supported: * Direct3D12 * Vulkan +--- + ## Changing the editor API Game Studio's graphics API is set independently from the game. To change it, go to **Edit > Settings > Environment > Graphics API (editor only)**. The new api will be used after editor restart. From 34fe70429598b7af6d7af5dbba080243bc646125 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Fri, 3 Jul 2026 12:24:01 +0200 Subject: [PATCH 20/29] Fixed alignment on some file structure images --- en/manual/files-and-folders/media/file-structure.svg | 4 ++-- en/manual/files-and-folders/media/file-structure.webp | 4 ++-- .../files-and-folders/media/project-package-structure.svg | 4 ++-- .../files-and-folders/media/project-package-structure.webp | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/en/manual/files-and-folders/media/file-structure.svg b/en/manual/files-and-folders/media/file-structure.svg index f019b8887..b54015339 100644 --- a/en/manual/files-and-folders/media/file-structure.svg +++ b/en/manual/files-and-folders/media/file-structure.svg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:562a06005d9087106830c44065abed6675142f99b88bcc23bd4697432658c795 -size 120428 +oid sha256:d05e82815ae60fa8de9dd1e1dc961442e909fe84a363b831f6edd4f164695ea1 +size 120443 diff --git a/en/manual/files-and-folders/media/file-structure.webp b/en/manual/files-and-folders/media/file-structure.webp index 7db617c48..aee8c0334 100644 --- a/en/manual/files-and-folders/media/file-structure.webp +++ b/en/manual/files-and-folders/media/file-structure.webp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ccd83611ea684ead1b52d2931c31b81136f39bc006daab590927614da1c5fbc1 -size 284272 +oid sha256:e0c028632723d059217f119535c37dae1d27ac72e5d4edea2b1313f47171ec5d +size 285048 diff --git a/en/manual/files-and-folders/media/project-package-structure.svg b/en/manual/files-and-folders/media/project-package-structure.svg index 0c0f3745f..33c0c4d6b 100644 --- a/en/manual/files-and-folders/media/project-package-structure.svg +++ b/en/manual/files-and-folders/media/project-package-structure.svg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6a00544fa8e763f0c92fcc6498fdd58d49aba8149f35e39615f060e255d62ca4 -size 112473 +oid sha256:d65dd481bf21c0be7105329953779c6084df1e810e66362e980907a44812607c +size 112477 diff --git a/en/manual/files-and-folders/media/project-package-structure.webp b/en/manual/files-and-folders/media/project-package-structure.webp index 0e48e97f5..3829e2cac 100644 --- a/en/manual/files-and-folders/media/project-package-structure.webp +++ b/en/manual/files-and-folders/media/project-package-structure.webp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a22fb50caa46a8bd2becb8a77cd5d911775a74dff298c1ead6a46462c5b1ab10 -size 319082 +oid sha256:6770da3db110415445d5f0d0f4fa9be80d62dafdff64733e35bd913ea345e136 +size 319160 From ddde52ddaee545542ac70b72bb4e7fcce6f61abc Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Fri, 3 Jul 2026 12:41:29 +0200 Subject: [PATCH 21/29] Added a badge to the Native AOT page --- en/manual/files-and-folders/building-the-game/native-aot.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/en/manual/files-and-folders/building-the-game/native-aot.md b/en/manual/files-and-folders/building-the-game/native-aot.md index fe60fcba9..91637510f 100644 --- a/en/manual/files-and-folders/building-the-game/native-aot.md +++ b/en/manual/files-and-folders/building-the-game/native-aot.md @@ -1,5 +1,7 @@ # Native AOT +Intermediate + C# and other languages from the .NET ecosystem are compiled into **Common Intermediate Language** (CIL), which can't be executed by a computer directly. Instead, it requires an additional piece of software called the **.NET Runtime**, which uses a **Just-In-Time** (JIT) compiler to translate it into native machine code. This approach has it's benefits and drawbacks: From 22e00259a039264e0e0560c728ac51c48acbe1c5 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Fri, 3 Jul 2026 16:17:54 +0200 Subject: [PATCH 22/29] Added a note to building setup about changing the icon --- en/manual/files-and-folders/building-the-game/setup.md | 3 +++ en/manual/glossary/index.md | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/en/manual/files-and-folders/building-the-game/setup.md b/en/manual/files-and-folders/building-the-game/setup.md index ed14af2d5..8c91f6d19 100644 --- a/en/manual/files-and-folders/building-the-game/setup.md +++ b/en/manual/files-and-folders/building-the-game/setup.md @@ -76,6 +76,9 @@ In the `.csproj` file, change the value of `Resources\Icon.ico< --- +> [!WARNING] +> After changing the icon, you will have to delete `/bin` in the platform package's directory for it to update. + ## Self contained Making an application **self contained** removes the requirement for a user to have the **.NET runtime** installed on their machine. diff --git a/en/manual/glossary/index.md b/en/manual/glossary/index.md index 6a384bc09..34b67eac3 100644 --- a/en/manual/glossary/index.md +++ b/en/manual/glossary/index.md @@ -3,7 +3,7 @@ - [Stride](https://www.stride3d.net/): A C# game engine for creating 2D/3D games and visualizations. - [Stride Community Toolkit](https://stride3d.github.io/stride-community-toolkit/index.html): A collection of extensions and helpers for the Stride engine. - [Code-Only](https://stride3d.github.io/stride-community-toolkit/manual/code-only/index.html): A feature of the toolkit that allows you to create a game without using the Game Studio. -- [Game Studio](../game-studio/index.md): An editor application for working on Stride projects. +- [Game Studio](../game-studio/index.md): An editor application for Stride projects. - [Stride CLI](../get-started/stride-cli.md): A command-line tool that provides utilities for working with Stride directly from a terminal. ## Animation terms @@ -117,7 +117,7 @@ - [Stride project](../files-and-folders/project-structure.md) (in .NET: solution): Contains code and assets used for creating a Stride game. - [Project package](../files-and-folders/project-packages/index.md) (in .NET: C# project): A separated portion of a project's code and assets, used for organization. - [Platform package](../files-and-folders/project-packages/index.md#platform-packages): A special type of project package that represents a specific platform (e.g. Windows or Linux). -- [External package](../files-and-folders/external-packages/index.md): An external project package that a project can reference in order to use it's code and assets. +- [External package](../files-and-folders/external-packages/index.md): An external project package that can be referenced in order to use it's code and assets. - [Entry point](../files-and-folders/project-packages/index.md#entry-point): The place in code where a game's execution starts from. - [Building](../files-and-folders/building-the-game/index.md): Process of converting raw project files into a playable game. - [Publishing](../files-and-folders/building-the-game/index.md#what-is-publishing): Building the final version of the game that can be distributed. From a7077443b7d11fd0d7cbf5f9e7e6193a6dba8964 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Sat, 4 Jul 2026 11:51:42 +0200 Subject: [PATCH 23/29] Added new commands to the sdk page (`stride sdk available` and `stride legacy`) --- en/manual/get-started/stride-cli.md | 3 ++- en/manual/install-and-update/manage-versions.md | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/en/manual/get-started/stride-cli.md b/en/manual/get-started/stride-cli.md index 25fdc8a61..bd2ef92ed 100644 --- a/en/manual/get-started/stride-cli.md +++ b/en/manual/get-started/stride-cli.md @@ -43,12 +43,13 @@ stride | Command | Description | | :-- | :-- | -| `stride sdk` | Manage installed Stride versions (list, install, uninstall, update). For more information, read [Manage versions โ€” Managing versions with Stride CLI](../install-and-update/manage-versions.md#managing-versions-with-stride-cli). | +| `stride sdk` | Manage installed Stride versions (list, available, install, uninstall, update). For more information, read [Manage versions โ€” Managing versions with Stride CLI](../install-and-update/manage-versions.md#managing-versions-with-stride-cli). | | `stride new` | Create a project from an installed Stride version's templates. For more information, read [Create a project โ€” Create a project with Stride CLI](create-a-project.md#create-a-project-with-stride-cli). | | `stride upgrade` | Upgrade a project to a newer installed Stride version. For more information, read [Update Stride โ€” Updating your project with Stride CLI](../install-and-update/update-stride.md#updating-your-project-with-stride-cli). | | `stride studio` | Open Game Studio. | | `stride self` | Manage the Stride CLI itself. | | `stride version` | Show the Stride CLI version and the resolved Stride version. | +| `stride legacy` | List commands kept for older (pre-4.4) Stride projects. | | `stride asset` | Run the Stride Asset Compiler directly (advanced; arguments are forwarded). | For more information about how to use a given command, use the `--help` flag. For example: diff --git a/en/manual/install-and-update/manage-versions.md b/en/manual/install-and-update/manage-versions.md index 9140e0741..840e84046 100644 --- a/en/manual/install-and-update/manage-versions.md +++ b/en/manual/install-and-update/manage-versions.md @@ -45,6 +45,7 @@ The **Stride CLI** let's you install, uninstall and update versions of the engin | :-- | :-- | | `stride sdk install` | Install the latest version of the engine. | | `stride sdk install VERSION` | Install a specific version of the engine. Version patch number is optional. | +| `stride sdk available` | List available versions of the engine. | | `stride sdk list` | List all installed versions. | | `stride sdk update` | Update all installed versions of the engine to the latest patch. | | `stride sdk update VERSION` | Update a specific installed version of the engine to the latest patch. Version patch number is optional. | From be55425be4850b024ece6cd5e9ccb8911a153b2f Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Sun, 5 Jul 2026 07:10:29 +0200 Subject: [PATCH 24/29] Removed unused image --- .../get-started/media/create-project-select-platform.webp | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 en/manual/get-started/media/create-project-select-platform.webp diff --git a/en/manual/get-started/media/create-project-select-platform.webp b/en/manual/get-started/media/create-project-select-platform.webp deleted file mode 100644 index 417c15377..000000000 --- a/en/manual/get-started/media/create-project-select-platform.webp +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f890d686b9de468e427a18f237432a82c5099737972e2be37f198448335e7e2b -size 14736 From 28d963b33a09293e3a035d051858e6bacc51eb77 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Sun, 5 Jul 2026 07:12:51 +0200 Subject: [PATCH 25/29] Small change to stride-cli --- en/manual/get-started/stride-cli.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/manual/get-started/stride-cli.md b/en/manual/get-started/stride-cli.md index bd2ef92ed..815815f22 100644 --- a/en/manual/get-started/stride-cli.md +++ b/en/manual/get-started/stride-cli.md @@ -6,7 +6,7 @@ The **Stride CLI** is a tool that allows you to work with Stride through the com Stride CLI features: -* Manage different versions of the engine +* Manage installed versions of the engine * Create new projects * Update projects * Launch Game Studio From ad6f1f13009baa790f9e5931cc78c605939856a3 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Sun, 5 Jul 2026 11:50:21 +0200 Subject: [PATCH 26/29] Another small change --- en/manual/get-started/stride-cli.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/manual/get-started/stride-cli.md b/en/manual/get-started/stride-cli.md index 815815f22..a861836b9 100644 --- a/en/manual/get-started/stride-cli.md +++ b/en/manual/get-started/stride-cli.md @@ -31,7 +31,7 @@ stride --version ``` > [!WARNING] -> If the command is still not working, you might need to update your system's `Path` environment variable to include the directory containing dotnet tools. +> If the command still isn't working, you might need to update your system's `Path` environment variable to include the directory containing dotnet tools. ## Using Stride CLI From ef622b940667da96611c9acddab1e3926d3c33bc Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Tue, 7 Jul 2026 10:27:11 +0200 Subject: [PATCH 27/29] Updated images --- .../media/project-package-properties.webp | 3 +++ .../project-packages/package-properties.md | 24 +++++++++++++++---- en/manual/graphics/graphics-api.md | 6 ++--- .../media/game-studio-graphics-api.webp | 3 +++ .../graphics/media/graphics-api-property.webp | 3 +++ .../graphics-api-select-platform-package.webp | 3 +++ .../media/update-stride-packages.webp | 4 ++-- 7 files changed, 36 insertions(+), 10 deletions(-) create mode 100644 en/manual/files-and-folders/project-packages/media/project-package-properties.webp create mode 100644 en/manual/graphics/media/game-studio-graphics-api.webp create mode 100644 en/manual/graphics/media/graphics-api-property.webp create mode 100644 en/manual/graphics/media/graphics-api-select-platform-package.webp diff --git a/en/manual/files-and-folders/project-packages/media/project-package-properties.webp b/en/manual/files-and-folders/project-packages/media/project-package-properties.webp new file mode 100644 index 000000000..0b60dc8fa --- /dev/null +++ b/en/manual/files-and-folders/project-packages/media/project-package-properties.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62da779b533e472e9e3c025fbbac107e78b38c4b8a1ea96a5cd3207b6cf25aee +size 9044 diff --git a/en/manual/files-and-folders/project-packages/package-properties.md b/en/manual/files-and-folders/project-packages/package-properties.md index c9ed1ff10..c071db32d 100644 --- a/en/manual/files-and-folders/project-packages/package-properties.md +++ b/en/manual/files-and-folders/project-packages/package-properties.md @@ -2,10 +2,25 @@ Advanced -Every project package contains it's own set of properties, that can be customized. +Every project package contains it's own set of properties, that can be customized. They are split into two files `NameOfPackage.sdpkg` and `NameOfPackage.csproj`. + +## Editing properties in Game Studio + +Game Studio allows you to modify some properties of project packages, but for more advanced features, you will have to manually edit their files. + +![](media/project-package-properties.webp) + +| Property | Description | +| :-- | :-- | +| Graphics API | The graphics API the game is built and run with. Default uses the platform default. | +| Contains asset types | Whether this project's assembly defines types used in assets (scripts, components, custom asset types), so the editor and asset compiler load it and packing declares it to consumers. Unset, libraries are loaded and other projects are not. | +| Effect Compiler | Indicates whether effect compile should be allowed, and if yes, should it be done locally (if possible) or remotely. | +| Record used effects | Indicates whether effect compile (local or remote) should be recorded and sent to effect compile server for GameStudio notification. | > [!NOTE] -> Currently there is no way to change project package properties via **Game Studio** - you have to **modify the `.sdpkg` file directly**. +> Depending on the type of project package, different properties will be displayed + +## `.sdpkg` properties | Property | Description | | :-- | :-- | @@ -19,9 +34,7 @@ Every project package contains it's own set of properties, that can be customize | RootAssets | List of root assets (assets that will always be included with the build). | | AssetAssemblies | A list of paths to external assemblies (`.dll` files) containing custom assets. | -## Example - -Here is an example `.sdpkg` file for the library "MyGame.Game" that has two asset folders "Assets" and "Effects" and a single resource folder "Resources". +Here is an example `.sdpkg` file for the project package "MyGame.Game" that has two asset folders "Assets" and "Effects" and a single resource folder "Resources". ```yaml !Package @@ -47,3 +60,4 @@ RootAssets: [] ## See also * [Create a package](create-a-package.md) +* [Graphics API](../../graphics/graphics-api.md) diff --git a/en/manual/graphics/graphics-api.md b/en/manual/graphics/graphics-api.md index b8d47a205..5ed784620 100644 --- a/en/manual/graphics/graphics-api.md +++ b/en/manual/graphics/graphics-api.md @@ -35,11 +35,11 @@ Vulkan is a modern graphics API that provides great performance benefits and con 1. In the **Solution explorer** select the Windows [platform package](../files-and-folders/project-packages/index.md#platform-packages) (the one that ends with `.Windows`). - TODO: IMAGE + ![](media/graphics-api-select-platform-package.webp) 2. In the **Property grid** find a property named **Graphics API** and change it to your desired value. - TODO: IMAGE + ![](media/graphics-api-property.webp) ### [Manual](#tab/manual) @@ -61,7 +61,7 @@ The following values are supported: Game Studio's graphics API is set independently from the game. To change it, go to **Edit > Settings > Environment > Graphics API (editor only)**. The new api will be used after editor restart. -TODO: IMAGE +![](media/game-studio-graphics-api.webp) You can also force the usage of a specific API from the command line by passing the `--graphics-api ApiNameHere` flag or setting the environment variable `STRIDE_GRAPHICS_API` to your desired value. diff --git a/en/manual/graphics/media/game-studio-graphics-api.webp b/en/manual/graphics/media/game-studio-graphics-api.webp new file mode 100644 index 000000000..57e6cf62c --- /dev/null +++ b/en/manual/graphics/media/game-studio-graphics-api.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b095c5ceea355a56323b8f0aa9ea62ff762dc42337fb8aab454b63841dbe594f +size 6550 diff --git a/en/manual/graphics/media/graphics-api-property.webp b/en/manual/graphics/media/graphics-api-property.webp new file mode 100644 index 000000000..c801e92b6 --- /dev/null +++ b/en/manual/graphics/media/graphics-api-property.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc39f3f05f5ce11da697e9cf7c9fc416981bb15f4d15413add32342825433994 +size 9424 diff --git a/en/manual/graphics/media/graphics-api-select-platform-package.webp b/en/manual/graphics/media/graphics-api-select-platform-package.webp new file mode 100644 index 000000000..f6ed6ce0e --- /dev/null +++ b/en/manual/graphics/media/graphics-api-select-platform-package.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87f3ee21fedc0a67dbd74981f9a588fb42f10182e10e1ec9af2240e2f3fa6615 +size 3208 diff --git a/en/manual/install-and-update/media/update-stride-packages.webp b/en/manual/install-and-update/media/update-stride-packages.webp index 8a6f24a45..9c9506054 100644 --- a/en/manual/install-and-update/media/update-stride-packages.webp +++ b/en/manual/install-and-update/media/update-stride-packages.webp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a4456a4f6046a789e60773701a460cf35ba5ae12c9d73ace72d4dfc65f1c9e8b -size 13822 +oid sha256:66f056dfab29ed0d02ec8a9d8931983fdf83cda9605992f791b4c5b1b6b43faf +size 27142 From 23e2c9925a48b934f812fbedf62047b703a922c7 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Tue, 7 Jul 2026 10:45:01 +0200 Subject: [PATCH 28/29] Updated select platforms image --- en/manual/platforms/media/select-platforms.webp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/manual/platforms/media/select-platforms.webp b/en/manual/platforms/media/select-platforms.webp index 0c4e79976..710201aaa 100644 --- a/en/manual/platforms/media/select-platforms.webp +++ b/en/manual/platforms/media/select-platforms.webp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:75f269edac1940224916a6e2378ec913fc8c7f137506b014f64e8c0cad74fd32 -size 20908 +oid sha256:0777cc718577404cb2109edb22aa96c80ce1f34c684fb2df986a557a9fa14985 +size 11110 From 50271ee004ba460f8c9a4cfcd37e4b8a86a324a8 Mon Sep 17 00:00:00 2001 From: Ferafiks Date: Tue, 7 Jul 2026 10:50:02 +0200 Subject: [PATCH 29/29] Removed solution page --- en/manual/engine/solution.md | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 en/manual/engine/solution.md diff --git a/en/manual/engine/solution.md b/en/manual/engine/solution.md deleted file mode 100644 index b494b0fa5..000000000 --- a/en/manual/engine/solution.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -redirect_url: ../files-and-folders/project-structure.html ----