December 30, 2019Shade, Godot : angst Bugs ... So many bugs ...
Note : since writing this post, I have learned quite a bit about GUI nodes. So,
maybe check out "GUI stuff"
to actually learn something practical. And please, take what I wrote below with a rock of salt ... =)
Note : Godot 3.1.1.
I have come to really enjoy working with the Godot Engine, both for 2d and 3d games.
The editor looks clean, GDScript is a pleasure to use, and having a 2d/3d scene editor window
But ever so often I get terribly frustrated. Especially when doing 3d stuff.
Things sort-a-kind-a work. And there's bugs ... So many bugs ...
And I find that scary.
Not the fact that there are bugs (all software in development has them), but the
fact that I can do nothing to fix them (I don't speak c++). I get sweaty palms just thinking about
releasing a commercial game with an engine bug (but I'm sure that's just me).
Oops. There we go again : sweaty palms !
Brain : "Quickly ! Let's switch to 'something safer' like a mature engine
(Unity, Unreal), or 'something Java'."
Sigh. I really should stop going back and forth between engines and libraries, and doubting myself
all the time. It takes so much energy, and it is just not productive.
So, Godot it is.
(And I'll keep my fingers crossed.)
OK. Let's write some of my frustrations down.
Here's my list with Godot 3d bugs (and yes, they have already been added to
the Issues List on Github) :
'Mouse' type bugs
Dragging the mouse off a Control before releasing it, registers as a click on the Control (like a screen button).
This bug is in the category 'annoying'.
Imagine seeing some sort of danger only at the very last minute. Your mouse is already on the
'move forward' screen button. You drag the mouse off the button and let go of the mouse with a sigh of
Oops. Sorry. You clicked the button. You're dead !
If you have 2 viewports, one 2d and one 3d, then the 3d viewport will not register
mouse over/out events. This bug is 'game-breaking'. Just imagine wandering around in a
big castle (or something) and having no idea what you can interact with.
Controls are supposed to stop mouse events from going to whatever is underneath.
They do not. Not even when the mouse filter is set to 'stop'. This bug is on the
boundary between the 2 categories. Maybe I'll find a workaround, but if not :
every action you perform in an inventory for example, is also performed in the
game world. Brrr.
Note : The above bugs are marked 'not-critical' in the Issues list, but they are a big problem
for the type of games I like to make (point&click).
'GUI layout with Controls' type bugs
Parent Controls should define the layout of the children. Often times it's the
other way around. Adding a child Control messes up the position and size of the parent.
I can't count the number of times I have had to try and fix my simple (placeholder) GUI.
Some Controls do not seem to be part of the 'normal flow' (if you've done some
CSS, you will know what I'm talking about).
Sometimes Controls seem to do one thing in the editor, and quite some other thing
in the game.
Argh ! Painful.
A ScrollContainer with Grid : the scroll element works fine, but visually, it should be
closer to the grid rather than right on the edge of the screen.
You -can- make it look better, but as I stated above : it is a very fiddly business.
The Godot Engine has an implementation of 'tabs', but it is very limited. You
can only use simple text in the tab btns, no icons.
You -can- roll your own ... but then ... what's the point of having Tab elements
in the engine ?
This is more of a regret : I miss not being able to look at library source code
from within the editor.
Note : I'm sure many of these things will be fixed and improved upon in future releases of the engine.
Nothing but respect for all 'Engine Coders' out there ...