30 comments

[ 5.0 ms ] story [ 376 ms ] thread
As someone that wants to get away from Qt, is this viable enough to do common desktop or embedded GUIs?
From having tinkered with it before and also from using the Godot editor (which is itself made with Godot), it does seem viable (and even quite pleasant), however it’s worth noting that it’s unlikely to have Qt’s level of accessibility support (eg screen readers) since that’s not typically a focus of graphical games.
OTOH (on the orthogonal hand) - I like Godot's i18n support
It builds to cross-platform pretty easily so that is a big bonus. Godot supports C# as well and its own scripting language but not much else. You won't be able to take advantage of native UI elements, but I don't think people care about that as much anymore.

The built-in development environment is mostly non-negotiable (you can supply your own IDE for text editing but thats it) but its well designed and is made to work with its component model. It feels fun to use. The data model also works better with source control than other game engines, but not as well as non-game UI toolkits. If you're a text-environment purist, you might be turned off, but you'd also be turned off by all the big game engines.

I've met developers who use Unity to make mobile apps since the built-in 3D compositing actually makes some applications more performant than the native toolkits. I'd imagine Godot would have similar benefits.

> It builds to cross-platform [...] Godot supports C#

Godot supports C# on desktop only (works well on Windows and Linux, bit annoying on MacOS X but it does work).

There's been talk of supporting Android since v3 but it always fell through. There is no planned support for iOS or web targets afaik.

Godot v3.2 added Android C# support, and Godot v4.2 (due out in November) is enabling both .net 6 and .net 7 support for the engine.

From the Godot 3.2 docs on C#: > Exporting Mono projects is supported for desktop platforms (Linux, Windows and macOS), Android, HTML5, and iOS. The only platform not supported yet is UWP.

And from a recent Github discussion for 4.2: https://github.com/godotengine/godot/pull/73257

The most full-fledged GUI app I can think of in Godot is RPG in a Box (https://www.rpginabox.com), itself a game creation toolkit. Its UI is decent (and IMO a lot more attractive than a lot of cross-platform toolkits I've seen), though there's a lot of very obviously non-native elements and quirks.
The most full-fledged GUI app I can think of in Godot is Godot's own IDE.

If you can build an IDE in a framework, I generally assume you can build any other GUI app you'd need in it too.

If you want to see what an "ideal" godot GUI is like, just download the godot editor. The editor itself is a godot app.
(comment deleted)
As nice of an idea this is and how GUI making friendly godot is, wouldn't it being purely immediate mode make it not viable for most desktop GUI applications besides games? This would be the same issue when considering other game engines for this purpose. This is also the reason why it's a breeze writing UIs in DearImGUI compared to QT or GTK. Which explains why general purpose frameworks like QT and GTK take so much time to develop: they integrate more deeply with the OS to enable retained mode rendering.

To my knowledge there isn't a way of creating retained mode GUIs in godot but I'd like to be corrected.

Have you tried QML? I'm now creating a block editor based on plain-text using Qt C++ for the model and QML for the view and it's going pretty awesome right now. Only 18 days in and I already got something working well.[1]

[1] https://rubymamistvalove.com/block_editor.mp4

It's not necessarily being immediate mode that is the problem. The bigger problem with most IM GUI's is they expect to repaint at 60 frames per second like a video game which is bad for mobile devices as it drains battery life. Non-game GUI's should only repaint when needed. Another problem is most IM GUI's lack accessibility and i18n support. Want emoji or right-to-left text? Too bad.
Fun fact: the Godot editor is itself a Godot game.

> The Godot editor runs on the game engine. It uses the engine's own UI system, it can hot-reload code and scenes when you test your projects, or run game code in the editor. This means you can use the same code and scenes for your games, or build plugins and extend the editor.

https://docs.godotengine.org/en/stable/getting_started/intro...

Very cool! I've never used Godot myself but I sometimes watch livestreams of game devs and godot has always seemed like a great engine and editor to use.
This often-repeated statement doesn't really communicate how the editor works. While it does use many of the same APIs, you couldn't build the editor from within the editor (bootstrapping). The editor itself is largely written in C++ and not Godot's integrated language GDScript, you can see for yourself https://github.com/godotengine/godot/tree/master/editor
i suppose the idea isn't that you can bootstrap the editor within the editor, but more like how unreal editor uses the unreal engine to render itself.
The Unreal Engine editor also uses the UE engine which is pretty cool (but I wouldn't recommend writing desktop/mobile apps in UE)
> Create non-game apps with Godot Engine

I really like to see how people manage to use some tools to build something entirely not intended by the its creator which give it another dimension. I once managed to build an installer for a windows app for a client (with a tight budget) using Winrar, although I usually use WixToolset.

To be fair, as far as I know godot officially supports non game apps and has documentation about making them
is there an LLVM - GDScript transpiler that anyone has seen?
is there an LLVM - GDScript transpiler that anyone has laying around?
why would you want that? you can use lots of other languages for scripting with gdnative/gdextension such as rust and C++