• codetrotter 7 hours ago

    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 6 hours ago

      +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 5 hours ago

        IIRC, the Tesla traffic visuals use Godot. The Rivian screens use Unreal Engine.

        https://www.unrealengine.com/en-US/spotlights/rivian-brings-...

      • fastball 6 hours ago

        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 5 hours ago

          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 7 hours ago

          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 6 hours ago

            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 8 hours ago

              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 6 hours ago

                > Imagine the experience of excel being implemented inside a virtual world.

                This already exists, and is called EVE Online.

                • klkvsky 6 hours ago

                  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

                  • achierius 6 hours ago

                    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

                    • danpalmer 5 hours ago

                      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.

                      • acarabott 7 hours ago

                        The Blockhead Digital Audio Workstation uses Godot for UI: https://www.patreon.com/colugomusic

                        • flobosg 6 hours ago

                          Here’s a text editor written with LÖVE: https://akkartik.name/lines.html

                        • raincole 7 hours ago

                          Which engine? I've never seen an engine that makes UI really eaiser. Actually game studios pay quite some bucks to use HTML5 in games (e.g. Coherent Gameface).

                          • Animats 4 hours ago

                            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...

                            [2] https://rolffson.de/

                            • MillironX 4 hours ago

                              That's basically what the Zed editor does, so why not?

                              https://zed.dev/blog/videogame

                              • flenserboy 5 hours ago

                                Why not? WoW, for instance, could be a fantastic environment for online meetings & as a help desk/corporate hot spot. For example, a dungeon instance could be the place where all the attendees for a meeting could be allowed in & interact with each other while/after the event was over. The help desk would likely grab regular users as they would have a being of a sort to interact with. This could be done on a company-by-company level, or there could be many companies available in this way, with fast travel between them. It could be a double bonus if the visitors to the site could go on small quests while they wait, with some sort of reward system built in.

                                • zdragnar 4 hours ago

                                  https://www.gather.town/ already does this, more or less, but with an old school rpg style.

                                  It's actually got quite a few nifty features, but my team ended up not really using it. I particularly liked the "walking into a room automatically joins you to the audio channel" bit for meetings, but it's ultimately a bit of a gimmick.

                                • rcarr 6 hours ago

                                  Don't know if this is quite the same but I worked for a company on a React SPA that was essentially an event driven CAD system using the Canvas API. It was an absolute nightmare - there were a ton of unintended event loops and side effects. When I left one of the seniors was in the process of converting it to using a game loop under the hood which sounded like it was going to solve a lot of the issues but it took him a lot of time and effort to convince management to let him do it. Tbh, I think it was more a case of the app getting so slow and buggy that it was causing them embarrassment in front of clients which made them cave to his requests than his methods of persuasion.

                                  • throwaway2016a 6 hours ago

                                    Using a game engine for UI and making the style of the interactions the game-like are two different things.

                                    Game engines are generally capable of creating hardware accelerated 2D UIs which could be great in some cases where highly dynamic UIs are desirable. But making a business app 3D for no reason is a different story.

                                    The later is largely what "The Metaverse" as Zuckerberg sees it is trying to accomplish. Check out Horizon Workrooms and the like.

                                    I've worked at a number of agencies over the years and at one point years back a client insisted on Unity for their mobile app because it worked cross platform out of the box. It was an unmitigated disaster because we were trying to fit a square peg in a round hole. Tens of thousands of dollars wasted.

                                    • Rohansi 7 hours ago

                                      Which game engine? I don't think using Unity to make a UI app is great if you don't need the game-y features. It's UI functionally isn't the best since their UI Elements package is not quite ready for production use in games.

                                      Something like Dear Imgui can be very nice to work with though.

                                      • benoau 5 hours ago

                                        There's no technical reasons why you couldn't but I'd be hesitant to give up accessible UI controls and all the other bells and whistles that come with web and app stacks, especially the UI controls because people know how to use them, software knows how to read them and operating systems know how to style them. You'll be much more "on your own" within a game engine.

                                        • esperent 3 hours ago

                                          There are technical reasons, although in practice I'm not sure how important they are:

                                          Game engine UIs are usually immediate mode, which means everything is rerendered in the game loop, 60 times a second or so. Dear IMGUI is the most well known example but I think Godot works the same way.

                                          Other UI systems (the web platform being the most famous) are event driven. Which means there is a loop, but it's just listening for events like mouse clicks or timers, and the UI is only redrawn when something changes.

                                        • impure 5 hours ago

                                          You mean like Flutter? Flutter is similar to a game engine in that it draws every pixel itself originally using Skia but now also using it's own custom render engine called Impeller on some platforms. So it can work. However using something like Unity to make a UI app has a whole host of problems, many of which other commenters have already mentioned: power/CPU, poor accessibility, difficult to implement things, etc.

                                          • Decabytes 5 hours ago

                                            I think the two main issues from this approach are increased battery usage on mobile devices, and accessibility issues with things like screen readers. I’d recommend giving Flutter a try. It is the easiest way I’ve found to make a cross platform app that works everywhere, and fulfills the two criteria I mentioned above

                                            • wingerlang 3 hours ago

                                              I live in Thailand and I've seen _government software_ built in Unity. Please do not do this. Convention, accessibility, and feel, is simply not there.

                                              • feverzsj 5 hours ago

                                                I haven't seen a game with proper font rendering on windows yet, let alone accessibility.

                                                • luaKmua 5 hours ago

                                                  I'm shocked I had to scroll this far down before I saw accessibility mentioned.

                                                • sriram_malhar 7 hours ago

                                                  Look at the apps you encounter, on your desktop, at work or at service counters (points of sale, terminals at work) etc. These can certainly use aesthetic design, but dynamic flashy stuff would be irritating for the user.

                                                  However, you could use game engines for interactive exhibits and demos.

                                                  • Narishma 5 hours ago

                                                    It's like building an app with Electron, but worse. At least Electron has good font rendering and some accessibility and some OS integration.

                                                    • SpliffnCola 6 hours ago

                                                      Stable Projectorz uses Unity for their app. https://stableprojectorz.com/

                                                      • danmur 5 hours ago

                                                        Check out ImHex, I think that's an example of where it works.

                                                        • yodon 6 hours ago

                                                          > Imagine the experience of excel being implemented inside a virtual world.

                                                          There's nothing quite like the optimism of a VR fanboy. Is there any other thing in tech that drives such ungrounded dreams?

                                                          • seattle_spring 7 hours ago

                                                            It can make sense. A lot of in-vehicle visualizations in a Rivian are using Unreal.

                                                            https://www.unrealengine.com/en-US/spotlights/rivian-brings-...

                                                            • golergka 4 hours ago

                                                              I've used Unity for this purpose on a project 9 years ago. It had nothing to do with games, but it had a huge 3d visualization component, and the rest of the UI was pretty simple — so building the whole thing in a game engine just made sense.

                                                              • arminiusreturns 6 hours ago

                                                                Shhh stop giving my tricks away! (more fun: 3d only interfaces)

                                                                • cmrdporcupine 6 hours ago

                                                                  It will drain the battery a lot faster on a laptop or phone. And use more power and CPU on a desktop machine.

                                                                  Game engines and their rendering models are usually doing work every frame by nature of their design. A retained mode, event based GUI doesn't need to.

                                                                  That and you can basically say goodbye to hooks for accessibility, common/standard shortcuts, etc.

                                                                  • akkartik 5 hours ago

                                                                    The power point is not true. Game engines are forced to be efficient and can use little power if the number of game objects they're managing is limited.

                                                                    The power usage I see is: web browser running a document << game engine running a simple UI << web browser running a simple UI on wasm << game engine running a serious AAA game.

                                                                    The accessibility point is very valid.

                                                                    • Rohansi 5 hours ago

                                                                      Not necessarily. By default they will continuously render frames but some are capable of skipping frames when nothing is changing. However this is a manual optimization to perform whereas using a proper UI framework would handle it automatically.

                                                                    • Joel_Mckay 7 hours ago

                                                                      In general, people must make a choice between portability, and the breadth of optimizations.

                                                                      For multi-platform builds, there are single code-base frameworks available:

                                                                      https://quasar.dev/

                                                                      For MacOS, Linux Gtk, and Windows native builds there are mature free libraries that allow both FOSS and commercial static linking:

                                                                      https://wxwidgets.org/

                                                                      Game engines are designed to solve a single set of use-cases for optimization, and portability is usually terrible outside the current windows release.

                                                                      Best of luck, =3

                                                                      • justinator 7 hours ago

                                                                        "It's a UNIX system! I know this!"