Rework the asset caching system

I’m writing this as I am sitting in the Phantom Forces lobby waiting for a queue of 900 assets to load that I loaded 40 times before.

Roblox is one of the most popular platforms currently, available on PC, XBOX and mobile and all suffer of the same issue. Asset loading is a painful process, especially given how the entire game gets a stroke every time even a mesh with 10 faces gets loaded, which is absurd. This is especially noticeable in games which don’t force :PreloadAsync on all their models and load them during gameplay (like Arsenal).

This would be alright given it is usually only the first 5-10 minutes that are unplayable, but Roblox kindly added an obligatory feature which erases all older assets when the cache reaches a certain size. The best part is that apparently none of them are compressed. The default cache is 32MB which is too small even for Windows XP era, while the max cache size is only around 1 gigabyte. This means you are either stuck playing one detailed game, or reloading assets every time you want to play something else.

Imagine playing on a mobile phone only to realize that loading the game takes up most of your data limit.

The way this could be reworked is by allowing us to completely disable the cache limit or by deleting assets that haven’t been used for a certain time period (also add settings for this) as some people might only require 100MB of cache, while others would need 5GB for a comfortable experience.

EDIT: Checked the files, they are encoded with GZIP (though compression efficiency depends of total file size, so compressing single files less than 5KB instead of grouping them as a place isn’t much of an improvement). The other points are still valid.

30 Likes

What do you mean by this?

People with a slower connection (like me) will experience an extreme latency when loading anything. Normally it should give the game replication priority over asset loading, but it doesn’t.