[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: