Live data from Hacker News

Speeding up Unreal Editor launch by not spawning unused tooltips

larstofus.com

31–40 of 92 posts

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

#31
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…

Yes, I meant the size on disk. I presume the serialization format isn't the most efficient possible. But I can't think of any particular boilerplate that you'd want to store in a file that's just supposed to store localization strings.

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

#32
post #29

I once made the mistake to buy some sound effects from Fab, I had to download the entire Unreal Engine and start it to create a project to then import the assets.. It took the whole afternoon It's no wonder UE5 games have the reputation of being poorly optimized, you need an insane machine only just to run the editor.. State of the art graphics pipeline, but webdev level of bloat when it comes to software.. I'd even…

> It's no wonder UE5 games have the reputation of being poorly optimized Care to exemplify? I find UE games to be not only the most optimized, but also capable of running everywhere. Take X-COM, which I can play on my 14 year old linux laptop with i915 excuse-for-a-gfx-card, whereas Unity stuff doesn't work here, and on my Windows gaming rig always makes everything red-hot without even approaching the quality and fid…

The reputation of being poorly optimized only applies to version 5, UE was rather respected before the wave of terribly performing UE 5 AAA games came out and tanked UE's reputation.

It also has a terrible reputation because a bunch of the visual effects have a hard dependency on temporal anti-aliasing, which is a form of AA which typically results in a blurry-looking picture with ghosting as soon as anything is moving.

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

#33
post #25
post #13

Earlier quoted context omitted.

That breaks the out transition.

Even when using view transitions? https://developer.mozilla.org/en-US/docs/Web/CSS/@starting-s...

The "Transitioning elements on DOM addition and removal" example in that article uses a setTimeout() to wait an extra 1000 milliseconds before removing the element from the DOM. If you immediately remove the element from the DOM (like would usually happen if you do {isOpen && } in React), it'll vanish immediately and won't have time to play the transition.

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

#34
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…

Unity uses an IMGUI approach and it makes all the difference in the universe. Overriding an OnDrawGizmos method to quickly get at an editor viz of a new component is super efficient. There are some sharp edges like forgetting to set/reset colors, etc, but I much prefer these little annoyances for the convenience I get in return.

AFAIK, UE relies on a retained mode GUI, but I never got far enough into that version of Narnia to experience it first hand.

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

#35
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…

No idea why you're getting down voted but that was my thought as well.

With immediate mode you don't have to construct any widgets or objects. You just render them via code every frame which gives you more freedom in how you tackle each UI element. You're not forced into one widget system across the entire application. For example, if you detect your tooltip code is slow you could memcpy all the strings in a block of memory and then have tooltips use an index to that memory, or have them load on demand from disk, or the cloud or space or whatever. The point being you can optimise the UI piecemeal.

Immediate mode has its own challenges but I do find it interesting to at least see how the different approaches would tackle the problem

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

#36
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…

And blueprints take forever to wire up in my experience compared to just writing the C++ directly.

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

#37
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…

NEW QUEST: "These New Gaming Requirements Are Unreal"

OBJECTIVE: Any project that demands HDRP and Nanometric Mesh

BONUS: Find the happy path

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

#38
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

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

#39
post #23
post #19

Earlier quoted context omitted.

Yet it is the engine dominating the industry and beloved by artists of all kinds. To get UE games that run well you either need your own engine team to optimise it or you drop all fancy new features.

Being around back in days when LCDs replaced the CRTs and learning importance of native resolutions. I feel like recent games have been saved too much by frame-generation and all sort of weird resolution hacks... Mostly by Nvidia and AMD. I am kinda sad we have reached point where native resolution is not the standard for high mid tier/low high tier GPUs. Surely games should run natively at non-4k resolution on my 70…

You mean back in the day when 30 fps at 1024x768 was the norm?

New monitors default to 60hz but folks looking to game are convinced by ads that the only reason they lost that last round was not because of the SBMM algorithm, but because the other player undoubtedly had a 240hz 4K monitor rendering the player coming around the corner a tick faster.

Competitive gaming and Twitch are what pushed the current priorities, and the hardware makers were only too happy to oblige.

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

#40
post #23

Earlier quoted context omitted.

Being around back in days when LCDs replaced the CRTs and learning importance of native resolutions. I feel like recent games have been saved too much by frame-generation and all sort of weird resolution hacks... Mostly by Nvidia and AMD. I am kinda sad we have reached point where native resolution is not the standard for high mid tier/low high tier GPUs. Surely games should run natively at non-4k resolution on my 70…

You mean back in the day when 30 fps at 1024x768 was the norm? New monitors default to 60hz but folks looking to game are convinced by ads that the only reason they lost that last round was not because of the SBMM algorithm, but because the other player undoubtedly had a 240hz 4K monitor rendering the player coming around the corner a tick faster. Competitive gaming and Twitch are what pushed the current priorities,…

I don't play any online competitive games or FPSes, but I can definitely tell that 144 FPS on a synced monitor is nicer than 60 FPS, especially when I play anything that uses mouse look.

For me, it's not quite as big of a jump as, say, when we went from SD to HD TV, but it's still a big enough leap that I don't consider it gimmicky.

Gaming in 4K, on the other hand, I don't really care for. QHD is plenty, but I do find 4K makes for slightly nicer desktop use.

Edit: I'll add that I almost always limit FPS anyway because my GPU turns into a jet engine under high load and I hate fan noise, but that's a different problem.

Post reply on HN