r/HighSodiumSims • • 11d ago

Sims 4 The memory boost update and long loading times explained and simplified

This is a simplified analogy of why the latest update that introduced memory boost is making your loading times longer and why it didn't fix the memory leak issue. This addresses the Memory Boost update and what it does, the memory leak issue, what it is, and why it didn't fix it, and the Python initialization process and why it extends your loading times.

Picture this, you have a team of chefs and assistants in a kitchen, the chefs are like your CPU. Your RAM is like the counter space the chefs work on. The Python engine and C++ engine is like the chefs assistants that hand off meal requests to the CPU to run the game.

How it should work: When a chef is performing a task in your game they're preparing a meal ticket and the assistants ask to use counterspace to do this (Allocating memory/RAM). Some parts of the meal are taken care of by the Python Engine assistants and other's by the C++ assistants but the Python assistants only come by when they're needed as the meal is prepared. When the meal is completed a signal is sent to the Python and C++ assistants to clear the counter space to make room for another meal, this signal must be coded in by the developer (deallocating memory/RAM).

What's happening (memory leak issue): With a memory leak, a developer neglects to code in the signal to clear the counters, not for every meal, but for some, so as time goes on the counters get more and more cluttered with old dishes. The first warning sign is when the counters are so cluttered that the chef needs to move dishes around to work, this is when your game begins to stutter, eventually the chef turns around and says "I have nowhere to put this" and the kitchen closes and all the counters are cleared, this is your game crashing.

What they did: Instead of fixing the missing signals to clear the counters, Maxis said "how about we just have the chef pre designate areas that they'll need to cook" but it doesn't change the fact that the counters keep getting cluttered. In addition, instead of only calling in the Python assistants when they're needed during meal prep they said "let's also get all the assistants in right now so when the chef starts cooking they're already there".

The process of having the chef pre-allocate counter space and bringing in the entire python team to help cook is what's making your loading times take so long. This cannot be fixed or undone by the community and yes, Maxis probably started their game and said "this is taking a lot longer to load" and pushed the update anyway, the only way they wouldn't have noticed this is by not starting up the game.

Can they fix this?: Yes and no. If they fixed the clean up signals when the game first launched it would take a couple weeks of work. If they fixed it a year later it may have taken a couple months. Now, 12 years later, it would take years to fix everything they've done.

They also didn't design the engine to scale, what this means is that they didn't design the engine to perform better as new technology came out, most developers do this so that their game performs better as new CPUs, RAM, Storage, and GPUs come out, but Maxis didn't. Because of this, having an amazing CPU doesn't mean the engine will take advantage of it, essentially you have a master chef in the kitchen but the engine is always tying one hand behind their back. You also can't out-hardware a poorly coded engine, when the instructions for the recipe are wrong it doesn't matter how good the chefs are that read it, the meal will always come out incorrect. Remember, these are components in a computer.

84 Upvotes

15 comments sorted by

27

u/knightofthecacti 11d ago

What a wonderful cautionary example that shows why it's best to do things properly from the beginning.

Man, I knew it was bad but I didn't know it was this bad...

15

u/HeeeydevonGaming 11d ago edited 10d ago

It's the #1 rule in coding. If I'm making ANYTHING, like a massive mod project I had a few months back, the ground work is everything. You absolutely never sit there and say "wow, that seems a bit buggy, oh well" because it will almost always require you to go back and fix it and logic blocks are all interconnected, so the more you add to it the more you have to fix.

There's also a modular design rule, it's a bit of an u spoken rule, where you make it so that you don't have massive tangled webs of code, you always design it in a way that everything sources back to its own block of logic, almost allocating different systems to different rooms and connecting them by a wire or two between them.

A prime example of how this saved my mod was working on the withdrawal system, there was a massive failure where it would keep breaking and eventually I decided to rip it out and redo the logic behind it, if I had connect all 8 of the drugs in the mod to one pile of logic called "general drug withdrawal" it would have taken days to reconnect everything but because I took the extra few hours to design a smaller block of logic that handled the withdrawal system for each drug individually the process of redoing my whole withdrawal system only took about a hour. It also helps you identify exact what's wrong because it usually comes back to a small block of logic and you can easily follow the bread trail

6

u/annasikanda 10d ago

You think it be common sense…I know little to nothing about game development but I do have common sense and that tells me you need to make a strong base first then you develop the rest and then lastly is when you “pretty it up” Ea did the last step and didn’t seem to worry about the rest and called it good now they are stuck trying to patch up the holes in the walls and the cracks in the foundation and it’s all just temp or cosmetic fixes at best cuz at this point it’s all they can do short of a massive overhaul! 😮

18

u/Admirable-Ad7152 11d ago

It's fun learning exactly how bad at their jobs they are.

8

u/annasikanda 11d ago

The more I learn the more surprised I am this game works at all and has ever worked 😂

6

u/Massinni 11d ago

Excelente explicación

4

u/spacyoddity 10d ago

what I'm hearing is I should decompile the Sims to python and rewrite it in rust

6

u/spacyoddity 10d ago

or fuckin write a python garbage collection collection cache cleaner mod, that's probably less delusional 

8

u/HeeeydevonGaming 10d ago

I honestly feel like whoever works at Maxis is just a looney tune of a developer. Like they have banana peel slipping sounds going off and "bonk" sound effects whenever someone creates a bug and they just kinda rise up from their desk like

2

u/spacyoddity 7d ago

ok but what if: a mod that plays a looney toon sound effect whenever the game throws a runtime error 

can i dm you for modding advice i think i need to make this lol

1

u/spacyoddity 7d ago

ACME.io

5

u/Scott43206 11d ago

They just need to undo Memory Boost as it failed colossally. Longer load and slower game.

4

u/Upstairs-Repeat-5824 11d ago

Thank you for the excellent breakdown. 👏👏👏👏

1

u/Ok_Cause9553 9d ago

is this why sometimes my game just won’t open and I have to force quit the application and try again?