Ace of Angels preservation project
Recovering, documenting and playing again Ace of Angels, the online 3D
space-combat sim by Flying Rock Enterprises (2000–2006).
Play it ·
Host a game ·
Linux server ·
Research record ·
Docs ·
Contribute
In flight, from the screenshot gallery on the official site, aceofangels.com.
> [!NOTE]
> Not to be confused with the K-pop group AOA ("Ace of Angels"). Searching?
> Pair the name with "Flying Rock" or "space".
## 🚀 The game
*Ace of Angels* was an online space-fighter game built by a small team in
Marietta, Georgia, "since 1996". Set in the early 26th century in the
**Known Sphere** (8 races, 10 nations), it promised 40+ fighters, capital
ships and persistent faction politics. It won **Technical Excellence at the
2002 Independent Games Festival**, shipped free betas on magazine cover discs
in 2002–2004, and was scheduled for release in March 2006. It never launched.
Its servers went dark, and the company was dissolved in 2011.
The Shrike and Grathven fighters, and two "Spotlight" features from the universe pages.
## 🛰️ What this project has
| | |
|---|---|
| 📦 **Builds** | Six client versions recovered, hashed and versioned: full installers 2.0.0, 2.7.1, 2.8.0, 2.8.2 and 2.9.2, plus a 2.3.1 replacement client. Sources and hashes: [`manifest/downloads.json`](manifest/downloads.json). |
| 🎮 **Playable today** | The 2.9.2 client runs on Windows 10/11 with crash, timing and display fixes. The offline training mission plays. |
| 🌐 **Multiplayer** | A new stand-in server, written from reverse engineering, lets friends dogfight over a LAN or a private VPN: guns, missiles, kills, scoreboard, ship changes, 20 maps, power-ups and a host control window. |
| 🐧 **Dedicated Linux host** | An unattended systemd service with automatic map rotation, kill/time limits, admission recycling, a stalled-process watchdog and rotation state that survives reboot. [Setup and operation](docs/linux-host.md). |
| 📜 **History** | Magazine coverage, company records, trademarks, the old website and forums (restored from the Wayback Machine), and the state of revival attempts. |
No game files are in this repository. The tools download the original
installer from public archives into your own folder and modify only your copy.
See [NOTICE.md](NOTICE.md).
### Honest status
> [!IMPORTANT]
>
> - **Two separate Windows PCs have fought through the Linux host over LAN.**
> The operator reported damage and destruction; server logs confirm two valid
> player deaths, one per player. [Session verification](evidence/2.9.2/linux_two_pc_combat_20261026.json).
> - Automatic rotation, watchdog recovery and reboot persistence were checked
> on the Linux VM. Map-transition tests used simulated Windows clients;
> visual terrain loading after real-client rejoin still needs acceptance.
> - Internet/VPN play remains unverified between separate connections.
> Players must quit/relaunch and rejoin between maps; transitions are not seamless.
> - This is a trusted-friends relay, not a public server. There are no accounts,
> and the original clients decide hits and damage.
> - No CTF rules, AI missions or persistent pilots yet. Practice target ships
> can be destroyed, but they are passive and never fire back.
## 🧭 Start here
| I want to… | Go to |
|---|---|
| Play it on Windows 10/11 | [docs/play.md](docs/play.md) |
| Host a game for friends | [docs/play.md#play-with-friends](docs/play.md#play-with-friends) |
| Get sharper ship and station skins | [docs/texture-pack.md](docs/texture-pack.md) |
| Run an unattended Linux server | [docs/linux-host.md](docs/linux-host.md) |
| Read the history and what was found | [CONTEXT.md](CONTEXT.md), then [docs/](docs/README.md) |
| Help reverse-engineer the client or server protocol | [docs/README.md](docs/README.md#how-the-game-works) and [docs/findings.md](docs/findings.md) |
| Help find missing builds or old material | [CONTRIBUTING.md](CONTRIBUTING.md#leads-and-old-material) |
## 🐧 Dedicated Linux host
The host runs on Ubuntu Server 24.04 with Python 3.12 and no pip dependencies,
GPU or desktop session. The first deployment uses **1 vCPU, 2 GiB RAM and a
12 GiB disk** in a Proxmox VM. Start on a trusted LAN, then follow the VPN
runbook when ready to test internet access.
| Default | Behavior |
|---|---|
| Map rotation | `CTF_arena` → `CTF_arena_b` → `ast_fld_a` → repeat |
| Match limit | First pilot to **10 kills**, or **15 minutes** from flight entry |
| Map change | **30-second warning**, followed by a **5-second intermission** |
| Admission recycling | Fresh process before the lifetime join limits, plus cleanup of used empty sessions |
| Recovery | Status watchdog and bounded crash restarts; current map resumes after a VM reboot |
The server handles those transitions automatically. **Players must relaunch
and rejoin after each map change**, using the prepared client with native
terrain support. Map position and completed-session count persist; pilots,
scores and bans reset with each new game process.
Follow the [Linux setup and operating guide](docs/linux-host.md). Match limits
and maps are configured in `/etc/ace-of-angels/rotation.json`; the repository
includes an [example configuration](deploy/linux/rotation.json.example) and a
[deployment verification record](evidence/2.9.2/linux_rotation_20261026.json).
## ⚡ Quick start
On Windows 10/11 with [Python 3.12](https://www.python.org/downloads/) and Git:
```powershell
git clone https://github.com/JasonRucinski/ace-of-angels-preservation.git ace-of-angels
cd ace-of-angels
py -3.12 -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt
.venv\Scripts\python.exe -I tools\fetch_known_builds.py builds\
```
Then download the [dgVoodoo2 2.87.5 wrapper](https://github.com/dege-diosg/dgVoodoo2/releases/download/v2.87.5/dgVoodoo2_87_5.zip)
and follow [docs/play.md](docs/play.md) from step 3.
## 🗂️ Repository layout
| Path | Contents |
|---|---|
| [`docs/`](docs/README.md) | Guides, research write-ups, protocol notes and roadmaps, with an index |
| [`tools/`](tools/README.md) | Player scripts, the stand-in server, client patches, analysis tools and tests, with an index |
| [`deploy/linux/`](deploy/linux/) | Linux systemd service and example host/rotation configuration |
| [`CONTEXT.md`](CONTEXT.md) | The research record: builds, sources, what was searched, next steps |
| `manifest/` | Where each recovered build came from, with hashes |
| `evidence/` | Machine-readable results behind each claim in the docs |
| `data/` | Archive search logs and magazine mentions |
| `config/` | Client configuration records |
| `CLAUDE.md` | Working rules for AI coding agents (and a good summary for humans) |
`builds/`, `game/`, `originals/`, `wb/` and `work/` are created locally and
never committed.
## 🤝 Contributing
Bug reports from real play sessions, old discs and screenshots, and protocol
findings are all welcome. See [CONTRIBUTING.md](CONTRIBUTING.md).
## ⚖️ Licence
The code and documentation here are MIT-licensed ([LICENSE](LICENSE)).
*Ace of Angels* itself belongs to its owners; this project is unofficial and
unaffiliated ([NOTICE.md](NOTICE.md)).
Images on this page come from the archived official sites, aceofangels.com and
flyingrockllc.com (2000–2007), recovered from the Wayback Machine. They belong to
their owners; sources are in docs/images/SOURCES.md.