So I am trying to make a loading screen for my game. I see many big games loading there games using some type of method. Do those games actually load something, or do they just do a random wait and call it good? If so, what do they load and how should I load that?
These games are trying to create something eye catching for a user to look at while the roblox client finishes up loading in every asset. They are mainly a way to cover what is loading, and to smoothly transition into gameplay. A great tutorial was made by @xuefei123, and it goes over how to use a UI gradient in order to create a fade in loading screen.
So you’re saying most games just wait for around 3 seconds?
It usually takes between 2 and 7 seconds to load a game completely. The tutorial shown loads the game for 6 seconds total, I believe.
Excuse me, it loads it for 4 seconds in that script, but you can add time to the ending.
You can use DataModel.Loaded
This is wrong, loading times vary due to multiple factors including but not limited to: game size and player connection speed.
I know, but I’m just giving an average.
It still is bad practice to add in hard waits like this for things that vary, it can be frustrating for a player with super fast internet to have to wait or those on a slower connection be put in the game after it has “loaded” but assets are still being replicated to them.
Most games use ContentProvider to Preload assets (loads images/sounds whilst they aren’t being displayed/played) so that players don’t see empty spaces where images should be, or they hear certain sounds as soon as they are meant too.
Loading screens do actually load things in a sense. A proper loading screen (completely in my own opinion) will preload assets that the user immediately sees such as pieces of the loading screen or the main menu. If it’s controlled from ReplicatedFirst, then it will also check for IsLoaded to return true or Loaded to fire so it knows the server has finished the initial DataModel snapshot replication. Along with this are some assets placed in ReplicatedFirst so that they are the first things the server hands to the client. This is common for games that have a physical world view for their menu.
I don’t ever recommend some arbitrary wait because it’s not representative of an actual loading process and I especially don’t recommend RequestQueueSize because that’s not a proper indication of how much needs to download. Using this property is also bad for the user experience because this can result in long loading screens. If your game has many assets to download, instead of letting the stream in the background you’re waiting for the whole game to load. Players don’t have a whole lot of patience and they shouldn’t be expected to either: they should be able to get into the game quickly.
Here’s a design support topic on the matter of loading screens if you are interested: