Is iwyu beneficial to game projects too or just engine?

So far all posts about Iwyu point to the fact that it greatly reduces compile time for building engine from source however it does not state if game projects would achieve any significant benefits from it . I would like to know about it

It is beneficial for both because game projects no longer have to include the Engine.h header, which had a bunch of stuff that isn’t always used. With the IWYU system, you can only use what you need to use and not have to compile other header files that you aren’t using.

Didn’t he mean like if he gets a performance gain and if he didn’t can I add this to the question? The only thing I think of is potential RAM savings if you don’t use a component that was included in the engine header. But other than that, there is no performance boost ingame, right?

It has no bearing on runtime performance, it’s just a change to the include system which can potentially improve compile times.

It would really be useful to have a proper explanation of the intended setup of project modules with IWYU. The benefit you mention would be equally gained by simply removing any existing includes of monolithic headers from project pch files, without any other change. They were not forced on us before, other than indirectly via other engine includes.

From what I’ve been able to gather, switching to IWYU essentially means removing pch files, and specifying PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; in the .Build.cs file. This results in engine shared pchs still being included, but as far as I can see, no pch being autogenerated at the project module level, which for big projects could actually lead to worsened compile times.

No I didn’t mean runtime performance and so I didn’t write that either.