Skip to content

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

Description

@zekesonxx

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:

  • Automatically copy in mods/ if missing
  • Automatically copy in mods/base/ if missing
  • Detects the Steam runtime and switches binaries as needed
  • Loads a binary in the gamedir if present (so, will look for $PAYDAY2/libblt_loader.so before /usr/lib/blt4l/libblt_loader.so)
  • Fail gracefully

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:

  • Distro packaging friendly
    • Easily change library or mods dir paths using simple patch files on the script
    • No install time scripts
  • Handles running with or without the Steam runtime without missing a beat
  • No user interaction needed to install the mods directory
  • Simply delete mods/base and run the game again to repair/update the base mod
  • Easily distribute updates or modifications to the base mod, just tell the user to delete mods/base to update.
  • Don't have to figure out where the game is (Steam will automatically put us there)

Cons over the old system:

  • Doesn't automatically modify the game's launch options
    but it is a lot simpler to explain to a user on how to do it
  • Less friendly to installing outside of a package manager

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)
            └── ...

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    installerRelating to the BLT4L installation system

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions