What is a good file format to use for such a file? XML?
XML is stil bloated, still costly to parse, and still has a couple of features that doesn't help in this use case. The major opinion is to create a customized binary file format fitted to your needs *if* you speak of the load file format; it is something other if you speak of file formats for the development phase where interchangeability plays a role.
There are two problems with binary source formats from a development perspective.
- They are difficult for developers to edit with confidence
- Source control can't give you a useful diff history.
OTOH, you're right about xml being bloated at runtime. One option would be to write the source data in xml/json/whatever and then write a simple tool to parse the xml into your custom binary format as a build step. This should be relatively trivial to do and then you get the best of both worlds; human readable source that is easily put into version control and fast, compact files to distribute.
if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight