Re: Freenukum game data
Am 06.11.22 um 12:57 schrieb Alexandre Detiste:
Hi Alexandre, hi Debian Games team,
I've spotted this one on salsa:
https://salsa.debian.org/silwol/freenukum
This look like a candidate for (optional)
handling by game-data-packager.
For this to work you only need to make sure your
games also try to reads the origina assets from
"/usr/share/games/duke1" or something else under "/usr/share/games".
I've recognized the name game-data-packager in the past, but never took a
deeper look. From a quick look, it appears to perfectly fit the usecase here,
so I'd happily support the data included in a .deb produced by it.
I was first going to execute the "freenukum-data-tool" (like we do in
lgeneral.py)
but it looks it doesn't do anything so special,
so maybe use the builtin code of GDP ?
(that will call id-shr-extract , anyway ...
https://github.com/twogood/dynamite/blob/master/src/id-shr-extract.c
so it's juste swaping one tool for another)
Yes, from a quick look it appears like the same functionality can be achieved
with gdp.
The home of FreeNukum is https://salsa.debian.org/silwol/freenukum.
Nice
Yeah, I've never liked GitHub, and the recent restrictions that require free
software projects to apply for what I would call full standard functionality
on GitLab (previous home of FreeNukum), I started to look for other options,
and salsa was my choice after looking at git.sr.ht, codeberg.org and salsa
(which are the git hosting offers that I consider best aligned with the free
software spirit).
Of course you get to keep the tool for the people on Debian/Ubuntu not using GDP
or the people other distros; It's only a convenience.
Will keep it for sure, as it allows people on other distros or operating
systems to get the same functionality without installing tools external to the
project, and it is simple enough.
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,
but I need to investigate how to properly find the files in a case-insensitive
manner (or possibly just checking for full-lowercase and full-uppercase file
names would be good enough as well).
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, so I decided to at least
convert graphics and sounds to .png and .ogg, and possibly level data to some
JSON format or similar, which is functionality that the freenukum-data-tool
should cover as well.
You pointing me to GDP got me thinking that I might want to find a different
solution for this, always just having the extracted original data on disk, and
not requiring it to be converted to the well-known formats already. Maybe I'll
look into providing an indirection that generates the required .png and .ogg
files in memory on the fly and provide this as the data backend to Bevy. There
are wrappers that allow asset data from inside .zip files to be loaded
directly, something along the lines of this might work.
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. The path towards
this would of course be facilitated by supporting well-known file formats
directly.
GDP has GOG.com automation.
Nice! Sad for those who don't get to buy the Duke Nukem 1 game there because
it has been discontinued. I have bought it there, so in case some testing is
needed, I'd be happy to perform it.
BR,
Wolfgang.
Reply to: