- Edited
I am a huge rimworld fan (about 1500 hours in) so I was most interested in what the creator Tynan Sylvester had to say. He first started looking at it 5 years ago and found that it was almost ready for use in an indie game on the scale of Rimworld (his comments below in the spoiler). He really values C# and Godot erring away from trying to tackle advanced rendering features or other advanced features that look pretty but probably will be underutilized by the average godot user. I agree with his remarks although I strongly believe by now Godot could easily tackle the task of duplicating Rimworld.
Click to reveal Click to hide
Tynan here. Right on.
Allow me to ramble for a few moments.
To set the stage - I actually did a round of engine research 18 months ago. I looked pretty hard at SDL2 and OpenTK, making some small unfinished projects with each of them. But they really didn't satisfy. Tons of missing stuff, especially GUI-wise, in OpenTK. Both had C# support, but it didn't have the feeling of a first-class feature.
Unity works - but it's got some real problems. It's quite constricting; the engine is very opinionated (and its opinions are not well-thought-out) and it tries hard to not let you escape the way it wants to work. Also, the way they simply cut off my perpetual licenses from updates post version 2017 really left me with a bad taste. I don't want to buy a new copy every year for every developer; I don't want modders to be weirdly constrained by the lack of a proprietary editor. And while they're constantly adding crazy whiz-bang features that look great in demos (but which absolutely should never be used by 99% of real indie teams), their code is janky as hell. I don't want to be constantly dealing with weird Unity issues that they refuse to fix for years, or which pop in and out of existence over and over through multiple updates.
So I'm still looking for something that'll work.
My main concern with Godot at this point is that it seems to be trying to be all things to all people. It's trying to appeal to the "my first game" student market, via visual scripting and GDScript and so on. But it's also trying to hit AAA features like advanced rendering and a built-in particle engine.
This lack of decided focus manifests as IMO mis-spent effort on things that almost no serious indie should be using (advanced rendering features which look pretty in demo videos, visual scripting), while deprioritizing things that absolutely every indie should be using (C#).
From what I've read the C# support still quite rough. Good first-class C# support is a must. We need a language that's very productive, quite fast, bug-resistant (e.g. statically typed, no globals), mature, portable, has libraries, and handles very large codebases. Only C# fits.
GDScript looks nice for really really tiny games, but it's obviously never going to scale close to anything like RimWorld; its performance is way too low and the code isn't nearly safe enough. Most indies beyond the "my first game" level should not be using this.
C++ is good if you're making a hyper-optimized engine code. But productivity is really low for C++ since it's so unbelievably arcane. Very few indies should be touching C++ IMO.
C# covers the needs of 90% of indie work for serious projects:
For "my first game" level coders, learning C# is ideal; the language has great error messages, tons of documentation, and is very productive.
For mid-indie developers like me, C# is ideal because of the excellent balance of productivity, speed, libraries, and scalability.
For AAA developers, you need C++, but these people are irrelevant for Godot because they'll be writing their own engine or using something Unreal-tier anyway.
I don't think, at the indie level, that it's a good idea to be trying to compete with big companies in terms of graphics. So from my point of view all the whiz-band shader and particle features are NOPs at best. Making use of such features really requires a big team of artists; the Venn diagram of studios who might use Godot and studios with big artists is very close to zero.
I really hope the Godot team doesn't get sidetracked in working on advanced AAA rendering features, nor on "my first game"-level ease of use stuff.
This engine will blow up when small-but-professional indies start using the engine to make really popular games - Games on the tier of Factorio, Don't Starve, RimWorld, Hotline Miami, Stardew, Terraria.
I really want to do that (if indeed I am capable and lucky enough to succeed) but the engine needs to cover the bases to make that possible. Currently it's close but not quite there.
We don't need animations or particles or PBR or visual scripting or networking. We just need the fundamentals right. We need really solid C# support, with debugging and all, and we need the engine to be generally bug-free. I hope to use it one day!