From Paradox PoV their DDF (data description format) is pretty sensible. Scanning it is pretty fast (for instance, to locate all army entries, scan for tags starting with army etc. and skip rest within { } for unrelated tags). So load to such a file, they can either A) build a tree graph representing the tag hierarchy, or B) just use some kind of callback system where each kind of tag invokes some specific loading method directly at load time. Saving is much easier.
The downside, like you see, is there aren't any public GUI-editors for it. One can program one however.
Don't know if anyone did this yet but it may be possible someone has (I've seen it being discussed).
Using an SQL database? Would you install an SQL server on the user's machine and run it in background to serve the game? Not sure if loading would in fact be any faster either. Consider: Each time a save game is loaded or saved, all data from save is used (transferred to/from main memory). This is not what a general DBMS is designed for. Importing/exporting to a native text or binary format in this case is much easier and in most cases probably faster.
Now, there are some things where a real DBMS might have been better. Consider the huge amount of character data (family trees) in Crusader Kings. It should really only have been swapped to/from disk as needed since there were very few times it was actually used (player viewing 1 character at a time, or at an inheritance without direct heir). Instead, as Paradox's DDF was used, huge save files were generated that took long time loading/saving and memory was filled up. And so unimportant dead characters had to be deleted from family trees.
What I'd really love to see would be a true scripting language to accompany Paradox' DDF (or even replace it). Currently a lot of things are impossible to make with mods that'd require an executable script language. Event scripting simulate this but it's not enough. I've been propagating for Lua and Python for a while now but I doubt it'll happen.
The downside, like you see, is there aren't any public GUI-editors for it. One can program one however.
Using an SQL database? Would you install an SQL server on the user's machine and run it in background to serve the game? Not sure if loading would in fact be any faster either. Consider: Each time a save game is loaded or saved, all data from save is used (transferred to/from main memory). This is not what a general DBMS is designed for. Importing/exporting to a native text or binary format in this case is much easier and in most cases probably faster.
Now, there are some things where a real DBMS might have been better. Consider the huge amount of character data (family trees) in Crusader Kings. It should really only have been swapped to/from disk as needed since there were very few times it was actually used (player viewing 1 character at a time, or at an inheritance without direct heir). Instead, as Paradox's DDF was used, huge save files were generated that took long time loading/saving and memory was filled up. And so unimportant dead characters had to be deleted from family trees.
What I'd really love to see would be a true scripting language to accompany Paradox' DDF (or even replace it). Currently a lot of things are impossible to make with mods that'd require an executable script language. Event scripting simulate this but it's not enough. I've been propagating for Lua and Python for a while now but I doubt it'll happen.