Source code too long

You (Epic Games) have me a little tired… you are very lucky to collect a 5% royalty over 1Million dollars. If not, you would not be where you are.
I hope one day something nice enough to instantly migrate comes out.

It seems unfortunate and unwise that UE5 needs the source code for the dedicated server and that it weighs >180GB.

I am used to working on 250 GB disks, since we are not in 2030 to be using 1 TB to “work” not play.

Any argument that I have to say in favor of Epic Games is easily refuted and with possible humiliation to the rebuttal, but it is not worth my time for each secondary account that would like to refute it. I wanted them to know.
(Surely someone will appear saying buy a TB. I will not repeat it, you have been warned)

I don’t understand why you need “all” the assets, sdk (all the platforms), tools, Debugg Symbols, … just to make the dedicated server.

Since you could make a listening server with C++ that would be practically two .h and .cpp documents, with some synchronization.

But Epic (some less intelligent user) thought that I would have to make a project of more than 180GB to make a dedicated server (with all the necessary settings). A round of applause for those mentalities.

I’m still compiling…

Will I have to buy a 1TB drive? Thank you enlightened mind. I hope they raise your salary. If it were Elon Musk we wouldn’t even have this conversation.


">180GB. Can we laugh right after +12 hours? I would not laugh at the situation. If it wasn’t for the luck of working at Epic Games, you might as well be starving right now, as there are too many good engineers wanting your chair. He doesn’t touch my balls too much.
How lucky you are that the food that comes most of it is paid for by users who have been successful and companies like tencent. Give thanks to heaven. It’s not because of your pretty face or your college degree, you were lucky. Do you know something? Luck does not exist. You see counting the days for someone to occupy your workplace.

Is there a way to make a dedicated server (with UE5 code), without using a manual one in C++?
I would like an answer.
Yes, and how. If you can’t just say no, I don’t want to hear your argument about why I can’t.

Bump.

Just a guess, but when you installed the engine, did you happen to pick platforms you won’t need? EG: installed the Android bits when you only need Windows, etc?

I’m still fartin’ around so I have NO idea if there is an impact there, in compilation, but I know it has an impact on the install-size at least. Maybe there is a knock-off effect?

Just a thought…

1 Like

?
Please, I am waiting for an answer from an expert, not an amateur. Tell me what position you hold at Epic Games and how come you don’t know about the case. It may not be your sector.

Just to note, I was trying to help. Sometimes little mistakes are the one’s we never consider to check (hence it’s always the last place to look).

But good to know no good deed goes unpunished…right?

And just to point out, when you find yourself in a very unreasonable situation (such as described above) it does generally tend to be a PEBKAC issue…

6 Likes

The engine is a wide toolset, so to have a variety of tools you need to have a larger codebase. if you are compiling from source you can start chopping things out, that you don’t intent to use, but do so at your and your projects own risk as there is a good amount of coupling within the engine itself.

unless you are spinning up several forks on your system compiled from source 500GB should be reasonable.
with 2 full binary installed Engine version both together come out to 230GB, with the extra stuff needing to compile the binaries locally 250 to 275 then your projects are as big as you make them.

programs get big.
In all reality I don’t think anyone from Epic would respond to this thread especially as OP is more interested with spamming then actually listening to reason (regardless of the speakers position)

right now you are effectively “asking for the manager” in an open forum, if you are shocked you got push back then maybe you should evaluate things.

5 Likes

I was going to answer, but after reading this, I won’t, because your behavior matches very well a large number of previous people where the discussion will never work out.

You clearly need to work on your “living among human beings” skills.

In the meanwhile, buying an additional $100 additional hard drive for the machine that needs a $1000 graphics card to run the editor properly is not a tall ask.

I really hope you realize that the one common element of all the problems you have in life, is in fact, you, and seek help. Help really is available, but actually seeking it out is a super tall barrier to climb. I wish you the best of luck!

6 Likes

ummm,
if you are so great at social logic.
if someone walked up to you and started "yelling’ as you put it:
Why are you so bad at your job, why do you have your job, ANSWER ME NOW

would you answer them, would you walk away, would you ignore them, would you call the police?

the only nonsense here is the person posting on a public community discussion, and support forum that “community members are not allowed to talk to me. I am trying to get the Manager”

the source files take up space, and the compiled binaries take up space. no one is refuting that, and if that space is not a reasonable ask to run the engine then strip those things out, or use a different engine. one that is lighter weight, or takes up less space.

the only people who think how much money a person makes, or the position they hold as to whether or not they can speak on a public forum is an A Hole at the least and an Authoritarian A Hole at the worst. In the long run I am surprised a moderator has shown mercy upon you, would you show the same?
maybe it is your intention to act in as belligerent a fashion as possible, so that when your account is moderated you get to seam like you were the little guy standing up the Goliath, but then when you show people this monument you have constructed they can just roll their eyes, and ignore your righteousness.

2 Likes

What an unfortunate attitude of a couple of Unreal Engine people deleting the posts. You have no argument and delete comments. Too smart. Don’t worry. You can raise your ego points with hearts. :wink:

Why don’t you delete the post and permaban this account?
The post won’t do you any good. Just your four minions talking nonsense.
What do you intend to mark authority in me?
You can permaban the account or IP.
I do not see what the problem is.
Wait, I’ll give you an argument, “attitude”. I think it’s easier for me to tell you before asking your superior.
Sure, you’re right, I’m asking you so you have the right to do it. “Bravo” if you think so.

plausible reason for removal of the posts:
the posts made several insults and threats at (not requests of) Epic employees; almost to being abusive.
the posts were spamming the same videos between them (US TV Gordan Ramsey clips which you probably fail to see the irony in why you probably even chose clips based of that Caricature) which were supposedly also targeted towards Epic Employees and potentially at members of the community.
I will make a small note on the “your four minions talking nonsense” this is probably founded on the notion ‘anyone who doesn’t agree with me must be defending something that could be thought of as a larger organization must be under its control’ which fails to understand grouping behavior and several social structures held by many Societies. maybe we have more experience or understanding of the Engine, or apparently Software in general.
After looking through all the posts remaining on this thread. besides the value judgements based on your posts; the replies are mostly concise and give very clear statements to help alleviate your issue, and yes sometimes that does mean needing additional or different hardware to run the desired software.

