Logo 3.5Cats_AndHalfAFish


Adventures with Godot 3d.

December 30, 2019 Shade, 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 is priceless.

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 relief.
    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.
    The shadows of Sergoth.
    "The shadows of Sergoth" - Double Sided Games.
  • 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.
    mouse filter

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.
    parent control
  • 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.
    different layout

Argh ! Painful.

'Almost' category

  • 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.
    scroll element.
  • 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 ?
    tab elements.
  • 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 ...

And now ... back to work !