Skip to content

Releases: stride3d/stride

Stride samples 4.4.1

Choose a tag to compare

@xen2 xen2 released this 21 Sep 15:57

For Stride engine 4.4.0-beta8.

What's changed in the Stride samples

  • Fix mannequin foot twisting 180 during jump loop (4b49890)
  • Update templates and sample code to better support pausing (#3355) (765c7fb)

Full samples changelog: samples/4.4.0...samples/4.4.1

Stride CLI 1.0.3

Choose a tag to compare

@xen2 xen2 released this 21 Sep 18:41

What's Changed

Auto-generated; a maintainer may hand-edit.

📦 Project templates & content

  • Samples, starter projects, and asset packs are now versioned and released on their own schedule instead of being tied to the engine version, so stride new always installs the exact matching content instead of guessing which version to use, and content fixes can ship without waiting for a new engine release. If upgrading a newly created project's assets fails, the CLI now reports the error instead of silently leaving the project on the old version (@xen2, #3442)

🧰 .NET tooling

  • stride studio, stride upgrade, and the asset compiler commands can now run your project on a newer .NET version (for example .NET 11) than the one Stride itself ships with, without waiting for a new Stride release. Use stride studio --framework net11.0 to try a newer .NET version (@xen2, #3440)

🔧 Under the hood

  • Sped up crash report handling by switching its JSON reading/writing to generated code instead of reflection (@Kryptos-FR, #3425)

Full Changelog: cli/1.0.2...cli/1.0.3

Stride 4.4.0-beta8

Stride 4.4.0-beta8 Pre-release
Pre-release

Choose a tag to compare

@xen2 xen2 released this 21 Sep 17:45

What's Changed

Auto-generated; a maintainer may hand-edit.

🎮 Graphics & Shaders

  • Fixed several cases on Vulkan where the GPU wasn't properly synchronized: reading from a render target or depth buffer, writing to a buffer from a compute shader and reading it later, and using a swap chain image right after acquiring it. These could cause rare rendering glitches or crashes; the test suite now also runs with Vulkan's stricter synchronization checks enabled to catch this kind of issue earlier (@sasvdw, #3324, #3457)
  • Fixed shader compile errors introduced in the previous beta around constant values: a switch statement with constant labels, constants inherited from a base shader, and constants used as array sizes or texture offsets. Basic math on vector constants (e.g. float3(1,2,3) * 0.5) also now compiles (@xen2, #3453, #3454)
  • Fixed a shader error that could break projects using voxel-based global illumination, along with a related compile error affecting anti-aliased voxel lighting (@Nicogo1705, #3449, #3450)
  • Fixed a shader compile error introduced in the previous beta that broke the debug wireframe rendering shader (@xen2, #3447)
  • Fixed resizing of textures that aren't in a standard 8-bit color format (e.g. HDR textures), which was throwing an error; this also restores Game Studio thumbnails for those textures (@xen2, #3446)

🖥️ Editor / Game Studio

  • Creating a new project no longer waits on downloading built-in sample content upfront; missing sample packages now download in the background, with progress shown in the New Project window (@xen2, #3442)
  • Fixed the project upgrade dialog applying changes before you could respond to it, which meant the "skip" and "don't back up" choices were ignored (@xen2, e208935)

📦 Content & Assets

  • Fixed a bug where unloading a game assembly (for example when recompiling code) could leave stale type references behind in the asset system (@ds5678, #3445)
  • Projects upgraded to 4.4 now automatically update code that used the memory helper methods moved from Utilities to MemoryUtilities (@xen2, 0ac3fe9)
  • Fixed the asset build queue processing assets in the wrong order (@xen2, #3456)

🧩 Templates & Samples

  • Fixed sample and template code that used the wrong timer when handling pausing, so pausing animations, particles and physics now behaves as documented (@ds5678, #3355)
  • Fixed the mannequin character's foot twisting 180 degrees during the jump animation loop, and removed unused sample resources (@ds5678, #3459, #3443)

🔧 Under the hood

  • Scheduled CI workflows are now gated behind an opt-in setting so they don't run automatically on forks (@Kryptos-FR, #3448)

Full Changelog: releases/4.4.0-beta7...releases/4.4.0-beta8

Stride samples 4.4.0

Choose a tag to compare

@xen2 xen2 released this 19 Sep 14:35

For Stride engine 4.4.0-beta8.

What's changed in the Stride samples

  • Delete unused ThirdPersonPlatformer resources (323ca78)
  • Fix background for material shader demo (#3415) (5aaec4d)
  • MaterialPackage: MaterialModel opts out of material deduplication (d94e5ea)
  • Samples solution: drop the stray DefaultStartup from BepuSample.Windows (2f019c9)
  • SpaceEscape: BackgroundInfo.Holes is serialized again (4fca582)
  • Remove redMaterial from AsyncCollisionTriggerDemo (cbd925f)
  • fix: BepuSample.Game.csproj - update target framework to net10.0 (#3358) (50ff1b1)
  • Undo Holes removal (aef31a8)
  • Revert "Prevent crash from null redMaterial in AsyncCollisionTriggerDemo.cs" (0a43ba0)
  • Prevent crash from null redMaterial in AsyncCollisionTriggerDemo.cs (d8fdda2)
  • Fix hard-coded url path in LoadingContentDemo.cs (50da51b)
  • Ensure the time is not changed for the Linear Interpolation demo in C# Beginner tutorial (63e152a)
  • Add package prefixes to remaining root assets (bc158a8)
  • Reimport each project individually (bb4bba7)
  • Remove Deploy from solution file (aa2806e)
  • Update sample projects with reimported files (011b10e)
  • Removed game settings overrides (#3343) (f98a57d)
  • fix: settle RenderTextureSceneRenderer output for sampling (c9f5541)
  • feat: asset packs for New Game as dotnet new item templates (2e6d6ea)
  • chore: track .ico/.cur/.xcf/.pdn/.woff/.eot binaries with git-lfs (f12d2ac)
  • build: dev-packages: mirror stubs into bin/packages so the local feed stays valid in dev mode (007e265)
  • Skip empty collections when saving .sdpkg, clean existing ones (bbe7a86)
  • Classify project type from OutputType, drop explicit StrideProjectType=Executable (929d000)
  • build: convert all solutions from .sln to .slnx (11ecd98)
  • samples: drop redundant direct Stride reference in BepuSample (c4fcf7e)
  • assets: bump in-repo samples to 4.4.0 (asset migration + Stride.AssetCompiler rename) (41a8482)
  • templates: rework sample bump to transform-based -devN flow (restore+migrate against real local packages, finalize to clean release version) (0fd585c)
  • tests: move Stride.Samples.Tests to tests/enduser/ and rename workflow to test-enduser (686265c)
  • fonts: resolve system fonts to metric-compatible equivalents cross-platform (b8b16f6)
  • tests: bump pinned WARP to 1.0.20 (e7c1e8c)
  • D3D12: pin app-local Agility SDK for tests (42f4cff)
  • tests: capture hang dump on sample teardown timeout (bb0141c)
  • tests: keep regen dir on STRIDE_TESTS_KEEP=1, hint GameMenu arbiter (d18d906)
  • templates: pack missing platform exec projects into every sample (cc82f2f)
  • tests: run Stride.Samples.Tests on Linux/macOS hosts (74dc583)
  • templates: UpdatePlatforms reuses stride-game instead of a duplicate template (a8e339e)
  • tests: detach Stride.Samples.Tests from Stride.Assets.Presentation (a57a2ff)
  • templates: UpdatePlatforms as a stride-platforms dotnet new template (072246a)
  • templates: move DotNetNew machinery into Stride.Assets (f223a51)
  • tests: AOT publish+run lane for sample screenshots (bedc904)
  • tests: report post-done crashes in screenshot orchestrator (cd9385c)
  • autotesting: AOT-clean harness, fixtures self-register (fa90d81)
  • Retire legacy template system (90982f9)
  • samples: prep for dotnet new template use (52844d7)
  • tests/samples: bump sample launch timeout 60s -> 120s (57d0cc1)
  • tests/samples: pass StrideGraphicsApi to sample build from harness (52803ed)
  • tests: extract ScreenshotComparator into shared sources/tests/ project (4947898)
  • tests: fix screenshot-runner file race when sample times out (3a4764f)
  • tests: classify gameplay-state drift as not-a-regression in vision fallback (ccf86bb)
  • screenshot tests: harness + LPIPS/Claude comparator + xunit + CI matrix (37e9f2e)
  • samples test: remove legacy SamplesTestServer + Games.Testing infrastructure (02bc07b)
  • build/test: dev-built nupkgs flow into the test pipeline (b2ab914)
  • fix: remove Teamcity reference (2598843)
  • refactor: replace SDK-style project references with direct imports (11de670)
  • fix: Platformer2D sample, enable alpha cutoff (#3098) (3d88961)
  • feat: Add a new template: 2D Platformer (#3042) (e0a2278)
  • Rename Stride.Sdk to Stride.Build.Sdk to reserve Stride.Sdk for future user-facing SDK (4a92770)
  • Enable assembly processor by default for test projects (b946d3f)
  • Fix test output path resolution from NuGet package cache (97ff75c)
  • Fix SourceLink error when ManagePackageVersionsCentrally=false (a8811e4)
  • Delete sources/targets/ legacy build system (Phase 7.1) (85f8ea0)
  • fix: Stride.Samples.Tests missing package reference (ae9e506)
  • Removed obsolete sdsl.cs and sdfx.cs files (24c6381)
  • Updated Vortice.Vulkan package to the latest version 2.1.2 -> 3.0.3 (#2991) (cba4e2a)
  • fix: removed expectedly ignored vs directory (#3011) (1412215)
  • Refactoring changes in Stride.GameStudio 2 (#2970) (9a2f741)
  • chore: Bumped samples (c5c262d)
  • fix: Samples: remove ID collisions (ec6f8d4)
  • Fix some incompatibilities and quirks after rebase (5ca909c)
  • chore: Update to dotnet 10 (#2888) (04dc306)
  • fix: Refactor bepu contact management, support compound shape child index lookup and provide Impact Force evaluation to users (#2901) (e162677)
  • fix: Remove usage of FastList from samples following #2798 (a312ce2)
  • feat: Update Stride dev version for the game samples (#2836) (881ec7d)
  • feat: Create Bepu demo sample templates. (#2704) (6938820)
  • refactor: Nullable and Modernization for Core Assets projects (#2658) (cb520de)
  • Replace Xenko logo in MaterialModel.fbx to Stride logo (#1505) (#2546) (f8543b7)
  • Fix sample projects, remove unused properties (#2205) (c424213)
  • fix: Typo in VRSandboxApp (#2396) (fd54194)
  • feat: Hide default font name for SystemFontProvider (#2385) (b40ad46)
  • feat: Update samples/template to top-level statements (#2187) (5c847ee)
  • Update samples to Stride 4.2 (#2132) (5bf5eee)
  • [Samples] Fix ResourceFolders reference in package file (#2109) (fc2fe12)
  • Update dependencies (#2046) (0f6f4ee)
  • [Build] Don't use central package management for Stride.Samples.Tests (6f2df39)
  • [Build] Move Directory.Packages.props (1f0be73)
  • Use central package management (#2045) (1fc04d4)
  • [NuGet] Add missing Microsoft dll required by latest NuGet. Also fixed Samples.Tests build (3288e1b)
  • [NuGet] Fix build (forgot to udpate one csproj) (caf0079)
  • [NuGet] Changed Stride.NuGetResolver to be a proper library (otherwise there was a deadlock with the JIT). Auto-generates NuGetResolverModuleInitializer.cs for each entrypoint assembly/TFM. (33c30fc)
  • [VR] Remove framecap from VR sample (62c4625)
  • [Docs] Update PropertiesDemo.cs (b5cf845)
  • Revert "[Editor] Remove some windows dependencies in editor libraries (#1908)" (#1980) (906862b)
  • [Sample] Replace deprecated GetServiceAs calls (#1943) (0343e19)
  • [Editor] Remove some windows dependencies in editor libraries (#1908) (329becb)
  • [Core] Fix StringComparison across the project (#1846) (dab0b6c)
  • [Samples] Add more documentation for beginner tutorial (#1830) (a94672b)
  • [Sample] Fix SpriteFont sample, typo in service fetch (#1798) (77a2bfb)
  • updated runtimeidentifiers (fad2a0e)
  • Remove WinStore content for VRSandbox sample (43e79b0)
  • Cleanup Windows Phone refs (7f6e165)
  • fixed constructors in CsharpBeginner template (fd6a89f)
  • change .NET references to net8.0 (3b134d9)
  • updated packages to dotnet 7 (abb52e7)
  • [Template] FPS, remove unused logic (#1512) (1e1a1c1)
  • [Template] Fix first and third person delta time usage (#1511) (4a3f8f5)
  • Configure Samples.Tests and SamplesTestServer to auto resolve packages correctly (9237b2d)
  • [Samples] Fix TopDownRPG punch animation caused by breaking change in raycast from #1105 (9f8e5f3)
  • [Samples] Update camera before using its ViewMatrix (otherwise it result in NaN being sent to physics engine, resulting in a crash) (072c997)
  • [Samples] Fix build error of VRSanbox (8182629)
  • C# intermediate tutorial fixes: remade audio startscene. remove specular from wood (#1446) (5063008)
  • feedback async await (cf5adae)
  • removed line by mistake (1b26de9)
  • cleanup tpc (de05ca6)
  • small fps improvement (c7efdae)
  • async tutorial (6d61a4c)
  • Tutorial improvements again (6a93654)
  • UI text (9a8b389)
  • tutorial improvements (2e41b96)
  • Removing build-time warnings (99b736c)
  • Character orientation usage instead of transform (ed4a871)
  • replaced tutorial icons with eiderens version (e0cd878)
  • copyright added to files (f52f720)
  • Shortened the teleporter code (d47c092)
  • Remove unused fonts (9aa76b7)
  • Removed old unused scripts, small tweaks to scenes (fca4f79)
  • Some more typo fixes (8e38814)
  • Applied PR feedback thanks Eideren and Manio143 (c2338c2)
  • remove rider settings (146c876)
  • Final testing of scenes (59c62f4)
  • clceanup scenes (f15ed3b)
  • Tiny improvements (533e734)
  • Removed dot in code files , double code folder (ab4280a)
  • Removing spaces and dots to support templates (aab8ab8)
  • rootasset (d1d901c)
  • raycast compl (df1eea5)
  • Added start scenes (1c62b91)
  • Added intermediate tutorial project to launcher (7892f3b)
  • Cleanup (1c7e5fa)
  • Some folder numbering and code comments (26581a2)
  • utorial menu fixes and improved on various scenes (59f72f4)
  • Tutorial menu wip (dbffe5f)
  • Rearrange scenes (ff2ed15)
  • completed third person raycasts (3359a3a)
  • working tpc, adjusting racast (efbf896)
  • wip fpc and tpc (bc04507)
  • Async api sample (6b3782c)
  • Audio stream (7dfb425)
  • Projecting shortened (41546ea)
  • Scene improvements (0e496a3)
  • navigation rework (9e083b5)
  • nav mesh testing (c61ec66)
  • Correcting audio (21dab42)
  • cleanup (05579ca)
  • Scenes restored (562c8d0)
  • Cleanup (0674d8a)
  • Folder nesting (b5c209e)
  • Apply correct project tu...
Read more

Stride 4.4.0-beta7

Stride 4.4.0-beta7 Pre-release
Pre-release

Choose a tag to compare

@xen2 xen2 released this 16 Sep 09:21

What's Changed

Auto-generated; a maintainer may hand-edit.

🐧 Cross-platform / CLI / Build

  • You can now target a newer .NET release (such as .NET 11) in your game project without waiting for Game Studio to catch up: Game Studio and the asset compiler detect the newer target and restart themselves on it automatically, and if the right .NET SDK isn't installed you get a clear message telling you what to install (@xen2, #3440; @Eideren, #3351)
  • Fixed shader compilation failing on Windows on Arm (win-arm64) with a "could not locate spirv-cross" error (@delustra, #3420; @xen2, #3434)
  • Texture compression no longer depends on the OpenMP runtime, avoiding a missing-library failure on Linux (libgomp) and Windows (vcomp140) machines that don't have it installed (@xen2, be685d4, c715498)
  • Fixed a local file-tampering risk on shared machines: NuGet's restore output was written to a predictable, shared temp path, letting another user on the same machine pre-seed it (@xen2, 18b12af, c7204dc)

🎨 Graphics & Shaders

  • Fixed several rendering issues in voxel-based global illumination (Stride.Voxels) introduced by the new shader compiler, where shaders failed to compile or contributed no light at all on Direct3D12 and Vulkan (@Nicogo1705, #3382)
  • Fixed shader compiler crashes when parsing a trailing-dot float literal like 1., a vector constructor argument containing a binary expression, a dangling . or [ at the end of an expression, or a field name that matches an intrinsic method name like SampleLevel (@azeno, #3421, #3412, #3391; @xen2, #3426)
  • Fixed more shader compiler crashes and invalid output: calling an abstract shader method, reading a geometry shader's input array fields directly, invalid compiled shaders from thread-group attributes on non-entry methods or texture sampling outside pixel/compute shaders, entry-point overrides losing their base settings, and shader variants not being properly cache-validated (@azeno, #3413, #3422; @sasvdw, #3304, #3431; @Nicogo1705, #3389)
  • Fixed shader hot-reload only picking up the first edit: later edits to the same shader kept showing the old compile warnings (@xen2, #3410)
  • Fixed light probes flickering and showing the wrong colors when several shaders contributed to the same lighting data, and fixed a related crash on iOS/Metal caused by an unsupported light probe data format (@xen2, #3411, #3417)
  • Fixed a Vulkan crash when closing the scene editor (@xen2, #3400)
  • Vulkan now reports the depth-stencil texture format the graphics device actually uses instead of the one requested, avoiding mismatches for code that reads Texture.Format (@xen2, #3427)
  • Fixed a crash/hang on window close on Direct3D11 (including the WARP software renderer) by making sure the GPU finishes its work before the window is destroyed (@xen2, 4ce8295, 6cfd56b)
  • Fixed the bloom bright-pass filter turning into black blocks when a pixel's brightness overflowed (@Nicogo1705, #3429)
  • Fixed a matrix truncating cast reading rows and columns swapped (@xen2, #3409)
  • Fixed the EyeMS shader value (eye vector in model space), which was assigned the wrong data (@Eideren, #3408)
  • Added AddMath, a material blend operator for component-wise addition, matching the existing Multiply/Subtract/Divide operators (@Eideren, #3436)

🖼️ UI

  • Fixed several Slider bugs: tick snapping on a collapsed range, value coercion when the maximum changes, and the value going out of bounds when bounds change (@velumix, #3395, #3401; @phcodesage, #3399)
  • Fixed full-screen UI being laid out and clicked on the wrong resolution when the screen's aspect ratio differs from the UI page's, leaving unclickable bands on two sides (@delustra, #3439)
  • Fixed a crash from reading unmapped memory in the fast text renderer, notably on Linux/Vulkan (@BenjaBobs, #3376)

📦 Content & Assets

  • Fixed "Include in build as root asset" silently doing nothing when used on a platform-specific package; Game Studio now shows which package a root asset belongs to and lets you pick another one from a submenu (@xen2, #3435)

🖥️ Editor / Game Studio

  • Cleaned up build and log output: fixed duplicated console output, and the build log now shows MSBuild errors/warnings with their file, line and error code, with the Verbose toggle working correctly (@xen2, #3402)
  • Fixed new projects whose name contains spaces referencing files that didn't exist (@xen2, #3406)

🛠️ Tools & Diagnostics

  • Faster crash report generation (@Kryptos-FR, #3425)
  • Fixed the in-game profiler overlay getting stuck showing "PAGE 0 OF N" with no results on the first frames (@Nicogo1705, #3405)

🔧 Under the hood

  • Small cleanup of the shader loading API (@Eideren, #3407)
  • CI test runs now build only the test suites they actually need (@xen2, #3418)
  • Fixed the background in the material shader sample project (@ds5678, #3415)

New Contributors

Full Changelog: releases/4.4.0-beta6...releases/4.4.0-beta7

Stride CLI 1.0.2

Choose a tag to compare

@xen2 xen2 released this 08 Sep 06:41
3d03431

What's Changed

Auto-generated; a maintainer may hand-edit.

🛠️ Crash Reporting

  • The CLI now catches its own crashes and lets you send an anonymized report to help diagnose the problem, with nothing ever sent without your explicit confirmation. A new stride crash command lets you list, view, and send saved crash reports (@xen2, #3348)

📦 Project Templates

  • stride new can now add optional asset packs (building blocks, animated models, materials, particle effects) into an existing game project, matching what Game Studio already offers when creating a new game (@xen2, 2e6d6ea in #3331)
  • Fixed asset packs failing to install because the CLI didn't fetch them on demand, so stride new can now use them right after installing Stride (@thaildhe172591, #3385)

Full Changelog: cli/1.0.1...cli/1.0.2

Stride 4.4.0-beta6

Stride 4.4.0-beta6 Pre-release
Pre-release

Choose a tag to compare

@xen2 xen2 released this 08 Sep 02:53

Highlights

Crash reporting for the Stride tools

Game Studio, the CLI, and the asset compiler can now catch their own crashes, both managed exceptions and native access violations, and offer to send an anonymized report. Nothing is sent without you clicking Send, and a report can be reviewed in full before it goes anywhere.

When the asset compiler crashes during a build, the failing asset is identified automatically, and if that happens from inside Game Studio, the crash surfaces as a Game Studio window. Recurring crashes with the same cause can be muted so they stop asking, while still being saved locally for later. This should make it much easier to report and diagnose the crashes that used to just leave you staring at a closed window.

Clearer drag-and-drop feedback in the entity tree

Dragging entities around the scene tree in Game Studio now shows exactly where an item will land before you drop it. The insert line reflects the target's nesting depth and is drawn in the theme's accent color, and the row you're hovering over is highlighted green, grey, or red depending on whether the drop will be accepted, change nothing, or be refused.

A few drag gestures that used to be silently rejected now work as expected: dropping an entity on the row of its current parent moves it to the end of that parent's children, and dropping in the empty space below the tree moves an entity out to the top level. Folder rows no longer offer a misleading insert position, since dropping onto a folder always adds the entity as a child of that folder.

What's Changed

Auto-generated; a maintainer may hand-edit.

🖥️ Editor / Game Studio

  • GameStudio, the Launcher, the CLI and the asset compiler can now capture crashes (managed and native) and let you send an anonymized report to Sentry so the team can see and fix them; nothing is ever sent without you clicking Send. GameStudio also now shows a dialog if it fails to start before its own crash handling is ready, instead of closing with nothing on screen, and a startup bug that could stop an installed copy of GameStudio from launching at all was fixed before this release (@xen2, #3348, d4cbd3f, a9f9148)
  • The entity tree now shows exactly where a dragged entity will land: the insert line matches the target's indentation, the drop target is highlighted green/grey/red for accept/no-change/refuse, and you can now drop an item after the last child of an expanded entity or move it to the end of its parent. As part of this, folders no longer accept an insert position (dropping on a folder now adds into it), and dropping an item back on its current parent moves it to the end instead of doing nothing (@sasvdw, #3365)
  • Fixed remote deployment (SSH) leaking connection handles and swallowing an authentication error, which could leave failed deploys harder to diagnose (@xen2, e7bd69a)

🎮 Graphics & Shaders

  • Fixed visible seams at cubemap face edges in mip 0 of prefiltered environment reflections (@sasvdw, #3341)
  • Restored the ability to attach custom attributes to a shader class, which some shader libraries depend on (@azeno, #3381)
  • Fixed some compute shaders with loops failing to compile for Direct3D11 (@xen2, 37812f2)
  • Fixed the on-screen debug text overlay dropping the first message of each frame (@BenjaBobs, #3378)

🧱 Content & Assets

  • Fixed materials created with Material.New at runtime binding an empty environment lookup texture, which could show incorrect reflections (@sasvdw, #3370)
  • The asset build now stops with a clear error as soon as an asset fails to compile, instead of continuing to bundle a partial build and failing later with a confusing "missing asset" error (@xen2, b9a207d)

📦 Project Templates

  • Fixed new projects created from a prerelease engine build referencing an engine package version that couldn't actually be resolved from NuGet (@xen2, 7cbc828, 8360f57)

📚 Samples

  • Fixed the Bepu sample failing to build for net10.0 when multiple target platforms were selected (@VaclavElias, #3358)
  • Reimported and refreshed sample assets, and removed an unused field in the async collision trigger demo that could throw at runtime (@ds5678, #3360, #3373)

🔨 Build & Dependencies

  • Removed unused NuGet package references from the engine's dependency list (@VaclavElias, #3359)
  • Updated AngleSharp and SSH.NET to fix known vulnerabilities in those dependencies (@VaclavElias, #3357)

🔧 Under the hood

  • Improved the source-build developer package pipeline: dev package stubs now refresh themselves automatically after a build, track packed build assets for staleness, and native builds register their outputs before generating dependency manifests to avoid intermittent drops (@xen2, 08f3110, bd11105, afd56b8, a014859)
  • Fixed the Null graphics backend (used only to keep the shared rendering API honest, no renderer of its own) failing to compile, and added CI coverage so it doesn't silently break again (@sasvdw, #3371)
  • Fixed a shader-compiler code generator returning corrupted strings due to reusing a pooled buffer too early (@xen2, cdf6c0b)
  • Only macOS builds now declare the macOS-specific native library for the net10.0-macos target (@xen2, 387fa8e)
  • Made an internal ScrollViewer method private since it was never meant to be called from outside the class (@ds5678, #3361)

New Contributors

Full Changelog: releases/4.4.0-beta5...releases/4.4.0-beta6

Stride 4.4.0-beta5

Stride 4.4.0-beta5 Pre-release
Pre-release

Choose a tag to compare

@xen2 xen2 released this 14 Aug 21:34
34c7f40

✨ Highlights

Further work on the Vulkan API. This release addresses another batch of bugs that were introduced with the recent rewrite of the Vulkan renderer. We have also updated the requirement for Vulkan to version 1.3 in order to improve performance. This change may break support for some older devices, so make sure to update your graphics drivers!

Improvements to replacement assets. In case you missed it, Stride now allows you to create replacement assets that can override the contents of other assets, including read-only ones from external packages or engine libraries. This release introduces additional tools to better show the relation between a replacement and its target, including a new 🟡 yellow compilation status dot, which signifies that an asset will be included in the build, but its contents will be replaced by another.

Single-script application support. The engine is now compatible with file-based apps. This means that in combination with the community toolkit, you can now create Stride games from a single C# file!

Removed legacy metrics. Game Studio's telemetry was a left-over from when Stride was a closed-sourced project named Xenko. Most of it was unused or broken, which is why it was removed. However, we are planning to soon re-add the crash report form and there are talks about reintroducing metrics as an opt-in system.

What's Changed

Auto-generated; a maintainer may hand-edit.

🎮 Graphics & Shaders

  • Vulkan now requires a Vulkan 1.3-capable driver (this effectively drops support for GPU drivers older than 2022) and uses a leaner way of starting and ending render passes ("dynamic rendering"), replacing the old render-pass objects. Resource transitions, telling the GPU when a texture switches from being written to being read, are now explicit on both Vulkan and Direct3D 12, replacing an old Vulkan-only automatic workaround (@xen2, #3337, #3338)
  • Fixed a crash (device lost) when enabling Local Reflections on Vulkan with NVIDIA GPUs, caused by a mismatch between the render targets bound and what the transparent rendering stage expected (@sasvdw, #3287)
  • Fixed several Vulkan bugs affecting compute shaders and read/write textures or buffers: wrong data from RW buffers, missing image views for write-only textures, wrong image formats, and incorrect mip/array-slice copies (used when generating cubemaps and light probes) (@sasvdw, #3311)
  • Fixed a crash with spot light shadows on Direct3D, caused by a conflicting shader-compiler file bundled with a dependency (@xen2, 18786dd)
  • SDSL shaders: Buffer<T> now keeps its declared element type instead of always returning a 4-component value, matching HLSL behavior (@xen2, #3333)
  • SDSL shaders: fixed multidimensional array dimensions being emitted in the wrong order (@sasvdw, #3293)
  • SDSL shaders: numbers are now parsed and printed in a locale-independent way, avoiding shader compile issues on systems using a comma as the decimal separator (@sasvdw, #3325)
  • Fixed procedurally generated primitive models not renormalizing their normals after scaling, which could cause incorrect lighting (@Basewq, #3308)

🧨 Physics

  • Bepu physics now reuses Stride's own thread pool instead of maintaining its own, lowering memory use and thread overhead (@Eideren, #3281)
  • Fixed a crash from an invalid memory write during physics overlap queries, and added validation that rejects invalid (NaN or zero) translation, rotation and other numeric data passed to physics bodies instead of corrupting memory (@Eideren, #3275, #3278, #3306)

🖥️ Editor / Game Studio

  • Guid properties on components and assets can now be edited directly in the property grid, with input formatting and validation; they previously showed as a read-only row with no way to change the value (@Nicogo1705, #3280)
  • Asset.Replaces is now tracked as a proper reference instead of a plain path, so it survives renaming or moving the replaced asset. Game Studio also shows "Replaced by" links and badges, and correctly reflects replacements in the asset inclusion view (@xen2, #3295, 03edac1)
  • Fixed the game window coming back tiny (and crashing post-processing) after minimizing and restoring it; window position and size handling was also cleaned up across platforms (@xen2, #3300)
  • Restored the "New Game" asset packs (Building blocks, Animated models, Materials, Particles) that were lost when the project template system was reworked; each pack can now be added on demand from Game Studio or the CLI (@xen2, #3331)

📦 Content & Assets

  • ContentManager.Load now gives a clearer error, including suggestions, when an asset can't be found, and always throws an exception instead of sometimes silently returning null (@xen2, #3327)
  • Fixed deserialization of a member whose stored value's type no longer matches its currently serialized type (@xen2, #3305)
  • Fixed several bugs in cross-package asset references that could break a build or load the wrong asset, including references not being fully restored when loaded and pasted assets not being matched correctly against existing ones (@xen2, 748e736, 0cb7693, 46c0de5)
  • Fixed a crash when compiling an asset that references another asset through an interface-typed property (@xen2, 8f74993)
  • Fixed malformed intermediate build paths for file-based Stride apps (dotnet run app.cs) (@VaclavElias, #3340)

🖼️ UI

  • Fixed StackPanel gap spacing being computed incorrectly when some children are collapsed, which also caused janky scrollbar dragging inside a ScrollViewer (@bai-chi-xing, #3298)
  • Fixed Slider snapping to the wrong value when its tick step didn't account for a non-zero minimum (@Acissathar, 35a94e1)

⚙️ Engine / Core

  • Removed the built-in telemetry/metrics collection from Stride.Engine. The crash reporter now lets you view and save a report locally, for example to attach to a GitHub issue, instead of sending it automatically (@Jklawreszuk, #3279, #3342)
  • Removed the non-functional per-configuration overrides on game settings. Breaking change: Game.Settings.Configurations.Get<>() is now Game.Settings.GetConfiguration<>() (@ferafiks, #3343)

📄 Docs

🔧 Under the hood

  • Removed SharpDX package references from core and Game Studio projects, keeping only the input-related subpackages still in use (@VaclavElias, #3294)
  • Updated the MarkView.Avalonia dependency used by Game Studio (@Kryptos-FR, #3354)
  • Enabled Vulkan validation layers on Windows CI and log the active graphics debug/validation mode at startup, to catch graphics backend bugs earlier (@xen2, #3346)
  • Fixed instability in the editor test lane (@xen2, #3345)
  • Fixed a rendering test's cubemap face orientation so it measures rendering accuracy correctly (@sasvdw, #3330)
  • Refreshed visual regression test reference images (@github-actions[bot], #3335)
  • Fixed engine build issues: a NuGet.Frameworks version conflict when building with newer SDKs, and removed an unused MSBuild task reference from the asset compiler project (@ds5678, #3350; @VaclavElias, #3332)

New Contributors

Read more

Stride 4.4.0-beta4

Stride 4.4.0-beta4 Pre-release
Pre-release

Choose a tag to compare

@xen2 xen2 released this 18 Jul 09:31

🧩 Assets & Build

  • Fixed the generator that creates typed asset URL constants (the Assets class Stride generates so your code can reference project assets without hardcoding path strings). It now identifies each asset by its file extension instead of opening and reading every asset file's contents — so builds are faster and assets are no longer occasionally missed or given the wrong type. (9eef715b1)

Full Changelog: releases/4.4.0-beta3...releases/4.4.0-beta4

Stride 4.4.0-beta3

Stride 4.4.0-beta3 Pre-release
Pre-release

Choose a tag to compare

@xen2 xen2 released this 17 Jul 08:50

Stride 4.4.0-beta3

Highlights

📦 Per-package asset URLs and namespacing

Assets now live under a rooted, per-package address like /MyGame/UI/Title or /MyPlugin/Effects/Foo instead of a single flat pool shared by everything you reference. Each package owns its own namespace, and you can use another package's assets by name in the same way you using a C# namespace.

  • Libraries turn on namespacing automatically at pack time, so anything you publish as a NuGet plugin ships with a clean, non-colliding URL prefix.
  • Games stay bare by default and opt in with a StrideAssetNamespace setting, so existing projects keep working exactly as before.
  • Reference fields in the editor show just the asset name, with the package prefix dimmed to the side and the full URL in a tooltip.
  • Same-package references are saved bare and are automatically re-qualified on load, so switching a game to a namespace doesn't churn your files.
  • The asset tree shows a package's contents at its root — the package is the namespace, so paths no longer look doubled up.

🔁 Asset replacement

Any asset can now declare a Replaces target. When the project is built, the replacing asset takes the replaced asset's URL and content, so plugins can override built-in or third-party content without editing the original.

  • The editor shows a "Replaces" link row on the asset and a small badge on the tile it replaces, and there's a "Clear replacement" command to undo it.
  • The viewport and previews follow the redirect live: edit the replacing asset and the running scene reflects it without a rebuild.
  • Session diagnostics flag conflicts (two assets replacing the same target, cycles, etc.).

🏷️ Typed asset URL constants

Projects now get a generated Assets class with typed constants for every asset in the build (e.g. Assets.Scenes.MainScene), so you can reference content by an IDE-completed symbol instead of a raw string. Renames flow through as compile errors instead of silent runtime "content not found".

🖥️ Editor / Game Studio

  • Fixed the settings window crashing when two settings translated to the same display name (e.g. "Reset camera" in several locales). (#3260)
  • Fixed Update Platforms crashing when re-adding a platform that had just been removed.
  • Fixed Update Platforms spawning an unwanted .Game package when run against a project created before 4.4. (#3262)
  • Reference fields now refresh immediately when the asset they point at is renamed or moved — no more stale labels.
  • If the graphics API a project was saved with isn't present in your local build, Game Studio now offers to fall back to an available one instead of refusing to start.
  • Save no longer accidentally mutates in-memory override metadata while writing it to disk.
  • Copy/cut checks, the asset file dialog, the sound preview and the shader import path were all updated to understand the new namespaced URL form.

🎮 Graphics & Shaders

  • Fixed the F7 GPU profiler crashing hard on Vulkan (FastTextRenderer was drawing into a closed command list). (#3261, #1020)
  • Fixed shaders recompiling on every launch: a stale flag could strip the source hash from a cached shader, making the next run think the cache was invalid. Old poisoned cache files are now detected and rewritten. (cc7ca73)
  • Fixed wrong constants in generated shader parameter keys when values used scientific notation, and cleaned up type/suffix handling in the generated C#. (#3250)

🧨 Physics (BEPU)

  • Fixed static collidables ignoring position/rotation updates — moving a static body now actually moves it. (66a910b)
  • Translation and rotation fed to BEPU are now validated, so bad values give a clear error instead of a native crash. (5f01a46)
  • Skip the inertia calculation for StaticComponent — small perf win, avoids pointless work for shapes that will never move. (518e006)

🔊 Audio

  • Fixed a macOS shutdown crash where OpenAL's render thread could touch a context that had just been destroyed. (3e52f84)
  • Fixed a crash on Destroy when a Sound was created but never actually loaded. (13a902b)

🐧 Cross-platform / Build

  • Fixed the ffmpeg native binaries not landing in the right place inside the package, so Linux and macOS builds now get a working ffmpeg again. (243045b)
  • Deployed native libraries are now part of the up-to-date check, so builds correctly notice when a native is missing or has changed. (913f969)
  • Worked around a broken Xcode 26.6 tool-resolution behaviour on macOS/iOS builds.

🔧 Under the hood

  • The editor's asset build cache is now placed under the game library and shared across all platform builds, so Update Platforms can no longer wipe out the cache that Game Studio is actively using. A background sweep also trims entries the open session hasn't touched in a while, keeping the cache from growing without bound.
  • UpdateEngine's type registries are now thread-safe, fixing a rare crash when animation compilation and script member registration ran in parallel.
  • Fixed a case where per-package flattened dependencies were wrong when a project was loaded from its build manifest. (#3258)
  • Quantum's array collection handling was rounded out, and a batch of previously-ported core asset/quantum tests were adapted and re-enabled.
  • Improved handling of cross-targeting build-trigger references to avoid a spurious MSBuild reference-resolution error.
  • A Repo File Guard job now blocks accidental commits of oversized non-LFS binaries and enforces LFS integrity on a set of tracked binary file types.

Full Changelog: releases/4.4.0-beta2...releases/4.4.0-beta3