ultralight-ux / Ultralight

Lightweight, high-performance HTML renderer for game and app developers.
https://ultralig.ht
4.63k stars 196 forks source link

Unreal Engine 4 Integration #143

Open looterz opened 4 years ago

looterz commented 4 years ago

I came across Ultralight while investigating alternatives to CoherentUI for use within UE4. Currently the only alternative is BLUI but development was halted years ago and the performance was never really comparable. Coherent is great and even supports things like shader effects on the final image but it's quite expensive.

I think Ultralight would be a great fit as a UI solution for games within UE4 so as requested in Slack I'm creating this feature request to track its progress and discussion. The integration process itself should be quite easy as a plugin, you only really need to get the bitmap and render it to screen and support in-world placement of widgets, some glue between C++ and Javascript, and ofcourse input handling.

wsj0000 commented 4 years ago

Trying the integration and watching on it!

SUPRVLLAN commented 4 years ago

+1 keeping an eye on this!

Zenahr commented 4 years ago

Any updates on this? Quite exciting. I had worked with BLUI back then and it would be awsome to have the web-stack as part of the UI system in UE.

looterz commented 4 years ago

Any updates on this? Quite exciting. I had worked with BLUI back then and it would be awsome to have the web-stack as part of the UI system in UE.

I’m not aware of any movement on a plugin for UE4 yet. Could be an interesting open source project if anyone is interested.

JoshHubi commented 3 years ago

+1 over here!

chaiyuntian commented 3 years ago

+1 !

cron1155 commented 3 years ago

+1

Zenahr commented 3 years ago

Actually I might start working on it. Anybody interested in helping out? I would volunteer as the repository holder and main maintainer of the project (until someone else wants to take over). I'll add the repo link as a comment here.

microdee commented 2 years ago

Actually I might start working on it. Anybody interested in helping out? I would volunteer as the repository holder and main maintainer of the project (until someone else wants to take over). I'll add the repo link as a comment here.

I have a project with the same goals already. It's also currently being developed at my workplace, and we're pushing changes to open-source once we happy with that. https://github.com/microdee/Uranium Note not all features are implemented yet but progress is great actually.

Zenahr commented 2 years ago

@microdee that's awesome! Does Uranium use Ultralight?

microdee commented 2 years ago

@microdee that's awesome! Does Uranium use Ultralight?

no sorry, I just realized that you meant for Ultralight, not HTML in general, my bad. It uses a custom CEF build to enable all hardware acceleration in OSR and get the image via shared textures, so performance wise it's infinitely faster than built-in WebBrowser

Btw I'm also interested in Ultralight, did you have any progress with that? It might serve better in sandboxed environment where multi-process architecture might be severely limited.

Zenahr commented 2 years ago

@microdee No. But there's a repository of an engine plugin for a C-based immediate-mode graphical UI library here: https://github.com/segross/UnrealImGui

This would be a good starting point for a proficient C++ developer. I sadly lack the confidence and skill needed to build such a low-level system all by myself.

looterz commented 2 years ago

I checked in on progress in the Ultralight discord earlier this year and there is some movement on Unreal and Unity plugin integration plans, they're working on the multi-process IPC feature now which will pave the way.

GvXV3toYUNbmP commented 11 months ago

Wondering if there is any update on this ?

JailbreakPapa commented 11 months ago

Wondering if there is any update on this ?

I started a prototype repository for UE 5.2, (https://github.com/JailbreakPapa/UltralightUE), It's mainly for me evaluating UI Middleware options for the project I'm working on, but since i decided to give Ultralight a shot, I made a repo for integrating it into UnrealEngine. once I get something on the screen and some examples up, ill update this post. it currently uses 1.3 latest, but I plan to update it to the highest version possible.