-
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
Luxtorpeda packages and CI on GitLab: https://gitlab.com/luxtorpeda
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 'heavy'. We can use scout for now.heavyis now used as default in Steam Beta. 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.
-
steam runtime has an option of being built as a docker image for some time.
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
- domain name: bought
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 DONE: template project and very first package built: https://gitlab.com/luxtorpeda/packages/ioq3
- Set up package hosting: TBD maybe GitLab allows for LFS artifacts to be downloaded from stable urls?
Build an initial version of compatiblitity tool
- Build new stub compatibility tool in Rust DONE: mirrors: https://github.com/dreamer/luxtorpeda, https://gitlab.com/luxtorpeda/luxtorpeda.
- Set up and test Rust build in Steam Runtime context
- Create simplest working version of the tool in Rust DONE (runs Doki Doki Literature Club)
- Initial version that can run Quake 3 Arena DONE (early version, needs to be prepackaged with zipped ioquake3)
- Implement downloading of ioquake3 build artifacts instead of bundling them with the tool TBD
Great list of potential candidates: https://osgameclones.com/
| Engine | App IDs | License | Runtime* | Comments... |
|---|---|---|---|---|
| Cortex Command | 209670 | AGPLv3 | ??? | |
| devilutionX | GOG | Unlicense | ??? | 64bit native Linux build are currently not in a playable state (Source) |
| dxx-rebirth | 273570, 273580 | GPLv3 | ??? | |
| Falltergeist | 38410 | GPLv3 | ??? | Fallout 1 is planned after release. Fallout 2 don't work completely yet. |
| ioquake3 | 2200, 2350 | GPLv2 | NO | |
| q3e | 2200, 2350 | GPLv2 | ??? | |
| JA2 Stracciatella | 12370, 545210 | Public Domain/SFI-SCLA | ??? | JA2: UB doesn't work. |
| OpenJK | 6020, 6030 | GPLv3 | ??? | |
| OpenMW | 22320 | GPLv3 | ??? | |
| OpenXcom | 7650, 7760 | GPLv3 | YES | Needs yaml-cpp and SDL_gfx (not sure which version). |
| vkQuake | 2310 | GPLv2 | ??? | |
| Whispers of a Machine AGS engine | 631570 | Artistic License 2.0 + mixed | ??? | |
| xoreos | 2760, 7110, 17450, 20900, 32370, 47810, 47900, 208580 | GPLv3 | ??? | Games doesn't work completely yet. Neverwinter Nights 2 and Dragon Age II is no longer available to buy from Steam. Not sure about Nevewinter Nights: Enhanced Edition support. |
*Requires additional dependencies beyond what is provided by the Steam Runtime
This wiki is mirrored on GitLab!