diff --git a/en/manual/engine/solution.md b/en/manual/engine/solution.md deleted file mode 100644 index 771a63cd9..000000000 --- a/en/manual/engine/solution.md +++ /dev/null @@ -1,20 +0,0 @@ -# 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 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..91637510f --- /dev/null +++ b/en/manual/files-and-folders/building-the-game/native-aot.md @@ -0,0 +1,38 @@ +# 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: + +* ๐ŸŸฉ Your code can run on any platform supported by the **.NET Runtime** +* ๐ŸŸฉ 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 all previously listed standard JIT compiled .NET application benefits. + +## 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 Native AOT incompatible features. + +## 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 + ``` + +## 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/building-the-game/setup.md b/en/manual/files-and-folders/building-the-game/setup.md index 559da29f4..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. @@ -126,6 +129,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: 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/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/files-and-folders/media/file-structure.svg b/en/manual/files-and-folders/media/file-structure.svg index ee1a30e57..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:ad62aa2cdaf9bcfddf87887f9a3dc96e605e1b52f3ca080ad390c80d2c8259f9 -size 120415 +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 ab905e62c..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:4ff7fec41e1ee979e125b8184eb2c938d33c43b0752b061d837c7e35c1843c5d -size 281018 +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 4cb8f9478..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:c022931acfaf750775b09443e95a7058fdde61804e846a5cce31b6954ba125bd -size 112469 +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 46a2839b3..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:590be7a32d99bfaceea23e02aa807ad5ff38bcb70a8418747931b0ffe601a69f -size 312210 +oid sha256:6770da3db110415445d5f0d0f4fa9be80d62dafdff64733e35bd913ea345e136 +size 319160 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-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/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..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 | | :-- | :-- | @@ -17,16 +32,15 @@ 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 - -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 project package "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: [] @@ -46,3 +60,4 @@ RootAssets: [] ## See also * [Create a package](create-a-package.md) +* [Graphics API](../../graphics/graphics-api.md) diff --git a/en/manual/files-and-folders/project-structure.md b/en/manual/files-and-folders/project-structure.md index f5ce40f71..240896d4e 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. +* **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/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/create-a-project.md b/en/manual/get-started/create-a-project.md index 5eb353335..b114c8caa 100644 --- a/en/manual/get-started/create-a-project.md +++ b/en/manual/get-started/create-a-project.md @@ -2,30 +2,23 @@ Beginner -This page explains how to: +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 empty project -* create a project based on a template or sample +## Create a new project with Game Studio -**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. - -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 **General > New Game**. 3. In the **Name** and **Location** fields, specify a name for the project and the folder to save it in. @@ -33,7 +26,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,52 +55,63 @@ 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). + +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 + stride new list + ``` + + The blank template is called **game**. - 4. Click **Select**. +5. Create the project. - The **Select Platforms** window opens. + ```bash + stride new TemplateNameHere -n ProjectNameHere + ``` - ![Select Platforms window](media/create-project-select-platform.webp) - - 5. Select the platforms you want your game to support and click **OK**. +6. Open the project in **Game Studio**. -Stride creates the project and opens it in Game Studio. + ````bash + stride studio ./ProjectNameHere + ```` -## Create a project without Game Studio +## Create a project with dotnet templates -Stride allows you to create new projects from the command line using the `dotnet` command. +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 --tag stride + dotnet new list stride ``` 3. Create the project. ```bash - dotnet new stride-game -n NameOfGame + dotnet new TemplateNameHere -n ProjectNameHere ``` +4. 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 | @@ -115,20 +122,20 @@ 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: ### [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/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/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). 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 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..a861836b9 --- /dev/null +++ b/en/manual/get-started/stride-cli.md @@ -0,0 +1,74 @@ +# 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: + +* Manage installed versions of the engine +* Create new projects +* Update projects +* Launch Game Studio +* Run the asset compiler +* Can be a replacement for the Stride Launcher + +> [!WARNING] +> 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 + +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 +``` + +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 +``` + +> [!WARNING] +> 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 + +The CLI consists of many commands that provide different utilities. You can view all of them by running `stride` without any arguments. + +```bash +stride +``` + +| Command | Description | +| :-- | :-- | +| `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: + +```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 +``` + +## 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/get-started/visual-studio-extension.md b/en/manual/get-started/visual-studio-extension.md index e47b2d163..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 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 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**. diff --git a/en/manual/glossary/index.md b/en/manual/glossary/index.md index 1193d74ca..34b67eac3 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 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 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. + ## Input terms - [Gamepads](../input/gamepads.md): Controller input support and mapping. diff --git a/en/manual/graphics/graphics-api.md b/en/manual/graphics/graphics-api.md index e11871575..5ed784620 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`). + + ![](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. + + ![](media/graphics-api-property.webp) + +### [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 @@ -40,26 +55,15 @@ 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. + +![](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. ## Checking the API at runtime 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/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 974162fb7..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) @@ -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 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/manage-versions.md b/en/manual/install-and-update/manage-versions.md index a062dfe25..840e84046 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 @@ -36,3 +36,21 @@ 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 with Stride CLI + +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` | 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. | +| `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/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 diff --git a/en/manual/install-and-update/update-stride.md b/en/manual/install-and-update/update-stride.md index 4bdf09fc8..7d573cf29 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.3 +``` ## Updating your IDE @@ -21,11 +31,104 @@ 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. **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. + +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) + + > [!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. + +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) + +## Updating your project with Stride CLI + +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 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. + +4. **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.3 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 + +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. + +### 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 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. + +### 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 there are no issues. + +### 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 one you were previously using. For more information on how to do this, visit [Manage versions](manage-versions.md). -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. +7. Open your project and verify that there are no issues. 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 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/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. diff --git a/en/manual/toc.yml b/en/manual/toc.yml index a1352e167..fd81d518f 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 @@ -537,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 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**.