Live data from Hacker News

Show HN: GodotOS – Fake operating system interface made in the Godot engine

github.com

191–200 of 292 posts

Re: Show HN: GodotOS – Fake operating system interface made in the Godot engine

#191

I would love a write up on design philosiphy. I'm currently learning Godot coming from web dev, and finding the distributed business logic impossible to organize. I just don't know who, what, or where business logic should be. My urge is to lift logic up to the parent of any group of interactions, and let nodes just be renderers. But I understand that is absolutely not the design philosiphy of Godot, and probably won…

It's impossible to be sure without knowing your programming experience in general across sectors, but it sounds like you are unused to the paradigms of game programming in general, which is centered on logic executed per-frame rather than per-flow (like in business applications, which is where the concept of "business logic" comes from). The default approach in game engines is to bind data including state to an actor…

Ironically, early days Java Applets had you painting things on a canvas with a similar event loop. I think Flash also operated this way.

I almost think if someone were to build applications with Godot (or another engine) that you would need to mentally translate from something like React components and their data to the actor/sprite+state in an event loop model.

For example a todo list in Godot might have an actor that is the checkbox with some text next to it and the state of checked/unchecked, then allow the user to click something which generates more of these actors/sprites dynamically. I think where it really becomes cumbersome with a game engine is no real organization of a scene exists without you explicitly laying out x,y pixels. There are concepts of "relative" but common application concepts of pagination, etc. would be hard to pull off in a simple way in the code I would imagine.

Re: Show HN: GodotOS – Fake operating system interface made in the Godot engine

#192

Thank you for making this! I’ve been dissatisfied with the options available for making local GUIs and curious about what could be done with game engines. What was it like working with the UI layer of Godot?

