Remix.run Logo
Ygg2 an hour ago

It's not that weird. Most of Office and Open office formats are just zipped folders of XMLs.

Better Zipped XML than whatever monstrosity Adobe files are. PDF/PSD... shudder.

herrherrmann an hour ago | parent [-]

Yep, even music software like Ableton Live is using zipped XML for the project files (although the much bigger audio files are stored independently in sub-folders). There were even efforts to use the XML format to manage Ableton project files with git in order to have a nicer change history (https://github.com/clintburgos/ableton-git).

berkes 4 minutes ago | parent | next [-]

> with git

I suddenly imagine a zip format with built-in git. Does this already exist?

Basically a file-format that has built-in history, rollback, logs etc. Enabling all these "zipped XML" formats to get this feature "for free".

Could be as simple as adding the .git to the zip and ensuring the software that writes the content to the zip also runs the correct git operations.

But could also be a simplified subset and adding git-ability to the (de)compress libs and bins, which can operate on the compressed .git. Simplified, because it won't need networking/remotes probably not even branches.

Ygg2 an hour ago | parent | prev [-]

I mean, zipping files in an archive and presenting them as a file is an ancient tradition in video games. For example Warcraft 3 used the MoPaQ archive to store data in .w3x file.

And Starcraft 2 data is just bunch of XML files.

TeMPOraL 8 minutes ago | parent | next [-]

Except MoPaQ weren't zips IIRC, they had their own clever format here - at least the OG StarCraft / SCBW MoPaQs were, playing with that is what I learned binary data handling on :). The idea of zipping data files applies, of course (and many a game used a literal ZIP with custom extension).

But there's one material difference between StarCraft/Warcraft and Gimp: in Blizzard games, those were "zips" of heavy data files, notably read only data blobs. The game would read them, unpack in memory, and serve appropriately. Most of that data was key-value, text resources, or flat assets - images, sfx. With Gimp, we're talking highly structured data that's continuously being mutated. Very much not the best representation for that, even if you're just persisting it. They're only getting away with this because of SSDs - on spinning rust, you'd feel this.

(Also worth noting that, at least in StarCraft/SCBW, most of the files inside were custom, well-optimized binary formats. This predated the XML insanity of encoding data with 90%+ markup overhead.)

herrherrmann 44 minutes ago | parent | prev [-]

Cool, I didn’t know that! But makes a lot of sense.