Live data from Hacker News

Making Advanced GUI Applications with Godot

medium.com

71–80 of 259 posts

Re: Making Advanced GUI Applications with Godot

#71
post #41
post #34

How well does godot support dynamic/programmatic layout (w.r.t odd aspect ratios and resizing), localization, and accessibility? I'd also take issue with the notion that 2D UI frameworks based on game engines are more performant than their alternatives, because game engines are optimized for 3D graphics and often struggle with performance once your UI state becomes reasonable large.

> How well does godot support dynamic/programmatic layout (w.r.t odd aspect ratios and resizing), Very well (it's a game engine) > localization, and accessibility? Poorly and not at all. Godot has a student adding PO files: https://godotengine.org/article/gsoc-2020-progress-report-1#...

I mean game engines are pretty bad at that, that's why I asked

Re: Making Advanced GUI Applications with Godot

#72
Reminds me how in 2015 I built a web server in Godot. It's very limited, uses busy polling to listen for new connections, but nothing else was available at the time (IDK about current Godot). https://github.com/KOBUGE-Games/godot-httpd/blob/master/http...

Where there's a will, there's a way :).

Re: Making Advanced GUI Applications with Godot

#73

This is such a bad idea. Try adding a line editor. Now try typing anything that is not ASCII or an emoji. Suddenly you'l see why you generally do not want to use a game engine for a tools. Even the Godot editor itself is not non-English friendly. It's got a horrible experience for any language that uses an IME. If you try to insert an emoji on Mac the IME won't even appear.

Assuming that is true, it is an oversight. There is no actual technical limitation. I am confident if Godot sees usage as a GUI/app framework, they will take care of that.

it's too late for the engine to "take care of it" when the problem presents itself - because there are existing tooling and frameworks that already fixes this problem (such as native widgets, or electron).

so godot will only see usage as a GUI framework for the use cases that won't see emoji or non-english IME.

Re: Making Advanced GUI Applications with Godot

#74
An underlying tone of this article which most people in this thread have missed, was the impact of hitting the ground running. Godot quickly gets something on the screen for someone to build on. Qt is difficult to get something running. The impact of this makes technical benefits one way or the other moot. After all, if it works, who cares what technology is better?

I found the hassle of setting up Qt painful, but it didn't scare me away. The final nail the coffin was their prioritization of Qt Creator over SDK integration. juggling two IDEs just didn't seem right with an existing codebase.

Re: Making Advanced GUI Applications with Godot

#76
Nice post. I look forward also to a future where Godot helps facilitate VR (office) applications as well.

We have developed SimulaVR (https://github.com/SimulaVR/Simula -- a Linux VR Desktop) on top of Godot, and I think there's a lot of potential for this in Linux.

Re: Making Advanced GUI Applications with Godot

#77

This is such a bad idea. Try adding a line editor. Now try typing anything that is not ASCII or an emoji. Suddenly you'l see why you generally do not want to use a game engine for a tools. Even the Godot editor itself is not non-English friendly. It's got a horrible experience for any language that uses an IME. If you try to insert an emoji on Mac the IME won't even appear.

Assuming that is true, it is an oversight. There is no actual technical limitation. I am confident if Godot sees usage as a GUI/app framework, they will take care of that.

Surprisingly, they won't.

Text input and manipulation is so incredibly ugly and hard, that basically nobody cares it enough to to it really well.

Unicode to start is complicated. Then you have things like bidirectional text.

Line breaking is complicated.

There are no accepted practices for a lot of use cases.

Hyperlinks. Embedded content like images.

Copying/inserting html and other formats.

Styling content.

Rendering 100 000 lines of styled content without screwing up user input.

Line-heights. Tabs. Font definitions that are ambiguous an inconsistent (a lot of font tables today still don't provide enough space for accents on capital letters, think Swedish - so you have broken looking text or have to 'fake it'). Screwed up Kerning tables.

No established standard for real pixelation and rendering - zoom in and you'll see font's can be rendered a variety of ways.

Emojis, fat finger cursor navigation on mobile devcies, input managers.

It's hard to describe how messy it gets because none of it is academic, it's not some scary-hard algorithm - it's just an incredibly ugly pile of cross-cutting code with a zillion little bits and pieces of corner cases.

And a big one for gaming engines: they don't render text 'natively'. You basically have to create textures. Every big of text, it's own texture. How big is the texture for 100 000 lines of code? Big.

This is actually one are where Qt falls flat. In the 'new and improved' Qt, they do everything in the GPU, if you try to load 100 000 lines of something the app will use up 1G of memory and puke. So then you have to magically code your way around it.

All for what? Why would you want to render text in a gaming engine in the first place ...

Then you discover that 'apps' and 'games' are really different things, and they use different tech for good reason. It only gets ugly when they really have cross paths.

Re: Making Advanced GUI Applications with Godot

#78
post #2

QtWidgets works really hard to try and remain native (both by reusing the platform window pointers, and mimicking style and functionality). That for me is worth it. While the article constantly complains about dev tooling size, a reasonable complaint, my DLLs I ship w/ my Qt program are just 20MB (so I'd suspect a similar size increase to a single binary were I to statically link). If I didn't care about native look…

If you take the time and care to build the Qt libraries yourself and configure out all the stuff you don’t need, you can get an order of magnitude smaller. I think Qt even supports a minimal configuration nowadays and markets it as “Qt Lite”

In any case I think I’ve gotten a stripped static executable down to 5 or 6 MB.

Re: Making Advanced GUI Applications with Godot

#79
That article is very flawed and also misses a critical point about UI in general, the reason why Windows feels like Windows in the last 20 years is because of UI/UX, I used Windows all my life and when I have to open a new app eventough I never used it before I can naviguate easily, everything makes sense, I click it does what it's supposed to, pop messages are all the same, menu looks the same, they all follow the same standard.

It's like driving a car, you can have thousand of different models and yet you get inside one you can drive it right away. You don't have that kind of usability if everyone was doing custom GUI running with a game engine.

Same reason why there is a learning curve with UI in games, every games are different so every UI are also different, it takes time to naviguate properly in a new game.

Consistance is key.

Re: Making Advanced GUI Applications with Godot

#80

Why is Hacker News not interested in JavaFX at all? Seriously.

I know right! I watched a scene builder demo and was floored at how easy things were.

Java went with webapps thinking it'd be easier to manage distribution of the application if a browser did it for you. Or at least that's how the trends played out. It kind of works, but the real missed opportunity was all the client side processing and storage that desktop apps bring to the table.

Post reply on HN