← Back to context

Comment by eudamoniac

3 days ago

Yes it is a big problem. StS devs cannot write normal C# code, you have to really work around the C# integration to avoid lag spikes. See my other comment GitHub thread. There's also things like this https://github.com/godotengine/godot/issues/86926 and that the underlying types aren't compatible (Godot collections) that make it clear they aren't serious with the C# support.

The other huge problem is the terrible external editor support, it does not work well at all. This means your vim, jetbrains, whatever muscle memory from a lifetime of professional dev work becomes useless, and you have to use a gimped text editor worse than notepad++. You can use an external editor, but then lots of things don't work very well, scenes get randomly corrupted, hot reloading doesn't work, etc. It's many issues like this that prove Godot's only priority is attracting and entertaining people who have never written code before, instead of making an engine viable for shipping games.

I gave Godot a real chance for years, but at the end of the day it's a toy. There's a good reason that there are barely any games using it, and they're all extremely technically simple; surprisingly, that reason is not an unsophisticated underlying engine, but rather a million DX papercuts that a good ambitious developer would just never accept.

> StS devs cannot write normal C# code, you have to really work around the C# integration to avoid lag spikes

Do you have any sources for this? A while ago I had a small chat with the StS devs on the Chickensoft Discord server and they didn't mention this. Instead they were overall just very positive about their Godot + C# experience.

> The other huge problem is the terrible external editor support

Have your recently tried JetBrains Rider for Godot + C# development? Lately, they've been quite actively improving the Godot integration https://github.com/JetBrains/godot-support and also showing some significant commitment https://godotengine.org/article/jetbrains-joins-dev-fund-sup... and tbh I can't share your experiences since I'm using Rider. Even hot reload works really well without losing the running game state.

> There's a good reason that there are barely any games using it, and they're all extremely technically simple

Well, as of now when checking https://steamdb.info/tech/Engine/Godot/ there are 6,109 games made with Godot engine on Steam with 2,568 of them having been released in that last 12 months so there is a strong growth going on right now. But I agree that most of those look technically simpler.

> but rather a million DX papercuts that a good ambitious developer would just never accept

I think you're generalizing a bit too much here. You're implying that the StS devs or the devs of Road to Vostok are not ambitious?

I don't know man, there's more nuance to this. Don't get me wrong, I'm aware that Godot + C# still has a bunch of shortcomings and there's still some catch up to do but overall it's imo already quite pleasant to use.

I use visual studio pro and when I hit F5, my game runs in the godot ide. I can pipe the log output back to visual studio. So, I think the integration is quite good, imo. ( sorry for formatting on phone )

You can make up some 'critical defects' for every tool and engine in the universe. So what game engine is perfect for an 'ambitious developer' to use?

  • Unity, Unreal, Monogame are a few engines via which ambitious games are regularly shipped. Godot is not among them because Godot has very few good games in it, with a terrible use:release ratio, which is in turn because it is primarily a game dev tutorial platform.

    I'm not sure if there is any example of a studio or person making their second game in Godot when their first was not, and this rare occurrence seems to me a product of the "wow this shit is just not a serious engine compared to what I was using" effect.

    Games are very complicated to make and take a very long time. Any unneeded friction will compound into games not getting shipped at all most of the time. Godot is uniquely frictional outside the basic happy path.