Live data from Hacker News

Making Advanced GUI Applications with Godot

medium.com

121–130 of 259 posts

Re: Making Advanced GUI Applications with Godot

#121
post #116
post #107

Earlier quoted context omitted.

I think mostly because having scads of clever conditionals all over the place greatly increases the risk of subtle and hard-to-reproduce bugs. From a 2007 Carmack email [1] : > The way we have traditionally measured performance and optimized our games encouraged a lot of conditional operations -- recognizing that a particular operation doesn't need to be done in some subset of the operating states, and skipping it. T…

Also, modern processors might run the code anyway and trow away the path not taken. Its better to optimize by generating a function that does not have branches.

I don't think that applies to conditional rendering, does it? You can't speculatively execute a graphics API command buffer submission and then dash after it shouting "wait, come back, I didn't mean it". Same with any kind of I/O, I'd think.

Re: Making Advanced GUI Applications with Godot

#122

Earlier quoted context omitted.

I think this is in comparison with 200M+ Electron executable, which is nowadays bundled with almost every 'native' app. Do you want to flash image to USB drive? There is Electron app (balenaEtcher) for that. Do you want to control your mouse/keyboard? There is Electron app for that (Logitech GHub), which also includes many Qt libraries. Do you want a terminal emulator? There is an Electron based app for that. ...

It's unfortunate that traditional desktop GUI frameworks are such an abysmal developer experience that everything from FOSS made by 1 person in their spare time to the cornerstone of multi-billion dollar companies choose to embed a web browser into their desktop app instead. Qt is the best I've seen, but it has the normal c++ FUD plus the infamous licensing FUD. And honestly, I'll have to admit that how react models…

> Qt is the best I've seen, but it has the normal c++ FUD

Not sure what you mean exactly; C++ is complex, but why the fear and doubt?

Also - Qt is based on veeery old C++ - a 22-year-old standard. The language has changed significantly since then, while Qt's fundamental design (in terms of programming) - not really, or not much. So, Qt is not "normal C++" these days.

Re: Making Advanced GUI Applications with Godot

#123
post #44

In part criticizing SwiftUI: > While you get a GUI inspector panel for your GUI components you are still forced to largely write the GUI in code. Well yes. The time and experience (at least for me) has shown that designing UIs anywhere outside the code will eventually bite you. Not to mention that from the very moment a second person joins your team you can practically throw your version control system out of the win…

> designing UIs anywhere outside the code will eventually bite you.

With Godot it is possible to design the UI in code--the editor itself uses that approach, e.g.: https://github.com/godotengine/godot/blob/27d12092821df77a61...

> you can practically throw your version control system out of the window for UI files.

While not "perfect" with VCS (there's a bit of automatic-generated file content churn at times), Godot stores its files (UI & other) as plain text (not even XML) with a very shallow hierarchy, e.g. here's a "scene" file from a project of mine: https://gitlab.com/RancidBacon/godot-foreigner-export-demo/-...

While I wouldn't really recommend two people working on one scene simultaneously, if it were necessary for some reason, Godot does provide the ability to separate a scene into "subscenes" which could be worked on independently.

Re: Making Advanced GUI Applications with Godot

#124
I'm trying doing this with Unity.

My main issue is the amount of learning necessary for doing "simple" stuff - I think onboarding of new people will be a challenge.

But I guess time will tell :-)

That said i do enjoy the experience - and some of the "game" features do give an amazing opportunity to make a nice interface.

I you go this route, do prepare yourself to spend your hours very different - making an animation takes no time - making a simple tab sequence takes time :-)

Re: Making Advanced GUI Applications with Godot

#125
post #20

I did a lot of tutorials on my YouTube channel on how to start making GUI applications with Godot. The visual scripting is really bad for now, so I would stick with GDScript (a Python like language) or C#. It is really a great piece of software to make something quick for non-technical people. I really recommend anyone to explore and play with it a bit and I'm sure you'll find a use for this amazing engine.

> visual scripting is really bad for now Are there any visual scripting languages that aren't terrible? The system in unreal works but every time I use it I find myself wanting a text editor (I have spent years learning to program well, be that C++ or shaders, just let me do that!).

The node/noodle system in Blender is really good.

Re: Making Advanced GUI Applications with Godot

#127
post #6

This just reads like a godot advertisement...it only has good things to say about godot and only bad things to say about any other library. It's really hard to take the article seriously with so much blatant bias. It also seems to leave out any technical information that a developer using the engine would want to know, like how well it integrates with existing code, what paradigms it uses compared to other UI engines…

I made this comment when someone was talking about using GLFW and IMGUI to make an application with a openGL window and I think it applies here too, because it is easy to overlook the things that you will eventually need that are not trivial to add once you go down the road of using tools made for only very basic UIs. "I would bet that the easiest thing would be FLTK. You can use system colors and make an openGL wind…

> once you go down the road of using tools made for only very basic UIs.

As noted elsewhere in the thread, the Godot editor (supporting UI, 2D & 3D) itself is built with Godot, so it's definitely not just "very basic" UIs.

FWIW, from your list, Godot doesn't currently support these AFAIK:

* physical printing, spreadsheet tables, a native look

And, does support:

* fonts, drag and drop, copy and paste, custom widgets, widget layout, functions to hide OS specific system stuff [for Windows, Mac, Linux, Android, iOS + others].

And, does support these with some privosos:

* various modal and non-modal windows (v3.2 is all in one window but shows modal/non-modal sub-windows within it, v4.0 in dev supports multiple system windows)

* menus (but not native system menus)

* unicode (Freetype is used for rendering but higher level multi-language support is currently less advanced)

Re: Making Advanced GUI Applications with Godot

#128
Several years ago using Unity3d to make an advanced cross platform (half business half industrial) GUI was an excellent experience and result. So yes, I readily believe modern game engines are good for cross platform GUIs and may conquer a niche here.

Re: Making Advanced GUI Applications with Godot

#129

Earlier quoted context omitted.

I made this comment when someone was talking about using GLFW and IMGUI to make an application with a openGL window and I think it applies here too, because it is easy to overlook the things that you will eventually need that are not trivial to add once you go down the road of using tools made for only very basic UIs. "I would bet that the easiest thing would be FLTK. You can use system colors and make an openGL wind…

Unfortunately, FLTK falls short in at least one important way: it doesn't implement accessibility, e.g. for blind users with screen readers. Godot and immediate-mode GUIs have the same problem. If I'm not mistaken, the most lightweight cross-platform UI toolkit that draws its own widgets (unlike wx or SWT) and implements accessibility is sciter [1]. It's a good thing the antivirus vendors (who seem to be sciter's big…

> it doesn't implement accessibility, e.g. for blind users with screen readers. Godot [has] the same problem.

Yeah, this is currently a valid criticism--it's an aspect I'm hoping will see more development attention in the future.

I did recently discover this project which is working on improving the situation: https://github.com/lightsoutgames/godot-accessibility/

Post reply on HN