Hacker News new | ask | show | jobs
by devmunchies 1419 days ago
Is there a reason you wouldn't use a game engine to create general purpose cross-platform apps? Is it cumbersome to create textual, structural interfaces (e.g. a twitter clone, google sheets clone, or an ecomm checkout flow)?
7 comments

You certainly could. You would probably run into a lot of issues in areas that games don't care about that much like multiple windows, smooth window resizing, fancy text layout and input, fast initial load times, matching OS themes and widget behavior, low resource usage at idle, copy/paste/drag/drop, software rendering, etc.
Add accessibility to that list. Screen readers, magnifiers, switch controls, etc. Usually game engines don't support these while your native OS UI probably does, and the web is also not bad in that regard.
IIRC there is actually an ongoing Godot accessibility effort.
Well, the Godot editor is actually a Godot applications, they are dog-fooding their own UI.

So it is absolutely possible to create complex applications with it.

Games engines are generally not used for apps, as games are optimized differently to apps. Games need to run smoothly at a high refresh rates at all times while apps can not hog all CPU power but need also be optimized to not needlessly drain the battery. This is no an issue in Godot specifically because it offers a low processor usage mode though.

So yes, Godot is a decent solution for apps. Only real issue is support for accessibility. There are screen reader plugins but if you want to do it properly, you might be better of with an app using native elements.

Flutter is essentially just that. Its graphics are built on Skia Graphics Engine and the tooling is designed to cater for UI interaction needs instead of gaming needs.

Apple's own UI libraries use their graphics engines too(SpriteKit, SceneKit), unfortunately supported only on Apple platforms.

Yeah, likely you won't get as many tools to help with structured GUIs and expected hooks to the operating system commands that your user will want to use, but if what you're looking for is unstructured, quirky, or artsy content, possibly the way old school flash sites wanted to be, then it's certainly a fun option for cross platform apps.
For desktop and mobile apps, it could work.

For example, here is kanban PoC made by someone:

https://github.com/alfredbaudisch/Godello

But for web, that could be too much for browsers to handle. Godello loading at webbrowser has only some time watching at spinner, when you have fast Internet connection, loading about 10 MB of code, WASM etc.

But when I tried to save Godot 3D game example to HTML5, and load it to webbrowser, Chromium etc browsers can not handle that much data.

Some webbrowser users have slow connections. If there are many users, they start to complain webpages loading too slowly. With Godot everything is browserside, and generated with save button, from that it's hard to move anything to serverside.

But if you instead code frontend and backend with Javascript, it's possible to move more of frontend Javascript code to run serverside.

The thing I am working on is intended to be useable to also build GUI apps and command line tools.

The tech that is often used in game engines, especially related to GPU support but also memory management and GUI structure is often 10-100x faster than what is commonly used elsewhere.

Text rendering can be just as nice as any desktop app, it is not trivial but not rocket science either, and quite a few smart guys have been doing nice work in this field.

> The thing I am working on...

> ...quite a few smart guys have been doing nice work in this field

can you expand on that? like creating quality of life improvements to existing tools like Godot, or something entirely new but in the spirit of game engines?

Agreed with the poster below. Godot def could, but I know text rendering is not as nice as browsers last I checked.