AVAFlight is a recreation of Starflight, the 1986 space exploration RPG. It is built with .NET 10 and Avalonia 12 for Windows, Linux and macOS, and plays fully offline as a single-player game.
You fly from Starport on Arth to explore 270 star systems and 811 planets. Along the way you:
- train and manage a six-post crew
- outfit your ship
- mine planets and capture alien life
- negotiate with alien races
- uncover what is igniting the stars before Arth's sun flares
There are two presets:
- Classic follows the documented 1986 DOS behaviour.
- Modern keeps every rule and number the same, and adds conveniences: an automatic captain's log, waypoints, a fuel-range ring, tooltips, a pause hotkey and named saves.
Unofficial fan project. Not affiliated with or endorsed by Electronic Arts or Binary Systems. All text, art and audio are newly created, and no original game data is included. See docs/THIRD_PARTY.md.
Ready-to-run builds for Windows, macOS and Linux, on both Intel/AMD and ARM, are on the
Releases page. Latest build is rebuilt on
every push to main. Each download is one self-contained executable: no .NET install is
needed.
tar -xzf AVAFlight-linux-arm64.tar.gz # or linux-x64, osx-arm64, osx-x64
./AVAFlightOn Windows, unzip AVAFlight-win-x64.zip (or -win-arm64) and run AVAFlight.exe. On macOS, if
Gatekeeper refuses to open it, run xattr -d com.apple.quarantine AVAFlight once.
Nothing extra to install. Sound and gamepad support (SDL3) are built into the download for every
platform, ARM included, so you don't need alsa-utils (aplay) or a system SDL. Sound goes
out through whatever your desktop already runs (PipeWire, PulseAudio or ALSA); if no audio
device can be opened the game still runs, silently. You do need an X11 or XWayland session.
- .NET SDK 10.0.400 or later.
global.jsonpins the 10.0.400 SDK withrollForward: latestFeature. - Linux: an X11 or XWayland session with fontconfig. macOS / Windows: nothing extra.
- Audio and gamepad support (SDL3) are bundled. If they can't be initialised, the game runs silently.
dotnet build # whole solution
dotnet run --project src/AVAFlight.Avalonia # play (add -- --mute to disable audio)
dotnet test # 85 headless tests (engine, infrastructure, UI)
tools/screenshots.sh # regenerate docs/screenshots/*.png./publish.sh # win-x64 win-arm64 linux-x64 linux-arm64 osx-x64 osx-arm64 -> publish/<rid>/AVAFlight[.exe]
./publish.sh linux-musl-x64 # any other runtime identifier
pwsh ./publish.ps1 # Windows / PowerShell equivalentEach target can also be published individually:
dotnet publish src/AVAFlight.Avalonia -c Release -r win-x64 --self-contained -p:PublishSingleFile=true
dotnet publish src/AVAFlight.Avalonia -c Release -r linux-x64 --self-contained -p:PublishSingleFile=true
dotnet publish src/AVAFlight.Avalonia -c Release -r osx-x64 --self-contained -p:PublishSingleFile=true
dotnet publish src/AVAFlight.Avalonia -c Release -r osx-arm64 --self-contained -p:PublishSingleFile=true
dotnet publish src/AVAFlight.Avalonia -c Release -r win-arm64 --self-contained -p:PublishSingleFile=true
dotnet publish src/AVAFlight.Avalonia -c Release -r linux-arm64 --self-contained -p:PublishSingleFile=trueCI: .github/workflows/publish.yml runs the tests, publishes six targets (Windows, Linux and macOS, each on x64 and arm64) on native GitHub runners, smoke-tests each binary, and uploads the archives as artifacts. Every push to main refreshes the rolling latest pre-release with them, and a v* tag makes a proper release. If GitHub cannot allocate a macOS or ARM runner, .github/workflows/retry-macos.yml re-runs the cancelled jobs automatically (up to 3 attempts); real failures are never retried.
To verify a published binary, run publish/<rid>/AVAFlight --smoke-test. It prints AVAFLIGHT_SMOKE_OK: main menu reached and exits with code 0.
Verification so far:
- All six targets (win-x64, win-arm64, linux-x64, linux-arm64, osx-x64, osx-arm64): published and smoke-tested on native GitHub runners by the CI workflow.
- linux-arm64: also run and verified locally. See docs/KNOWN_ISSUES.md.
| Document | Contents |
|---|---|
| docs/GAMEPLAY.md | Player guide and controls |
| docs/RESEARCH.md | Research dossier, source ledger, open questions |
| docs/FIDELITY.md | Reference version, fidelity matrix, Classic vs Modern |
| docs/ARCHITECTURE.md | Projects, engine, time models, rendering, input, audio, publishing |
| docs/SAVES.md | Save locations, format, versioning |
| docs/THIRD_PARTY.md | Licences and asset provenance |
| docs/KNOWN_ISSUES.md | Caveats and unverified items |
| docs/MILESTONE_STATUS.md | Milestone status and next tasks |
| CHANGELOG.md | Release history |
| CONTRIBUTING.md | How to build, contribution rules, pull requests |
| CODE_OF_CONDUCT.md | Contributor Covenant 2.1 |
| SECURITY.md | Supported versions and how to report vulnerabilities |
Starport |
Star map |
Planet survey |
Terrain vehicle |
Alien contact |
Combat |
All 17 screenshots are in docs/screenshots.
MIT. See LICENSE. Bundled fonts are under the SIL Open Font License (licenses/); see THIRD_PARTY.md.






