On Mon, 07 Nov 2022 at 08:43:25 +0100, Wolfgang Silbermayr wrote:
It also extracts all files in lowercase, haven't looked at what GDP does.
Currently, FreeNukum can only load these, although I intend to change that
It's fine to have converted versions on-disk *alongside* the originals
as an optimization, or for the benefit of an engine that doesn't know
how to load the originals - if necessary, g-d-p can run imperative code
to convert or edit them, on a "write-only" basis.
game_data_packager/games/lgeneral.py is an example of this.
I'm currently in the process of migrating FreeNukum to the Bevy engine. The
fact that files of different types have the same suffix (.dn1, .dn2 or .dn3,
but the same for graphics, sound and level data), caused some issues there,
as Bevy can only register one asset loader per suffix
g-d-p can rename files if necessary, and can look for source files under
more than one name, although the syntax for that is relatively verbose
so you wouldn't want to use it for more than a few files.
Again, if you can teach your engine to be able to load the original files
without modification, that would make it easier for people who have copied
a Windows installation without using a special tool.
My long-term vision is to have free assets for FreeNukum as well, so that
the game can be played without requiring any proprietary data.
That game wouldn't be Duke Nukem, it would be a different game that
happens to have Duke-Nukem-like gameplay and share an engine - similar
to the relationship between Quake III Arena and OpenArena. The way we
generally represent that is to have a free engine (packaged directly in
main or contrib), a package representing the free game that depends on the
engine (packaged directly in main or non-free depending on licensing),
and a parallel g-d-p-generated package representing the original game
that also depends on the engine (non-redistributable), so that you can
install either or both of the two games.