based on official documentation

Epic “suggests” a 2TB SSD projects drive

this is probably an over-provisioning from the business mind set of over provision so the worker doesn’t run out when they need, the reason is probably because Epic Employees are somewhat expected to work with large projects as part of game development (many of which would be confidential), or need to spin up many projects to troubleshoot, and rapidly prototype. it could also be that they were able to purchase a bunch of 2TB drives on a large bulk discount because Economies of Scale

  • this number would be an over-estimation where 500GB (actual 1024MB/GB so because Hard drive makers this would be labeled like 520GB) would be fine for engine binaries (source compiled, or installed) and a couple medium to larger projects, but 1TB would give more then enough room to grow

on to the actual topic of the post:
The source code is “long” (which I will be generous meaning “Space taken up by Compiled Binaries on Disk” or “the Engine is bloated with unneeded stuff” and not a uninformed simplification) because Unreal Engine has a large breadth of tools within it, and if you don’t have experience with Software Development: in order to have a large breadth of tools you need more classes, classes, and code lines in C++ become Assembly in the form of binaries.

the Engine is granted Open Source (if you choose to compile from source) where you can remove parts you don’t need/want; if you or your team don’t intend on working with VR/AR/XR then rip all the Head Mounted Display module out. if you don’t ever intend to ship on Adroid/IOS then rip the Module out.

  • for EGL installed go to the Engine section of the launcher, on the Tile for the given Engine Version click the down arrow and click options then uncheck the Modules you wish to uninstall.

if you really do think the actual code files are too long:
in a compiled language like C++ amount of derived Assembly/Machine code that is generated into the Binaries is kind of comparable to number of code lines, but this is ignoring the Trusted Magic Optimizations that the compiler does trying to optimize out context switches for “short execution code”, potential safeguards of data types, sometimes even stripping out libraries and code chunks that weren’t actually used.
that being said more verbose code is more readable code, and most of the engine (outside of the math libraries) are written in a readable fashion first, and then optimized for performance, but again C++ code lines don’t directly map to resulting Assembly/Machine code and Binaries size.

Teams choose the Tools they work with based on many factors Price/Complexity To Learn/Feature Set usually “size on disk” is secondary if not a non-issue. should I expect to install a Final Fantasy 16 on a 1.4MB floppy; at least 20-40% of the average games install size is the Engine it was built on the rest being the Assets the game is composed of.

if you still think this is non-sense then you probably should look into a different translation tool.

2 Likes

I have finally finished compiling. I wanted to see it with my own eyes before telling you anything.



Today you will learn something.

Two somewhat peculiar parts, don’t you think? Attacking in the first part in this way and that your comment is not deleted already makes me think. Attacking in a petty way and then arguing with assumptions without finding a firm solution is not good for you. I recommend you actually work at Epic. If so, you would have argued forcefully and not with mere assumptions. But first we will go to the first point.

I think I made it clear that I preferred an answer from an expert…

“The posts made several insults and threats at (not requests of) Epic employees; almost to being abusive.”…

?

Do you feel better now? vent I’ll give you hearts to bring down your bad mood if something digital makes you feel good… You can say what you want since my posts were deleted (you can even say I threw a dirty napkin in your face). (Not really deleted, someone has the evidence, keep making that argument, it could hurt you.) It is important to know how to distinguish what I say, if you do not commit perjury. Accepting reality or making a destructive and threatening attack (like yours) are two concepts beyond any understanding. It is important to analyze correctly. The simile with the videos is more than valid (offensive for you and your comments, funny for me) with your arguments.

I would go through each of your points and rebut them (“all” of the ones you said). The problem with this is that they are going to delete the post again, therefore, there is no value in arguing against each point again as I have done before and insisting against a wall, it does not make sense if it is deleted in the end, therefore, continuing to refute it lacks meaning and time for me.

Interesting that the attacking posts towards me stay and the truth is erased. You erase the truth. I prefer my way of acting.

Each of my value judgments was given by the “four nonsense that was being said.” My value judgments went from being judgments of fact and it is a fact. Therefore, they are no longer value judgments. Important clarification.

However, with whom I already had to contact, I already did. What you can or can’t say about it…

Let’s go back, I’m just going to enter above, since this post could be deleted again and invent that this post would be another attack (you can see the duster).

The problem is that in UE4 they were over 100 GB

In UE5 they are over 250GB

In UE6 I’ll have another one like you saying, (buy a 2TB drive)…

In UE7 another like the previous one… All of you are too many for me…

my son in UE8 will be complaining like many users of using too much TB.

I don’t know if our books are different… I don’t get it and look, I’m trying.

A good listener few words.

I think the problem is exactly you are looking at my finger and I am pointing you to the moon. You don’t see the space-scalable and dangerous problem that is becoming Unreal without using a modular system.

But since you are not the executive and you do not lose x Millions of dollars a day, you are not even interested since you have no idea of what they earn or lose. It is the difference between a fan and a manager. The company loses money for mentalities like yours.

This is a fact, you are going to have to migrate Unreal Engine in parts, you like it or you don’t like it, it is not necessary for someone like me to come to say it, is it?

But if you want to think that the best way is in a bigger memory…

  • Buy more storage memory, a bigger house, a bigger car, …

… you can also buy a larger brain.

Well, it’s quite unfortunate (and no, it’s not a subjective opinion, it’s more objective) that to make a dedicated server (you simply need a while with the sockets class and its own listener and a client that connects by socket to that IP/port) less than 1 MB you need to compile this nonsense.

It doesn’t fit in my head and I don’t want to (no, it’s not my problem). At this rate, the TB will become obsolete. Maybe in America you launch rockets to the moon every two days. Not here.

Just finished compiling (without opening any projects).


When I have to load a project how other files are going to be compiled or created… I don’t even want to imagine it.

and this is just the engine. Not counting:

1 - The versions (Version 1, Version 2, Version 3, Version n+1)

Note: If you are going to keep 3 versions (5.0, 5.1 and 5.2 or something from 4.x) they will eat up the TB and you need another one. good mentality

2 - The projects

3 - Plugins

4 - Frameworks, libraries…

