- Unity seems promising but they have a weird version of mono running things and not so recent C# features available. Might be a non issue.
- Godot seems more promising for my use case but I feel like they want you to use GDScript. I don't want to use GDScript while there is a perfectly capable C# engine there. Is .NET second class in Godot?
- MonoGame was basically abandoned for a long time. I wonder if it got any better. That might be a little too much "code first" though.
Stride.. I just heard it the first time ever. Its a shame. And apparently it is a proven engine especially in VR space. Jumped on it, unfortunately no macOS support available so can't dig in right now.
With Godot 4, the big difference between Godot and Godot .NET is that the version with NET support does not build to web and mobile support is 'experimental' ²). Also, they are two completely separate downloads and editor binaries, which makes switching languages decidedly non-trivial.
For a 2D game, if you can live without building to web, I'd pick Godot. Otherwise, I'd pick Unity.
¹) https://docs.unity3d.com/6000.2/Documentation/Manual/csharp-...
²) https://docs.godotengine.org/en/latest/tutorials/scripting/c...
The lack of modern c# features and hijacking of things like null coalescing operators are annoying but it's not something that ruins the overall experience for me. The code is like 20% of the puzzle. How it all comes together in the scene is way more important.
I would strongly suggest that for quick code-first prototypes. The boiler-plate of "load a texture and render to screen" is quite minimal - you could perhaps make a small library for yourself?
It also has no opinions about how you structure your game data. This means you can represent things like a Flappy Bird clone as just a `Vector2`, rather than having to bash a graph of entities in the shape you want.
This is a seriously impressive physics engine. Their design is difficult to integrate with but the performance is insane.