mirror of
https://github.com/ElHombreAlex/FTL-Faster-Than-Light-VR.git
synced 2026-10-06 01:00:06 +02:00
105 lines
7.6 KiB
Markdown
105 lines
7.6 KiB
Markdown
# FTL VR
|
||
|
||
**Command your ship from a floating tabletop in VR.**
|
||
|
||
An experimental OpenXR mod for **FTL: Faster Than Light**. Walk around a miniature ship, direct crew into rooms, target an opposing ship, and use FTL's original HUD and menus with tracked controllers.
|
||
|
||
> **Playable source alpha · Windows · SteamVR · Steam Frame tested**
|
||
>
|
||
> The real FTL process runs the campaign, combat, events, saves and soundtrack. The VR client presents that live game in Godot. Bring your own copy of FTL; game files and extracted assets are not included.
|
||
|
||
## What it does
|
||
|
||
- Floating player and enemy ships with opposing bows, room interiors, visible shields and movable encounter placement.
|
||
- Original headset-following HUD, with a compact controller screen for navigation, Tactical, shortcuts, system power and illustrated Help.
|
||
- Crew selection and drag-to-room orders, door controls, weapon/beam targeting and native system targeting.
|
||
- Contextual Jump/Ship/Store actions, a cockpit-anchored sector map, floating event dialogs and complete native shop/ship panels.
|
||
- An eight-slot action wheel, Shift/Ctrl shortcuts and a QWERTY VR keyboard for renaming crew and ships.
|
||
- Original procedural voxel crew, weapons and drones, weapon charge indicators, room fire and breach effects.
|
||
- Surrounding stars and native-state-driven asteroid, sun, nebula/storm and pulsar environments.
|
||
- A separate game copy and VR save prefix, plus a backup before each normal launch.
|
||
|
||
## Start here
|
||
|
||
| Guide | Contents |
|
||
| --- | --- |
|
||
| [Installation](docs/INSTALLATION.md) | Required downloads, local environment, isolated game preparation and first launch |
|
||
| [Controls](docs/CONTROLS.md) | Steam Frame bindings, contextual controls, modifiers and desktop inspection |
|
||
| [Project status](docs/STATUS.md) | Implemented features, verification, limitations and remaining work |
|
||
| [Troubleshooting](docs/TROUBLESHOOTING.md) | Setup failures, tracking, capture, logs and save recovery |
|
||
| [Architecture](docs/ARCHITECTURE.md) | How FTL, Hyperspace, the bridge and Godot communicate |
|
||
| [Development](docs/DEVELOPMENT.md) | Source layout, tests and profiling |
|
||
| [Contributing](CONTRIBUTING.md) | Useful reports and changes |
|
||
| [GitHub setup](docs/GITHUB_SETUP.md) | Connect this folder to your own new GitHub repository |
|
||
| [Licenses and notices](THIRD_PARTY_NOTICES.md) | MIT project source, preserved upstream notices and external dependency terms |
|
||
|
||
### Prerequisites
|
||
|
||
These are the versions used for the verified setup, rather than a promise of compatibility with newer releases.
|
||
|
||
| Component | Verified setup |
|
||
| --- | --- |
|
||
| Operating system | Windows |
|
||
| Owned game | Steam Windows FTL 1.6.14, copied and rolled back to 1.6.9 |
|
||
| Loader | Hyperspace 1.23.2 |
|
||
| Rollback | Official FTL-Version-Rollback `Steam-1.6.14.bps` |
|
||
| Mod manager | ftlman 0.7.4 |
|
||
| VR client engine | Godot 4.7.2 standard build |
|
||
| Python | 3.10 or newer, with [requirements.txt](requirements.txt) |
|
||
| VR runtime | SteamVR selected as the active OpenXR runtime |
|
||
| Headset/controllers | Steam Frame; other OpenXR profiles are present but need hardware testing |
|
||
|
||
Development and desktop checks used an **RTX 4060 Ti 8 GB and 32 GB RAM**. This is a tested configuration, not a measured minimum specification. GOG asset extraction is supported; the complete GOG executable/loader route has not been verified.
|
||
|
||
### Setup and daily launch
|
||
|
||
This is a technical source release. **SETUP.cmd prepares Python and a local configuration template; it does not install the game loader or complete the game setup.** Follow the [installation guide](docs/INSTALLATION.md) to prepare your own isolated FTL copy, resolve hooks, import local assets and fill in the configuration.
|
||
|
||
After installation:
|
||
|
||
1. Run **CHECK-SETUP.cmd** to check the configured paths and prerequisites.
|
||
2. Start SteamVR and connect the headset/controllers.
|
||
3. Run **RUN-VR.cmd**. Use **RUN-DESKTOP.cmd** for desktop inspection.
|
||
4. Close the client normally to request FTL's save-and-exit operation.
|
||
|
||
The [controls guide](docs/CONTROLS.md) explains crew movement, room targeting, the action wheel and the System Power page. The in-VR Help page includes a controller infographic.
|
||
|
||
## Current state
|
||
|
||
The maintainer has played substantial portions of runs on Steam Frame and confirmed that earlier revisions are playable. The latest revision improves Tactical delivery, native-font menus, crew orientation, doors, drones, the enemy hull bar and map placement.
|
||
|
||
Core game input, capture, native state and graceful launch/exit have been verified in an isolated game. **Complete campaign coverage and measured stereo headset performance remain open.** Hacking target acceptance is verified; drone attachment/effect completion still needs encounter testing. The renderer presents hazards and some effects approximately while the original game remains authoritative.
|
||
|
||
Latest recorded checks: **27 Python tests and seven Godot suites passed**. Tactical delivery reached about **28–29 updates/second in desktop scene checks**; this is texture delivery, not headset FPS. A clean installation on a different machine has not yet been tested. See [STATUS.md](docs/STATUS.md) for the full distinction between implemented, checked and still to test.
|
||
|
||
## Repository layout
|
||
|
||
```text
|
||
bridge/ Hyperspace Lua state/events and Frida native hooks
|
||
scripts/ Godot scene, input, HUD, panels, models/effects and shaders
|
||
tools/ Extraction, preparation, launch, tests and profiling
|
||
config/ Example configuration with placeholder paths
|
||
docs/ Community guides
|
||
.github/ Issue forms and Python test workflow
|
||
project.godot Open this source project in Godot
|
||
local_game_data/ Generated locally; ignored by Git
|
||
```
|
||
|
||
No standalone compiled release is included. Download third-party tools separately and generate the local game-dependent data from your owned installation.
|
||
|
||
## License
|
||
|
||
Project source is available under the [MIT license](LICENSE), retaining the universal-modder upstream notice. Dependency license-reference documents and credits are included in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) and [licenses/](licenses/README.md). FTL game content remains outside this source license; players supply their own game and generate local presentation data.
|
||
|
||
## Credits
|
||
|
||
FTL: Faster Than Light is created by **Subset Games**. This is an unofficial community project and is not affiliated with or endorsed by Subset Games or Valve.
|
||
|
||
- [universal-modder](https://github.com/rehan-remade/universal-modder), by Rehan and contributors: the toolkit and example workspace from which this standalone source was prepared.
|
||
- [Hyperspace](https://github.com/FTL-Hyperspace/FTL-Hyperspace) and [FTL-Version-Rollback](https://github.com/FTL-Hyperspace/FTL-Version-Rollback): the loader, Lua API, documented signatures and rollback route.
|
||
- [ftlman](https://github.com/afishhh/ftlman), with [Slipstream Mod Manager](https://github.com/Vhati/Slipstream-Mod-Manager) as a resource-format reference.
|
||
- [Godot](https://godotengine.org/), [Frida](https://frida.re/), [Capstone](https://www.capstone-engine.org/), [Pillow](https://python-pillow.org/) and [NumPy](https://numpy.org/).
|
||
- [Valve's Steam Frame Godot guidance](https://partner.steamgames.com/doc/steamhardware/steamframe/engines/godot) and [controller documentation](https://partner.steamgames.com/doc/steamhardware/steamframe/input).
|
||
|
||
Developed iteratively with **OpenAI Codex (GPT-6)**, with design direction and Steam Frame playtesting by the project maintainer. Crew/weapon/drone voxel geometry is procedural source code; no external generated-asset service was used. FTL artwork, icons, bitmap fonts and audio come from the player's local game, rather than this repository.
|