From the perspective of a hobby unity dev who's making a jam game in Godot to feel it out, Godot has a lot of rough edges, weird choices, and stuff that's just missing.
Stuff that I've encountered so far:
- A very annoying issue where the editor will lock up after my Linux laptop wakes up from sleep. I've lost work because I've closed the laptop without remembering to close Godot first.
- Performance issues with large assets or too many assets. A single pixel art asset pack ([LimeZu's Modern Interiors](https://limezu.itch.io/moderninteriors)) brought Godot to its knees until I pruned it. The large tilemaps in there will also slow the tilemap editor to a crawl.
- I've been struggling with getting the dynamic tilemap rules to behave as expected. YMMV
- I'm not a fan of Godot's single-window UI approach, especially when it comes to scripting. You can futz with editor settings to make this slightly better, though.
- You can't mix 2d and 3d stuff like you can in Unity, and the 3d side of things is way rougher than 2d.
- They're still working out what direction to take with an Asset store.
- The shift from Unity's GameObject>Component model to Godot's single script per node approach has been an awkward adjustment for me. I keep replicating the old model by making prefab nodes that are basically just components.
- I miss Unity's play mode scene inspector. Godot is halfway there. You can poke around in the scene tree, but you don't see that update in the editor.
- The collision system isn't as straightforward as Unity
- It'd be nice if we had a bit of a slot system like we have with Vue Components for when we nest things under packed scenes.
The good stuff:
- There's only one type of signal/callback instead of the three different systems Unity can use. The signaling system is well-implemented instead of feeling bolted on.
- Godot doesn't differentiate between a Scene and a Prefab like Unity does. It avoids the don't destroy on load juggling you have to do and gives you a bit more control
- Some neat shortcuts for boilerplate stuff are built into the editor. For example, if you're adding SFX, you often want to provide several similar SFX clips to provide variety. When you set the SFX in the editor, you can assign a Randomizer to it, which takes a list of SFX and plays them randomly based on the weights and mode you set. You can even set pitch and volume adjustments to add even more variety.
- The fire-and-forget tween system is very convenient.
A lot of people compare Godot to Blender. It's not at the level that Blender is at now, but it does give me Blender pre-2.5 vibes- A solid base for enthusiasts that can be honed into polished software for the masses. I hope that Godot glows up the same way.
As relevant to Godot, most of my work is with kids (as relevant here on both ends -- teaching kids to code, and making educational activities). I haven't used either Godot or Unity much, and was trying to decide. For a variety of reasons, open-source is a huge win*, so I was leaning that way.
I don't expect much 3d or to be doing too many things which are overly fancy. Much more on the "weekend hack" or "kids afterschool activity" side of things, and much less on the serious game development side.
From your list, it doesn't sound like there are (m)any showstoppers to just picking Godot.
* (1) Avoids licensing issues installing / uninstalling on classrooms full of computers (2) Advanced kids can learn more, since they can look under the hood (3) Guaranteed long-term support (kids activities are sometimes not updated for a while) (4) Automatic FERPA / COPPA compliance and proper handling of student data. ...and the list goes on for quite a while longer.
From my own adventures into Godot, for that use case, I'd recommend using Godot very much.
If you know some basics, you can whip up a simple platformer, top down game, old-school top down shooter and such very, very quickly. A decent tutorial can have you at at something functional on the screen in half an hour or so. And then you can start playing around to make it cooler.
All while teaching kids some basics of programming.
Stuff that I've encountered so far:
- A very annoying issue where the editor will lock up after my Linux laptop wakes up from sleep. I've lost work because I've closed the laptop without remembering to close Godot first.
- Performance issues with large assets or too many assets. A single pixel art asset pack ([LimeZu's Modern Interiors](https://limezu.itch.io/moderninteriors)) brought Godot to its knees until I pruned it. The large tilemaps in there will also slow the tilemap editor to a crawl.
- I've been struggling with getting the dynamic tilemap rules to behave as expected. YMMV
- I'm not a fan of Godot's single-window UI approach, especially when it comes to scripting. You can futz with editor settings to make this slightly better, though.
- You can't mix 2d and 3d stuff like you can in Unity, and the 3d side of things is way rougher than 2d.
- They're still working out what direction to take with an Asset store.
- The shift from Unity's GameObject>Component model to Godot's single script per node approach has been an awkward adjustment for me. I keep replicating the old model by making prefab nodes that are basically just components.
- I miss Unity's play mode scene inspector. Godot is halfway there. You can poke around in the scene tree, but you don't see that update in the editor.
- The collision system isn't as straightforward as Unity
- It'd be nice if we had a bit of a slot system like we have with Vue Components for when we nest things under packed scenes.
The good stuff:
- There's only one type of signal/callback instead of the three different systems Unity can use. The signaling system is well-implemented instead of feeling bolted on.
- Godot doesn't differentiate between a Scene and a Prefab like Unity does. It avoids the don't destroy on load juggling you have to do and gives you a bit more control
- Some neat shortcuts for boilerplate stuff are built into the editor. For example, if you're adding SFX, you often want to provide several similar SFX clips to provide variety. When you set the SFX in the editor, you can assign a Randomizer to it, which takes a list of SFX and plays them randomly based on the weights and mode you set. You can even set pitch and volume adjustments to add even more variety.
- The fire-and-forget tween system is very convenient.
A lot of people compare Godot to Blender. It's not at the level that Blender is at now, but it does give me Blender pre-2.5 vibes- A solid base for enthusiasts that can be honed into polished software for the masses. I hope that Godot glows up the same way.