Maybe it is another instance of throw everything into the end exe’s and dll’s, like including all of the SDK’s and MFC’s. Maybe all of the Epic Modules need to be included at the .Build.cs level. Then let the compiler sort out what is actually in use and what is not. And let the compiler eliminate unused code. Then, basically, the whole UE Editor potentially gets compiled in to your game. But at least it resolves the missing dependencies.
It also seems to me like maybe it was bad coding practices, or a business decision. It seems to me that more control over the project build should have been an elevated priority. Then find another solution to replace the process of revealing the struct’s and classes to the Editor user interface. The priority seems to have been to focus on mesh construction and blue spaghetti; to get people started and not worry about the future ramifications of a weak project build foundation.
UE does seem to be pretty solid with mesh construction. I ran my game environment up over 200GB without much trouble. But the switch from UE binary editor development over to Visual Studio source code development, that has not been a smooth or rapid conversion. And a lot of development time got wasted as a result of inability to trace the code back to it’s foundation level C++ base. I think, mostly due to the indirection created by the Reflection system and the UHT and UBT.
My feeling is that all three (Reflection System, UHT and UBT) need to be replaced. Leave the UE Editor to do what it is good at: mesh construction, asset management, quick prototype testing, etc. But remove the main coding and compiling from the UE Editor environment, and instead leave that up to dedicated tools. Like as if Epic tried to pack too many jobs into one application.
I opened a new github repository to discuss how to fix these problems. And also a private sister repository, for those of us who agreed to the Epic EULA, where we can discuss actual source code changes. Link: GitHub - TimReago/UnrealCoreRedesign: Redesigning the Unreal Engine core systems to eliminate UHT and other non-standard C++ features - with focus on stabilizing the build environement for small dev teams.