This could go in either this section or building support, but due to being a performance related question I put it here
So I was pondering about a game’s map, and had this idea. I don’t know if this will affect performance, positively or negatively, or not at all, hence I’m putting it here.
There are times when people want massive maps, and as such, they are scaled huge in comparison to the player. However, what if the same amount of detail, scaled down along with the player being scaled down could be done? If everything, from the player’s size, to their speed and gravity is scaled down, would this affect the performance? Is performance affected by triangle count or sizes of the triangles, or something else entirely? If the performance is affected, would it be speculated to be a positive or negative impact?
In terms of performance, if you want a huge world with detail, I would recommend using the TeleportService to connect places together into a bigger world. This would allow you to have a huge world along with detail and also have good performance for people on lower end computers or mobile devices. Even though you would have to place loading screens. Scaling everything down may be a bit impractical compared to the above, but you could try it. I don’t believe that scaling everything down would improve performance but you could try it. Something else to mention is to use StreamingEnabled. As well, if you use unions, try to use them more than once since the client only needs to load it once if used in multiple places. I wish you luck with whatever you are trying to accomplish.
The size of the triangles makes no difference, scaling things down wouldn’t make things run any better.
You have a few options, though.
StreamingEnabled is another choice, I’ve seen it in use in Fantastic Frontier, which has an absolutely huge world. I’ve not worked with it myself, but it’s worth looking into.
Another one, as @Badandy11 said, is to separate the game into multiple places. I think this is the most scaleable, but it comes with its own problems, as does StreamingEnabled. There are tradeoffs with both.
I’m sure there are a few other options that I’m not thinking of - worth taking a look deeper into the forums.
Personally I would always go with SE instead of multiple places, purely because it is easier to work with and from a player’s perspective it can be very frustrating to be constantly stuck on a transition screen between games in comparison to simply not being able to see the map in one glance, HOWEVER this was improved by ROBLOX allowing users to have custom teleport screens.
Recently, teleporting times have lowered significantly (although it depends a lot on your network). StreamingEnabled can make the game a whole lot smoother, at the cost of having to change how the game is scripted a fair amount to accommodate for the fact that some things may not exist on the client until they get closer (or thing unloading as they walk too far away).
After reading your post, I looked at both the wiki and the old blog post related to StreamingEnabled.
Is it possible to utilise the prevention of player’s timing out by using StreamingEnabled, whilst also enforcing that the game has fully loaded (in terms of things that aren’t related to the map, but are necessary for immediate game-play, i.e. enemy models, items, etc) via your own loading script?