Game Performance World Cache Test Findings

The original catch all. General game help, banter, things you should probably put in the correct forum, This is the place.
Post Reply
User avatar
CardinalSims
Reactions:
Posts: 570
Joined: May 12th, 2021, 3:12 am
Answers: 13

World Cache Test Findings

Post by CardinalSims » January 27th, 2024, 8:18 pm

For the interest of anyone who plays custom worlds / Store worlds-

I previously knew that expansion worlds tended to load faster than any installed world because of their objectCache, which is in the root installation folder.
Then I discovered last night that all worlds query Program Files (x86)\Electronic Arts\The Sims 3\Caches for a [worldname].objectCache on load- then, if not found, each expansion folder, and WorldCaches in the My Documents directory much later.

I booted Riverview with no mods in play, turned off object hiding, set high detail lots to max, and spent about an hour panning the camera around the world and allowing lots to render until all objects were out of their grey/unloaded state. It probably still wasn't as thorough as EA's pre-generated cache, but the end result was a 500MB Riverview_objects.package in the WorldCaches folder.

If renamed to Riverview.objectCache and placed in Caches, it still gets read on startup and results in the New Save time being halved (for me, 45 seconds instead of 1 minute 25 seconds). All of the preloaded lots also render instantly.
There is no load time difference for Cache vs WorldCaches BUT the .objectCache being detected actually stops the world from caching to WorldCaches to begin with. It will use the five standard cache files again, meaning you have access to the separated caches- not just _objects and _sims- and they can be routinely cleared without impacting load times significantly.

Smaller bonus- the Map View also has more depth of colour and shadow when it has been pre-rendered. Comparison.

The only downside is that I don't know how to guarantee a cache has no bad data in order to confidently pre-generate them and offer them for download, but all worlds shipped with the game do already function this way.
If you play in a launcher-installed world, this is a potential method for shortening your load times and ingame rendering significantly, if you're willing to take some time to make it yourself. I would recommend generating it purely vanilla, but default texture replacers and such could be included at your own risk. It is always safe to delete it, regardless.

I know there are always a lot of performance theories going around, hopefully this data is a bit more useful to you all. Do let me know if you try it out yourselves :)

User avatar
C-Dark
Reactions:
Posts: 2640
Joined: January 5th, 2012, 6:00 pm
Answers: 24
Location: Berlin (Germany)

World Cache Test Findings

Post by C-Dark » January 28th, 2024, 11:56 am

Hm, I wonder, when I clear sometimes the worldCache folder und Documents ... The Sims 3 and load my save (which is not a new fresh one),
playing with a custom world - then the loading time of my save is surely longer than before deleting.

Maybe I don't understand right, but is there another place under installation folder where also custom worlds caches generate?

Also take in mind that players redo their world, build new lots, redecorate and such, so then
- the world is different than it was as a default load.
Claudy ;-) Bookworm, Cat Person, Computer Whiz, Couch Potato, Eco-Friendly, Friendly, Frugal, Genius, Nurturing, Social butterfly, Supernatural fan, Virtuoso in the past, Workaholic, Brooding, No Sense of Humor

User avatar
CardinalSims
Reactions:
Posts: 570
Joined: May 12th, 2021, 3:12 am
Answers: 13

World Cache Test Findings

Post by CardinalSims » January 28th, 2024, 3:29 pm

C-Dark wrote:
January 28th, 2024, 11:56 am
Maybe I don't understand right, but is there another place under installation folder where also custom worlds caches generate?
Not by default, but my finding was that the game always looks for an .objectCache - which exists for standard worlds like Sunset Valley, pre-generated by EA. The one for Sunset Valley is in the Caches folder of the install location, and each expansion world has one in its install location too.

When the file isn't there, the world starts generating its own in WorldCaches. This means that custom/Store worlds will always start out with worse performance- as every single object renders for the first time, then improves on subsequent loads.
The drawback of the WorldCaches is that it's used in place of the 5 cache files- so it needs to be deleted whenever you would usually clear those. The load times afterwards will be much worse in a custom world vs a standard world, because it does not have an .objectCache to fall back on.

If you manually make one- by loading every lot, renaming the [worldname]_objects.package in WorldCaches to [worldname].objectCache, and moving it to the Caches folder- the game will use that instead. Changes made later + mod content will get cached normally, so it can be freely deleted as needed. That, at the very least, would make it function like a regular world.

You could also generate one for a non-vanilla world, all changes and CC included, but it would carry some of the same risks that not ever deleting the cache files does. It would be worth considering for highly customized worlds, though.
EA's pre-generated files could also be replaced, if someone was playing in a version of a world so heavily modified that it was no longer benefitting from reading the original- like a version of Sunset Valley where you bulldozed every lot and rebuilt it, for example.

As long as the user is careful, keeps a backup of any originals, and remembers to remove any custom cache when they're going to play the default world- this trick would have some great performance benefits :)

User avatar
CardinalSims
Reactions:
Posts: 570
Joined: May 12th, 2021, 3:12 am
Answers: 13

World Cache Test Findings

Post by CardinalSims » January 29th, 2024, 2:13 am

Some bad news / Bug Report:

I'd add this to the top of the original post, but I don't seem to have the option to edit it.
After doing some other stuff in Riverview with the .objectCache active, it looks like it struggles to cache certain things- compositorCache and simCompositorCache are in use, but the others are not. Detrimental effects included townies rendering slowly, as well as thumbnails for CC never loading.

I will report back if I figure out how to trick it into behaving itself! Suggestions welcome.

Post Reply