dreamer / luxtorpeda

Steam Play compatibility tool to run games using native Linux engines
https://luxtorpeda.gitlab.io/
GNU General Public License v2.0
390 stars 9 forks source link

DOOM 3 (9050) - Working Package #2

Closed d10sfan closed 5 years ago

d10sfan commented 5 years ago

I created a package based on the Jedi Knight package, using the dhewm3 project. Ran it through the docker image you linked and was able to create a dist build, put it into the cache directory and have Luxtorpeda run and install it. I was at least able to prove that the dhewm3 binary runs and got into a single player campaign start. I also added support for 9070 (the expansion pack).

Wasn't sure exactly where to put the package for review, so I created a repo here: https://github.com/d10sfan/luxtorpeda-dhewm3

I didn't touch the LICENSE file, but the rest of it should be feature complete to run Doom through this layer.

For 9070, the engine needs to be run with /dhewm3 +set fs_game d3xp. I attempted to have that in the packages.json as a command_arg, but it didn't look like it worked. Running it directly with that from the steam runtime (~/.steam/steam/ubuntu12_32/steam-runtime/run.sh ./dhewm3 +set fs_game d3xp) worked fine. The manual edits to the packages.json are below:

        "9050": {
        "game_name":    "DOOM 3",
        "package":      "dhewm3-9050.tar.xz",
        "command":      "./dhewm3"
    },
    "9070": {
        "game_name":    "DOOM 3 EXP",
        "package":      "dhewm3-9070.tar.xz",
        "command":      "./dhewm3",
        "command_args": "+set fs_game d3xp"
    }

For building, I did the following (just for ease of use):

dreamer commented 5 years ago

It's great, thanks :)

I didn't touch the LICENSE file …

This is something I'll need to improve in future iterations - I need to make it clear for end users which license covers package scripts and which license covers the engine itself, distribute licenses texts with the package, etc.

I attempted to have that in the packages.json as a command_arg, but it didn't look like it worked.

Yeah - it worked in one of initial versions, then I needed to temporarily remove it when implementing packages.json file. I just re-implemented it back, the latest version from master seems to be working ok (but I tested with Q3A, as I don't own expansion pack for Doom 3).

sudo docker run …

I intend to document this process together with instructions for locally rebuilding docker image at https://gitlab.com/luxtorpeda/runtime As for git (and few other tools) - I think I'll include them in some future release of docker image - missing git binaries prevented me from generating useful metadata to be included with the packages (that's why manifest file is empty).

BTW, I looked at dhewm3 releases and it seems like next version will support Doom 3 demo: https://steamdb.info/app/9100/

I'll close this issue as soon as I'll get confirmation that new version of Luxtorpeda works with Doom 3 expansion pack :)

d10sfan commented 5 years ago

Thanks, re-tested with the new version and the expansion worked great.

And I'd be happy to help maintain that repo, I have a gitlab account with the same account name (d10sfan).

dreamer commented 5 years ago

I think we can both agree - this is implemented :)