This is a seriously impressive physics engine. Their design is difficult to integrate with but the performance is insane.
What makes it difficult to integrate?
The direct hooking into the narrow phase solver is the most performant way to go about it, but it does present several issues in state management. I did the same thing in Farseer Physics Engine, but also added high level events on bodies[1]. The extra abstraction makes it easier to work with, but due to the nature of delegates in C#, it was also quite a bit slower.
They could do with creating defaults for the narrow phase handler, buffer pool, threat dispatcher, etc. for devs who don't need extreme performance and just want a simple simulation.
[1] https://github.com/Genbox/VelcroPhysics/blob/ddf8292da6bc59e...
eknkc•2mo ago
- 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.
danielbarla•2mo ago
glimshe•2mo ago
greener_grass•2mo ago
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.
bob1029•2mo ago
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.
johnfn•2mo ago
rednab•2mo ago
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...
lionkor•2mo ago
No, it does not. The C# version supports both GDscript and C#, so just download that if you ever plan to use C#.
DoctorOW•2mo ago
debugnik•2mo ago
https://godotengine.org/donate/
As for advocacy, Microsoft's "Game development with .NET" page points first and foremost to Unity and their outdated, proprietary .NET toolchain; only by digging you get MonoGame/Godot/Stride listed. And if you dig for bindings, they'll first point you to a couple of open source DirectX bindings unmaintained for over 7 years.
I'd say they stopped caring about .NET specifically for game dev as soon as they abandoned XNA. Now they're doing the bare minimum that nets them Visual Studio licenses, which I'm not sure they care much about anymore after Copilot.
DoctorOW•2mo ago
> During the past year (2020), Ignacio Etcheverry worked on significantly improving C# support and its integration in Godot, adding support for Android, HTML5 and iOS, as well as popular third party IDEs. This was financed thanks to a generous donation from Microsoft.
https://godotengine.org/article/help-us-reach-next-funding-g...
debugnik•2mo ago
kfuse•2mo ago
pjmlp•2mo ago
FNA has done some experiments going beyond XNA 4 API design, however for the type of 2D games XNA was designed for, there is little else to add anyway.
jslakro•2mo ago
PoorRustDev•2mo ago