… I would be there all day.

(Although it is true that I said that I would not refute anything, this argument made a dent in me)

“This is probably an over-provisioning from the business mind set of over provision so the worker doesn’t run out when they need…”

“Probably” to being “really” is a long way off.

Therefore, if we have a moving truck… of course! let’s put it all in. Employee of the Month.

Why do we need compartments (docker or some modular system) to take what we want if we can do it all in one?

Why do good practices, right, if EPIC does it its way?

We could put all the C++ code in a single file of course. would it work? of course. Let’s see the brave man who modifies a line of code.

I would detail the most specific use case for all your points, but, this post may be deleted and until “someone with a project manager or director badge from the divine almighty heaven” comes, in that case, let’s continue…

Never as a Java programmer, never in my life, never, have I seen that I have to need more than 20 GB for an engine, sorry, Unreal Engine ~250GB. That’s 1250%.

The engines grow progressively either 5GB or 10GB. Unreal grows at a rate of 100 GB more than its last version (which was over 100 GB, therefore double x2 (x2, do you understand?)), this doesn’t make sense.

The problem of removing or not removing parts that you don’t want, sometimes there is some functionality in those parts that removing them can cause problems and especially some missing tool for the project. Who knows if I will need it in the future? Can you assure me that it will not give any error when removing or not removing modules to suit without a manager? (Can you pass me the technical license that when I have a problem you will come from the US to Europe to solve it?).

A lot of things can happen when you build with a certain codebase and then removing or not removing a dependency or adding a dependency when the project is already built can cause some problems.

So here is the solution to the problem as a summary.

Unreal Engine 5 has a great breadth of tools and functionality (too many not necessary), as well as it requires a great amount of resources to work properly (they can be modularized and optimized). To mitigate one of the problems, you can use containers (docker or other system) and modular features, which allow Unreal Engine-based applications to be packaged, deployed, scaled, and customized efficiently and flexibly. These technologies make it easy to develop and deliver high-quality interactive experiences across different platforms and infrastructures.

Note that it doesn’t tell you EPIC. For all INDE users or small teams. If you’re going to do something to Epic’s “standards”, be prepared to work with:

1 - 1 TB nvme (only and exclusively for engine “things”, source code, plugins, frameworks, libraries, versions…)

Note: If you are going to keep 3 versions (5.0, 5.1 and 5.2 or something from 4.x) they will eat up the TB and you need another one. (The checkout removes the version directly…)

The “Employee” (who does not spend “1 single euro” on his computer at his workstation, because his computer is paid for by Epic Games) is thinking: “Why don’t you buy a disc”… I would get too violent, but it would not be the right place or time.

  • and I could tell you, why can’t you have a bigger house? Don’t you earn enough at EPIC to buy a 5 Million house?

  • It’s like saying to Michael Schumacher, “Hey I want to race and my 80,000 euro car is slow”,

Michael Schumacher: “Then buy yourself a faster car”

It’s not good to think like that.

2 - Another disk, 1 TB for large projects.

If you use 100GB examples you will have to buy a third TB.

3 - 16GB Ram minimum (and you’ll do like a croquette). Like “minimum” 64GB Ram (if you don’t want to experience delays). Recommended 128GB. In big projects.

4 - Graphics card and CPU… what to say, prepare to spend money.

Therefore, what do you need if you want to work well:

https://www.amazon.es/Sedatech-Gaming-Expert-Threadripper-RTX4060/dp/B0C9N2P7TL/ref=sr_1_9?keywords=pc+128gb+ram&qid=1689880560&sprefix=pc+128%2Caps%2C113&sr=8-9

https://www.amazon.es/MSI-Creator-12VTF-1050IT-Desktop-i7-12700K/dp/B09TFZYCVC/ref=sr_1_6?keywords=pc+128gb+ram&qid=1689880612&refinements=p_36%3A9733340031&rnid=9 733333031&s=computers&sprefix=pc+128%2Caps%2C113&sr=1-6

You can find them cheaper, of course same as mentalities (like cheaper, slower). If it burns you or something, don’t worry. You make a call to Epic and they change your PC, car and house. You just have to call by phone.

If you don’t have this, I can say that you will have an experience, like 60% of people.

So “MINIMUM” to develop something decent 2 TB. A round of applause for the project manager.

We must thank the project manager for such a feat. Thank you.

I understand that you may want to delete comments, but it’s important to remember that competition is something that cannot be deleted or changed. There may be opportunities for improvement in the future, and I am “sure” that you will be able to overcome any obstacles that come your way.

This post at least has to be read by users, by small developers, by small and medium INDIE teams. Then if you want in a month you delete it. But let people know the truth.

I don’t care if I have to go down to the arena and I have to fight with the 4 on duty and get my pants dirty, this is going to be heard and thanks to it Epic Games and other companies that are above it, in the future will take action on the matter. In the future we will have modular projects for the community and large companies thanks to the fact that a few like me were screaming until we were hoarse, a few of us fought so that the community can have what it has to have, it is a more than justified battle, I want things to be done well for small, medium, and large companies, enthusiasts and indie teams and those with power who are not competent… well, time will tell where they belong.

Reminds me a bit of women’s rights.

It is a bit unfortunate that what was talked about were simple banalities from random to random without talking about anything technical and the bosses did not even pronounce themselves. Let’s hope Epic continues to rule, otherwise…

This cause, no, you’re not going to win it by saying buy more records. This cause has already been won before I opened my mouth, it’s called evolution and no, you can’t fight it and if you try to say nonsense like (640K ought to be enough for anyone) I’m going to run over you like you’re a chrome. You don’t understand the reference with your arguments? not my problem. (I am going to explain it to you since surely you are thinking about things that you should not.
“640K should be enough for anyone” we are not talking about more space, we are talking about evolution.)
I am lucky to have been born here and have very clear people to see things.

Now delete the post and tell everyone that I have thrown a rock at you and that I am racist. I’m sure you’ll feel better. That is called not seeing reality. When you delete the post, tell them that I told you horrible things. People will believe you. Everything you can say after this comment. Okay, you’re right. I am what you want me to be.

“And yes, the forms are correct” with people of “this caliber”. Those who answered, with what they answered shows that they did not understand anything. “Threat or reality? The truth hurts”.

