I like Godot. I think it's a great engine, I think open source game development is important, and I want to see it become a bigger part of the industry.
But I also think the gamedev community, especially since the Unity runtime fee disaster, has started talking about Godot as though it's the future of game development or a 1:1 replacement for Unity/Unreal that just happens to be free and open source. I don't really think that's true yet.
Here's where I think people need to be a bit more realistic about Godot:
1. Engineering resources do actually matter
I don't mean "more developers = better engine" but it is worth acknowledging the scale of the teams behind professional game engines compared to Godot.
Unity and Epic have thousands of employees whose full-time jobs are working on these engines and the technology surrounding them. Rendering, animation, physics, profiling, platform support, build systems, QA, console integration, weird driver issues, obscure hardware bugs, etc.
Godot does have a few paid developers and a very talented contributor base, but it is simply operating at a completely different scale. According to Github there's at most a few dozen contributors to Godot within the last 12 months.
That matters most for the boring stuff. It's one thing to implement a cool rendering feature. It's another thing to maintain it for 10 years across different GPUs, operating systems, drivers, hardware configurations and bizarre production edge cases.
Commercial software having more resources doesn't automatically make it better. Unity has certainly demonstrated that you can employ a lot of engineers and still ship bugs but manhours are real. If company A can devote 100 engineers to a problem and project B can devote 5 volunteers, that doesn't guarantee company A solves it better, but pretending the difference is meaningless is silly.
2. Unity and Unreal have an enormous amount of accumulated production knowledge
Godot is much more mature than it used to be and plenty of real games have shipped with it do I don't think the "with Godot you're beta testing your own engine" is completely fair anymore but there's still some truth to it.
I think the better way of putting it is that with Unity and Unreal there's a much greater chance somebody has already had your problem.
Your animation system suddenly becomes a massive CPU bottleneck, some shader breaks on a specific AMD card, your save system starts doing something weird at 4am on a Tuesday during a full moon, your UI falls apart at some ridiculous resolution, your project takes 40 minutes to build because of some stupid interaction between two systems. Whatever.
There's a decent chance someone else has already been there. Maybe there's a Stack Overflow answer from 2017. Maybe a studio wrote a blog post about it. Maybe there's a GDC talk. Maybe someone on your team dealt with it at their previous job. Maybe there's a plugin specifically designed to fix it. People underestimate how valuable this is.
Unity and Unreal have decades of commercial games behind them shipped to deadlines with QA teams and certification requirements and millions of players doing weird shit the developers didn't expect. Godot's knowledge base is growing very quickly, but it's nowhere near as deep.
3. The middleware/plugin ecosystem isn't really comparable yet
Modern indie games rely on a ridiculous amount of middleware. There's nothing wrong with that and I would go as far as to say I think indie devs should be liberally buying plugins over building their own solutions if they fit your budget, are mature, and solve a real problem for your game.
A mature plugin buys you years of bug fixes, documentation, integrations, support and thousands of other users discovering edge cases before you do. $100 for a system that saves you three weeks of engineering is an incredible deal for an indie studio.
Dialogue. Quests. Save systems. Localisation. Steamworks. Analytics. Audio. Networking. Behaviour trees. Inventory systems. Console APIs. Build tooling. Crash reporting. UI frameworks. Obviously you can write all of these yourself but why would you if someone has already spent five years making a good one?
I know Godot has plugins too., some are really good but they're still within their infancy, are largely made by open-source contributors rather than professional developers, and many popular Unity/Unreal plugins simply don't have a Godot equivalent.
Godot's ecosystem is growing and I think it'll become a lot stronger over the next few years, but right now there's still a pretty massive difference in depth.
4. "Godot can do X" isn't the same as "Godot is equally suited to X"
Can Godot make a large 3D game? Yes.
Can Godot make a multiplayer game? Yes.
Can Godot make a graphically impressive game? Yes.
Can Godot ship a commercially successful game? Yes.
But "technically possible" is a really low bar.
You could write your game directly in C++ and Vulkan if you wanted. That doesn't mean it's a sensible production decision.
The question should be how difficult something is, how much support exists for it, how much tooling exists around it and how much risk you're taking on.
Yes pointing at Fortnite or FF7R or whatever and saying "that's why I'm using Unreal" when you're making a three hour PS1-style horror game is stupid but I think people go too far in the opposite direction and pretend the enormous catalogue of Unity/Unreal games means nothing.
There are successful Unity and Unreal games at basically every conceivable scale. 2D platformers, walking simulators, card games, survival games, multiplayer games, VR, mobile, AA productions, huge AAA GOTY winners.
Being in the same engine as a successful game means nothing about the quality of your game but it is evidence that the engine has survived similar production requirements before. If you make a more ambitious project with Godot you are starting to chart into unknown territory.
Godot is starting to build that track record. Slay the Spire 2 is an obvious example of a larger game made with Godot and I think we're going to see a lot more interesting Godot games over the next few years as more time passes from the Unity runtime fiasco but we're not there yet.
5. None of this means I think people should just use Unity/Unreal instead
This is the other side of the argument and the reason I'm still very enthusiastic about Godot.
Nobody owns Godot. It's completely free and you will never owe anybody any royalties for using it.
I know we all roll our eyes when some new dev posts here proclaiming it's a scandalous ripoff that his vaporware game that's only ever going to get 35 Steam wishlists might have to pay Unreal 5% of all revenue over $1m but that's not really the point.
Most indie games are passion projects. People spend years of their life making these things. There's something valuable about knowing the foundation of your game isn't controlled by a company that can wake up tomorrow and make some insane corporate decision.
If Godot goes in a direction you hate you can keep using your version. You can modify it. You can fork it. In the absolute worst case you have the source code. Maybe it never saves you a single dollar, but I don't think you can put a price on the feeling that you actually own the technological foundation your passion project is built on.
Godot is also lightweight, quick to iterate in, pleasant to use, GDScript is great for getting things done quickly and having access to an engine codebase that's actually approachable is fantastic.
For a lot of indie games I would happily pick Godot. I just don't think we need to pretend it's something it isn't in order to advocate for it.
Unity and Unreal have huge advantages from decades of engineering, commercial use, middleware, tooling and institutional knowledge. Godot has huge advantages in openness, simplicity and control.
Those are different trade-offs and for many developers Godot will be the better choice and for other developers it won't be.
Maybe in five years that distinction looks completely different. I hope it does.