Skip to content

About

Unofficial recreation of the 1986 space exploration RPG Starflight: crew, starships, alien diplomacy, planet surveys and real-time combat. Cross-platform .NET 10 / Avalonia 12, offline single-player.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

AVAFlight

Publish

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.

Main menu

AVAFlight gameplay: driving the terrain vehicle across a jungle world, with the ship, wildlife, crew status and the terrain-vehicle menu

Download and run

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
./AVAFlight

On 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.

Linux: sound and gamepads

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.

Prerequisites

  • .NET SDK 10.0.400 or later. global.json pins the 10.0.400 SDK with rollForward: 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.

Build, run, test

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 (self-contained single file)

./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 equivalent

Each 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=true

CI: .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.

Documentation

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

Screenshots

Starport Star map
Planet survey Terrain vehicle
Alien contact Combat

All 17 screenshots are in docs/screenshots.

License

MIT. See LICENSE. Bundled fonts are under the SIL Open Font License (licenses/); see THIRD_PARTY.md.

About

Unofficial recreation of the 1986 space exploration RPG Starflight: crew, starships, alien diplomacy, planet surveys and real-time combat. Cross-platform .NET 10 / Avalonia 12, offline single-player.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages