Skip to content
MicrosoftTakeover edited this page Jul 7, 2019 · 21 revisions

Luxtorpeda will be a Steam Play compatibility tool to run existing games using Linux native, open source engines.

If you want to help or have any questions, ask on steam-dos Discord channel: https://discord.gg/8mFhUPX

Project overview

There are two main components to build:

  1. Compatibility tool itself. It will be similar to steam-dos, but in some aspects simpler. It needs to have following features:

    • ability to download files from (our own) repository and install them on first run. This is already implemented in steam-dos (branch next); luxtorpeda will follow the same design, but needs to be more robust.
    • download a manifest describing mappings steam_app_id -> package to download
    • inject itself into %command%, same way steam-dos does

    More features will be needed in the future, such as an ability to upgrade the package to newer build. Python was safe choice for building steam-dos, but for a new project I would prefer to use Rust in face of limitations of building software that should be running on wide variety of Linux distributions (old and new).

  2. Repository of game "packages" compiled against Steam Runtime.

    • steam runtime has an option of being built as a docker image for some time. Proton is built using version 'scout'; next big version of steam runtime will be called 'tiny'. We can use scout for now. Only 64-bit steam runtime should be used to reduce complexity.
    • For each game package, a separate CI will need to be created: working on repo with game source code and library dependencies added as Git submodules and GitLab CI running steam runtime docker image. GitLab CI is used, because it has an ability to pull arbitrary docker image from docker hub.
    • Built packages need to be automatically listed and published as a manifest for compatibility tool to download - this way there'll be no need for releasing a new tool version to download game packages added in future.

Initial announcement (reddit, steam communities, game communities, etc)

Use steam-dos 0.5.0 release ("Boxtron") to piggyback Luxtorpeda 0.1.0 release. Hopefully it will get enough attention to attrack new members to community.

Tasks

Reserve Luxtorpeda org name:

Steam Runtime docker image

Build first game package

  • Select first game engine DONE: https://github.com/ioquake/ioq3 requires NO additional dependencies, plain Steam Runtime seems to be enough to build and deploy
  • Set up build ONGOING: done only locally, repo with it's own CI needs to be set up
  • Set up package hosting: TBD maybe GitLab allows for LFS artifacts to be downloaded from stable urls?

Build an initial version of compatiblitity tool

  • Set up and test Rust build in Steam Runtime context
  • Create simplest working version of the tool in Rust
  • Maybe make a prototype in Python, if it will unblock some other developer to work in parallel on other task

List of game engines to work with:

Engine App IDs License Runtime* Comments...
devilutionX GOG Unlicense ??? 64bit native Linux build are currently not in a playable state (Source)
ioquake3 2200, 2350 GPLv2 NO
OpenJK 6020, 6030 GPLv3 ???
OpenMW 22320 GPLv3 ???
OpenXcom 7650, 7760 GPLv3 YES

*Requires additional dependencies beyond what is provided by the Steam Runtime

Clone this wiki locally