Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm sure projects like chromium and llvm would love for you to just fix their build times.


And Unreal Engine too, please.


I used to work for Epic, and I did a good chunk of work on the game projects build times with reasonable success. Unfortunately I couldn't really change too much inside the engine because of backwards compatibility. Removing headers from other public interface headers has the possibility of breaking users code, which is a no-no so their hands are pretty tied. There are definitely some big wins to be had if they're willing to break back compat though!


Even without that restriction it's not that easy. It generally comes down to a choice between:

a) #include <vector> -- Lots of dependencies, but I know it works and I don't want to reinvent the wheel

b) #include <my_vector.h> -- Ok, I'm going to reinvent the wheel, but at least my wheel might have slightly fewer dependencies.

c) //#include <vector> // I'll just do without the wheel entirely


With ue4 that's not really the problem, it mostly falls under category b). The problem is that a bunch of stuff has unneeded module dependencies that hide the real dependency tree. Say a.h includes b.h but doesn't use anything from module B, but b.h includes SomeFundamentalHeader.h which a does need. The choice here is leave it alone or fix the dependency but break any user code that relies on the same behaviour. I did just that in a few modules that were new and off by default but good luck making a change like that in any commonly used modules.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: