scq 4 days ago

Many game UIs are built using HTML/CSS under the hood, so it has come full circle!

https://coherent-labs.com/products/coherent-gameface/

5
CreepGin 4 days ago

[OneJS](https://onejs.com/) for Unity is a more modern entry in this space (Disclaimer: I'm the creator). Instead of embedding a browser/webview, it lets you use web techs and directly integrates with UI Toolkit (Unity's native UI solution).

A general drawback of using web UIs in games is the lack of support for performant 2D vfx. It's something I'd like to tackle in 2025 with [Spark2D](https://github.com/Singtaa/Spark2D).

doctorpangloss 4 days ago

This is intriguing.

Why not embedding a browser directly though?

How do you feel about the Flutter based UI Widgets? (https://github.com/UIWidgets/com.unity.uiwidgets)

In my experience there are two kinds of games: UI is the game or UI supports the game. When UI is the game, the performance bottleneck is almost always text rendering. From a DX POV there are many solutions, but from a performance POV, how can anyone compete with Skia or the native text APIs?

CreepGin 4 days ago

I feel that no one can compete with Skia in terms of feature-richness. But performance, it'll really depend on the environment, hardware, and what you are doing.

Unity's UI Toolkit, for example, is mesh and shader-based, so it can be highly performant for complex UIs.

Interesting note: If you use OneJS with the NodeJS backend, you can use the wasm version of Skia and render all kinds of cool stuff onto a texture in Unity. Obviously the performance with that is not ideal for animation. But I was able to quickly and easily render music notations and charts on my deployed Unity app on Android using that method.

> Why not embedding a browser directly though? How do you feel about the Flutter based UI Widgets?

Mostly to avoid overheads on both disk space and runtime performance. QuickJS is only ~20MB to embed. And I have no experience with Flutter, unfortunately. =/

scq 1 day ago

Coherent Gameface does not embed a browser or webview either.

https://docs.coherent-labs.com/cpp-gameface/what_is_gfp/over...

tyleo 4 days ago

I was part of an investigation which considered Coherent products for one of the Forza titles. We didn't go with it at the time, and I haven't had the opportunity to use it on a title at other companies, but it looks rad.

Forza used a custom UI system based on XAML and the acrylic elements at the top of the article were largely implemented in a custom shader. For a custom system it was pretty solid. We also built a lot of tech into it related to 3D placement of elements to support diagetic UI.

msarchet 4 days ago

Was this the in-house c++ WPF implementation?

tyleo 4 days ago

Yes it was! I actually loved that thing.

OptionOfT 4 days ago

Lots of games used to use [Scaleform](https://en.m.wikipedia.org/wiki/Scaleform_GFx) for their UI.

tyleo 4 days ago

Lots of games still use it but its been discontinued by Autodesk and is on its way out. Not to mention Flash also being discontinued.

lyu07282 4 days ago

The ones that don't are also interesting, like baldurs gate 3 uses this:

https://www.noesisengine.com/

djmips 4 days ago

Including Minecraft (Bedrock / consoles) :)

https://www.youtube.com/watch?v=BnTUmksfRJU