An often requested feature is for the ability to download all your campaign data locally, in the unlikely event that Obsidian Portal implodes or the staff is replaced by evil dopplegangers who want to restrict your access to your own content. We’ve finally bumped this feature up to our short-term goals list, and I’d like some input on what people want.
What you’ll get
First off, let me clarify what I mean by a “backup.” I’m speaking primarily of the text content: wiki pages, adventure log posts, forum posts, and characters. We’re going for a “good enough” solution here, so we’re not going to include uploaded images. Finally, there’s no guarantee that hyperlinks will be preserved, either.
Backup, not import/export
Another point worth mentioning is that this is not intended to be an import/export feature. It’s only 1-way. We don’t intend to support importing a backup file, since that’s a big technical issue, and we don’t think it’s necessary.
We want to make this a useful feature that allows you to take your work elsewhere if you choose, but we’re not familiar with any particular formats or standards. I’ll toss out a few ideas, but I’d like to hear suggestions from the community.
Considering that the Adventure Logs would fit an Atom feed, it’s got something in its favor. However, things like wiki pages and characters don’t fit nearly as well. I could cram them in without too much trouble, but it’s definitely not a perfect fit. Plus, there is no good way to split the GM-only content from the public data. The worst fit would probably be for the campaign forum, where it would be very difficult to manage the parent-child relationship between forum posts and topics. I don’t think Atom has any support for that kind of thing.
If we can’t shoehorn everything into an Atom document, then we just give up and make up our own custom XML schema. This is kind of the default answer to most things, and while it works, it’s not great. It just means that if anyone ever wants to import the data, they’ll need to write a custom parser.
I’m just kind of throwing this out there as a straw-man argument. CSV would be a horrible export format for this kind of data, but maybe someone disagrees?
Zip of HTML files
All the formats so far have centered around cramming everything into a single file. It’s also possible that we could generate HTML files for each different page, then provide a zip containing everything. The upside here is that you would be able to open the pages in a browser without needing any kind of import tool. The downside is that HTML has very little semantic knowledge in the markup, meaning that anyone who wanted to write an import tool for the data would have a difficult job. It’s much easier to consume semantic XML than HTML.
Plus, this approach would be considerably more difficult, technically. We would have to generate the files on the server side, zip them up, then pass them off to the browser to download. I’ve never done that before, and while it intrigues me, I’d rather be working on other stuff. I’m sure most of you would also prefer me to work on other features.
If anyone knows a good standard for this kind of thing, please toss it out there. I’m always interested in learning new standards.
As always, there are no promises here. We may decide that it’s too difficult or not valuable enough, and put the idea back on the Someday pile. But, if we can come up with a solution that is the right mix of useful and quick, then we’d love to do it.