Please go and take a look a this:http://www.insomniacgames.com/ron-pieket-a-clientserver-tools-architecture/
While you're waiting for it to load, let me try to explain.
As well as code that's shipped (i.e. the actual game), some of the code that we have to write is tools. Tools are programs used to create the content for the game, from something as grand as world/level editors, to something as mundane as bundling events together (e.g. firing the laser should result in a sound as well as an explosion).
Insomniac developed a very clever in-house system for doing this. Obviously image files, sound files and so on are in native formats. But the "control documents" are all are based on JSON. An editing tool manipulates a JSON document, and sends them to a RESTful server (which they call LunaServer) which manages those documents, using a NoSQL database (they use MongoDB, CouchDB is also an option) to store them. Everyone runs a local LunaServer and database server. Documents are checked in to a central repository as needed.
There are several advantages to this approach.
For a start, most of the infrastructure that you'd expect of an interactive editing application (e.g. I/O, undo/redo) only has to be written once, and editors can be written with that functionality from the start.
We have a number of web developers who have volunteered for the project, and it seems to me that this would be a good way to maximise the usefulness of that resource; realistically, there's only so much web site work that's needed at any given time. Having great tools is one of the things that could make contributing to Trillek fun. Moreover, writing a JSON management server is something that someone without any game experience could start working on right now, using whatever language you like (as long as it will run and build easily on Windows, Linux and OS X).
What do you all think?