What do you think about using a game engine for UI?
43 comments
·January 12, 2025codetrotter
Godot uses their own engine features for the GUI of the editor itself as you’d use to make a game itself with.
https://docs.godotengine.org/en/stable/about/list_of_feature...
> Godot's GUI is built using the same Control nodes used to make games in Godot. The editor UI can easily be extended in many ways using add-ons.
And they even go as far as to explicitly say the following:
> Godot's small distribution size can make it a suitable alternative to frameworks like Electron or Qt.
I’ve only used Godot for game development, not GUI stuff yet. (The game I started making doesn’t have any menus, I’m working on gameplay and level design first.) But I’m personally keeping a mental note in the back of my mind to investigate building bona fide desktop applications with Godot also, and not just games.
Also, if you’re going to make an application instead of a game, they have a special mode they recommend that you use:
> When creating a non-game application, make sure to enable low-processor mode in the Project Settings to decrease CPU and GPU usage.
https://docs.godotengine.org/en/stable/about/faq.html#is-it-...
disambiguation
+1 I think godot has a lot of potential here. You covered all the good stuff, I'll just add that in addition to everything you also get multi platform support for free - desktop, mobile, and web. Build once deploy everywhere (sound familiar? ;))
I think the only thing holding back adoption is that web devs are largely unfamiliar with gamedev. The control node and material styling is very different from html and css and would require brand new paradigms for team level development. If you're an ambitious solo dev though it's easy enough.
nrjames
IIRC, the Tesla traffic visuals use Godot. The Rivian screens use Unreal Engine.
https://www.unrealengine.com/en-US/spotlights/rivian-brings-...
fastball
For truly novel UIs with high dynamism it is probably a good decision.
For anything else it is almost certainly more work for the dev and more resource-intensive for the system.
One thing I haven't seen anyone else mention is that a game engine is generally going to be re-rendering constantly, as part of the game/render loop. This is because in a game it is almost always the case that something is changing on screen at any given moment.
In a more "normal" app UI, most things are static, so having a render loop operate like that doesn't make much sense. So instead things are optimized for the static case – if nothing is happening on screen, resources are not being used.
phkahler
Another difference is that UI code is often event driven. Games poll inputs each frame and update accordingly. What or when to render is never in question - everything, every frame for simpler games.
lesuorac
It really depends on your App and probably the game engine.
There's a reason why a lot of people use Electron for apps and it's because the amount of effort it takes to write HTML / JS and have a functional UI is very little.
It seems like you like the idea in order to implement a novel UI and I suspect then yes a game engine is a good idea. However, do consider the UX of your app. Excel is a spreadsheet because that is pretty much the best way to display tabular data. So if the novel UI isn't a better UX than an existing way you probably don't want to do it.
PaulHoule
Excel's a nice example for a few reasons:
(1) it wants to be a bicycle for the mind, a simulation playground where you edit something things and the environment changes -- something a game engine could "excel" at
(2) it sucks in a whole bunch of ways, but it's hard to displace. People use it to do things with CSV files that somebody would use pandas for if they wanted to get the right answer. People use it to do things they'd be better off using Access or SQLlite. And then people use it to calculate things
(3) At this moment I'm making some simple models of businesses w/ Excel, one sheet is calculating the value of a comment on this site, roughly $600B evaluation, 7% equity stake, HN responsible for 5% of that value (brings in founders and employees) with a total of 50M comments, I get a eye-popping value of $50 per comment!
It's actually ugly in Excel, for instance I don't really want things on a grid, I want to make the calculation immediately clear as a graph, I just wish that this product
https://en.wikipedia.org/wiki/TK_Solver
had a bunch of sequels. If anybody can make the next thing I'd love to see it. It's tough because Excel comes with Powerpoint, Word and other tools in Office 365 so it seems free to people. Then there's that inferior Google Sheets.
kirubakaran
That would make accessibility hard and you'd be excluding a lot of people who could've otherwise used your product https://en.wikipedia.org/wiki/Accessibility
sho_hn
> Imagine the experience of excel being implemented inside a virtual world.
This already exists, and is called EVE Online.
klkvsky
Check out !Boring Apps by Andy.works: https://www.notboring.software In one of his blog posts he talks about prototyping his apps in Blender & Unity (I think), but for the app itself he uses Apple's SceneKit
danpalmer
A bank in the UK did this and the app was nearly unusable. They used Unity.
There were many problems:
- a bank app needs a fairly basic CRUD style UI, they had to build all of that from scratch.
- users knew OS patters, like the navigation stack, they didn’t stick with these things and users couldn’t understand the information hierarchy.
- they got too creative with UI elements and it wasn’t clear what was tappable, what wasn’t, what information was, etc
- the app was slow and took ages to update for things like new screen sizes
- their response to criticism reeked of hubris, they couldn’t accept that it was a bad decision, and it took them 5 years to back track and rewrite with standard UI components. This was deeply ingrained in the company culture, not the only bad technical/product/business decision they made.
There’s a reason why most game UIs suck. If you want to incorporate 3D elements into UI, the OSes provide their own frameworks for that sort of thing. We absolutely haven’t exhausted the design space of UI with the regular tools available.
Animats
There are cars that use Unreal Engine for the dashboard.[1] This is silly, but so is the electric Hummer 2.
There is a working IBM 1401 simulator written in Unreal Engine.[2]
[1] https://www.automotiveinteriorsworld.com/videos/unreal-engin...
achierius
I've recently had a lot of fun/success with Dear ImGui (C++) -- not a game engine, but originally/partly meant for use in them. https://github.com/ocornut/imgui
MillironX
That's basically what the Zed editor does, so why not?
acarabott
The Blockhead Digital Audio Workstation uses Godot for UI: https://www.patreon.com/colugomusic
A mate is building a UI for an app using a game engine. At first, I was - WTF, but now, a few hours later, I think that there could be some merit in it. Imagine the experience of excel being implemented inside a virtual world. I’m not sure that there will be adoption, but it could be quite original.