Stride 4.2: My personal experience

Introduction

Stride is an open-source cross-platform C# game engine designed for both 2D and 3D game development. They support both desktop and VR deployments. And best of all, it's free. During one of my winter breaks, I thought I'd give it a shot as an alternative to Unity or Unreal. This post outlines my experience with using Stride version 4.2 and details why I would never use it for anything but small games due to the sheer number of bugs and errors in it. Hopefully it helps anyone who is thinking about using the engine avoid making the same mistake I did using it.

I thought an interesting way to evaluate this would be to address each section on the home page or features page and see if the engine lives up to what it says. In order, the ones I'm covering will be:

  1. The Game Studio
  2. Advanced Graphics
  3. Engine Reliability
  4. Documentation

To make this as fair as I can, I'm creating a simple 3rd person platforming game with one level. I'm using no add-ons, no weird bleeding edge features that may be unstable: this is just a very conventional game that one should be able to create in any game engine or library. Without further ado, let's begin!

1) The Game Studio

Advertised features for the Game Studio / Editor

My initial experience with the game studio / editor was fairly positive. It was easy to create a project, build said project, and load/tweak the sample projects. There are a good amount of quality of life improvements implemented in the engine meaning that designing a level in Stride isn't nearly as painful as designing one in less mature engines.

However, this experience goes downhill fast the moment you do anything past the sample projects. After only a couple hours actually working with the editor for your game, you'll quickly realize just how fragile the engine is. Here's a few notable examples I've encountered:

  • Editing Scripts: Literally the act of editing a script has about a 20% chance of crashing your engine when you have more than 3 scripts in your project. The engine seems to try to access the script classes while rebuilding them and throws a null reference error.
  • Changing anything to do with Shaders: Changing anything related to shaders and materials in the Editor has a high chance of crashing the editor outright. To add insult to injury, this is difficult to debug since since the crash reporter hilariously crashes too.
  • Navigation: This entire feature is completely unusable. The option doesn't exist in Game Settings. The navigation mesh doesn't let you add new groups. For an advertised feature, it's hard to believe this was even tested.
  • UI Editing: Crashing during UI editing has gotten so bad that I ended up rolling with a minimal UI for my game. You have to be super, super careful which order you add UI elements and what options you change. Others seem to have similar problems.
90% of your time will be spent on this screen versus any other screen in Stride's Editor.

Verdict: Not suitable for any major game project. Seemingly stable at first when working through the sample projects, but quickly falls apart when you start actually making a game. Then it's crash after crash.

2) The Advanced Graphics

Advertised features for the Advanced Graphics

When all Stride's components are working as they should, the game engine looks amazing. I personally think it places somewhere between the usual Unity renderer and Unreal.

The key phrase here is "working as they should". In reality, a lot of the advanced graphical settings simply don't work. Like before, let's dive into a few notable examples:

  • Normal maps will frequently be in a broken state. Apparently it has something to do with unsigned vs signed textures, even though the textures I was loading into Stride were already in the format Stride expects. After some trial and error, I found an option that seemed to fix it (See figure below).
  • Light Probes flat out do not work. If you try to compute the light probes, they either crash the editor or remain black, especially if you increase the number of bounces. There's even an outstanding issue about it here. Unlike me though, they seem to at least be able to compute one bounce.
  • Stride Shading Language: Built on top of HSLS, it's simply utter agony to use due to both lack of documentation and Stride's frequent crashing. It was hard to tell if my logic was broken, or Stride was just that buggy. I ended up avoiding their custom shading language whenever I could.
Disabling "Scale & Offset" as well as "Reconstruct Z" seems to fix the weird point light cut-off issue

Verdict: Despite not being able to utilize some of the graphical features Stride advertises, it still looks pretty good... when it works. That said, if having a reliable and consistent graphical pipeline is important to you, you probably shouldn't use Stride.

3) The Engine Reliability

Stride advertises a reliable engine that reportedly frees you from technical concerns. If you've read this far already (thank you), then I don't even need to say how much of a joke this is. Instead, here's a montage demonstrating Stride's "reliability".

Open bugs reported on Stride's GitHub
Example 1 of Stride Crashing from simply trying to save a script file.
Example 2 of Stride Crashing from simply clicking on the "compute" light probes button.
Example 3 of Stride Crashing from de-selecting "cast shadows" on the model.

Verdict: Earlier versions of Unity were pretty notorious for constant bugs and crashes. Stride somehow takes an already low bar and drives it straight into the ground. Stride is easily one of the least reliable engines I've ever used.

4) Documentation

The word that best summarizes Stride's documentation is inconsistent.

  • The Introduction videos and tutorials are surprisingly good. Well done to the folks that put those together. Their backs must be sore from carrying the rest of the team.
  • Areas like the rendering pipeline and physics are completely lackluster. If you have a question about any technical details of Stride's architecture, chances are you won't find it anywhere. You could read the source code, but chances are whatever feature you have a question on is in some weird in-between state.
  • Like a lot of modern projects, they encourage you to join Discord, but I don't believe (at least at a quick glance) that there's any feedback loop from Discord back into the site documentation.

Verdict: The introduction and tutorial videos are well done. Everything past that is sparse and awful.

Conclusion

In general, I think Stride is in this weird state where if you deviate even the smallest bit from the beaten path, you'll be thoroughly punished with errors, crashes, and features that have probably never seen QA in their life. Do you remember those games you play where they keep introducing DLC and features but never actually fix their core bugs? This is pretty much that, but it's even worse since it's game engine.