We could be arguing forever and he would always be right. But since this is going to be deleted… you are right in “everything” you say.

There is nothing worse than a fan. It is not your company and companies have to adapt to evolution, not to the nonsense of manually removing or adding modules or buying disks.

Now do you understand the nonsense you said? When you have your company, then do you think, in the meantime, I wait for someone qualified (like a director, which from what I see you will never be)… but it is no longer worth my time, it has already shown me which foot they are on.

Now say that this whole post proving reality is “bulls… poop”.

(I think there are words (of children) that are not yet known and could be prohibited, attitude…, the personification of falsehood here)

The day a small user is reading:

“When you have this image installed, you are ready to build your game”

User: downloading the image and compiling

User: “Wow, I just compiled the game and it’s next to nothing”

User: running your game :heart:

That day, I will really be happy :heart:, but for many it will be SPAM. I hope everything goes well for you with that mentality in life. Seek happiness elsewhere, since by supporting what is not correct, you are simply falling very, very deep. Few very few make the roads and few know how to walk them.

(It reminded me of this. Is it a threat to you too? Do you see threats where there are none)

https://www.youtube.com/watch?v=YN9N5mZSFx4&t=54s&ab_channel=HouseM.D.

Now if you want, you can come down from the clouds and give your opinion in a constructive way (as long as it does not depend on any salary or ego) about the possible improvements that this could have, you are welcome. No hard feelings. I don’t hate anyone (Great weakness they tell me.)
It is not out of elitism that a project manager is preferred as he is trained by his long career to answer the question.

Steam wants 30% share when you release a game on the platform and that even immidiatly after you start selling your game… So selling a game that is 15$ you get roughly only 10$ back per game :roll_eyes: which is in my book rip off. You sell 1 million of your game and then have to give 300 000$ to steam then haha you will be lucky to be able to pay the 5% to epic if you could instead giving the 300k to steam 100% … Epic don’t charge anything if you put your game on the epic store and even the first 1 million is free of charge for using the engine…

Epic are heroes compared to other’s… Shout out to Tim Sweeney :wave: :sunglasses:

What % of small indi game dev’s make over 1 million anyway…

3 Likes

most of the Size of the Engine is centralized in the Editor, and anything else in your code marked

#if WITH_EDITOR
// stuff here
#endif

there is also a segment responsible for Unreal Header Tool and Unreal Build Tool creating the reflection system (“kind of” imitating a JIT architecture for the Editor and placing Garbage Collection into play)

the engine is modular already: through modules which I and others in this thread have pointed out (but you were so fixated on the commenter not having STAFF labeled on their account that you called it nonsense and ignored it), so you can remove those modules at opportunity cost of the features. You want to remove VR/AR/XR then remove Headmounted Display MODULE, and when compiling from source if you want to remove Nanite, then remove the Nanite MODULE.

Size on Disk for your server will all depend one what your server needs/does.
if the server is doing telemetry (taking in specific things in the users game through HTTP then logging it) then it probably doesn’t need to be that much of the engine, heck if it is just taking telemetry then it might not need the engine at all, just set up a schema such that it takes the packets the game sends through HTTP, and done.

if the server is running Host authoritative game code then when you go to package it the Build Tool will exclude from the executable what is marked explicitly as client code, so it will be smaller then the client code, and the Clients executable with have the Server code stripped out preserving the function calls, and the receiving functions.

if you just look at games made with Unreal Engine 5.1 and required size on disk: Lords of the Fallen (2023) made in 5.1 is stating 45GB of storage space in the system Requirements. meaning that not all of that size goes into the executable (most of the Engines size is the Editor)

on the Comparison with Java that typically a pure JIT architecture so the Engines can be smaller because it is reading in Object Code into active memory on the fly. While C++ is a pre-compiled language, meaning that we need to generate Assembly/Machine code in the form of binaries which can be similar in lines of code to instruction statements of Assembly (though a single line in C++ could result in 10-20 Assembly instructions, while 5 lines discounting Braces in C++ could result in 2 Assembly instructions).
Comparing a Java program/engine to C++ is not directly equivalent Java can have a smaller size on disk, but a higher memory and processor overhead as every instruction has to almost be generated on the fly, while C++ takes up a bit more size on disk and allows for direct memory management.

Even Unity a primarily C# Engine (I believe they fully deprecated both their flavors Java support) has a C++ back-end for memory management, as a result Unity Games tend to be smaller on Disk, but have higher memory, and processor overhead.

for the VersionX segment: if you mean full on compile from source for each version of the engine or separately for each game project this might be overkill, unless for each project you need to separately change how the engine functions. for most teams if the engine needs to be modified to need then it is done iteratively, and then when extrapolated to larger teams you want to mitigate large change it work flow if possible to allow for productivity.

for porting your projects from one engine version to another. try to work in the engine version your current project is in. if a new Engine release has a feature your project needs then spin it up, and try to migrate your project as much as possible, then when you are done migrating remove the previous Engine Version.

Ok the amount of space required for the engine is increasing, but also the cost of storage is decreasing over time as well, so buying an SSD with 500GB (even 1000MB/GB drives) 3 years ago would now cost similar if not less to buy a 1TB SSD now, so if in your dramatic reenactment UE8 does take 2TB for the engine then maybe a 2TB drive at that time might only cost $50…

when it comes to the Epic Game Store cut, and the Unreal Royalty I have seen accounts from developers that the extra discoverability of Steam (with a 30% cut) makes the amount of money “earned” from releasing on Epic a rounding error compared to revenue from Steam sales. the difference in revenue cuts only has direct impact when you are talking in the hundreds of thousands to the Millions (and Epic doesn’t even charge their Royalty until your Net Income goes over a Million which back in UDK 3 it was 250K then 500K)

finally “A Man who is Kind to you and mean to a waiter, is not a Kind man” think on this for just a moment.
each person commenting here has tried to give you steps to help your situation (to varying degrees of tact), but you “wanted to talk to the manager” so much. This is an Open Community driven support forum, where from time to time Staff can comment, but they are under no obligation to do so. (Similar to you not being obligated to answer your phone every time it rings, or reply to every Email you receive), and even in your first post it amounted to ‘why do you have your job if you are so bad at it’ if I got an email like that I would maybe read it, but then I would ignore it.

