Hacker News new | past | comments | ask | show | jobs | submit login
Using a game engine to write a GUI to the OpenBSD package manager (dataswamp.org)
82 points by hucste on May 6, 2022 | hide | past | favorite | 24 comments



I've done something similar, but with JUCE [1] - which is a very amazing framework for building audio software, plugins, synthesizers and things.

I tell you, there are very few things more satisfying than seeing the same high performance C++ codebase running on Windows, Linux, MacOS, iOS and Android .. and the users don't know, don't care, and remain happily oblivious to the fact that none of the controls they are so gleefully slinging around are native. They Just Work™. (Including with Accessibility features..)

[1] = http://juce.com/


I actually came across JUCE the other day for the first time. I was wondering -would it be a really terrible idea to make a general purpose cross-platform GUI with this?


Why would it be terrible? JUCE is meant to write general purpose cross-platform GUIs with.

It has a focus on audio because that's its niche and where it originally came from, but it's fine to use it for general purpose stuff. Is that what you mean?


Basically, yes. I came across a few comments that suggested it was great for audio UIs, but very unwieldy for anything outside that (things like non-Latin text rendering, navigation stacks, etc). So while it was possible to build general UIs in JUCE, you needed to go to a lot of effort (at least compared to something like Qt/Flutter/etc).

Admittedly I didn't dig really deep so I don't know how valid these criticisms are - so I was wondering if you had some tales from the trenches and how it stacks up against "less niche" UI kits.


I'm afraid I only used it for some toy applications and it was mostly fine, but I do concur that if you're going for a 'just a bunch of forms' desktop application you'll find more out-of-the-box features in something like Qt.

If, however, your application mostly consists out of custom GUI elements then JUCE is pretty compelling.


Thanks!


Interesting discussion. Trying to get to render high performance graphs in the browser and it’s a chore to find good libraries.

Found this article about advanced GUIs with godot https://medium.com/swlh/what-makes-godot-engine-great-for-ad...


Unix was born to play Space War on a machine. Rogue gave us Ncurses.

This is not as odd as you would think. But, well, I'd use Perl and GTK2/3 for that.

Perl is in base, as X. GTK2 is a few ports away. If GTK's dependencies are too much, I'd use Perl/Tk.


Cool. Recently I had to decide on a cross-platform solution for Mac, Windows, and potentially iOS and Android. After looking into quite a few candidates and reading a lengthy thread on here covering that very topic, my conclusion (and that of the HN thread as well) was that Qt was still the most viable solution. That is what we went with, and it's working out reasonably well. But I have wondered about game engines and Godot specifically, given its lighter, 2-D focus.

Our app makes use of quite a few system/hardware resources, like USB and Bluetooth. Qt (irritatingly) lacks a USB library, so it has no advantage over a game engine there. But what about other system utilities like menus, disk access, and so forth? And of course mobile targets seem problematic. Can anyone weigh in on Godot vs. Qt for cross-platform/cross-device-type applications?


I mean why not just put Unreal Engine in the boot loader.


Perhaps a little later in the boot process perhaps?

Its likely possible. After all, the unreal engine does have at least some rudimentary 3d graphics support.


unreal engine is more than just rendering. Like QT, it's a cross platform application toolkit. There's no reason you couldn't port the underlying platform (which is reasonably well abstracted) to something lower level


Godot has become really popular for writing applications because the UI toolkit is absolutely fantastic. Here’s a sample just from itch.io:

https://itch.io/c/651672/tools-made-with-godot-engine


The big thing that this misses is accessibility.


I'm sure they're accepting Pull Requests.


There are a few accessibility plugins IIRC but yeah it could be much better in that regard.


And the great thing is that they are using their own UI to build the Godot Editor itself.

There is even an alpha build of the editor that runs on Android (and even inside the Oculus Quest).


I wanted to see if they actually handle text well (https://lord.io/text-editing-hates-you-too/) but every one I download to Mac the OS said "This App is damaged and can't be opened"


I'd suggest contacting the authors or just downloading Godot itself as all the UI is the same as those people are using.


Does the UI toolkit support basic text operations like copy-pasting or selecting text? This is a common problem in the alt-UI scene, basic stuff doesn't work after years of development. I don't want to ship an electron app either but at least it has everything everyone has come to expect.



What makes it better than others?


Layout is almost WYSIWYG and easy to get started with a simple download, resulting binary is small, really easy to integrate with an underlying 2D or 3D scene, lots of controls, built in scripting for simple things, great interop with native code for complex things, can deploy to multiple platforms with one project, everything is open source.


Does it support custom UI elements?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: