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.
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.
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.
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.
And it's extensible by plugins! I like using GUT [0] for unit tests, and it injects its own editor tab with a custom UI... which is just another Control node [1].
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]
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.
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 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.
30 comments
[ 5.0 ms ] story [ 376 ms ] threadThe 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.
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.
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
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.
[0] https://github.com/bitwes/Gut [1] https://github.com/bitwes/Gut/blob/master/addons/gut/gui/Gut...
EDIT: https://news.ycombinator.com/item?id=30627087
PS: I cannot confirm the veracity of the link I post.
https://news.ycombinator.com/item?id=30274508
and some quick googling suggests that's true, e.g. this:
https://www.tesla.com/careers/search/job/vehicle-charging-ui...
To my knowledge there isn't a way of creating retained mode GUIs in godot but I'd like to be corrected.
[1] https://rubymamistvalove.com/block_editor.mp4
> 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...
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.