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: