As a Roblox developer, it is currently too hard to work with very large and/or part dense maps with streaming due to streaming initialization times.
On first launch with streaming the startup times are 20 seconds, subsequent ones seem to take even longer, (second one over 40 seconds) and it just scales up from there to the point where core scripts start erroring due to exhausting allowed execution time. Even the first startup time (20 seconds) makes testing a small change very tedious.
I have provided a video demo here of the startup times, for reference this is tested on a game whose workspace bounds are ~90000x30000x90000 studs with 15589 parts, this was recorded on a PC with a 7800X3D.
TL;DW:
Startup with streaming disabled takes about 2 seconds
First startup with streaming enabled takes about 18 seconds
Second startup with streaming enabled takes about 42 seconds
Now currently there are a couple solutions but they have drawbacks:
For the first and most obvious one, just set workspace.StreamingEnabled to false when play testing, however this comes with the issue of it being cumbersome to check that workspace.StreamingEnabled is true every time we publish the game. We also have multiple people collaborating on this project so with more people comes more people who have the ability to publish which means a higher chance of at least one of us forgetting to set workspace.StreamingEnabled prior to us publishing.
A plugin also doesn’t work optimally in streaming’s current state. Even if we did have each person install it, as far as I know there is no way to tell when a game is published (ie via some event), and even if there was, I wouldn’t imagine there’d be a way to somehow (reliably) set streamingenabled to true before the game is actually published to Roblox. Setting workspace.StreamingEnabled to false via a plugin when the playtest first starts (disabling it in a local plugin when runService:IsStudio() and runService:IsRunning() are both true) also doesn’t appear to actually disable streaming (although it sets the property to false) so we still run into the very long initialization times.
If this issue is addressed, it would improve my development experience because it would allow us to playtest changes without having to wait increasingly long for streaming to initialize for each playtest. It would also eliminate the risk of forgetting to set workspace.StreamingEnabled before publishing.