Live data from Hacker News

Speeding up Unreal Editor launch by not spawning unused tooltips

larstofus.com

81–90 of 92 posts

Re: Speeding up Unreal Editor launch by not spawning unused tooltips

#81
post #27
post #22

Hmm, so what exactly is stored in that gigabyte of tooltips? Even 100,000 tooltips per language should take maybe a few tens of megabytes of space. How many localizations does the editor have?

It is not the text data. It is that every tool tip gets made into an UI element. "Firstly, despite its name, the function doesn’t just set the text of a tooltip; it spawns a full tooltip widget, including sub-widgets to display and layout the text, as well as some helper objects. This is not ideal from a performance point of view. The other problem? Unreal does this for every tooltip in the entire editor, and there a…

That seems like a very wastefull way to implement tooltips.

The user can ever only see one single tooltip. (Or maybe more if you have tooltips for tooltips but I don't think Unreal has that, point is, a limited number.)

So initialize a single tooltip object. When the users mouses over an element with an tooltip, set the appropriate text, move the tooltip widget to the right position and show it. If the user moves away, hide it.

Simple and takes nearly no memory. Seems like some people still suffer from 90s OOP brain rot.

Re: Speeding up Unreal Editor launch by not spawning unused tooltips

#82

Earlier quoted context omitted.

I have worked full time for five years with a combination of Unreal and Unity. I've also worked for five years with Frostbite and another five in various custom engines. I absolutely love both Unreal and Unity. Unreal is amazing from a technical perspective and having worked with a talented team in Unreal the stuff we were able to make were mind-blowing given the resources we had. Unity is way easier to work with if…

The problem with Unity for green developers is that a lot of the defaults are bad and there isn't a lot of guidance to fixing it unless you just Git Gud at Unity, which is not something I've observed a lot of green developers do. There's a reason why "Unity Asset Store Dump" is a meme and it's largely because of content farm companies churning projects off the backs of perpetually underpaid junior developers (with no…

I do agree that some of the defaults are quite bad. A great example of this is how even Unity themselves recommend an object workflow very different from what their engine naturally seems to suggest: You really shouldn't use tons of objects with update methods called directly by the engine. You need managers with update functions which iterate over all their subjects. Doing it the intuitive way easily becomes unsustainable and is horrendous for performance.

Re: Speeding up Unreal Editor launch by not spawning unused tooltips

#83
post #70

Earlier quoted context omitted.

You should rethink your modal system if removing the controller component from the render tree doesn’t transition out

I mean in react if it’s gone from the render tree, it’s gone. I know there are libs like transition-group but I honestly don’t understand how they work. And the “react way” is to have the UI reflect state. If the state says the modal is not being rendered, it should not be rendered

Yes, React’s main idea is f(state) -> UI; but what’s returned from render is a declarative specification of what the UI should be. It’s up to React (and library authors) to make sure the UI ends up as we specify without our app logic needing to be concerned with how that happens. I view managing transition out animations for a component removed from the render tree the same way: I’m happy if the incidental complexity is encapsulated in a library (either a third party one or something I write myself), rather than spread across the whole app.

There are many high quality third party tools to help with this, such as Motion’s (https://motion.dev/docs/react-animate-presence). I haven’t used the library you mentioned, but it seems somewhat unmaintained and isn’t compatible with react-dom@19.

First party support is coming to React with the new component (https://react.dev/reference/react/ViewTransition).

If you insist that only the React maintainers are allowed to diverge DOM state from the render tree or write code you don’t understand, you can adopt it today from react{,-dom}@experimental. It’s been available there since April (https://react.dev/blog/2025/04/23/react-labs-view-transition...).

Re: Speeding up Unreal Editor launch by not spawning unused tooltips

#84
post #61

Earlier quoted context omitted.

The post you’re replying to is saying they went FROM always having the component mounted (at least in the component tree if not in the DOM as display:hidden), TO only mounting the component when it needs to be open. They moved from the way you’re talking about, to creating the component/DOM nodes only when needed. Excessive nodes - hidden or not - cost memory. On midrange Android it’s scarce and even if you’re not pu…

Especially when you know the user won't be opening half of those. I did'nt use a global one because the modals themselves have some complex logic inside.

[deleted]

Re: Speeding up Unreal Editor launch by not spawning unused tooltips

#85
post #24

From a purely technical perspective, UE is an absolute monster. It's not even remotely in the same league as Unity, Godot, etc. when it comes to iteration difficulty and tooling. I struggle with UE over others for any project that doesn't demand an HDRP equivalent and nanometric mesh resolution. Unity isn't exactly a walk in the park either but the iteration speed tends to be much higher if you aren't a AAA wizard wi…

I felt the exact same way until I tried Hazelight's AngelScript UE fork. It is amazing, it brings the developer experience and iteration speed to Unity levels. They even made a VSCode plugin for it. Cannot recommend enough

I'll heartily second this. After years of Unity, I just couldn't stand the developer experience any more. Waiting for iterative compiles that took an ice age each time I changed a line of code killed me. Angelscript UE is as close to engine perfection as I can imagine

Re: Speeding up Unreal Editor launch by not spawning unused tooltips

#86
post #13

This reminded me, I saw tooltips being a large chunk when I profiled my react app. I should go and check that. Similarly, adding a modal like this {isOpen && } instead of Seems to make the app smoother the more models we had. Rendering the UI (not downloading the code, this is still part of the bundle) only when you need it seems to be a low hanging fruit for optimizing performance.

That breaks the out transition.

You can add some TransitionManager that uses a bool prop whether or not to render its children and when the prop goes from true to false, keeps rendering its children for some amount of time.

Re: Speeding up Unreal Editor launch by not spawning unused tooltips

#87
post #17
post #7

This is one scenario where IMGUI approaches have a small win, even if it's by accident - since GUI elements are constructed on demand in immediate mode, invisible/unused elements won't have tooltip setup run, and the tooltip setup code will probably only run for the control that's showing a tooltip. (Depending on your IMGUI API you might be setting tooltip text in advance as a constant on every visible control, but t…

How does this compare to React-like approach (React, Flutter, SwiftUI)? It seems like those libraries do what IMGUI do, but more structured.

ImGUIs you do whatever you want with your state. You read your state and call UI functions.

React requires knowing about your state because it wants to monitor all of it for changes to try to optimize not doing things if nothing changed. This ends up infecting every part of your code to do so. It's the number 1 frustration I have using React. I haven't used Flutter or SwiftUI so I don't know if they are analogus

Re: Speeding up Unreal Editor launch by not spawning unused tooltips

#88
post #24

From a purely technical perspective, UE is an absolute monster. It's not even remotely in the same league as Unity, Godot, etc. when it comes to iteration difficulty and tooling. I struggle with UE over others for any project that doesn't demand an HDRP equivalent and nanometric mesh resolution. Unity isn't exactly a walk in the park either but the iteration speed tends to be much higher if you aren't a AAA wizard wi…

Is Cryengine still relevant at all ?

I'm also always surprised we don't see more games on the current gen id software engines

Re: Speeding up Unreal Editor launch by not spawning unused tooltips

#89
post #24

From a purely technical perspective, UE is an absolute monster. It's not even remotely in the same league as Unity, Godot, etc. when it comes to iteration difficulty and tooling. I struggle with UE over others for any project that doesn't demand an HDRP equivalent and nanometric mesh resolution. Unity isn't exactly a walk in the park either but the iteration speed tends to be much higher if you aren't a AAA wizard wi…

I felt the exact same way until I tried Hazelight's AngelScript UE fork. It is amazing, it brings the developer experience and iteration speed to Unity levels. They even made a VSCode plugin for it. Cannot recommend enough

https://angelscript.hazelight.se/ for others.

Any thoughts on Verse? I’m not experienced with Unreal or in the ecosystem, but it looked like it might be too foreign to me. But Tim Sweeney is no dummy, so it’s probably good and just requires some effort if you’re not already a functional programming nerd?

Re: Speeding up Unreal Editor launch by not spawning unused tooltips

#90
post #24

From a purely technical perspective, UE is an absolute monster. It's not even remotely in the same league as Unity, Godot, etc. when it comes to iteration difficulty and tooling. I struggle with UE over others for any project that doesn't demand an HDRP equivalent and nanometric mesh resolution. Unity isn't exactly a walk in the park either but the iteration speed tends to be much higher if you aren't a AAA wizard wi…

Is Cryengine still relevant at all ? I'm also always surprised we don't see more games on the current gen id software engines

I never hear about novices using them for free, and just like Photoshop and Python and JavaScript, experts mostly want to use what they learned for free when they were novices
Post reply on HN