When the only interaction with an individual is done through text it is not a stretch to act as though they are talking directly to you, and yes words can have impacts (many historical conflicts are the direct result of words on a page being not “received well”)

2 Likes

I am surprised by the quality and solidity of your argument and such detailed and specific knowledge in some areas of my field from another field. I think it is a very reasonable. Awesome observation with Java. I will try to contribute my grain of sand to find the solution to the problem.

The argument that they have given me to optimize the project and reduce the size of UE5 is that modules can be removed or added according to the needs of the project. According to UE5, modules are the building blocks of the Unreal Engine software architecture, therefore modules have specific functionality.

According to your argument, a module can be removed if it is not needed for the project, as you say it is “modular”. However, this argument has several problems:

The procedure of removing or adding modules is not easy or fast. It involves a series of steps that consume time and resources, such as: determining which modules are required, which are dependent, and which may be dispensed with in the future; run the corresponding .bat files; compile the project again. This methodology is neither efficient nor feasible to optimize the project.

It is quite complex to know which modules can be removed without causing errors or problems in the project. There are dependencies between the different elements of the project that make it difficult to remove or add modules. For example, if you want to remove support for virtual or augmented reality (VR/AR/XR), you are supposed to remove the HeadmountedDisplay module. However, while reviewing this module, I have not noticed that these modules (VR/AR/XR) or plugins within the HeadmountedDisplay https://i.imgur.com/iabbtx5.png.

I have tried to see the modules that you mentioned above, and I see that their weight is quite low https://i.imgur.com/IobXBKO.png compared to 200GB. It is true that there are C++ classes and plugins within the engine with the names XR, VR and other related names https://i.imgur.com/VMgp8ah.png, https://i.imgur.com/tyyizce.png, https://i.imgur.com/edbfJju.png. But I have not found a direct relationship between them, possibly they depend on another module or bridge plugin that I have not been able to identify (due to not having the necessary time) and many others that use XR, VR, but this would make the explanation too long with many photos. However, this does not solve the problem of the excessive size of UE5.

To really remove a module, a very high knowledge of all the modules and their dependencies or those related to it is required to know what can be removed or not. This is a problem because the project is of great magnitude and complexity, as I already said before.

The documentation on the modules is insufficient, since there is no area on each module and its operation. There is no detailed explanation about what each module does, how it is related and its dependency with other modules, what consequences it has to remove it and others. Most C++ code documentation is simply an automatic generation from automatic comments, which provide useful background information. But there is nothing in relation to the modules. It becomes impossible to trace the deep connection that exists between each element. Instead of being organized, the code looks like a maze if you have to look up a module’s dependency based on the C++ inheritance diagram for C++ (or even from your IDE). If there were a tree diagram graph of the modules, we could know it in an instant or with less time invested, with a simple glance.

Spending n hours (running the .bat files and compiling the project again) to delete or modify an .xml file and a .cs file, is a bit dangerous in time estimation. Removing a module manually without knowing its implications doesn’t seem very reasonable. If the documentation were well done, then you could see which modules are dependent on and required by other modules, but since the documentation for much of the C++ code is simply an auto_generate_from auto_comments, it becomes impossible to trace the deep connection between each element. Instead of being organized. Most users who are not part of EPIC GAMES do not have access to deep knowledge of the modules. We don’t know if removing “x” module will affect another related plugin that talks to HeadmountedDisplay or performs a specific function. https://i.imgur.com/MI8szjn.png

We have to proceed with caution and we cannot do it for all modules, since it implies analyzing the entire structure of each module, its depth and its environment. If they had a tree diagram graph, we could tell in an instant with a single glance.

I have to first follow the steps in the documentation and run the setup.bat which already occupies a considerable amount to be able to delete it Downloading Unreal Engine Source Code | Unreal Engine 5.2 Documentation and then copypilar. Then before compiling it with the IDE I can already remove the module and hope that the compilation doesn’t fail.

https://i.imgur.com/gc5HXxI.png, but how do I know if I’m right to delete a module? https://i.imgur.com/Vxo3TZY.png https://i.imgur.com/c93NNCk.png

To remove HeadmountedDisplay (you have to go through it in the .bat) you would have to wait some time beforehand, then delete it and finally recompile it from the solution. Time and resources too valuable. Would any other module be just as simple? I don’t know the scope. But there are too many errors on this subject on the Net.

"With an image, this problem would be solved in “seconds”. How for example to integrate docker or some gesture system with UE5. Removing or adding modules at “personal discretion”, does not seem to me the best strategy unless you have a close relationship with the UE5 backend team, in which case, it would be like removing or adding books from the shelf (even asking the colleague next door if you have any questions). For more than 95% of us, we cannot assume that time, be it 30 minutes, 4h or 19h to recompile again. So most buy a lot of TB and don’t complain and show good attitude. However, if some customer wants something custom, you just make it for them and it’s all solved. This is the reality. It’s very attractive to say that you have something modular with removing or adding modules could cause… countless problems.

Of course, with the images (no builds again) since the image is already “compiled and pre-compiled”. The good thing about the images. This greatly saves the development of both large, medium and small projects.

I don’t agree with how you think about storage and price ratio over time, that way of thinking doesn’t mean we have to put more stuff into the engine every time we get something new. Systems evolve (they become decentralized, whether it is a CDN or another), that is, things change looking for a prolific evolution.

You can think like this (the larger the project, the more space), but I do not support that argument at all. It is not correct although as time goes by the cost is cheaper and for that rule we have to have a 5TB disk. That’s outrageously large in 2023. It may be normal in 2100, but not now.

The one currently occupied by the engine can be used for other needs. I can’t imagine one day having 5TB where the engine weighs 2.5TB. That means something is being done wrong. “So it would be right to buy more storage”, I don’t think that’s the idea, instead it would have to be decentralized as well as optimized for use of space and with respect to Engine code.

I keep reiterating that the modularization of UE5 is not manually removing the modules and changing the references by hand in case another module or plugin does not find the other module, that is a preventive patch. As the project grows, there will come a point where there are hundreds of modules intertwined with each other (deeply) whether they are called in a function or whatever. Modularization is a good design practice that helps you optimize the use of space and code in the Engine. For example Docker or another system.

