Given how many people recommended Godot when I started gathering my list, I was actually pretty excited to try it out. I didn’t think it would be as good as claimed, but I figured it would make it into my top 3 and get some use as a prototyping tool, at the very least.
…How wrong I was. As it turns out, Godot is a hot mess.
I’m not bothering with a video this time, there’s nothing interesting to see. I got the very basics in place (bouncing a ball around, breaking bricks) and immediately dropped the project, because I didn’t want to use this engine any more than I had to. Instead of talking about the game itself, let’s talk about why I hate Godot so much now.
First off, let’s set the tone with a little anecdote. Here’s my first interaction with Godot, step-by-step:
- Load an example project to see how everything works
- Open a scene and look around a little
- Open a script–wait, did that just replace my tab?
- Try to open the scene again. Nothing happens.
- Try to close the tab. The tab (and the script within) is still open, but the tab title changes to “[empty]”
If you use Godot, you already know what’s happening. But if you don’t, I’m sure you’re about as mystified as I was when this happened. As it turns out, Godot’s designers had a bright idea along the lines of:
“Hey, why don’t we force users to open scripts on top of their scenes even though we have tabs?”
For some reason, in addition to 2D and 3D level-editing views they just added a script editing view instead of opening documents in a new tab like any normal piece of software. Just for good measure, double-clicking a script will change the view but double-clicking a scene won’t change it back. Like many of Godot’s failings, it’s so obviously wrong that it almost feels like a deliberate joke.
I should also take a moment to point out that I’m a Linux user and casual FOSS advocate. I know that most open-source software isn’t the pinnacle of UX, since I use it all the time. Even knowing this, Godot feels like it’s on a totally different level somehow. Almost every interaction is slowed or complicated for no reason.
Here’s another example: Since we’ve established that you can technically open multiple files in the same tab, how do you suppose you save them? As it turns out, Godot has 2 save shortcuts, Ctrl+S and Ctrl+Alt+S. Normally, Ctrl+S will save the content of your tab. However, it’s bound to save scene so if you don’t have a scene open under your script you have to press Ctrl+Alt+S for save script. That’s right, they fucked up the most basic action of saving your files.
Of course, that’s a bit of a moot point since there is autosave. Unfortunately, autosave always saves open files, even if they’re not modified! This means that if you use an external editor, every time you launch the game your editor will detect a file change and prompt you to reload. Nice. The classic loop of “make change, run, go back and adjust” now has an extra step, courtesy of Godot! Oh, but don’t worry. In addition to always re-autosaving your files, Godot will also ask for confirmation every time you try to close the editor. Yes, even when nothing is modified. And yes, it also autosaves when you do that, making the entire confirmation pointless.
But you know what? If that was the end of it, I might be able to grit my teeth and push on. So next let’s talk about the API documentation. Surely, a team of programmers (because I refuse to believe that there are any “creatives” involved in this engine) would make good docs right?
So the first thing I noticed when I opened the Godot docs was that the API docs were nowhere to be seen. The sidebar is filled with tutorials, but to get to the real API you have to scroll to the very bottom of the list. Or hit Page Down twice. Yes, it’s that far down. You could also use the search bar, of course. From my experience, unless you put in the exact name of a type you’ll have to scroll deep into the results to reach the relevant API page. Depending on what you search, you might also get the internal engine API, because they put both APIs in the same space for some reason. They also put ads in their documentation, but since Godot itself is free I have trouble blaming them for that.
Ok, so the workflow is bad and the API is annoying to search. But maybe the level editor is good? I’m not going to beat around the bush this time, it’s not. The biggest offender is the “Select Mode”, which does a lot more than select. Select Mode is ostensibly for selecting objects in your scene, but clicking and dragging moves them. Did your mouse move slightly when you clicked? Your object is now 1px out of alignment, sucker! I hope you noticed before you started doing any real work.
I think that’s enough bashing to get my point across, I could keep writing for hours (these past 6 days have given me an endless supply of material), but I think I’ll just block this past week out of my memory and move on to the next entry.