Just a week after the holidays, well rested, I already made few important changes in Xash3D FWGS.
1. There is no more `liblist.gam` to `gameinfo.txt` convert mechanism. Almost. Xash3D uses `gameinfo.txt` to allow extra options for mods, and previously generated this file from GoldSrc's `liblist.gam` on the fly if the file was too old or didn't exist.
This logic led to a confusion, most players don't know about `gameinfo.txt` and continue modifying `liblist.gam`. New game definition file is just a useless clutter in the game directory for them, some mods, even unknowingly, shipped an outdated and broken game definition file.
Now it has been completely reduced to converting only when both `gameinfo.txt` and `liblist.gam` exist, but `liblist.gam` has newer modification time for those who rely on this feature. Though it's now deprecated, and might be dropped in the future.
As a bonus, `gameinfo.txt` isn't generated anymore for Quake game directories, which should be good for those using QuakeWrapper... I hope that isn't just two people: me and Mike. :)
It's still to possible to generate this file, as it remains the main _native_ game definition format for Xash, with documented console command `fs_make_gameinfo`.
As a second bonus, we don't create folders in read-write storage when RoDir is used anymore (RoDir is an engine feature that allows to separate read-only and read-write storage). The game folder structure is now created on demand.
2. While I was testing my patch on Quake game directories, I tried to load Dimension of the Past from Quake's re-release in QuakeWrapper. It works fine, some stuff is broken, but in the same way as in the typical Quake fork.
Loading new episode's levels requires BSP2 support from the engine. Xash3D already supports BSP2, but it is implemented as a compile-time macro. Compiling the engine with this macro defined and without it is a pain in the ass and a waste of time even for programmers. Now imagine users who don't know or don't care how these computers work...
The reason why it is a compile-time macro, is that BSP2 requires some internal structures to be larger. This however has a drawback as it breaks compatibility with a few Half-Life mods that like to poke inside engine's structures.
Now, the engine will expand these internal structures on demand, when user attempts to load BSP2 map. This doesn't fix compatibility issues for these advanced HL mods, but at least allows using BSP2 from the same engine binary without recompiling anything.
1. There is no more `liblist.gam` to `gameinfo.txt` convert mechanism. Almost. Xash3D uses `gameinfo.txt` to allow extra options for mods, and previously generated this file from GoldSrc's `liblist.gam` on the fly if the file was too old or didn't exist.
This logic led to a confusion, most players don't know about `gameinfo.txt` and continue modifying `liblist.gam`. New game definition file is just a useless clutter in the game directory for them, some mods, even unknowingly, shipped an outdated and broken game definition file.
Now it has been completely reduced to converting only when both `gameinfo.txt` and `liblist.gam` exist, but `liblist.gam` has newer modification time for those who rely on this feature. Though it's now deprecated, and might be dropped in the future.
As a bonus, `gameinfo.txt` isn't generated anymore for Quake game directories, which should be good for those using QuakeWrapper... I hope that isn't just two people: me and Mike. :)
It's still to possible to generate this file, as it remains the main _native_ game definition format for Xash, with documented console command `fs_make_gameinfo`.
As a second bonus, we don't create folders in read-write storage when RoDir is used anymore (RoDir is an engine feature that allows to separate read-only and read-write storage). The game folder structure is now created on demand.
2. While I was testing my patch on Quake game directories, I tried to load Dimension of the Past from Quake's re-release in QuakeWrapper. It works fine, some stuff is broken, but in the same way as in the typical Quake fork.
Loading new episode's levels requires BSP2 support from the engine. Xash3D already supports BSP2, but it is implemented as a compile-time macro. Compiling the engine with this macro defined and without it is a pain in the ass and a waste of time even for programmers. Now imagine users who don't know or don't care how these computers work...
The reason why it is a compile-time macro, is that BSP2 requires some internal structures to be larger. This however has a drawback as it breaks compatibility with a few Half-Life mods that like to poke inside engine's structures.
Now, the engine will expand these internal structures on demand, when user attempts to load BSP2 map. This doesn't fix compatibility issues for these advanced HL mods, but at least allows using BSP2 from the same engine binary without recompiling anything.
Just a week after the holidays, well rested, I already made few important changes in Xash3D FWGS.
1. There is no more `liblist.gam` to `gameinfo.txt` convert mechanism. Almost. Xash3D uses `gameinfo.txt` to allow extra options for mods, and previously generated this file from GoldSrc's `liblist.gam` on the fly if the file was too old or didn't exist.
1. There is no more `liblist.gam` to `gameinfo.txt` convert mechanism. Almost. Xash3D uses `gameinfo.txt` to allow extra options for mods, and previously generated this file from GoldSrc's `liblist.gam` on the fly if the file was too old or didn't exist.