I speak of docker because it is the most popular and competent for this type of feat. If I could talk about Winzip I would talk about him.

An illustrative case is the following:

  • If a mobile application developer only needs to create applications for mobile devices, they would only need the mobile image (the one that contains all the SDKs, all the modules for Android and IOS and their correct integration).
  • In my situation, I would only select the images of: PC, Networking (Multiplayer) and others that I found useful. (Other images not relevant to my project should not be present)

It would be as simple as asking yourself, “What do I want to do?” and the user in question chooses the type of image based on the project and their needs.

If in the future you need another image, simply adding it would be enough (no compilation problems since they come compiled, unless you need to change the source code of the Engine yourself, which is another matter, in this aspect if you change something manual of the engine itself, you would need to recompile the images that were attached). Instead of having a project with an exorbitant size.

Therefore, we don’t know which modules consume a lot of storage (unless you go looking from windows and calculate in properties…) and are removable without affecting the project “at all”. This is a very high risk to take with compiling the entire solution.

Regarding Java, everything is correct, nothing to object to. +A very good.

What I wanted to refer to is that as a programmer I have never seen any “Game Engine” grow in such a way regardless of whether it used Java or not. He may not have used the best words.Including Unity which is the rival Unity - Manual: System requirements for Unity 2023.2 (beta) and of course the eternal rival. System Requirements - CRYENGINE V Manual - Documentation None of them reaches 20 GB neither in storage nor in Ram.

Steam was never talked about, however, Steam has a little different tools, thanks to its personalized recommendation systems, its exploration filters, its wish lists, its user reviews and its tags, it makes a pleasant store. Epic Games Store has around ~2K games

Steam has a massive library of ~95K games. Therefore, there is more variety on Steam.

Epic Games, as we all know, has exclusivity when being on its platform and this is seen as an anti-competitive practice (what is known as monopoly) that limits the freedom of consumers and developers forcing them to stay here with their restrictions (masked by many attractive offers).

Steam, on the other hand, although much more expensive, offers more functions and services to its users, voice chat, streaming, cloud storage, the Steam Workshop, the Steam Controller and many others that are not relevant. Even the Unreal Engine (multiplayer) subsystems can be connected to Steam.

But the user is who has the last choice.

There is one aspect that must be taken into account, EPIC offers a better offer than Steam since it has always been more favorable.

While epic offers 12/88 steam is 30/70 t 20/80 depending on sales. That is, steam keeps a commission of 30% and 20% (depends on the contract and its sales). while Epic only keeps 12 %.

So EPIC generally gets less, but doesn’t need more.

This can be an incentive for small developers to increase their own profits. Steam makes up for it with offers.

There is a battle between EPIC and Steam and both are good overall.

EPIC cheaper, Steam more people and more services. They are even.

We can say, EPIC = profitability, Steam = Accessibility.

If I’m not misunderstanding, Valve takes 30% of revenue when a game is released on their store. Developers can opt to earn an additional 5% if their games achieve more than $10 million in sales through Steam. Therefore, they have conditions if they meet certain requirements. If sales exceed $50M, the extra percentage goes up to 10%. This means that Steam only drops their commission by 25-20% in very rare cases, while Epic keeps their commission as a constant 12% for all games, regardless of sales or what engine they use (so you can bring a cryengine, unity or other game with no problem). If they use the Unreal Engine and sell their game on the Epic store, they only pay 12%. If they use the Unreal Engine and sell their game on another store, they pay 12% to the store and 5% to Epic, as long as they exceed $1M in gross revenue.

No, it’s not just 5%. The commission that Epic keeps for the games sold in its store is 12% regardless of the engine.

If you generate $1,003,000 the 5% commission for the use of the Unreal Engine is not applied on the total gross income of the game, but on the excess of $3,000 per quarter. That is, if a game generates $1,003,000 in a quarter

Therefore:

[quarter] = 1
[Gross Revenue] = $1,003,000
[Epic Store Commission (12%)] = $120,360 (0.12 * $1,003,000)
[Net Revenue] = $882,640 ($1,003,000 - $120,360)
[Unreal Engine Commission (5%)] = $49,850 (0.05 * ($1,000,000 - $3,000))
Final Revenue = $832,790 ($882,640 - $49,850)

Total commissions are $120,360 + 49,850 = $170,210
$170.210 / 1.0030 = 16.96%

[This is a fictitious estimate, we already know that this is not the case, why it could vary, but it is an estimate] Now we have to multiply this x4 (since there are 4 quarters)

So if you make an approximation and say that the quarter is $170,210 *4

Annual would be: $680,840 or what is the same as 67.84% annually.

You have to do that exercise quarterly.

Based on your last argument.

I understand that this comment about the analogy of the waiter and his kindness means that my attitude towards the forum staff was quite bad, unfortunate and not very accurate, however, I don’t think that what happened shows who I am. However, I think your argument has some points that could be argued.

Your argument is based on an analogy between being rude to a waiter and being rude to forum staff. This analogy is false, because they are not comparable situations since “at no time did I ask for an explanation from anyone on the forum” except for a professional such as a project manager (one who has enough experience to argue why it was done this way and why as well as an optimal solution). Rude and picky are not the same. Excigency becomes rude when it is specifically reiterated what the problem was and who “should” have answered.

If I have a problem with a car, I probably won’t go to this forum, I’ll go to a mechanic. The same with a DR and the same with each specialist in his sector.

A waiter provides a service in exchange for a salary, and he/she “should” be kind as well as have the obligation to treat her customers well as long as they treat her well,

(Search in google: functions of a waiter you will be surprised that he has the “obligation” to be friendly)

and the same as a project manager (who in such a situation does not even apologize). The forum staff is a group of volunteers who offer their help free of charge, and are under no obligation to respond to all inquiries. Therefore, it is not the same to be rude to a waiter or demanding of a project manager than to receive weak arguments from forum staff. The forum started saying things that were unrelated, like PEBKAC (attributing that it was my fault), buy a record, this makes no sense at all.

