Code bloat getting crazy

Hey, I’m doing the upgrade here to 4.24.1 from 4.23.x and I was a little shocked at the amount of new code that keeps getting added to the engine, some of it of questionable need?

Specifically, Unreal Engine 4.24.1 (pulled from Github) contains 123,367 files. Of those, 29,042 files are in this folder: Engine\Source\ThirdParty\WebRTC. If you look at what is going on there, there are multiple versions and multiple targets under that folder that all contain very similar source code, 4000 files for each of 5 targets under rev.24472.

Please consider if it is truly necessary to increase the footprint of the engine by 30% to support one package in this manner.

1 Like

I haven’t checked 4.24 yet but I agree that the engine is getting somewhat bloated…

I installed UDK some time ago (with no intent of developing with it - just wanted to check a few things) and I was surprised how tiny it was. UE3 had a modular architecture very similar to that of UE4 but there was only a dozen of modules or so. And that was the engine that powered so many great games!

I have also checked UE-4.0.1 recently which was the very first version of UE4 from 2014. Compiling it took about 10 minutes on my machine compared to 30-40 of the most recent versions. And while it was not as stable and far not as feature rich as the most recent versions of the engine I must say it would cover about 90% of my needs as an indie developer with the notable exception being the lack of game UI system out of the box (UMG was integrated around 4.5 or so if I remember correctly)

I totally understand the direction the engine is heading to and I love the new tools it’s getting (especially the Sequencer, yay!) but I also think that Epic will have to start keeping an eye on bloating and start paying more attention to modularity at some point with better separation of “core” features (that 90% of users need) and additional features. Currently I feel like the engine becoming a bit Microsoft Word-ish where an average user would use only 10% of features. I understand that those 10% are different for each user though.

Above is from last year - comparing 4.21 with 4.10. Seeing the numbers stacked together is interesting… Personally, I really miss UDK… I still work with it and it takes maybe 15-30 seconds to install off an SSD - the whole thing… Its also a fully integrated environment (Visual Programming + Unreal-Script), which I miss the most. Overall, its just a huge time saver.

Recently I got a rig that’s not playing nice. It can’t even load-up the standard UE4 game templates. The only advice to debug it, is download Symbols. So what are they now - 25GB-30GB or more??? - And that’s not it. You still have to download Visual Studio too, which can run many gigs more including dependencies. Plus it isn’t free, as you give up privacy along the way to keep it activated etc. There there’s the optional but ‘actually required’ replacement for Intellisense (VAX etc)…

Whereas UDK / Unity 4/5 just had a simpler model. If Sweeney’s plan for a scripting language happens, I hope UE4 returns to copying that model and lets devs drop unneeded aspects of the engine as was said above, for two reasons especially. 1. Many devs on here have generously large SSD’s + HDD’s. But that’s not typical all around the world. 2. Not everyone has fast or reliable internet or is always online with easy net access. Many are stuck with just a phone…

Hohohoho… yeah…looks like they are going in the opposite direction here

I agree it’s getting ridiculous, I wish we could just download a “core” and then source for just the plugins that we need. That doesn’t even count half-baked features that are part of the “core” and don’t really work, like LPV.

Is it safe (or even possible) to exclude built-in plugins from an engine build?

Last I checked if you disable a plugin in a code project the plugin will not be built with the project. But you have to build your project not UE4 because UE4 will still build all plugins for the platform.

Also from my experience deleting a plugin from Engine/Plugins usually doesn’t do any harm. And if you need that plugin later you can restore it from your version control or from the original version of the engine.

Interesting…will have to try out the “just delete the ■■■■ thing” technique!

Recently I’ve been using unity to develop a mobile game and have really appreciated the direction they seem to be taking the editor. It looks like they’re moving a lot of the engine functionality out to packages that you can optionally download.