Skip to content

Commit

Permalink
Merge pull request #227 from stride3d/master
Browse files Browse the repository at this point in the history
Initiating deployment of latest docs updates to staging
  • Loading branch information
VaclavElias authored Dec 31, 2023
2 parents 438f43c + e4b5242 commit c309d80
Show file tree
Hide file tree
Showing 28 changed files with 591 additions and 589 deletions.
6 changes: 3 additions & 3 deletions en/ReleaseNotes/ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Stride 4.2 Release Notes

November 20th, 2023
January 5th, 2024

Stride contributors are thrilled to announce the release of Stride 4.2, now fully compatible with .NET 8 and leveraging the latest enhancements in C# 12. This release brings significant improvements in performance, stability, and developer experience.

Expand Down Expand Up @@ -173,7 +173,7 @@ End Module
These examples showcase how F# and Visual Basic can be utilized in Stride. The Stride Community Toolkit provides a set of helpers and extensions designed to enhance your experience with the Stride Game Engine.

## Fixes
Although there have been [many fixes](**https://github.com/stride3d/stride/pulls?page=2&q=is%3Apr+merged%3A%3E2023-10-10**), we like to point out some of them out
Although there have been [many fixes](https://github.com/stride3d/stride/pulls?page=2&q=is%3Apr+merged%3A%3E2023-10-10), we like to point out some of them out:
- [Runtime rasterized fonts are broken #1750](https://github.com/stride3d/stride/issues/1750)
- [Game Studio doesnt reload sub projects after changes #1703](https://github.com/stride3d/stride/issues/1703)
- [Changing the comparison project related and not UPath related #1704](https://github.com/stride3d/stride/pull/1704)
Expand All @@ -188,4 +188,4 @@ Although not directly tied to Release 4.2, we have made some other big changes.
- [Community meeting October 2023](https://www.stride3d.net/blog/community-meeting-october-2023/)

## Acknowledgements
We extend our heartfelt gratitude for all the hard work and donations that have been made. Your generous contributions significantly aid in the continuous development and enhancement of the Stride community and projects. Thank you for your support and belief in our collective efforts.
We extend our heartfelt gratitude for all the hard work and donations that have been made. Your generous contributions significantly aid in the continuous development and enhancement of the Stride community and projects. Thank you for your support and belief in our collective efforts.
2 changes: 1 addition & 1 deletion en/diagnostics/STRDIAG002.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
## Explanation

The [DataMemberMode.Content](xref:Stride.Core.DataMemberMode) mutates the object which is currently in the member.
As this is not possible with the current serializers, only mutable types are supported for `DataMemberMode.Content`. Immutable types in this context are none reference types and string.
As this is not possible with the current serializers, only mutable types are supported for `DataMemberMode.Content`. Immutable types in this context are not reference types and strings.

## Example

Expand Down
3 changes: 1 addition & 2 deletions en/diagnostics/STRDIAG004.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,10 @@ public class STRDIAG004
```

> [!WARNING]
> There is an edge case with `internal`/`internal protected`, it will count as non visible when the @Stride.Core.DataMemberAttribute isn't applied.
> There is an edge case with `internal`/`internal protected`, it will count as non visible when the @Stride.Core.DataMemberAttribute isn't applied.
> But when the attribute is applied then the getter counts as visible and therefore is correct.
```csharp
// STRDIAG000.cs
using Stride.Core;

public class STRDIAG004
Expand Down
6 changes: 3 additions & 3 deletions en/manual/animation/additive-animation.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

![Additive animations](media/animations-additive-sample.gif)

In the example above, the leftmost animation is the *Walk* animation. The rightmost animation is the *Idle* animation. The two animations in the center are the *Walk* and *Idle* animations respectively, but have the *Reload* animation added to them.
In the example above, the leftmost animation is the *Walk* animation. The rightmost animation is the *Idle* animation. The two animations in the center are the *Walk* and *Idle* animations respectively, but have the *Reload* animation added to them.

This means we only had to create three animations: *Walk*, *Idle*, and *Reload*. Additionally, we can add the *Reload* animation to other suitable animations (eg *Crouch*, *Strafe* or *Run*). This helps keep the memory budget and number of animations low.

Expand All @@ -22,15 +22,15 @@ Stride calculates the difference between the source and reference clips to creat
We can use use the difference clip to blend the source and reference animations. We can also use the same difference clip to blend the source animation with **other** animations. If the animation you add it to is sufficiently similar to the original reference clip, then the animations blend effectively. For example, you could use it to add the reload animation to any animation that doesn't use the arms, such as crouching.

>[!Note]
>Additive animations should use the same skinned mesh and skeleton.
>Additive animations should use the same skinned mesh and skeleton.
### Create a difference clip

1. In the **Asset View** (at the bottom by default), click **Add asset** and select **Animations > Animation**. A browser dialog opens.

2. As we don't need a source for this animation, click **Cancel**.

Game Studio asks if you want to create an animation without a source file.
Game Studio asks if you want to create an animation without a source file.

![Create animation without source file](media/create-animation-without-source-file.png)

Expand Down
2 changes: 1 addition & 1 deletion en/manual/animation/custom-blend-trees.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<span class="badge text-bg-primary">Advanced</span>
<span class="badge text-bg-success">Programmer</span>

The [AnimationComponent](xref:Stride.Engine.AnimationComponent) has the property [AnimationComponent.BlendTreeBuilder](xref:Stride.Engine.AnimationComponent#Stride_Engine_AnimationComponent_BlendTreeBuilder). If you want absolute control over which animations are played, how are they blended and what weights they have, you can create a script which inherits from `IBlendTreeBuilder` and assign it to the BlendTreeBuilder under your animation component.
The [AnimationComponent](xref:Stride.Engine.AnimationComponent) has the property [AnimationComponent.BlendTreeBuilder](xref:Stride.Engine.AnimationComponent#Stride_Engine_AnimationComponent_BlendTreeBuilder). If you want absolute control over which animations are played, how are they blended and what weights they have, you can create a script which implements from `IBlendTreeBuilder` and assign it to the BlendTreeBuilder under your animation component.

When the animation component is updated, it calls `void BuildBlendTree(FastList<AnimationOperation> animationList)` on your script instead of updating the animations itself. This allows you to choose any combination of animation clips, speeds and blends, but is also more difficult, as all the heavy lifting is now on the script side.

Expand Down
2 changes: 1 addition & 1 deletion en/manual/animation/import-animations.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ To animate a model, you need to use three kinds of assets together:
* skeletons
* animations

You can import these assets from 3D model files. Stride supports the following model file types: ``.3ds``, ``.blend``, ``.dae``, ``.dxf``, ``.fbx``, ``.md2``, ``.md3``, ``.obj``, ``.x``
Stride supports the following model file types: `.3ds`, `.blend`, `.dae`,`dxf`, `.fbx`, `.glb`, `.gltf`, `.md2`, `.md3`, `.obj`, `.ply`, `.stl`,`.stp`, `.x`.

## Import a model, skeleton, or animation from a model file

Expand Down
2 changes: 1 addition & 1 deletion en/manual/audio/audio-listeners.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ To create an audio listener, attach an **audio listener component** to an entity

2. In the **Property Grid**, click _Add Component_ and select [Audio listener component](xref:Stride.Audio.AudioListener):

![Add AudioListener Component](media/audio-add-audiolistener-component.png)
![Add AudioListener component](media/audio-add-audiolistener-component.png)

The entity is now an audio listener.

Expand Down
2 changes: 1 addition & 1 deletion en/manual/audio/hrtf.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ To use HRTF, first enable it globally in the **Game Settings** asset, then enabl

### 1. Enable HRTF globally

1. In the **Solution Explorer** (the bottom-left pane by default), select the **Assets folder**.
1. In **Solution explorer** (the bottom-left pane by default), select the **Assets folder**.

![Select Assets folder asset](../game-studio/media/select-asset-folder.png)

Expand Down
4 changes: 2 additions & 2 deletions en/manual/audio/import-audio.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ You can import audio files to use as **audio assets** in your project. You can i

* **Sound effect**: Recommended for smaller files that you want to play directly from memory.

* **Spatialized sound**: Process the audio asset as [spatialized audio](spatialized-audio.md). Note that Stride processes audio files as mono (single-channel) audio. The source file is unaffected.
* **Spatialized audio*: Process the audio asset as [spatialized audio](spatialized-audio.md). Note that Stride processes audio files as mono (single-channel) audio. The source file is unaffected.

* **Music**: Recommended for larger files that you want to stream from disk to save memory.

Expand All @@ -31,7 +31,7 @@ After you import an audio file, you can select it as an asset in the **Asset Vie

You can also import a [video](../video/index.md) file and choose to import only the audio tracks from it.

1. In the **Asset View**, click **Add assett** and select **Media > Video**.
1. In the **Asset View**, click **Add asset** and select **Media > Video**.

![Add video asset](../video/media/add-video-asset.png)

Expand Down
16 changes: 8 additions & 8 deletions en/manual/audio/non-spatialized-audio.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ To play non-spatialized audio at runtime, create an instance of it and define it

The [SoundInstance](xref:Stride.Audio.SoundInstance) controls audio at runtime with the following properties:

| Property | Function |
|------- |-------|
| [IsLooping](xref:Stride.Audio.SoundInstance.IsLooping) | Gets or sets looping of the audio. |
| [Pan](xref:Stride.Audio.SoundInstance.Pan) | Sets the balance between left and right speakers. By default, each speaker a value of 0.5. |
| [Pitch](xref:Stride.Audio.SoundInstance.Pitch) | Gets or sets the audio pitch (frequency). |
| [PlayState](xref:Stride.Audio.SoundInstance.PlayState) | Gets the state of the [SoundInstance](xref:Stride.Audio.SoundInstance). |
| [Position](xref:Stride.Audio.SoundInstance.Position) | Gets the current play position of the audio. |
| [Volume](xref:Stride.Audio.SoundInstance.Volume) | Sets the audio volume. |
| Property | Function |
|--------------------------------------------------------|------------------------------------------------------------------------------------------|
| [IsLooping](xref:Stride.Audio.SoundInstance.IsLooping) | Gets or sets looping of the audio. |
| [Pan](xref:Stride.Audio.SoundInstance.Pan) | Sets the balance between left and right speakers. By default, each speaker a value of 0. |
| [Pitch](xref:Stride.Audio.SoundInstance.Pitch) | Gets or sets the audio pitch (frequency). |
| [PlayState](xref:Stride.Audio.SoundInstance.PlayState) | Gets the state of the [SoundInstance](xref:Stride.Audio.SoundInstance). |
| [Position](xref:Stride.Audio.SoundInstance.Position) | Gets the current play position of the audio. |
| [Volume](xref:Stride.Audio.SoundInstance.Volume) | Sets the audio volume. |

For more details, see the [SoundInstance API documentation](xref:Stride.Audio.SoundInstance).

Expand Down
14 changes: 7 additions & 7 deletions en/manual/audio/play-a-range-within-an-audio-file.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,17 @@ You can have Stride play only certain portions of an audio asset. This means, fo

You can use the following properties, methods, and structures:

| Property, method, or structure | Function |
|---------|-----------|
| [TotalLength](xref:Stride.Audio.SoundBase.TotalLength) | The total length of the [sound](xref:Stride.Audio.Sound). |
| [SoundInstance.SetRange(PlayRange)](xref:Stride.Audio.SoundInstance.SetRange(Stride.Media.PlayRange)) | Sets the time range to play within the audio asset. |
| [PlayRange](xref:Stride.Media.PlayRange) | Time information, including the range's starting point and length. |
| [SoundInstance.Position](xref:Stride.Audio.SoundInstance.Position) | Gets the current play position as **TimeSpan**. |
| Property, method, or structure | Function |
|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| [TotalLength](xref:Stride.Audio.SoundBase.TotalLength) | The total length of the [sound](xref:Stride.Audio.Sound). |
| [SoundInstance.SetRange(PlayRange)](xref:Stride.Audio.SoundInstance.SetRange(Stride.Media.PlayRange)) | Sets the time range to play within the audio asset. |
| [PlayRange](xref:Stride.Media.PlayRange) | Time information, including the range's starting point and length. |
| [SoundInstance.Position](xref:Stride.Audio.SoundInstance.Position) | Gets the current play position as **TimeSpan**. |

For example:

```cs
//Assume sample length is 5 seconds.
//Assume sample length is 4 seconds.
var length = mySound.TotalLength;
var begin = TimeSpan.FromSeconds(2);
var duration = TimeSpan.FromSeconds(2);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

# Problem

> `Dog` is a subclasses of `Animal`.
> `Dog` is a subclass of `Animal`.
This example is often used as an example of inheritance
in introductions to programming. However, when things get more complex,
Expand Down
2 changes: 1 addition & 1 deletion en/manual/engine/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
>This section is out of date. For now, you should only use it for reference.
- [Asset](assets/index.md)
- [Entity-component model](entity-component-model/index.md)
- [Entity-component system](entity-component-system/index.md)
- [File system](file-system.md)

# See also
Expand Down
4 changes: 2 additions & 2 deletions en/manual/engine/resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

[!INCLUDE [stride-studio-note](../../includes/under-construction-note.md)]

Resources are images, texture ([```.dds```](https://en.wikipedia.org/wiki/DirectDraw_Surface) files and entity images used in your game. Resources are stored in the **Resources** folder of a game application.
Resources are images, texture [```.dds```](https://en.wikipedia.org/wiki/DirectDraw_Surface) files and entity images used in your game. Resources are stored in the **Resources** folder of a game application.

>**Note:** As a best practice, all data resources should be placed inside the **Resources** folder to enable easy movement of your project. If resources are placed outside the project, moving the project breaks the links and compiler issues can occur.
>**Note:** As a best practice, all data resources should be placed inside the **Resources** folder to enable easy movement of your project. If resources are placed outside the project, moving the project breaks the links and compiler issues can occur.
2 changes: 1 addition & 1 deletion en/manual/files-and-folders/cached-files.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ You might want to clean the cache if:

![Clean solution](media/clean-solution.png)

2. If you have the [Stride Visual Studio extension](../get-started/visual-studio-extension.md) installed, you can also clean the asset cache. To do this, under **Stride**, select **Clean intermediate assets for Solution**.
2. If you have the [Stride Visual Studio extension](../get-started/visual-studio-extension.md) installed, you can also clean the asset cache. **Using VS 2022**: To do this, under Extensions > **Stride**, select **Clean intermediate assets for Solution**.

![Clean solution](media/clean-assets.png)

Expand Down
2 changes: 1 addition & 1 deletion en/manual/files-and-folders/distribute-a-game.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ In the release folder in your project bin folder (eg *MyGame/Bin/MyPlatform/Rele

* `.xml` files (API documentation)

* files that contain `vshost` in their filenames (eg `MyGame.vshost.exe` and `MyGame5.vshost.exe.manifest`)
* files that contain `vshost` in their filenames (eg `MyGame5.vshost.exe` and `MyGame5.vshost.exe.manifest`)

* folders other than the `x64`, `x86`, or `data` folders

Expand Down
2 changes: 1 addition & 1 deletion en/manual/game-studio/use-assets.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ SceneSystem.SceneInstance.RootScene.Entities.Add(entity);

When loading content from code, you should unload content when you don't need them any more. If you don't, content stays in memory, wasting GPU.

To do unload an asset, use ``Content.Unload(myAsset)``.
To unload an asset, use ``Content.Unload(myAsset)``.

## Load assets from code using UrlReference

Expand Down
11 changes: 7 additions & 4 deletions en/manual/graphics/lights-and-shadows/voxel-cone-tracing-gi.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
# Voxel Cone Tracing Global Illumination

## Howto: setup existing project with Voxel Cone Tracing GI
## How to set up an existing project with Voxel Cone Tracing GI

### Reference Stride.Voxels

Since Stride is modular based, we need to add a reference to `Stride.Voxels` plugin:

### Prerequesites:
VoxelGI requires Graphics Profile Level 11 or Higher (Direct3D 11.0 / OpenGL ES 3.1). This can be set in the Game Settings asset under the Rendering category.

Since Stride is modular, we need to add a reference to the `Stride.Voxels` plugin:

1. In the **Solution Explorer**, right-click on the user project

Expand All @@ -14,7 +17,7 @@ Since Stride is modular based, we need to add a reference to `Stride.Voxels` plu

3. Select `Stride.Voxels` in the list and press `OK`

4. You might be asked if you want to reload project, choose whichever option, both are OK.
4. Close and re-open the project.

### Graphics Compositor

Expand Down
10 changes: 5 additions & 5 deletions en/manual/graphics/low-level-api/spritebatch.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ A sprite batch is a collection of sprites (2D textured planes).
## Create a sprite batch

Stride offers a easy way to deal will batches of sprites through the @'Stride.Graphics.SpriteBatch' class. You can use this class to regroup, update, and display sprites efficiently.
Stride offers a easy way to deal with batches of sprites through the @'Stride.Graphics.SpriteBatch' class. You can use this class to regroup, update, and display sprites efficiently.

**Code:** Creating a sprite batch

Expand All @@ -36,7 +36,7 @@ The @'Stride.Graphics.SpriteBatch' class has multiple draw methods to set variou

```cs
// begin the sprite batch operations
spriteBatch.Begin(GraphicsContext, SpriteSortMode.Immediate);
spriteBatch.Begin(Game.GraphicsContext, SpriteSortMode.Immediate);

// draw the sprite immediately
spriteBatch.Draw(myTexture, new Vector2(10, 20));
Expand All @@ -48,7 +48,7 @@ spriteBatch.End();
There are five modes to draw a sprite batch. They are enumerated in the @'Stride.Graphics.SpriteSortMode' enum:

- Deferred (default mode): the sprites are drawn at the same time at the end to reduce the drawcall overhead
- Immediate: the sprites are draw after each each @'Stride.Graphics.SpriteBatch.Draw' call
- Immediate: the sprites are drawn after each @'Stride.Graphics.SpriteBatch.Draw' call
- Texture: Deferred mode but sprites are sorted based on their texture to reduce effect parameters update
- BackToFront: Deferred mode with a sort based on the z-order of the sprites
- FrontToBack: Deferred mode with a sort based on the z-order of the sprites
Expand All @@ -59,7 +59,7 @@ To set the mode, specify it in the @'Stride.Graphics.SpriteBatch.Begin' method.

```cs
// begin the sprite batch operations
spriteBatch.Begin(GraphicsContext); // same as spriteBatch.Begin(GraphicsContext, SpriteSortMode.Deferred);
spriteBatch.Begin(Game.GraphicsContext); // same as spriteBatch.Begin(GraphicsContext, SpriteSortMode.Deferred);
// store the modification of the sprite
spriteBatch.Draw(myTexture, new Vector2(10, 20));
Expand Down Expand Up @@ -103,4 +103,4 @@ spriteBatch.End();

## See also

* [SpriteFont](spritefont.md)
* [SpriteFont](spritefont.md)
Loading

0 comments on commit c309d80

Please sign in to comment.