Indie Tooling

Bevy 0.20 and Stride 4.4 landed a day apart. Here's what changed

Rust gets better path tracing and sprite materials. C# gets a rewritten shader compiler and proper Linux and macOS builds. What each means for a small team.

By

5 min read

Two release cards side by side with calendar tabs for 8 and 9 October. The Bevy 0.20 card shows a pixel-art character crossed by a beam of light; the Stride 4.4 card shows two .sdsl shader nodes wired into a SPIR-V node above three desktop windows labelled win, linux and mac.
Illustration: Indie Tooling

Two free, open-source engines shipped major releases this week. Bevy 0.20, the Rust engine, came out on 8 October. Stride 4.4, the C# engine, followed on 9 October. If you’re choosing an engine for your next project, or deciding whether to upgrade the one you’re on, here’s what changed in each, who each one suits, and what’s likely to break.

Bevy 0.20

The release notes thank 227 contributors for 817 pull requests. It lands about three and a half months after 0.19.

2D gets custom materials

For 2D developers, the headline is sprite materials. You can now write a custom shader for an ordinary sprite without converting it into a mesh first. A new ExtendedMaterial2d lets you add to an existing 2D material instead of rewriting it, something 3D users already had. Sprites also now render through the same backend as 3D, which the Bevy team says is faster in many cases.

Bevy's new sprite_material example: a custom shader dissolving an ordinary sprite. Video: Bevy, MIT licence

Rendering

Solari, Bevy’s real-time path tracer, produces cleaner images and now runs on macOS through Metal, though without a built-in denoiser there. DLSS support moves to DLSS-RR 4.5, which improves Solari’s denoising. When Bevy added DLSS in 0.17, it needed an NVIDIA RTX card, the Vulkan backend and an opt-in cargo feature, so plan on that hardware if you want it. There’s also initial mesh shader support for advanced users, though not on the web.

Editor groundwork, but no editor

A Bevy colour input widget open as a popup, with a colour wheel, RGB and HSL tabs, hue, saturation, lightness and alpha sliders, and a grid of recent colours.
One of the new Feathers widgets: a colour input with wheel, RGB and HSL modes. Image: Bevy, MIT licence

Bevy still has no official editor, and the release notes say so plainly: the new pieces are groundwork for one, not the editor itself. That groundwork includes more Feathers widgets (Feathers is Bevy’s editor-focused UI toolkit), unstyled tab widgets, contextual theming, and font-relative Val::Em and Val::Rem sizes. BSN, the Bevy Scene Notation added in 0.19 for describing entity hierarchies, gets tidier syntax and a Ready event that fires once a scene and its children have spawned.

Smaller wins

There’s a CAD-style PanOrbitCamera, texture compression to BCn or ASTC with automatic mipmaps, and .context() for adding detail to errors. Panics inside systems now become errors you can handle, and bulk despawning is up to about 1.7x faster in Bevy’s own benchmarks.

Stride 4.4

Stride’s 4.4 release is bigger in scope: about 3,200 commits since 4.3, which shipped in November 2025. GameDev.net summarised it as one of the engine’s largest updates in years.

A new shader compiler

The SDSL shader compiler has been rewritten around SPIR-V. Each .sdsl file is parsed once into an intermediate module, effects combine those modules, and the result becomes standard SPIR-V, translated for Direct3D and Metal through SPIRV-Cross. Changing shader variations no longer means re-parsing text. The catch is that custom .sdsl shaders may need small fixes.

Diagram: three .sdsl files each compile once to SPIR-S bytecode, an .sdfx file mixes and composes them into standard SPIR-V, which Vulkan uses directly and SPIRV-Cross converts for Direct3D and Metal.
How Stride 4.4 compiles shaders: each .sdsl file is parsed once, then mixed into standard SPIR-V for every graphics API. Image: Stride, MIT licence

Graphics backends

Vulkan moves to 1.3, which the team warns may rule out older GPUs and outdated drivers. Direct3D 12 now requires Enhanced Barriers. OpenGL and OpenGL ES are gone, 32-bit support is gone, and the team is considering dropping Direct3D 11 in the next major release. Under the hood, SharpDX has been replaced by Silk.NET.

Linux and macOS

Building games on Linux and macOS now works the same way as on Windows. The Game Studio editor still runs on Linux only through Wine or Proton, which the announcement admits isn’t perfect. The editor is moving from WPF to Avalonia so it can run natively later.

Stride Game Studio 4.4 on a Linux desktop, showing a scene with a sphere, skybox and directional light, the asset view, solution explorer and property grid.
Game Studio 4.4 running on Linux through Proton. Image: Stride, MIT licence

Tooling

A new stride command-line tool installs the SDK, creates projects and opens the editor. An auto-generated Assets class gives you typed asset references, so a missing asset is a compile error rather than a runtime surprise. Packages can namespace their assets, and you can override engine or package assets with your own. The team also describes the engine as friendlier to NativeAOT and trimming, for smaller, faster-starting builds.

Breaking changes

The settings API has been renamed, ContentManager.Load now always throws when an asset is missing, and Game Studio no longer collects telemetry. Crash reports go to Sentry, but only when you choose to send them.

Side by side

Bevy 0.20 Stride 4.4
Language Rust C# (.NET 10)
Licence MIT or Apache 2.0 MIT
Editor None yet, code first Game Studio (Windows; Linux via Wine)
2D Sprites, now with custom materials Sprite editor, atlases, new 2D platformer template
Rendering headline Solari path tracing, DLSS-RR Rewritten SPIR-V shader compiler
Platforms Windows, macOS, Linux, web, iOS, Android Windows, Linux and macOS desktop builds
Release gap 3 to 5 months About 11 months
Upgrade pain Breaking changes every release Shaders, settings API, OpenGL targets

Who should pick which

Pick Bevy if you already write Rust, or want to. It’s code first: you build scenes in Rust and, increasingly, in BSN, and its entity component system shapes everything you write. It suits 2D and stylised projects, especially now that sprites can carry custom shaders, and it targets the web and mobile as well as desktop. The price is churn. Each release breaks things, and with no editor, level design means building your own tools or using community ones.

Pick Stride if you know C#, and especially if you’re coming from Unity. You get a visual editor, a familiar language and a scene workflow that will feel close to home. It’s strongest when you ship to Windows first: the editor is Windows-native, and the Linux story is improving but unfinished. Releases are less frequent, so upgrades are rarer but bigger, as 4.4 shows.

Before you upgrade

For Bevy:

  • Read the 0.19 to 0.20 migration guide before you change the version number.
  • Check that every third-party plugin you rely on has a 0.20 release. That’s usually what holds an upgrade back.
  • If you use DLSS, install the newest DLSS SDK first, or the build will fail.

For Stride:

  • Test every custom .sdsl shader and compare the output with your current build.
  • Check that your target GPUs and drivers support Vulkan 1.3, and that Direct3D 12 machines support Enhanced Barriers.
  • Move off any OpenGL or 32-bit targets.
  • Search your code for the old settings API and for ContentManager.Load calls that expect null.

Sources

Topicsbevystriderustc#open-source enginesengine upgrades

Filed under Game Engine Guides for Godot, Unity & Unreal.

All Engines