News for hackers. Stuff that matters.
Re:Show HN: GodotOS: A Fake Operating System Interface Made ... by janosdebugs on Thursday January 11, 2024 @06:03PM (#38960779)
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: A Fake Operating System Interface Made ... by TillE on Thursday January 11, 2024 @06:09PM (#38960850)
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: A Fake Operating System Interface Made ... by janosdebugs on Thursday January 11, 2024 @06:19PM (#38960993)
> 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

Re:Show HN: GodotOS: A Fake Operating System Interface Made ... by neonsunset on Thursday January 11, 2024 @06:52PM (#38961391)
.NET is licensed under MIT[0]. There are additional concessions[1] regarding the code that used to be proprietary specifically to make all the Mono bits to be legally sound.

[0] https://github.com/dotnet/runtime/blob/main/LICENSE.TXT

[1] https://github.com/dotnet/runtime/blob/main/PATENTS.TXT (I think there was another document, please post the link if you remember which one)

Re:Show HN: GodotOS: A Fake Operating System Interface Made ... by janosdebugs on Friday January 12, 2024 @01:39AM (#38964757)
As I pointed out in that thread, I wasn't able to track down the license of all required DLLs for the binary distribution.
Re:Show HN: GodotOS: A Fake Operating System Interface Made ... by neonsunset on Friday January 12, 2024 @06:38AM (#38966914)
I think it’s an imagined problem and in practice no one has it. Just stop worrying and start deploying :)
Re:Show HN: GodotOS: A Fake Operating System Interface Made ... by s-lambert on Thursday January 11, 2024 @10:03PM (#38963137)
> 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.

I think the functionality for multiple windows was added before this release but here's the 4.1 notes that you can open the code editor/other stuff in other windows: https://godotengine.org/article/godot-4-1-is-here/#editor

I just tried it and it seems to work.

Re:Show HN: GodotOS: A Fake Operating System Interface Made ... by Gormo on Friday January 12, 2024 @02:13PM (#38972535)
> 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.

Games are full desktop applications, ad often have full-featured GUIs overlaid on top of a 3D-rendered playfield.

Certain game genres, especially strategy games and RPGs, regularly implement full UI toolkits, with floating windows, list and table widgets, combo-boxes, toolbars and menu bars, etc. Some games have a superset of standard desktop widgets in order to account for standard UI functionality along with very game-specific needs.

Look at Paradox's grand strategy games for some examples of this. Some people refer to them as "spreadsheet games" because of the complexity of game data and statistics exposed through application-like UI controls.