Hello, I’ve been working on an island for my game for 2 weeks, but after adding it, the game fails to load. I’ve done something which could be considered a “solution” - the new island is copied from ServerStorage to Workspace around a minute after the server starts, which makes it possible to join but only for the first player (the game runs smoothly for him, there are only lag spikes when the island is being copied to Workspace, but eventually becomes smooth again). If someone tries to join to an existing server, where the island is already in Workspace, he (the person who is trying to join) always gets kicked by the server, even though his machine has enough power to handle the game.
I could think of two actual solutions:
make the island load locally for each person a minute after joining (computers may have huge lag spikes while loading the island)
reduce the part count or delete the island (sounds terrible)
split the game into 2 places, united in a universe (this one may be hard, since in my game players transport cargo between islands, which would be in different places).
The game file has 21.6 MB, there are over 34,000 parts, including the island I mentioned. Could it be too much for Roblox? I should mention that the island I’m talking about consists of around 7-8k parts, but a lot of them are fairly big triangles (up to two thousand studs long and wide, but flat). The entire island is ~20000 studs long.
Tried, changed nothing. It’s not the RAM which is lacking, my computer (and the computer of my friend who also tested the game) can handle the entire game even with the new island. In studio it always works perfectly, so I assume that something wrong happens when people try to join (the game window is expected to freeze for a few seconds, but then should be playable instead of kicking the player out after the game is loaded).
Because a message shown after being kicked looks like this…
Have you tried disabling all of your game’s scripts to see if they are causing the issue? If you want to determine whether or not the size of the game is the problem you need to be sure that nothing else is interfering. I’ve had experiences before where scripts caused problems like these.
With StreamingEnabled you should be able to load a game with that many parts instantly. You’d literally load the client and drop right in, because there is so little to load at first. As such, I don’t think it is the size of the map that is causing this.
I think it’s a result of the size because it started to work normally again after I removed the island, which didn’t contain any new scripts (it contained a couple duplicates which would be in the game anyway because they are also on different islands). I’ll try your idea though.
I know this might sound weird but if your game is in FE you could copy that island with local script for each player after they join. Since it will be inserted with localscript it won’t be existing for other players . This probably is not the best solution but it might work.
I know some games that use StreamingEnabled. The downside is because of the render distance when it’s on, if you want good looks for your game, you have to set the FogEnd to a value that hides the ‘missing’ draw distance.
I meant like, have the entire world or a small part of the world available. Once that loads you can properly load in the map based off the fps and computer performance.
I remember a while ago, I created a very large map that would take a long while to even load into the game (The game used Streaming Enabled) - however, once the server loaded up, and a player was in the game, any other players who tried to connect would almost instantly be able to connect.
My understanding is that the server will take a long time just to load up the map, however once the map has actually been loaded, and provided the game is using Streaming Enabled, any players connecting later on will not have to load the entire map, making their load-time almost non existent.
Another time when I made a very large map, the game would still take a very long time to load, but i would eventually get timed out because it had not loaded in time.