One of the things I hated about XNA when it came out was the content management system.
I thought they got it totally wrong.
I understood why they did it the way they did, but it was like a lot of things in XNA, it was designed for target management reasons rather than game design reasons.
What I wanted was a tool chain that could compile content into a sensible binary format outside of the compile phase. Then in game you have a manager that attaches to file systems.
The file system could be a disk file system, zip file system, or a network file system.
That would give you the ability to ship a game with a bunch of zip files containing compiled content, then patch these files at any time.
Why do I think this is a good idea.
- Content loading
In general these days , disk access is slower than the processing of the data. Loading a zipped file then processing it is usually faster than loading an uncompressed file and processing it.
- Content release management
You can just release a new version of the zip file whenever you want. Full version history in one hit.
- Content organisation
You can have a zip file per level, or release add ons as zips.
Since we are just talking about zip files, they can be modded by anyone. If you don’t want to allow mods, then password protect the zips.
You could mount a network file system and check the file dates against what you have locally and very simply update the local copy. (I know this isn’t the only way to do this, but to me it makes sense to have everything in a single place)
You can get the same version of everything to chase a bug as long as you keep a version history of all the zips
Do you agree with me?
Do you want it?
If enough of you are interested, I will add it to my engine and release it as a MonoGame plugin, but only if enough of you are interested.
I have more than enough work to do on my own projects so will only invest the time into this if it will be valued.
Let me know what you think.