-
Notifications
You must be signed in to change notification settings - Fork 7
Luxtorpeda
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
There are two main components to build:
-
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).
- ability to download files from (our own) repository and install them on first run. This is already implemented in steam-dos (branch
-
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.
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.
Reserve Luxtorpeda org name:
- GitLab DONE: https://gitlab.com/luxtorpeda
- GitHub ONGOING: name is being squatted, waiting for resolving of GitHub ticket; I will publish project under my name until it's resolved
- Docker Hub: DONE: https://hub.docker.com/u/luxtorpeda
Steam Runtime docker image
- Build ONGOING: done only locally, procedure needs to be automated and documented for handling of runtime updates
- Test upload DONE: https://hub.docker.com/r/luxtorpeda/steam-runtime-amd64-beta
- Test CI DONE: image can be used: https://gitlab.com/luxtorpeda/test-1/pipelines
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
| 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
This wiki is mirrored on GitLab!