Releases: stride3d/stride
v4.2.0.2282
We're excited to announce a new update to the Stride game engine, packed with numerous fixes and improvements across various areas. This release includes an impressive total of around 600 commits since the last version, reflecting the incredible efforts of our community and contributors.
This update paves the way for a new physics engine, Bepu Physics. While we already have some initial documentation available, more updates and samples are on the way. Feel free to contribute and help us enhance this exciting addition to Stride!
We’d like to highlight the efforts of the core Bepu Physics contributors: Nicogo, Eideren, Doprez and Norbo, the Bepu maintainer, who were also reimbursed through our Open Collective Bepu Physics integration project. Your hard work has made this integration possible, and we deeply appreciate your dedication!
Bullet Physics is being phased out as we shift our focus to Bepu Physics for ongoing updates and improvements. While it will remain available for the next two or so major releases, we recommend transitioning to Bepu Physics to stay aligned with the engine's evolution.
A big thank you to all our contributors for your continued support and efforts. Your contributions are the foundation of Stride’s growth and success! 🌟
What's Changed
🎉 New Features
- feat: Make Stride.StorageTool as Gui Tool by @Jklawreszuk in #2479
🧠 Core
📦 Assets
- fix: changed AssImp unsupported pivot bone error to warning by @Doprez in #2467
- fix: Replace Xenko logo with Stride logo in MaterialModel.fbx by @levifmorais in #2546
🔨 Build
- feat: [Build] - Better Platform detection for Linux by @Jklawreszuk in #2460
- feat: Assembly Processor Module Initializer to Roslyn by @IXLLEGACYIXL in #2402
- fix: Fix Cecil in master by @IXLLEGACYIXL in #2477
- fix: Adjust Solution.cs for all platforms by @Jklawreszuk in #2472
- feat: Enable to build SkyBoxAsset using OpenGL by @Jklawreszuk in #2504
- Test case improvements and updates by @dloe in #2393
- [Build] Update Silk.NET from 2.20.0 to 2.22.0 by @Basewq in #2521
- refactor: FreeImage dependency update by @Jklawreszuk in #2531
- chore: Update NuGet.* packages to version 6.12.1 by @VaclavElias in #2537
- feat: Port predicates.c to .NET by @Jklawreszuk in #2547
- chore: Update ServiceWire package to version 5.6.0 by @VaclavElias in #2548
📄 Docs
- docs: README.md update - Consistency updates by @VaclavElias in #2473
🛠️ GameStudio
- fix: Add in gizmos on assembly load by @Eideren in #2526
- feat: Get LocalAppData path from Environment.SpecialFolder enum by @Jklawreszuk in #2511
🎨 Graphics
- feat: Custom Depth Test Function for Materials by @Eideren in #2415
- fix: Wrong Instanced call used for DrawInstanced in CommandList.Direct3D.cs by @kopffarben in #2482
- fix: Resolve crashing issue for OpenGL UIPage (#2189) by @Jklawreszuk in #2500
- feat: Deprecate DataPointer in favor of Span by @Eideren in #2421
- Fixed getting actual bounds and refresh rate of the output (monitor/display) from GraphicsOutput.CurrentDisplayMode when using Direct3D by @Feralnex in #2494
➗ Math
⚙️ Physics
- feat: Bepu physics integration by @Eideren in #2131
- fix: Bepu, ensure users require an explicit reference to bepu before being able to use related components and assets by @Eideren in #2534
🔄 Serialization
🖥️ UI
- feat: Made UIElement Key Events public by @TranquilAbyss in #2518
💪 Other Changes
- [tool] - Remove unused Stride.Core.ConfigEditor by @Jklawreszuk in #2006
- [AssemblyProcessor] - Remove unused options and deadcode by @Jklawreszuk in #1979
- feat: Process required keyword like MemberRequiredAttribute by @Eideren in #2555
- fix: very minor prop. grid presentation changes for bepu by @Eideren in #2556
- fix: Remove unused using directive in Stride.Audio by @Jklawreszuk in #2557
New Contributors
- @kopffarben made their first contribution in #2482
- @Feralnex made their first contribution in #2494
- @TranquilAbyss made their first contribution in #2518
- @levifmorais made their first contribution in #2546
Full Changelog: releases/4.2.0.2232...releases/4.2.0.2282
v4.2.0.2232
We're excited to announce a new minor update to the Stride game engine, packed with numerous fixes and improvements across various areas. This update focuses on enhancing the core, improving performance, fixing bugs, and expanding the feature set for assets and game development workflows.
Several performance optimizations have been made for geometric primitives, reducing memory usage and improving rendering efficiency. We’re also thrilled to welcome new contributors from the open-source community, including @tymokvo, @Arc-huangjingtong, @minktusk, and @timcassell. Thank you for your support!
Ongoing work continues on the cross-platform asset compiler, with some assets already being compiled on Linux. Special thanks to @Jklawreszuk for your contributions, but there's still more to do, let’s keep pushing forward! 🙂
And a big thank you to all our existing contributors for your continued dedication and hard work. Your contributions are the foundation of Stride’s growth and success! 🌟
What's Changed
🐞 Bug Fixes
- [Editor] Fix displaying & editing project User Settings by @Basewq in #2350
- fix: Bump samples version by @Kryptos-FR in #2398
🧠 Core
- fix: getting app exe path when using PublishSingleFile by @Basewq in #2352
- Fix: ChannelMicroThreadAwaiter pooling bug by @timcassell in #2373
📦 Assets
- fix: Enable to run broken TextureConverter Tests by @Jklawreszuk in #2343
- fix: Restore LoadWICFile for Windows due to incomplete cross-platform functionality by @Basewq in #2435
- fix: extracting embedded texture files for materials from glTF file by @Basewq in #2441
- fix: Assimp skeleton/animation importer for models with duplicate node names by @Basewq in #2444
🔨 Build
- fix: Update Stride.Core.Assets.CompilerApp.targets file by @Jklawreszuk in #2360
- fix: [DirectoryWatcher] - Folders are case sensitive on Linux by @Jklawreszuk in #2363
- fix: Replace ToWindowsPath with ToOSPath by @Jklawreszuk in #2371
- fix: Build folder cleanup by @Jklawreszuk in #2383
- fix: Change the error to a warning when searching for font path by @Jklawreszuk in #2403
- Add back Windows specific CompilerApp to fix libraries with WPF references by @Basewq in #2392
📄 Docs
- fix: Remove unused data by @Jklawreszuk in #2389
- fix: Xml comments fix 5 by @VaclavElias in #2419
- docs: Enhance Entity class comment with detailed description. by @VaclavElias in #2423
- docs: Added xml comment, and placed the namespace to correct position… by @VaclavElias in #2436
🛠️ GameStudio
- feat: Save Asset View Options Settings (#147) by @dloe in #2320
- feat: Expose and cleanup editor gizmos by @Eideren in #2127
- Fix restoring NuGet packages in the editor by @Basewq in #2432
🎨 Graphics
- fix: Compile Warning in OpenXR by @Arc-huangjingtong in #2357
- fix: importing effects to the EffectCompileLog by @Basewq in #2362
- fix: Update SharpFont library for additional fixes by @Basewq in #2318
- perf: Refactor geometric primitive.cylinder to avoid GC by @Arc-huangjingtong in #2369
- perf: Refactor GeometricPrimitive.Torus.cs by @Arc-huangjingtong in #2368
- feat: Modernize PVRTexLib dependency by @Jklawreszuk in #2342
- fix: depth calculation for MipMap views of 3D textures by @tebjan in #2375
- [Font] Fix glyph bitmap alignment from SDF fonts by @Basewq in #2380
- fix: SpriteBatch rotation logic to original code by @Basewq in #2458
⌨️ Input
- fix: Typo in VRSandboxApp by @Jklawreszuk in #2396
🚀 Launcher
➗ Math
- docs: Update guillotine packer documentation link by @tymokvo in #2339
- feat: [Math] - Exponential damping by @NicusorN5 in #2461
⚙️ Physics
- feat: No Physics Shapes On The CharacterComponent Causes Unhandled Exception by @dloe in #2410
- fix: PhysicsComponent created with GetOrCreate is unusable by @dloe in #2422
- fix: Unable to Change CharacterComponent's collider shape properties without causing crash by @dloe in #2428
- fix: bug pertaining to ReAttach method for PR #2422 by @dloe in #2439
- fix: PhysicsComponent reattach logic crashing the editor by @Basewq in #2465
📚 Samples
- feat: Hide default font name for SystemFontProvider, change default font by @Jklawreszuk in #2385
- fix: sample projects, remove unused properties by @Jklawreszuk in #2205
🔄 Serialization
🌈 Shaders
New Contributors
- @tymokvo made their first contribution in #2339
- @Arc-huangjingtong made their first contribution in #2357
- @minktusk made their first contribution in #2345
- @timcassell made their first contribution in #2373
Full Changelog: releases/4.2.0.2188...releases/4.2.0.2232
v4.2.0.2188
This release brings a multitude of minor enhancements and fixes across various domains such as Core, Assets, Build, Docs, Graphics, Math, Serialization, and more. A heartfelt thank you to all contributors who have dedicated their time and expertise, and a special welcome to our new contributors who have joined us in this update.
A massive thanks goes to @Noah7071 for concluding our Open Collective project on FBX Import CPP to C#. This significant achievement eliminates the requirement for installing the Windows-only FBX SDK 2019.0 VS2015, moving us closer to enabling cross-platform project builds.
What's Changed
🧠 Core
- docs: Improve clarity of NRE thrown from setters by @Doprez in #2286
- fix: use tryadd instead of containskey guard clause by @IXLLEGACYIXL in #2299
- refactor: Make FastList Obsolete by @Doprez in #2332
- feat: FlexibleProcessing as alternative to EntityComponentProcessor for lightweight, abstract and typesafe processing in idiomatic c# by @Eideren in #2331
🔧 Engineering
- feat: Roslyn Diagnostics Analyzer for empty constructor by @IXLLEGACYIXL in #2104
📦 Assets
- [Asset] Unified 3D asset importer (on behalf of Noa7/Noah7071) by @Eideren in #2163
- fix: Regression of new FBX importer on behalf of Noah by @Doprez in #2246
- fix: Reworded content load exception message by @Doprez in #2256
- fix: VS component check should only be performed for Win OS by @Jklawreszuk in #2270
- feat: [SystemFontProvider] - Implement GetFontPath for Linux by @Jklawreszuk in #2295
- fix: AssImp orientation, imported material color fallback, and set default animation preview model by @Doprez in #2291
🔨 Build
- remove unused class by @IXLLEGACYIXL in #2128
- fix: PublishSingleFile Launch Crash by @MeharDT in #2225
- Fix for PR #2112 by @Jklawreszuk in #2235
- fix: Use OperatingSystem.IsXyz instead of RuntimeInformation.IsOSPlatform by @Jklawreszuk in #2247
- fix: Adjust ToolLocator for all platforms by @Jklawreszuk in #2250
- feat: Enable to build engine and modeling related projects on any OS by @Jklawreszuk in #2237
- fix: [Build] Rollback OperatingSystem.IsXYZ for net472 project by @Eideren in #2277
- fix: Use CompilerApp crossplatform binary instead of exe by @Jklawreszuk in #2279
- fix: Get correct PackageCompiler.SdkDirectory for all platforms by @Jklawreszuk in #2271
- feat: New areas added by @VaclavElias in #2285
- feat: Add linux VHACD shared library by @Jklawreszuk in #2293
- fix: Adjust copying exe to nuget package lib folder by @Jklawreszuk in #2290
- test: Fix inconsistent FileVersion test by @Eideren in #2297
- fix: Rollback one of the TryAdd introduced through #2299, VS Package is still on net472 by @Eideren in #2315
- fix: assembly load failure when building Stride based project on clean machine by @azeno in #2308
- fix: .NET 6 reference missed by @Doprez in #2330
- fix: assembly load failure when building Stride based project on clean machine (2. attempt) by @azeno in #2319
- feat: Adjust freeimage to all platforms by @Jklawreszuk in #2303
📄 Docs
- fix: Xml Comments - Update 4 by @VaclavElias in #2170
- fix: Update README.md by @Jklawreszuk in #2188
- fix: opentk link by @Doprez in #2248
- GitHub docs improvements by @VaclavElias in #2254
- README.md updates by @VaclavElias in #2264
- docs: [Docs] Simplify PR template by @Eideren in #2276
🛠️ GameStudio
- fix: Repair Projectwatcher on Projects referencing each other by @IXLLEGACYIXL in #2288
- fix: Prevents a null IMemberNode to update by @YerkoAndrei in #2307
- style: Set initial visibility for ModelComponent gizmos off by @Eideren in #2321
🎨 Graphics
- fix: #2214 Vulkan uses gl_InstanceIndex and gl_VertexIndex instead of gl_InstanceId and gl_VertexId as the latter are not supported. by @johang88 in #2217
- fix: implicit truncation of vector type shader warning by @Basewq in #2242
- fix: Update Texture reload to prevent crash due to wrong type. by @Doprez in #2251
- test: Disable TestBlockingWindow, our Teamcity agent does not support it yet. by @Eideren in #2296
- feat: ModelComponent bounds gizmos by @kristian15959 in #2294
- fix: [Graphics] Fix light component API by @Eideren in #2215
- fix: fullscreen and game exit windowing crashes by @Doprez in #2274
- fix: Remove signed blend indices due to dropping OpenGL ES 2 support by @Basewq in #2323
⌨️ Input
- fix: Add possibility to add ScriptComponent before running game by @Jklawreszuk in #2230
- feat: Added IsPressed, IsDown, & IsReleased for virtual buttons to Inputmanager by @MechWarrior99 in #2258
➗ Math
⚙️ Physics
- feat: [Physics] Adding margins to convex hull colliders (Issue1577) by @dloe in #2257
- fix: Issue #1021 - PhysicsProcessor ParentScene may be initialized to null by @wrshield in #2262
🔄 Serialization
- test: Add Reload test to TestContentManager by @wrshield in #2272
- test: [Tests] Added new Test Case for ContentManager by @dloe in #2273
- refactor: Nullable and Modernization for Stride.Core.Serialization by @IXLLEGACYIXL in #2266
🖥️ UI
💪 Other Changes
- fix: "CopyLocal" Android Bug by @MeharDT in #2220
- feat: Enable to build native libs on Linux by @Jklawreszuk in #2112
- Revert "fix: Add possibility to add ScriptComponent before running game" by @Eideren in #2245
- Revert "Add ToOSPath() for msdfgen executable" to fix compilation error by @NicusorN5 in #2267
- Fix: Fixed a NullReferenceException if printing null text by @NicusorN5 in #2311
- fix: strdiag001 on file scoped classes by @IXLLEGACYIXL in #2309
- Revert "fix: assembly load failure when building Stride based project on clean machine" by @Eideren in #2317
- [Android] Fix and reimplement user input in EditText control by @Basewq in #2302
- feat: Adjust DirectXTex wrapper for all platforms by @Jklawreszuk in #2314
- Revert "feat: Adjust DirectXTex wrapper for all platforms" by @Eideren in #2337
- feat: Adjust DirectXTex to all platforms - second attempt by @Jklawreszuk in #2338
New Contributors
- @dloe made their first contribution in #2257
- @wrshield made their first contribution in #2272
- @soorMSWE made their first contribution in #2280
- @MechWarrior99 made their first contribution in #2258
- @kristian15959 made their first contribution in #2294
- @YerkoAndrei made their first contribution in #2307
Full Changelog: releases/4.2.0.2122...releases/4.2.0.2188
releases/4.2.0.2122
What's Changed
🎉 New Features
- [Input] Add haptic support to OpenVR and Oculus runtimes by @ComputerSmoke in #2169
🔧 Engineering
- [Dispatcher] improve api, reduce overhead, improve performances for items > 1k by @Eideren in #2083
- Enable to run Stride.Core.Tasks program on any desktop OS by @Jklawreszuk in #2042
- Remove binary DataMemberMode by @IXLLEGACYIXL in #2094
- Implement "Enable Metrics" setting by @NicusorN5 in #1816
- [Serialization] More useful throw when missing parameterless ctor by @Eideren in #2098
- Remove stylecop by @IXLLEGACYIXL in #2105
- fix: File GraphicsResourceMap.cs without references removed by @VaclavElias in #2181
📦 Assets
🔊 Audio
- [Audio] fix: Audio emitter multiple references to same asset bugfix by @ComputerSmoke in #2176
🔨 Build
- [Build] Fix misc warnings by @Eideren in #2063
- [Build] Restore rules on stride analysers by @Kryptos-FR in #2089
- Update dependencies by @Kryptos-FR in #2046
- [Build] Fix VSPackage build by @Kryptos-FR in #2102
- [Build] Require VC++ 2019 redist minimum by @Kryptos-FR in #2100
- [Tests] Fixes random test failures by @azeno in #2133
- Repair projectwatcher by @IXLLEGACYIXL in #2106
- [Assets] Prevent crash of the assets compiler when an assembly cannot be fully loaded. by @Kryptos-FR in #2144
- feat: Release.yml added for PR categorisation by @VaclavElias in #2137
📄 Docs
- docs: add dotlogix as a contributor for code by @allcontributors in #2146
- docs: add froce as a contributor for code by @allcontributors in #2147
- docs: add fydar as a contributor for code by @allcontributors in #2148
- docs: add MaximilianEmel as a contributor for code by @allcontributors in #2149
- docs: add Schossi as a contributor for code by @allcontributors in #2150
- docs: add ch3mbot as a contributor for code by @allcontributors in #2151
- Remove docs, has been moved to Stride docs repo by @Aggror in #2036
🛠️ GameStudio
- [Samples] Fix ResourceFolders reference in package file by @Kryptos-FR in #2109
- Make Stride.Core.Presentation cross-platform by @Kryptos-FR in #2082
- Rework asset editors dependencies by @Kryptos-FR in #2167
- Overwrite dialog fix by @timconner in #2183
- fix: [Presentation] Fix issue with binding quantum nodes when associated name is not found by @Kryptos-FR in #2195
🖌️ Graphics
- [OpenXR] Fixes crashes when no device is present by @azeno in #2121
- Added option to add a parent reference for SDL window by @Doprez in #2111
- [OpenXR] Adds a minimal API to request and control Passthrough by @azeno in #2141
⚙️ Physics
📚 Samples
- Update samples to Stride 4.2 by @Kryptos-FR in #2132
- feat: Update samples/template to top-level statements by @Jklawreszuk in #2187
New Contributors
- @ComputerSmoke made their first contribution in #2169
- @timconner made their first contribution in #2183
Full Changelog: releases/4.2.0.2067...releases/4.2.0.2122