Alberth wrote:
I read this as 'game A writes data, and game B reads it'. The main trouble I see here is that B must understand what A says. In a network, this is called a protocol, a set of agreements on things you can express in a communication, and it easily extends to off-line communication I think.
Right. This is not a protocol (in the sense of network communication) with which games communicate with one another. It is more like a data format that, for all intents and purposes, is a standard JSON file that uses certain keywords or "suggestions" for a host application that loads it.
Think of it as the same as any other game-related asset (such as a 3D mesh; or a world-map file), but for general game content.
Alberth wrote:
As for JSON with a twist, I'd advise against it. Using an open, commonly available standard, such as xml or json, is much more useful than any home-brewn format, as inevitable, the knowledge of reading it will get lost, be available in the wrong programming language or platform, etc etc.
It's not JSON with a twist in the sense that it would be a different format. These files would theoretically be standard JSON, with a few conventions layered on top.
Alberth wrote:
If you worry about size, throw a standard compression algorithm against it. It will probably perform equal or better than any smart encoding you can think of, for a fraction of the effort. Besides, disk-space is hardly a problem nowadays (although, I am down to less than 8GB free

).
That's pretty much what I was going to do from the start. I'm not looking to reinvent that particular wheel.
Alberth wrote:
Further down your message, you mention 'someone writes a file', which got me thinking about languages for adventure authoring, is this getting any closer?
Yes, that's the whole purpose. This is aimed at allowing people to write a complete game, pack it up into a file, and then use a compliant host application to read and interpret the file. This concept is based on game engines such as Doom and Quake, where the game itself was just a host application that would load WAD and PAK files (respectively) to find its graphics, levels, scripts, and so forth.