Stride 4.4.0-beta1
Pre-release
Pre-release
Full Changelog: cli/1.0.0-beta1...releases/4.4.0-beta1
What's Changed
🎉 New Features
- feat: Add unit tests in Core to increase coverage by @Kryptos-FR in #2967
- feat: Allow to link native library with lld on Windows by @Kryptos-FR in #3045
- feat: ImageElement can rotate the image by @laske185 in #3039
- feat: Refactor old build system into a proper Sdk by @Kryptos-FR in #3085
- feat: Add more unit tests in Core to increase coverage by @Kryptos-FR in #2996
🐞 Bug Fixes
- Reverted from iphone to anycpu for crash reporter by @johang88 in #3029
- fix: Swapped Front/Back Z-axis labels on view camera gizmo by @kjnorris1205 in #3118
- Reduce dictionary lookups by @Henr1k80 in #3156
🧠 Core
- fix: ScriptSystem performance by @Eideren in #2986
- chore: prune unnecessary package references by @Kryptos-FR in #3028
- fix: Change the order of probing for loading native libraries by @Ethereal77 in #3033
- fix: Stride.Samples.Tests missing package reference by @Eideren in #3060
🔧 Engineering
- Migrate CI/CD from TeamCity to GitHub Actions: release workflows & WARP GPU testing (D3D11) by @xen2 in #3115
📦 Assets
- feat: Xplat support for image loading and saving from memory by @Jklawreszuk in #2689
- fix: Correct image type for StandardImageHelper #2689 by @Jklawreszuk in #3000
- feat: Runtime font loading by @VaclavElias in #2981
- fix: Set default quality flags when saving in JPEG format by @Ethereal77 in #3034
- fix: Add Assimp "LimitBoneWeights" aiPostProcessSteps by @Nicogo1705 in #3110
- docs: add asset system contributor documentation by @Kryptos-FR in #3121
- feat: Add Yes/No to all for batch asset import by @Acissathar in #3052
🔨 Build
- feat: Port Stride.Navigation native code to C# using DotRecast by @Jklawreszuk in #2987
📄 Docs
- docs: Update README.md for Visual Studio 2026 setup by @VaclavElias in #2971
- chore: Add AI section to release workflow by @VaclavElias in #3040
- docs: Tweak PR template to notify users they should mark them as draft when it makes sense by @Eideren in #3041
- docs: copilot-instructions.md - Emphasize XML doc review by @VaclavElias in #3009
- docs: add quantum contributor documentation by @Kryptos-FR in #3136
- docs: add editor contributor documentation by @Kryptos-FR in #3137
- docs: add ModxVoldHunter as a contributor for code by @allcontributors[bot] in #3139
- docs: add C0dingSteve as a contributor for code by @allcontributors[bot] in #3140
- docs: add MEEMexe as a contributor for code by @allcontributors[bot] in #3141
- docs: add ferafiks as a contributor for code by @allcontributors[bot] in #3142
- docs: add Kreblc3428 as a contributor for code by @allcontributors[bot] in #3143
- docs: add Acissathar as a contributor for code by @allcontributors[bot] in #3144
- docs: add default value remarks to CollidableComponent by @VaclavElias in #3214
🛠️ GameStudio
- fix: Presentation, remove false-positive prone exception by @Eideren in #2886
- Refactoring changes in Stride.GameStudio 2 by @Jklawreszuk in #2970
- fix: VS workload detection logic for iOS and Android workloads on modern VS by @JeroMiya in #3022
- feat: Prefer loading projects with *.sdpkg above other executables by @Eideren in #3044
- fix: Tooltip offset when using the UI editor's DragWindow by @Acissathar in #3107
- [GameStudio] FIX for #1913 - Make "Add Component" button functional with multiple entities selected by @luca-domenichini in #3089
- Fix editor crash due to AssetViewModel.TypeDisplayName being null by @Basewq in #3150
- feat: Include asset name when logging asset-related issues by @Eideren in #3202
🎨 Graphics
- feat: Convert from SharpDX to Silk.NET by @Ethereal77 in #1715
- chore: Updated Vortice.Vulkan package to the latest version 2.1.2 -> 3.0.3 by @Feralnex in #2991
- Revert "Rendering: Added missing override in ShadowMap shaders" by @Eideren in #3038
- fix: null checking in IndexBufferBinding equals operator by @johang88 in #3078
- fix: D3D12/Vulkan software rendering CI (incl. barrier rewrite and validation fixes) by @xen2 in #3122
- chore: Remove OpenGL graphics API by @xen2 in #3069
➗ Math
⚙️ Physics
- fix: Bepu transformation for bodies children of bodies by @Eideren in #3013
- fix: Model collision issues with more complex meshes by @Eideren in #3036
- chore: Update BepuPhysics to 2.5.0-beta.27 by @Nicogo1705 in #3049
- fix: Crash when adding bepu's DebugRenderComponent in editor by @Nicogo1705 in #3050
- fix: Carry MicroThread's execution context during BepuSim's NextUpdate and AfterUpdate by @Eideren in #3092
- chore: Update BepuPhysics to 2.5.0-beta.28 by @Nicogo1705 in #3112
- feat: Rework CharacterController based on Bepu's by @Eideren in #3195
📚 Samples
- feat: Add a new template: 2D Platformer by @D4rkDuck in #3042
- fix: Platformer2D sample, enable alpha cutoff. by @MsEpsilon in #3098
🔄 Serialization
🖥️ UI
- fix: Misaligned Caret and selection box for EditText + refactor SpriteFont glyph drawing logic by @Eideren in #3058
- feat: Open event routing for multi-user interfaces by @Eideren in #3057
- fix: Update Transformation Tooltip gizmo to have transparent background property so hit registration matches highlighting by @Acissathar in #3059
- fix: Replace static FocusedElement and more proactive UI service availability by @Eideren in #3056
- fix: Multi stage and render-group UI input by @Eideren in #3176
🤖 AI
💪 Other Changes
- refactor: Remove unused tools by @Jklawreszuk in #2992
- perf: Optimize MSBuild project loading and dependency handling by @laske185 in #2932
- docs: Added license by @Doprez in #3007
- fix: Stop failing to open project due to duplicate package references. by @Doprez in #2998
- chore: removed expectedly ignored vs directory by @D4rkDuck in #3011
- [fix] Fixed PvrttTexLib implementation which caused Android game projects build to fail by @Feralnex in #3070
- [Video] Drops dependency to SharpDX.MediaFoundation using Microsoft.Windows.CsWin32 by @azeno in #3032
- refactor: Remove unused tools, Update Stride.PublicApiCheck by @Jklawreszuk in #2994
- Remove BuildEngine project by @Jklawreszuk in #2208
- [Build] fix: Improve
StridePlatformdetermination accuracy by @ds5678 in #3075 - fix: Many Stride build warnings by @ds5678 in #3076
- AssemblyProcessor refactor by @xen2 in #3091
- Allow to opt-out of loading shaders from original location by @azeno in #3105
- fix vs2026 cant compile by @Redwarx008 in #3093
- Fix compiling small textures by @Basewq in #3125
- perf: use ArrayPool for temporary buffers where useful by @steveberdy in #3079
- chore: Bump freetype to 2.13.3 (with new platforms) by @xen2 in #3129
- fix: clear stale pixels around font atlas glyphs to prevent bleeding by @xen2 in #3131
- Linux build and CI by @xen2 in #3127
- Parallel build by @xen2 in #3133
- sdk: parallel-safe AssemblyProcessor copy by @xen2 in #3155
- Samples screenshot regression by @xen2 in #3158
- ci: ParallelBuildAuditor — detect property-leak duplicate builds by @xen2 in #3160
- sdk: auto-detect StrideNativeBuildMode by @xen2 in #3161
- GameStudio screenshot regression pipeline by @xen2 in #3162
- Ci main refactor + new
/testchatops bot by @xen2 in #3164 - sdk: strip graphics-API-specific native packages from consumer bin/ by @xen2 in #3153
- [Tests] fix: Paths are case sensitive on Linux by @Jklawreszuk in #3152
- fix: Recompile spritesheet asset and thumbnail when source file is changed by @Acissathar in #3159
- SDSL rewrite by @xen2 in #3134
- core: drop MicroThreading dep from Stride.Core.Serialization by @xen2 in #3169
- sdk/tests: filter runtimes/ after GetCopyToOutputDirectoryItems by @xen2 in #3170
- Drop x86 support by @xen2 in #3181
- build: per-checkout NuGet version suffix (disambiguates parallel work… by @xen2 in #3184
- macOS support + cross-platform asset pipeline by @xen2 in #3187
- Image/Texture.Load: consistent straight-alpha across platforms + AlphaLoadMode by @xen2 in #3190
- Avalonia test runner: UI revamp by @xen2 in #3189
- dotnet new template integration by @xen2 in #3192
- Build fixes + StrideDevPackages fast dev mode by @xen2 in #3196
- macOS gold via MoltenVK (real Apple GPU path) + some CompareGold improvements by @xen2 in #3198
- Android: runtime build + CI emulator tests by @xen2 in #3194
- fix: Prevent Game Studio crash when creating prefab from entities with ModelNodeLinkComponent by @w0wca7a in #3167
- [GameStudio] FIX for #3172 - Make correct Entity rotation on offsetted subscene by @w0wca7a in #3173
- Make the engine NativeAOT / trim clean by @xen2 in #3204
- templates: dotnet new for NewGame, AddLibrary, UpdatePlatforms by @xen2 in #3210
- iOS platform support: Vulkan/MoltenVK runtime, AVFoundation media, full test suite on Simulator CI by @xen2 in #3215
- Trim repo & CI checkout sizes (LFS, sparse checkout, LLVM via NuGet) by @xen2 in #3216
- refactor: Remove unused package references from project files by @VaclavElias in #3211
- Fix sample teardown hang: drain GPU before the window is destroyed by @xen2 in #3217
- Build & release modernization by @xen2 in #3218
- Cross-platform sample regression fixes by @xen2 in #3220
- Asset compiler: load from
.sdbuildmanifests instead of walking the csproj graph by @xen2 in #3219 - CI: use labels for opt-in test suites + fork-safe vision gate by @xen2 in #3224
- Declare TargetFrameworks explicitly (drop the StrideRuntime indirection) by @xen2 in #3226
- chore: Update Silk.Net from 2.22.0 to 2.23.0 by @w0wca7a in #3126
- Build tooling & sample versioning by @xen2 in #3231
- Renamed Stride assembly to Stride.Foundation by @xen2 in #3234
- Backup modified files before upgrade by @xen2 in #3244
- stride CLI tool by @xen2 in #3240
- Migrate solutions to slnx by @xen2 in #3245
New Contributors
- @JeroMiya made their first contribution in #3022
- @D4rkDuck made their first contribution in #3011
- @ds5678 made their first contribution in #3075
- @rafzi made their first contribution in #3087
- @MsEpsilon made their first contribution in #3098
- @Redwarx008 made their first contribution in #3093
- @kjnorris1205 made their first contribution in #3118
- @luca-domenichini made their first contribution in #3089
- @steveberdy made their first contribution in #3079
- @Henr1k80 made their first contribution in #3156
- @w0wca7a made their first contribution in #3167
Full Changelog: releases/4.3.0.2507...releases/4.4.0-beta1
What's Changed
🎉 New Features
- feat: Add unit tests in Core to increase coverage by @Kryptos-FR in #2967
- feat: Allow to link native library with lld on Windows by @Kryptos-FR in #3045
- feat: ImageElement can rotate the image by @laske185 in #3039
- feat: Refactor old build system into a proper Sdk by @Kryptos-FR in #3085
- feat: Add more unit tests in Core to increase coverage by @Kryptos-FR in #2996
🐞 Bug Fixes
- Reverted from iphone to anycpu for crash reporter by @johang88 in #3029
- fix: Swapped Front/Back Z-axis labels on view camera gizmo by @kjnorris1205 in #3118
- Reduce dictionary lookups by @Henr1k80 in #3156
🧠 Core
- fix: ScriptSystem performance by @Eideren in #2986
- chore: prune unnecessary package references by @Kryptos-FR in #3028
- fix: Change the order of probing for loading native libraries by @Ethereal77 in #3033
- fix: Stride.Samples.Tests missing package reference by @Eideren in #3060
🔧 Engineering
- Migrate CI/CD from TeamCity to GitHub Actions: release workflows & WARP GPU testing (D3D11) by @xen2 in #3115
📦 Assets
- feat: Xplat support for image loading and saving from memory by @Jklawreszuk in #2689
- fix: Correct image type for StandardImageHelper #2689 by @Jklawreszuk in #3000
- feat: Runtime font loading by @VaclavElias in #2981
- fix: Set default quality flags when saving in JPEG format by @Ethereal77 in #3034
- fix: Add Assimp "LimitBoneWeights" aiPostProcessSteps by @Nicogo1705 in #3110
- docs: add asset system contributor documentation by @Kryptos-FR in #3121
- feat: Add Yes/No to all for batch asset import by @Acissathar in #3052
🔨 Build
- feat: Port Stride.Navigation native code to C# using DotRecast by @Jklawreszuk in #2987
📄 Docs
- docs: Update README.md for Visual Studio 2026 setup by @VaclavElias in #2971
- chore: Add AI section to release workflow by @VaclavElias in #3040
- docs: Tweak PR template to notify users they should mark them as draft when it makes sense by @Eideren in #3041
- docs: copilot-instructions.md - Emphasize XML doc review by @VaclavElias in #3009
- docs: add quantum contributor documentation by @Kryptos-FR in #3136
- docs: add editor contributor documentation by @Kryptos-FR in #3137
- docs: add ModxVoldHunter as a contributor for code by @allcontributors[bot] in #3139
- docs: add C0dingSteve as a contributor for code by @allcontributors[bot] in #3140
- docs: add MEEMexe as a contributor for code by @allcontributors[bot] in #3141
- docs: add ferafiks as a contributor for code by @allcontributors[bot] in #3142
- docs: add Kreblc3428 as a contributor for code by @allcontributors[bot] in #3143
- docs: add Acissathar as a contributor for code by @allcontributors[bot] in #3144
- docs: add default value remarks to CollidableComponent by @VaclavElias in #3214
🛠️ GameStudio
- fix: Presentation, remove false-positive prone exception by @Eideren in #2886
- Refactoring changes in Stride.GameStudio 2 by @Jklawreszuk in #2970
- fix: VS workload detection logic for iOS and Android workloads on modern VS by @JeroMiya in #3022
- feat: Prefer loading projects with *.sdpkg above other executables by @Eideren in #3044
- fix: Tooltip offset when using the UI editor's DragWindow by @Acissathar in #3107
- [GameStudio] FIX for #1913 - Make "Add Component" button functional with multiple entities selected by @luca-domenichini in #3089
- Fix editor crash due to AssetViewModel.TypeDisplayName being null by @Basewq in #3150
- feat: Include asset name when logging asset-related issues by @Eideren in #3202
🎨 Graphics
- feat: Convert from SharpDX to Silk.NET by @Ethereal77 in #1715
- chore: Updated Vortice.Vulkan package to the latest version 2.1.2 -> 3.0.3 by @Feralnex in #2991
- Revert "Rendering: Added missing override in ShadowMap shaders" by @Eideren in #3038
- fix: null checking in IndexBufferBinding equals operator by @johang88 in #3078
- fix: D3D12/Vulkan software rendering CI (incl. barrier rewrite and validation fixes) by @xen2 in #3122
- chore: Remove OpenGL graphics API by @xen2 in #3069
➗ Math
⚙️ Physics
- fix: Bepu transformation for bodies children of bodies by @Eideren in #3013
- fix: Model collision issues with more complex meshes by @Eideren in #3036
- chore: Update BepuPhysics to 2.5.0-beta.27 by @Nicogo1705 in #3049
- fix: Crash when adding bepu's DebugRenderComponent in editor by @Nicogo1705 in #3050
- fix: Carry MicroThread's execution context during BepuSim's NextUpdate and AfterUpdate by @Eideren in #3092
- chore: Update BepuPhysics to 2.5.0-beta.28 by @Nicogo1705 in #3112
- feat: Rework CharacterController based on Bepu's by @Eideren in #3195
📚 Samples
- feat: Add a new template: 2D Platformer by @D4rkDuck in #3042
- fix: Platformer2D sample, enable alpha cutoff. by @MsEpsilon in #3098
🔄 Serialization
🖥️ UI
- fix: Misaligned Caret and selection box for EditText + refactor SpriteFont glyph drawing logic by @Eideren in #3058
- feat: Open event routing for multi-user interfaces by @Eideren in #3057
- fix: Update Transformation Tooltip gizmo to have transparent background property so hit registration matches highlighting by @Acissathar in #3059
- fix: Replace static FocusedElement and more proactive UI service availability by @Eideren in #3056
- fix: Multi stage and render-group UI input by @Eideren in #3176
🤖 AI
💪 Other Changes
- refactor: Remove unused tools by @Jklawreszuk in #2992
- perf: Optimize MSBuild project loading and dependency handling by @laske185 in #2932
- docs: Added license by @Doprez in #3007
- fix: Stop failing to open project due to duplicate package references. by @Doprez in #2998
- chore: removed expectedly ignored vs directory by @D4rkDuck in #3011
- [fix] Fixed PvrttTexLib implementation which caused Android game projects build to fail by @Feralnex in #3070
- [Video] Drops dependency to SharpDX.MediaFoundation using Microsoft.Windows.CsWin32 by @azeno in #3032
- refactor: Remove unused tools, Update Stride.PublicApiCheck by @Jklawreszuk in #2994
- Remove BuildEngine project by @Jklawreszuk in #2208
- [Build] fix: Improve
StridePlatformdetermination accuracy by @ds5678 in #3075 - fix: Many Stride build warnings by @ds5678 in #3076
- AssemblyProcessor refactor by @xen2 in #3091
- Allow to opt-out of loading shaders from original location by @azeno in #3105
- fix vs2026 cant compile by @Redwarx008 in #3093
- Fix compiling small textures by @Basewq in #3125
- perf: use ArrayPool for temporary buffers where useful by @steveberdy in #3079
- chore: Bump freetype to 2.13.3 (with new platforms) by @xen2 in #3129
- fix: clear stale pixels around font atlas glyphs to prevent bleeding by @xen2 in #3131
- Linux build and CI by @xen2 in #3127
- Parallel build by @xen2 in #3133
- sdk: parallel-safe AssemblyProcessor copy by @xen2 in #3155
- Samples screenshot regression by @xen2 in #3158
- ci: ParallelBuildAuditor — detect property-leak duplicate builds by @xen2 in #3160
- sdk: auto-detect StrideNativeBuildMode by @xen2 in #3161
- GameStudio screenshot regression pipeline by @xen2 in #3162
- Ci main refactor + new
/testchatops bot by @xen2 in #3164 - sdk: strip graphics-API-specific native packages from consumer bin/ by @xen2 in #3153
- [Tests] fix: Paths are case sensitive on Linux by @Jklawreszuk in #3152
- fix: Recompile spritesheet asset and thumbnail when source file is changed by @Acissathar in #3159
- SDSL rewrite by @xen2 in #3134
- core: drop MicroThreading dep from Stride.Core.Serialization by @xen2 in #3169
- sdk/tests: filter runtimes/ after GetCopyToOutputDirectoryItems by @xen2 in #3170
- Drop x86 support by @xen2 in #3181
- build: per-checkout NuGet version suffix (disambiguates parallel work… by @xen2 in #3184
- macOS support + cross-platform asset pipeline by @xen2 in #3187
- Image/Texture.Load: consistent straight-alpha across platforms + AlphaLoadMode by @xen2 in #3190
- Avalonia test runner: UI revamp by @xen2 in #3189
- dotnet new template integration by @xen2 in #3192
- Build fixes + StrideDevPackages fast dev mode by @xen2 in #3196
- macOS gold via MoltenVK (real Apple GPU path) + some CompareGold improvements by @xen2 in #3198
- Android: runtime build + CI emulator tests by @xen2 in #3194
- fix: Prevent Game Studio crash when creating prefab from entities with ModelNodeLinkComponent by @w0wca7a in #3167
- [GameStudio] FIX for #3172 - Make correct Entity rotation on offsetted subscene by @w0wca7a in #3173
- Make the engine NativeAOT / trim clean by @xen2 in #3204
- templates: dotnet new for NewGame, AddLibrary, UpdatePlatforms by @xen2 in #3210
- iOS platform support: Vulkan/MoltenVK runtime, AVFoundation media, full test suite on Simulator CI by @xen2 in #3215
- Trim repo & CI checkout sizes (LFS, sparse checkout, LLVM via NuGet) by @xen2 in #3216
- refactor: Remove unused package references from project files by @VaclavElias in #3211
- Fix sample teardown hang: drain GPU before the window is destroyed by @xen2 in #3217
- Build & release modernization by @xen2 in #3218
- Cross-platform sample regression fixes by @xen2 in #3220
- Asset compiler: load from
.sdbuildmanifests instead of walking the csproj graph by @xen2 in #3219 - CI: use labels for opt-in test suites + fork-safe vision gate by @xen2 in #3224
- Declare TargetFrameworks explicitly (drop the StrideRuntime indirection) by @xen2 in #3226
- chore: Update Silk.Net from 2.22.0 to 2.23.0 by @w0wca7a in #3126
- Build tooling & sample versioning by @xen2 in #3231
- Renamed Stride assembly to Stride.Foundation by @xen2 in #3234
- Backup modified files before upgrade by @xen2 in #3244
- stride CLI tool by @xen2 in #3240
- Migrate solutions to slnx by @xen2 in #3245
New Contributors
- @JeroMiya made their first contribution in #3022
- @D4rkDuck made their first contribution in #3011
- @ds5678 made their first contribution in #3075
- @rafzi made their first contribution in #3087
- @MsEpsilon made their first contribution in #3098
- @Redwarx008 made their first contribution in #3093
- @kjnorris1205 made their first contribution in #3118
- @luca-domenichini made their first contribution in #3089
- @steveberdy made their first contribution in #3079
- @Henr1k80 made their first contribution in #3156
- @w0wca7a made their first contribution in #3167
Full Changelog: releases/4.3.0.2507...releases/4.4.0-beta1