Quite fun. I find it a lot simpler and more intuitive than other UI frameworks I've worked with (especially front-end webdev), but I understand it's very opinionated. Once you get accustomed to using Control nodes in Godot (that's what they call UI components), it becomes super easy to rapidly prototype and design anything you'd like.

Re: Show HN: GodotOS – Fake operating system interface made in the Godot engine

#193
post #106

Earlier quoted context omitted.

It requires a GPU.

I'm not aware of any GUI stack that doesn't require a GPU, nor any desktop hardware released over the past 30 years that didn't have a GPU.

I RDP or VNC into VMs that run without a GPU all day. It's very much optional for 2D, at least.

Re: Show HN: GodotOS – Fake operating system interface made in the Godot engine

#194

Earlier quoted context omitted.

Nice to see someone else who also remembers those. I was the creator of Tiagix OS, AFAIK one of the first subOSes that actually had support for creating apps for it. Learned a lot about GUI toolkits making it, since I had to implement one from scratch for it.

Do you have any material online on Tiagix OS? I can't seem to find anything from a quick Google search.

I think there's a build of an older version of it on the YoYoGames archive. The archive didn't save the screenshots that the original website had, sadly.

I also spent a long time working on a very large update which I might have archived somewhere locally but never shared it online.

Re: Show HN: GodotOS – Fake operating system interface made in the Godot engine

#195
post #75

Earlier quoted context omitted.

I have never encountered an Electron app that can even display the results of keystrokes in a timely manner, and that includes vscode. All Electron apps waste system resources to an obscene degree. Also, Electron apps have already thrown away OS conventions to the point that user interface consistency has become a thing of the past. I don't believe that either choice is ideal, but if Godot were ubiquitous instead of…

Something is very wrong with your system configuration if VS Code has issues showing keystrokes in realtime. It's not a VS Code or electron problem.

Except, maybe, for the fact that they are attempting to run anything Electron at all on their device, it is not a configuration problem to use a machine that was manufactured a couple years ago and was most likely not top-of-the-line hardware even back then.

(In my particular case I've a passively cooled laptop from like 2021; The limited compute resource available to applications in that device really made me appreciate the well built applications)

Re: Show HN: GodotOS – Fake operating system interface made in the Godot engine

#196
post #51

This is actually a great proof of concept for using Godot as a cross-platform framework for desktop applications. The distribution package is incredibly simple -- just a single executable and a data file -- and performance is excellent. This seems much superior to Flatpak and the like as a way to offer fully self-contained distro-agnostic binary packages, and vastly superior to Electron in the performance department.…

I seriously doubt it. Game engines are, first and foremost, designed to provide a 2D or 3D graphics environment and input handling, they don't typically have the richness of UI components that you would expect for building a desktop app. Godot is no exception here, its UI components are very dated and limited in comparison what modern web-based applications can do. Furthermore, Godot specifically is limited to a single window (apart from popups) last I checked.

The other problem with Godot specifically is that every thing is tied to GDScript/the Godot typing system (yes, even the C# and gdextension APIs) and you need to deal with its inconsistencies. I'm currently implementing something as simple as a schema validator (think JSON schema) and it's nightmareishly tough in comparison to any other language I have implemented this in. And then we are not even talking about the almost universal lack of error handling in a large portion of the built-in functions, or really silly things like that opening a TCP connection apparently requiring active polling. I could go on.

I love Godot, it's super simple to build game-related things with, but holy macaroni do I wish they had thought things through just a little more when they implemented them. I would never want to build a data-heavy desktop app in Godot.

Re: Show HN: GodotOS – Fake operating system interface made in the Godot engine

#197
post #157

Earlier quoted context omitted.

> The problem is that Electron is superior to something like a Godot UI in absolutely everything else. Why? What capabilities does Electron provide that Godot doesn’t and can’t? I’m genuinely asking. I don’t know.

Electron has literally thousands and thousands of very, very complex UI/UX features offered by the OS, plus thousands and thousands of very, very complex UI/UX features offered by a browser engine. Godot has barely nothing compared to that, as it's not an UI toolkit and never tried to be. Even basic things like "rendering text correctly in multiple languages, with emojis, while making it selectable with the mouse or…

Video game engines absolutely handle text rendering across a wide range of languages. Not all games involve complex text input, but it’s a sufficiently common need that’d I’d expect a generic engine to support robustly.

Accessibility is often language in game technology. That should be better.

To be honest my first reaction was negative to this idea. But if your comments and links have done anything it’s convince me that maybe this isn’t a bad idea after all!

Re: Show HN: GodotOS – Fake operating system interface made in the Godot engine

#198
post #51

This is actually a great proof of concept for using Godot as a cross-platform framework for desktop applications. The distribution package is incredibly simple -- just a single executable and a data file -- and performance is excellent. This seems much superior to Flatpak and the like as a way to offer fully self-contained distro-agnostic binary packages, and vastly superior to Electron in the performance department.…

I seriously doubt it. Game engines are, first and foremost, designed to provide a 2D or 3D graphics environment and input handling, they don't typically have the richness of UI components that you would expect for building a desktop app. Godot is no exception here, its UI components are very dated and limited in comparison what modern web-based applications can do. Furthermore, Godot specifically is limited to a sing…

Godot 4 has proper multi-window support.

> schema validator > opening a TCP connection

You should be using C# for stuff like that. Ignore the Godot API, just use .NET 8.

But I agree that any game engine is a poor fit for general applications.

Re: Show HN: GodotOS – Fake operating system interface made in the Godot engine

#199
post #198

Earlier quoted context omitted.

I seriously doubt it. Game engines are, first and foremost, designed to provide a 2D or 3D graphics environment and input handling, they don't typically have the richness of UI components that you would expect for building a desktop app. Godot is no exception here, its UI components are very dated and limited in comparison what modern web-based applications can do. Furthermore, Godot specifically is limited to a sing…

Godot 4 has proper multi-window support. > schema validator > opening a TCP connection You should be using C# for stuff like that. Ignore the Godot API, just use .NET 8. But I agree that any game engine is a poor fit for general applications.

> Godot 4 has proper multi-window support.

Could you give me a link please? The Godot editor itself can't do multi-window and I haven't found a clear explanation on how to do that in the games either.

> You should be using C# for stuff like that. Ignore the Godot API, just use .NET 8.

I use the non-dotnet version of Godot, I'm not happy with the confusing licensing Microsoft has put around .NET [1]. If anything, I'll go the gdextension route, but it hasn't been painful enough yet to do that. For a UI you couldn't ignore the typing system since you'd need to feed the data into it and read from it a lot.

[1] https://news.ycombinator.com/item?id=35985832

Post reply on HN