New Player File Format
The Descent 2 player files had never been meant to be expanded with new game options or control settings, and D2X-XL had always been suffering from that. It had happened often enough that even older D2X-XL player files would mess up newer D2X-XL versions, producing strange results or even causing it to crash. It had therefore been long on my mind to create a more robust and flexible player file format.
This being a rather tedious and monotonous task without the challenge and excitement of adding fancy new features and acquiring the required knowledge made me shy away from it - until now. So here it is: The new player file format!
gameOptions[0].input.bJoyMouse=0
gameOptions[0].input.bLinearJoySens=0
gameOptions[0].input.bSyncJoyAxes=1
gameOptions[0].input.bSyncMouseAxes=1
gameOptions[0].input.bUseHotKeys=1
gameOptions[0].input.keyRampScale=50
gameOptions[0].input.bRampKeys[0]=0
gameOptions[0].input.mouseSensitivity[0]=16
...
gameOptions[0].render.smoke.nDens[0]=2
gameOptions[0].render.smoke.nSize[0]=3
gameOptions[0].render.smoke.nLife[0]=0
...
gameOptions[0].render.bDynLighting=1
gameOptions[0].render.nDebrisLife=0
gameOptions[0].render.textures.nQuality=2
gameOptions[0].render.bAutoTransparency=1
gameOptions[0].render.bCoronas=1
gameOptions[0].render.bTransparentEffects=1
This is a very simple format, but it is easy to handle and to create, and since D2X-XL doesn't have a real lot of settings (compared to the data in a database or so), it is absolutely sufficient. The identifier names have been created directly and automatically from the game code's data identifiers. Adding new options simply means adding a registration call for the new data, and all the handling of that new option or controller properties will be added automatically.
As all options are related to the game's data and settings via their name, adding stuff will not mix up the player file interpretation any
more as had been the case with the old, binary format. It couldn't be any easier. 