Author Topic: New Save Format --- No more absurd upload speeds, client loading in the works!  (Read 7843 times)

What's wrong with people contributing, pointing out exploits/bugs to fix or better/faster ways to do a certain thing? You, as the end user, will get a better product.
Yeah, I've added in Port's suggestion and save files are now like, 55-65% of the size of the text saves.
Only issue is there's no possibility of backwards compatibility.

So wait to get the add-on for a minute or two while I upload the new version.

Only issue is there's no possibility of backwards compatibility.
Why not? You could check for the start of your name list and if it isn't there, assume it uses the old format.

Might also be a good idea to store the version of the file format (like 0.1.1) at the top of the file.

Why not? You could check for the start of your name list and if it isn't there, assume it uses the old format.
I changed support_binary too.
The very method with witch the version number is written in the file is changed.
:|
Changes to that particular add-on should be very rare.
Might also be a good idea to store the version of the file format (like 0.1.1) at the top of the file.
It is. First number in the file is 1488, just a unique number to say it's a BBS file.
Second number is the version, current version is 2.

Backwards compatibility as a general rule is planned, it's just that I want to get the real serious changes (e.g. those to support_binary) out of the way because those might forget things up bad.

I got a version here that records what brick add-ons were enabled on the server when the build was saved, and when you try and load it on a server without all the add-ons, it warns you which ones are missing.

I just gotta add the backwards compatibility part before I release it. That's a pain.

I got a version here that records what brick add-ons were enabled on the server when the build was saved, and when you try and load it on a server without all the add-ons, it warns you which ones are missing.
only record those that were actually used though

and why stop at bricks, take care of events, items, emitters, etc too

only record those that were actually used though

and why stop at bricks, take care of events, items, emitters, etc too
It is very hard if not impossible to figure out what add-on a particular datablock is from.

It is very hard if not impossible to figure out what add-on a particular datablock is from.
package the add-on loading function and check for new datablocks after executing an add-on

package the add-on loading function and check for new datablocks after executing an add-on
I don't think you can package that.

I don't think you can package that.
Figure out a way to make your script execute before the server add-ons (i.e. with a client.cs or something like support_preload for dedicated servers)

You'd have to overwrite loadAddons() as it directly executes them in a loop.

When you do get to client side save/load, can the transfers be gzipped or something?  the normal upload takes a long time, and would still take pretty long with this.

When you do get to client side save/load, can the transfers be gzipped or something?  the normal upload takes a long time, and would still take pretty long with this.
Take the performance that you get in native C++. Around 18MiB/s. Divide that by a thousand and you have an estimated speed for torquescript.

So far it looks like I might be able to achieve far faster upload speeds with this. Like a sixth as long.

So far it looks like I might be able to achieve far faster upload speeds with this. Like a sixth as long.
Make sure to add a way to upload a save using the default system on servers that don't support it

Results so far:
http://pastebin.com/e21mbtVF

Basically, you can expect to load bricks up to 10x faster with the next unreleased version.

after finishing this, could you possibly work on a way to clear a bunch of modterrain with less lag? Here's the suggestion post: http://forum.blockland.us/index.php?topic=266104.0

to make the whole loading and clearing process better