In my case, I asked the project manager for the reason why UE5 was unnecessarily excessively large and to give me a solution to the problem (I do not accept a “no solution, sorry”, which denotes 0% professionalism) and an explanation of why it is done this way. He ignored me and didn’t give me any answer. That is not professionalism and shows a great lack of attention and especially the 12 hours invested. I don’t think that was being rude, but being picky about the project manager’s response that he should have given and was not fulfilling his obligations as a project manager.

The work of many of the EPIC employees (programmers, CEO, Marketing….) pays for the food of the project manager. What less than an answer.

I appreciate your comment and I understand that you want to defend the work of the forum staff, which is undoubtedly very valuable and generous. However, I think your argument has several problems.

Second, even though your argument has an explanation, it commits an ad hominem fallacy at the end, i.e. you attack me instead of my argument. Instead of simply answering my question with a detailed explanation of how the (a bit archaic as I said) module system works (which you did very well last time). It has dedicated you to judging my character and my personality. This is not relevant to the topic we are dealing with, and only serves to divert attention and disqualify my opinion.

Third, your argument ignores the context and circumstances in which my interaction with forum staff occurred. You do not take into account that I was waiting for a professional response to a problem of this caliber and on top of not receiving an adequate response to my problem. In the forum were not the comments relevant to the problem. It is not that I fervently wanted to “talk to the project manager”, to spam the forum, but that I wanted to resolve the situation as soon as possible with an explanation and an improvement. But the forum said buy a record, PEBKAC and others… here we go again. With how easy it was you answered without thinking. The forms are more than justified and there are not as many threats as you thought you saw. Just someone telling the truth in a “heartbreaking” way. Sometimes reality hurts.

Therefore, that argument does not reflect who I am. I am quite demanding and critical when it comes to defending my point of view and interests and when I have already warned forcefully more than 3 times.

I could give you the same example that you gave but with two politicians, but would it make sense with this forum? No, right? the same happens.

I asked someone qualified to give me an answer to the problem, or at least to let me know if there were any input ideas for an improvement or if they were working on something soon in the patch notes.

If I’m asking for pears and you give me apples…

It is preferable that the forum staff understood the situation and did not judge my way of expressing myself when it was not what I asked for.

If I ask for programming help, I ask a programmer for programming help, what better than a programmer? I would not like the 3D modeling person to solve my doubt. The same thing happens, if I have a 3D problem, what better than a 3D designer? I wouldn’t like the programmer to solve my doubt.

I think that way we could have a more constructive and cordial conversation.

Note: The problem with such a hard, strong and direct start was to prevent any message from a random user (it’s mostly done), We both (Manager and I) knew that the reaction of the forum members was going to be what it was. It is normal for this to happen in a forum so I tried my best to avoid this by being quite frantic and somewhat aggressive. “It still happened.” It is understandable that someone who complains about the space receives answers like “haha buy a record”, “it’s your fault”, “it’s 50 euros”, “look at this one who lost 12 hours” haha. I warned it clearly, so that it would not happen, but it did.

I think I have been much more cordial than my beginnings. I hope it can be appreciated.

I will agree that the documentation is very lacking. especially where many times even the online documentation is exact copy paste of the C++ comments (several of them are more then auto generated while others are shadows of what you would get from auto generation as that would be more consistent), this is probably to do with the Epic C++ style guide preferring “self commenting code”

on how the modules interconnect exactly :person_shrugging: I know HeadmountedDisplay should be safer to remove while Nanite is far more coupled.

if you don’t have an absolute need to modify the inner workings of the engine then the pre-compiled engine would maybe be a better option in terms of space. using this method several of the modules are just tick boxes. for example the pre-compiled UE_5.1 takes up ~120GB, and UE_5.2 is ~113GB it even give the option to install the Editor debugging symbols files to a separate drive/directory. You still have access to reading the source code of the engine for reference, and utilization. I believe the thought process would be ‘if you are compiling the engine from source then you don’t want to deal with UI, and you have experience enough with C++ to trace the hierarchy’ this does fall down as given the size of the Engine (number of classes/structs) that it is unlikely almost anyone at Epic knows what everything does.

personally I would like to see the diagram myself it would also help with learning the hierarchies for those leaning how the classes go together, but I can also understand a hesitance to make such a diagram/graph as a newer programmer jumping into a 100+ class graph can feel just a “little” insurmountable (don’t want to scare them off too soon as Unreal might be their introduction to C++ programming).

for the Epic Games and Steam portion yes for each sale on the Epic Game Store you make more money, but most people automatically presume equivalent sales between both platforms. if you go to the Epic Game Store and try to find a game that released more then a month ago that isn’t a “AAA” or being given away for free. it has effectively become a discoverability black-hole where if the user doesn’t know the game exists then they may never find it to buy it. Steam has systems in place (discovery Queue, “based on games you play”, tagged similarly) that goes out of its way to suggest smaller titles to the user, but much of this is the result of telemetry data (that Epic by the words of Sweeney refuses to collect or utilize)

most of the projects being made with Unreal by smaller teams will be lucky to makes a few thousand sales across multiple platforms (the majority of which will take that 30% cut they feel they are due), where the likes of Ubisoft will sell Millions if not more on each platform.

So we end up where a smaller project that doesn’t have the funds to put out a bunch of advertisements pushing people to EGS, or get the attention of the media, releases on Epic and Steam simultaneously, for each sale they make on EGS they get more money in their favor, but by the nature of smaller games just disappearing into a void on EGS they will have a higher potential earnings on Steam based on their discoverability systems. To which the Answer(s) that Epic seams to have is sponsored placements, paid exclusivity deals (that have a higher prominence of discoverability), and Free give-aways. So you get more per sale on EGS, that only has an impact if you can get roughly equivalent sales. Even Activision has run into this where they took Call of Duty off of Steam to get a bigger cut, but then they couldn’t get people to buy it on the BattleDotNet Launcher so they brought it back to Steam.

I’m developing a project that needs to “build” some old Amazon 5.0 libraries. When I have compiled the project it has taken 1 day. I’m not talking about building the source code of the Unreal Engine, but building my own project. When doing so, I’ve run into this problem:

I tried to rebuild my project with version 5.2.1 and with the old Amazon 5.0 libraries. He told me if I wanted to “rebuild the project”, of course since it is necessary in this case.



