[Mod] Synchronize Worlds [WorldDiff]
You might, or might not, know about the Tinas project. It's a collaborative map where everyone can share their new versions. The general problem is that - until now - you had to upload the whole map.
So I made this mod. It automatically saves all the changes you made inside a map into .we files. You can then share those files and others reinsert them into their own copy of the map. Quite similar to the version control system git, everyone has a local copy of the map and all the changes they know of, making it fully distributed and redundant.
This Topic is in Modding General because the mod is in development and you have to expect many changes. The naming of the files will probably change too, and there will be no support for old files. Make a backup of your world before using this mod.
Usage:
Download install and activate this mod.
Person Nr. 1
Play. In the debug you will see the message "[worlddiff] X nodes saved".
In your world folder you will find a folder named "wd" and inside it one named "output".
Compress that folder (e.g. as .zip or .tar.gz) and share it with others.
Person Nr. 2
In your worldfolder create a folder named "wd" and inside it one named "input".
Extract the archive.
Copy its contend into "input".
Play. In the debug you will see the message "[worlddiff] X nodes loaded".
The plan is, that you will be able to synchronize worlds with many many other players automatically over the internet. Using software like owncloud or freenet. You could have several servers using the same world at the same time. Or different worlds sharing only certain areas. Or you synchronize worlds on your own harddrive. I would like to extend this mod, so you can use it for many more thinks I can't imagine. And I would be happy if there are some people helping with this.
Ideally, we will soon have one big world, that is shared over many different channels, so this world becomes one giant distributed server that is always up.
In my testing I found that the worldedit format compresses very well. In one world where I saved every Mapblock as a .we file I had this results:
raw:
Now add that you only need to share those segments you alter, the data volume to transmit is quite small. A screenshot of minetest with 1363x768 pixel is about the same size (1MB to 2MB) as the compressed we files of this testing map.
git: https://github.com/casimirkapazi/WorldDiff
download:
.zip
.tar.gz
depends: nothing
license: AGPLv3
So I made this mod. It automatically saves all the changes you made inside a map into .we files. You can then share those files and others reinsert them into their own copy of the map. Quite similar to the version control system git, everyone has a local copy of the map and all the changes they know of, making it fully distributed and redundant.
This Topic is in Modding General because the mod is in development and you have to expect many changes. The naming of the files will probably change too, and there will be no support for old files. Make a backup of your world before using this mod.
Usage:
Download install and activate this mod.
Person Nr. 1
Play. In the debug you will see the message "[worlddiff] X nodes saved".
In your world folder you will find a folder named "wd" and inside it one named "output".
Compress that folder (e.g. as .zip or .tar.gz) and share it with others.
Person Nr. 2
In your worldfolder create a folder named "wd" and inside it one named "input".
Extract the archive.
Copy its contend into "input".
Play. In the debug you will see the message "[worlddiff] X nodes loaded".
The plan is, that you will be able to synchronize worlds with many many other players automatically over the internet. Using software like owncloud or freenet. You could have several servers using the same world at the same time. Or different worlds sharing only certain areas. Or you synchronize worlds on your own harddrive. I would like to extend this mod, so you can use it for many more thinks I can't imagine. And I would be happy if there are some people helping with this.
Ideally, we will soon have one big world, that is shared over many different channels, so this world becomes one giant distributed server that is always up.
In my testing I found that the worldedit format compresses very well. In one world where I saved every Mapblock as a .we file I had this results:
raw:
- wd_output 41.3MB
- map.sqlite 6.7MB
- wd_output.tar.gz 971.7kB
- map.sqlite 3.1MB
Now add that you only need to share those segments you alter, the data volume to transmit is quite small. A screenshot of minetest with 1363x768 pixel is about the same size (1MB to 2MB) as the compressed we files of this testing map.
git: https://github.com/casimirkapazi/WorldDiff
download:
.zip
.tar.gz
depends: nothing
license: AGPLv3