Auto-saving should be off-loaded to the server in Team Create

As a Roblox developer, it’s presently very difficult to test large games when they literally take around 2 minutes to auto save on my PC. Auto saves always occur when running Play Solo or when uploading an asset, even if you have it disabled from Studio’s settings.

If you first save the game to the cloud before using Play Solo, then it will start almost immediately. Saving appears to happen much faster on the RCCService in Team Create, but takes ages on my PC.

Heres a video demonstration of this phenomena with the game I’m currently working on, Crown Academy.

(Note that I’ve blurred the game window as we haven’t 100% lifted our confidentiality embargo yet.)

Some timecodes:

  • Server starts saving @ 0:07 and finishes @ 0:15
  • My PC starts saving @ 0:39 and finishes @ 2:15

This problem is avoidable if I use Team Test instead or if I save the game to Roblox first before activating Play Solo. If I’m making a quick code change however, its easy for me to impulsively activate Play Solo without doing this first. When this happens I have no choice but to crash Roblox Studio since it would be faster for me to reload the place than waiting for it to auto save on my PC.

The resulting place file is 27.3 MBs in size. In general something seems terribly wrong here. I have a decent CPU and an SSD, but Roblox Studio isn’t taking enough advantage of them. I’m not sure what the best solution is here, but one possible solution is the title of this post.

Make of this what you will. I hope this can be solved soon!

26 Likes

I don’t know how much real content is in your place, but 27.3Mb sounds big enough that you might have accumulated some leftover data you can purge. I know of two issues that can bloat the size of a Team Create place file:

1) Mesh physics decomp temporary data: If you make Unions or change the CollisionFidelity of UnionOperations or MeshParts while building in the place, you can end up with a lot of no-longer-needed decomp data serialized with your place file. You can fix this as follows:

MAKE SURE NO ONE ELSE IS WORKING IN THE TC PLACE before doing the following:

  1. File->Download a Copy… your TC place (saves bloated place to local .rbxl)
  2. File->Open from File… what you just saved
  3. File->Save as File… what you opened with a new name (to compare with what you downloaded in step 1)
  4. If the newly saved local place file is smaller than the downloaded copy, re-open it with File->Open from File… then…
  5. Use Save to Roblox or Publish to Roblox to overwrite the existing TC place with the cleaned-up place.

This process takes advantage of the fact that saving place opened from a local file, to a local file, removes built up temporary data in the place, something that the TC server does not do when it makes periodic saves of the place, and which does not happen during Download a Copy either.

2) Animation save data: If any of your builders does animation editing while working in the TC place (not recommended, but it happens), there might be Dummy characters with AnimSaves models somewhere in the place, and they can get pretty large.

14 Likes

Off-loading it to the server in Team Create doesn’t solve non-TC use cases.

They should do this instead:

5 Likes

Holy cow, the difference there was night and day :eyes:

Does this just flush the BinaryStringValue objects stored in the CSGDictionaryService and its non-replicated cousin, or is there more temporary data purged by this?

5 Likes

The last time I personally diffed a bloated TC place, it was just the PhysicsData blobs left over from CSG operations and possibly some of it was from MeshParts I’d tried with different CollisionFidelity settings, not sure about that. You could find out with isolated testing in a TC place if you’re really curious :slight_smile:

But it’s not uncommon for a TC place with builders who use CSG or meshes to grow in size, requiring this compaction process. The bloat directly affects publish times. I think my latest project got to around 28MB also, and then it crushed back down to around 2.6MB.

2 Likes