blt4linux / blt4l

PAYDAY 2 SteamOS/Linux LUA loader.
Other
57 stars 14 forks source link

Completely eliminate the awkward installer with a runtime script instead #83

Open zekesonxx opened 6 years ago

zekesonxx commented 6 years ago

Introducing: blt4l_launcher. A single-file bash launcher script, designed for distro packaging with no external dependencies (except zenity for error messages, but that's wholly optional).

Features:

Rough idea of new blt4l install instructions:

  1. Install the respective blt4l package for your distro: Debian, Fedora, Arch, etc
  2. Set PAYDAY 2's launch options in Steam to blt4l %command%
  3. Run the game

Pros over the old system:

Cons over the old system:

Folder mockup of a proper package install (Arch standards here):

/usr
└── bin
    └──blt4l (installer script)
└── lib
    └── blt4l
        ├── libblt_loader.so (compiled for the distro)
        ├── libblt_loader_steamrt.so (compiled for the steam runtime)
        └── mods (mods folder from the repo)
            └── ...
RomanHargrave commented 6 years ago

Doesn't automatically modify the game's launch options

but we could write a launcher installer launcher :tada:

all in all, I like this

zekesonxx commented 6 years ago

Technically I could add something like blt4l -install that would inject the launch options into Steam's vdf files, but that feels like a lot of work and added script bulk for almost no payoff.

zekesonxx commented 6 years ago

@RomanHargrave shall I move the repo over to the blt4linux organization?

RomanHargrave commented 6 years ago

If you want.

RomanHargrave commented 6 years ago

I'm revisiting issues at the moment, and had some thoughts on this.

The installer is more than just that, it's a collection of scripts to automate a source build for end users. Setting the launch parameters is somewhat of a tertiary concern. Perhaps if we were to install a launch wrapper, and then configure steam to use it instead of the current approach. It has the benefit of the launcher in being more end-user friendly and robust, as well as giving us the ability to redirect the game output to a file, and we retain the automated process of building BLT and putting it in the proper place (most of the time). Ultimately, the launcher alone runs in to the same problem as does the installer here, though, which is putting files in the proper place. If we want to properly store BLT in known location (like /var, or /opt, with the launcher in the path), we need to have write access to the root filesystem, otherwise we need to rely on the user having an environment configured to search $HOME/.local/bin or similar, which is not 100% guaranteed.