The engine decided to rebuild the source code and increase the storage by 100 GB and downgraded my version from version 5.2.1 to version 5.0.

Compiling:


After 1 day, the new space

Inside the engine:

Inside the project:

I made a new project from launcher 5.2.1 and looked at the version:

Therefore, after comparing the versions with the launcher in 5.2.1 with the UE5.2.1 source code I understood what was going on.

After comparing the two “builds” one with the Unreal Engine source code and the other from the launcher, I understood that the version of my project had been downgraded to 5.0, but the version of the Engine was still 5.2.1.

Before:

  • My project had version 5.2.1.
  • UE5 source code was ~200 GB in size with editor version 5.2.1.
  • my projects are created with build 5.2.1

Now:

  • My project has version 5.0.
  • UE5 source code is ~300 GB in size with editor version 5.2.1.
  • my projects are created with build 5.0

Rather than say it would downgrade, Unreal Engine did what it wanted.

“I don’t think it’s an improvement” rather is a this is a problem.

According to the launcher (installed), it detects it as version 5.2.1, I really don’t understand anything.

Note: The CL-0 indicates the code revision number.
As you can see the “CL-0” is “0” which means that it refers to 5.0
For example, the 5.2.1 release refers to ~CL-2…


What does it mean?
Do I have to checkout again, run the .bats and build the engine solution and wait one more day for it to work?

Could you tell me what to do with those unnecessary 300GB?

According to this, the engine has 2 versions (5.2.1-0+UE5) while my project has been degraded (UE5-CL-0).

I wish I had such problems. I just finished building source code and total size is now 404gb in the hard drive…

Don’t worry, in the not too distant future they will call you a troll for not having 100 TB.

What would you call someone who claims to buy 1TB for an engine?

After the vacation I took I’m no longer up for nonsense. This should have been fixed years ago.

Here you have the mythical problem of having everything linked and not modular.
As I said, although modules may or may not be dependent, you don’t know for sure. Therefore, removing N modules at random is like flipping an N-sided coin and waiting for the number 4462 to come up, which is the same as having the engine running correctly when removing that module.

this is the end result of Object Oriented Programming at scale with a large team, you just keep adding systems, and components; and eventually "hey this functionality already exists over there, so lets use that, which you just end up with massive interlocking, and the whole “everything should be independent” and “don’t repeat yourself” mantras at scale are directly contradictory meaning one or the other will be broken.
Some would even believe that Object Oriented can be language, and tool agnostic which is false in many ways because that is the core of why there are different languages and tools to begin with, to facilitate different functionality and use case some of which redefining how they can/should/will be utilized.

anyone who claims that large scale Object Oriented designs call meat everything of SOLID, be performant, small, and still scale to new features has spent far more time at a white board then actually making the programs.

the engine is complex, and large on disk. it has several dependencies to itself to facilitate code reuse. the good news is that in the more recent releases the engine is getting smaller (marginally, but movement) even with adding new functionality.

hyperbole will often dominate these conversations, even though it is far from reality. The engine is what it is and is open for modification. there is some expectation between code files, builds, and then version/revision control high storage space should be an expectation at some point, if you want the smallest possible game engine that does most of what unreal does then there are some that are getting close, but still not there, or you make your own either in something like C or C++ native.

Summary

The eternal debate about OOP vs old school (this is a meaningless debate, we already know which is more correct). I’m not going to get involved. In summary, I will say that OOP has the potential to handle complexity and scale well, but as with any tool or paradigm, its success depends largely on how it is used and the experience of the team that implements it. As well as applying good practices, that is, correct patterns.

If you take engineers who don’t know how to do good practices and blame the OOP, it’s like driving a car and having an accident. It’s not the cars’ fault, it’s the people’s fault. But if you want to believe that the cars are to blame, that’s fine with me. By that rule we can say that there is no best paradigm for language. What nonsense.
You can knock the best companies on the door and ask “Hey, what do you use?” the answer would surprise you.

There are two options: do it your way or do it well (if you think what you studied in 90 is enough, that’s fine with me. Not with me). Do what you want. In the case of EPIC they do both (they must have someone with little enlightenment). If there was a good project manager with good practices, this would have been solved in 2015 when it was released to all audiences.

Using Doker solves that. I do not understand your comment.

You have made me confused with your comment in this post. It has nothing to do with it. We’re talking about apples and you’re talking to me about pears. I would recommend that you find out about other systems currently for large projects.

it is relevant, because it is the “Why” the “Source code is to long”

broad modularity/functionality with much of it being pre-defined (to reduce work load on C++ programmers, and make Blueprints possible without having to use the C++ in the first place) often means High amount of object types; which necessitates a high amount of either templated types or function libraries for interoperability (this can drive up Linking and function tables very rapidly), and there for large “Compiled Objects” which is manifested as a larger size on disk. and large link tables means high build times.

The engine is also a tool designed generally with multiple viable methods to accomplish tasks (some of which have technically been deprecated, but still remain for project compatibility). meaning potential coupling, heck most of the coupling is not the modules themselves but the function libraries to make object inter-compatible (so you might want to look there if you have build issues removing modules)

OOP is purely the concept that “Objects” can have their own functionality, I get an object and it has a function that does something specific based on that type; so Circle.Area() will do something different then Square.Area(), (like Go implemented interfaces as not fake inheritance with a C back bone), and inheritance (a Square is a Shape, and a Circle is a Shape) everything else is not actually unique to Object Orientation the a function Area() can be overloaded/overwritten in Functional Programming to take a Circle or a Square (like composition is not unique to Objected Oriented Design), but the “testament of Object Oriented Design” states that things should be re-used as much as possible, which is the leading cause of coupling, unless the developer purposefully re-creates functionality for different objects which is that boiler-plate that so many programmers love to talk about.

Everything after that is problem solving either circled around a white-board, or doing actual programming. there are also many parts of OOP that create higher production time by having to jump around through spaghetti nightmares. Every time a code base gets large enough, or has been worked on long enough, the “Testament of Design” just seams more and more laughable propped as “for small projects only” or “Snake Oil” sold to students that is perpetuated at White-Boards by “programmers” that are paid a lot of money to never actually white code.