Improvements to Play Solo load-time [Beta]

Seriously great to see these small optimisations to the Studio workflow! Although some people (i’m not gonna say any names here) who don’t really care about this and will pass it off as a waste of resources will still end up making their life easier.

9 Likes

For someone who likes to test whenever I add/change something, regardless how small, this will save a lot of time for those game development grind sessions :muscle:

10 Likes

This really helps with massive projects, thank you!

10 Likes

server/client replication still takes 30-60 seconds to start functioning properly after a playtest is started

8 Likes

Us? You’re only talking about yourself. Many teams and solo developers including me needed and wanted this change. If you’re going to complain about features, and not give constructive criticism, leave. This isn’t a forum about listening to your complaints.

13 Likes

server/client replication still takes 30-60 seconds to start functioning properly after a playtest is started

Could you expand on this? As far as I can tell replication is working as expected in play solo.

10 Likes

These quality of life improvements should be prioritized at Roblox! It truly makes a big difference and it is much appreciated!

10 Likes

Did you (roblox staff) fix the bug where most CoreGUIS won’t load on playtest?

8 Likes

You don’t imagine how common is to see complaints on the DevForum…

10 Likes

Wonderful update! I’ve always dreaded making things that I need to test in play solo because of the loading time, so this is amazing!

(Literally the fast play testing time is the reason I use Roblox over any other engine–it’s just more fun to program when I don’t need to wait 30-90 seconds to test any change *Cough* Unity *Cough*.)

8 Likes

I assume not, but would this impact loading of things with StreamingEnabled and different StreamingMode’s? I’m using that in combination with CollectionService’s Added/Removed Tags Signals system.

9 Likes

To me I have to wait like more than 10 minutes on first playtest :skull_and_crossbones:

Yeah, better to just have a lot less time to playtest.

9 Likes

This is going to be a massive improvement! Many times I have to make small tweaks in code and play test it quickly, but the game takes insane amounts of time to load in leading to those few tweaks becoming a couple hours worth of work.

Much appreciated!

8 Likes

Who would’ve known that not loading 60+ built-in plugins with 100k line frameworks would speed up loading times, shocker.

Sarcasm aside, I’m sure you could optimise the built-ins greatly by using a common package source and offloading a lot of the bloat into a single plugin, or even use this fancy service called CorePackages. It would reduce file size and also loading times. (Luau would only need to compile it once, not 60 times)

9 Likes

You’re right, I’m sure you know more about this than Roblox and are the first person to suggest this. Thank you for providing your expertise.

7 Likes

I’m curious what benefit you’d gain over bundling the same framework across multiple plugins rather than putting it in a common source? Lets kill the sarcasm here and actually have a discussion on this because it’s interesting.

The only benefits I see is portability, or having isolated state for each plugin. For the former, I dont really see it, the latter, I could somewhat see issues here I guess?

5 Likes

Just to give you a taste of one complexity: Plugins (even the builtin ones powering Studio behavior) are updatable separate from the main Studio release, so we would have to be a lot more deliberate with how dependencies work if they were not always directly bundled into the plugin.

The current solution of duplicate directly bundled dependencies is obviously unsustainable long term, but non-trivial engineering work remains to move away from that.

9 Likes

I imagine an engineer would have a better insight into why this is, exactly but based on what I know I can make a guess:

Roblox doesn’t have the luxury of always updating plugins to use the latest version of their packages and CorePackages is only a solution if that is always true. You have to remember that some of their plugins are very old and span multiple major versions of things like Roact. While I’m sure everyone would like them to be on the same versions, that isn’t practical sometimes.

Atop that, it is a potentially attack vector to load privileged code from the datamodel. It can be mitigated (quite easily, actually) but once upon a time it was a lot easier than it is now. That could have something to do with it, though I’m guessing not really.

See also what Stravant Tnavarts said. It adds yet more complexity with updating things, including plugins and packages.

6 Likes

This is awesome!!
Running play solo doesn’t make my neighborhood’s lights flicker anymore

What kind of improvements (besides plugins) made this possible?

Does it cache things like texture & mesh data?
I’m guessing there was also just a lot of piled up debt that someone was able to properly investigate

8 Likes

Fantastic work on this!

I know some people earlier are implying that it’s only a “small” improvement to a development pain, but a dozen manageable pains add up to become a real impediment to a good workflow. Kudos to the people behind this :slight_smile:

Just because we’re all used to a certain speed of development doesn’t mean we shouldn’t appreciate the work that goes into making it better. When I started developing on Roblox in early 2012, Studio looked originally like this:

image

It would crash constantly, and didn’t have any of the features people rely on today like the ribbon or functional local testing. People should remember that the attention to detail by engineers into small, annoying bugs is sometimes more important in the long run than the big ticket features.

16 Likes