Beta Test Status
Where SimGuild's Flying Circus revival stands right now, and what to put through its paces. The core game is playable online end-to-end — log in, pick a side and a plane, and dogfight. This is AKVaska+'s personal preservation project — the game itself is unchanged; only the server was written.
Updated 2026-08-11
📜 Original 1999 game rules — unchanged
Preservation-first: the flight model, per-section damage thresholds, radio ranges, and all combat mechanics on this server are the original 1999 SimGuild values, matching the documented behavior of the shipped client and its FAQ. AKVaska+ does not tune game balance, damage numbers, plane performance, or bullet counts — they are exactly what the original client expected.
- Per-section damage — pilot / guns / landing gear = 3 bullets to critical, engine = 15, wings / elevator / rudder = 31 (from the 1999 SimGuild FAQ).
- Hangars — 1000-hit maximum, destroyed above 700 (recovered from the shipped 1999 client). A direct bomb impact delivers up to 500 damage.
- Friendly fire — 5 friendly hits = traitor warning, 10 = your own death (from the 1999 README).
- Flight model & speed — three classes, six aircraft, stall below airspeed 50, hard-turn bleed, spin recovery needs altitude (from the 1999 Flying Tips). The sim runs at true real-time speed on modern hardware, so the planes fly exactly as they did in the late 1990s — verified against the original client's own timing.
- Aerodromes — 50% or lower operational = can't take off from that field.
- Radios — F5 (channel radio, 1–65535), F6 (guard / friendly), F8 (broadcast), F9 for command line.
- Aircraft loadouts —
fuel XX1–100%,bomb Xfor 0/2/4. - Up to 256 aircraft per arena — the original 1999 client holds each nearby plane in its own slot and caps at 256, sorted by distance, so a single arena renders up to 256 aircraft at once. In any normal fight you see everyone in range; only in an extreme 256-plane furball would the very farthest contacts stop drawing. This is the authentic 1999 client limit, not a preservation-server restriction — the server sends each pilot the nearest planes around them.
- Medals / callsign character marker — the original game awarded medals at kill-streak milestones (Order of Merit is confirmed by the 1999 COMBATSIM SimGuild interview, and the game's message wire has a dedicated medal category alongside join/kill/damage/battle/chat). A small character appended to the callsign changed as the streak crossed tiers. Our thresholds match the well-known WWI medal precedence; the exact original numbers are a decode target — see gaps below.
Anything AKVaska+ added on top (the battle-total tracker announcement, the website stats pages, this status page, and the admin controls) is explicitly labeled — not a change to original mechanics.
✅ Confirmed working
Verified live in play.
- Server capacity — the backend is a purpose-written Go server with a bundled single-writer daemon batching every database write. Live-tested at 5 real pilots + a large bot fleet at <2% CPU on 8 cores; sized to scale to hundreds of concurrent pilots. A single arena still holds up to 256 aircraft — the original 1999 client's own limit.
- Screenshots — press M in the cockpit to save a screenshot (shot0.bmp through shot8.bmp, in your game folder). The original 1999 client allows one every 10 seconds and 9 per game session; restart the game to reset the counter. Handy for grabbing exactly what you saw when reporting.
- Website account — register (callsign + email + password), log in, view profile / leaderboard / medals / flight time.
- Client download — gated download of the client from the Get Client page (integrity-checked).
- Game login — email or callsign + password, authenticated against the site database. Wrong password or unknown account is rejected. Short callsigns (no underscore-padding) work correctly.
- Arena entry — country select, plane select, Ready Room.
- FLY → cockpit → back to Ready Room → FLY again — repeatable without restarting the game. The old ready-room-to-flight crash-to-desktop is fixed and shipped in the current client build.
- Multiplayer dogfight — two or more pilots see each other in AOI range with correct aircraft models, real-time smoothed position, tracers and gun sound; damage, smoke, and kills all render for the shooter, the victim, and bystanders. Confirmed in live combat.
- Team counter — ALLIES / CENTRAL counts read correctly in the Ready Room and in flight.
- Own callsign (top-center HUD) — your own callsign shows above your cockpit.
- Other pilots' callsigns floating above their planes — turn labels on with N; shows within about a mile.
- Ready-room map — the field selector shows all 18 aerodromes as clickable labels, with each field's operational state.
- Console text buffer — every server message renders in the in-flight message console.
- Message colors match the original — green (welcome / leave / medal / battle), yellow (broadcast chat), blue (ground chat), white (radio chat), grey (server messages), red (damage / kills).
- Chat — F8 (broadcast), F6 (guard / same-country), F5 (radio channel) all work, colored correctly. Your own client shows your line once (no double-print).
- Welcome / leave-arena lines — "The Allies welcome …" / "… has left the arena." fires when a pilot takes off / disconnects.
- Radio channels — set with F9 → "channel XXXX" in the cockpit, or from the Ready Room. Only pilots on the same channel hear each other on F5, and separate channels stay separate. Channel persists across re-flights.
- Enemy-only anonymous — type
/anonin any chat channel (Bcst / Grd / Rdo). Opposite-side pilots then see your arena ID (e.g. "5") where your callsign used to be; same-side teammates keep seeing your real callsign. Say/callsignto reveal to enemies again. - Per-section damage model — the original 1999 SimGuild thresholds, unchanged: pilot / guns / landing gear = 3 hits, engine = 15 hits, wings / elevator / rudder = 31 hits. Pilot and wing hits are lethal; engine hits are heavy damage.
- Visible damage — the target shows smoke and per-section damage sprites in flight, matching how bad they're hurt. Third-party pilots (bystanders in the fight) also see the damage on other planes, not just the shooter and victim.
- Combat text callouts — all 8 damage sections now name the exact part when they saturate. Callouts are: left wing / right wing / elevator / rudder / guns / landing gear / pilot / engine is critically damaged!. Locked via live A/B on the WWS1 preservation server (2026-08-09) — every class was fired in isolation and the callout label matches the actual client-side effect (guns going silent, elevator degrading pitch, rudder degrading yaw, engine oil pressure gauge dropping, landing gear collapsing on taxi).
- Real client-side kill detection — the server's kill trigger now fires ONLY when the pilot section (class 6, cap 15) saturates, which is what the 1999 client's own death check actually reads. Prior versions fired kills on wrong bit patterns, occasionally broadcasting "shot down" while the victim kept flying. Also: the engine section is a continuous gauge (oil pressure drops progressively as it takes hits), not a binary switch; guns and landing gear are binary (fine until sat, then out).
- Kill attribution — a kill is credited only when a pilot actually dies (pilot section saturated) or when their plane's positions stop consistent with a crash. A wing-critical or engine-out alone no longer awards a kill; the fight has to be finished. Prevents "phantom" kill awards during long chases.
- Kill announcements — "<killer> shot down <victim>." to everyone, "You are awarded a kill for <victim>." to the killer.
- Remote tracers and gun sound — when another pilot fires, you see their tracers and hear their guns.
- Mid-air collisions — two aircraft that fly into each other take collision damage (authentic air-to-air collision, enabled server-side).
- Hangar destruction — bombs (0–500 damage per drop, distance-scaled by the client), strafing bullets (+1 each), and field-knockout proximity pings all accumulate on a per-hangar counter. Authentic 1999 threshold: destroy at 700, ceiling at 1000. Two direct bombs (+500 each) guarantee a hangar; sustained strafing also does it. Destroyed hangars broadcast to everyone and stop rendering as operational.
- Distance-gated bomb sound — the hangar-detonation impact sound only reaches pilots within about 4 miles of the field being bombed. Pilots farther away see the arena-text announcement but don't hear the boom. When they later fly near that field, their client visually resyncs the destroyed hangars.
- Join a fight already in progress — a pilot who takes off after hangars have been knocked out sees the current battlefield: hangars destroyed earlier in the battle stay down for them too.
- Aerodrome 50% rule — a field with half or fewer of its hangars operational greys on the map and refuses FLY ("NOT OPERATIONAL"), exactly as the original 1999 rule.
- Hangar rebuild policy (admin choice) — default: destroyed hangars come back the moment a side wins the battle. Alternatives: "timer" (per-hangar rebuild N minutes after it fell) and "never" (destroyed for the arena lifetime). All three modes ship and are switchable live from the admin panel.
- Refuel & rearm — land and stop on a friendly operational field to refuel and rearm; the ground crew confirms in the console.
- Respawn hangar assignment — pilots respawning at the same field after a death or landing land in a fresh, unused hangar slot. No more two-pilots-out-of-hangar-0 collisions.
- Stats & leaderboard — every confirmed kill records the killer, victim, sides, kill streak, and personal best; the leaderboard reflects them live.
- Flight time tracking — cumulative airborne seconds are recorded per pilot from takeoff to sortie-end (any way it ends: landing / death / ditch / disconnect). Shown on your profile Combat record and persisted across sessions.
- Ready-room stats panels — after a sortie, the "Total Stats" (career) and "Last Sortie Stats" panels populate with real numbers: kills, hits, assists, bombs, streak, sorties. The server pushes these panels continuously in the Ready Room so a client re-init can't leave them blank.
- Medals — the 1999 game awarded pilots for kill-streak milestones (the Order of Merit is confirmed by the 1999 COMBATSIM SimGuild interview, and the game's message wire has a dedicated medal category). Every confirmed kill / death updates
fc_stats; crossing a threshold posts a medal to the pilot's record and shows on the Medals page and leaderboard. Tier list currently: 5 = Croix de Guerre (Allied) / Iron Cross 2nd (Central), 10 = DFC / Iron Cross 1st, 25 = Victoria Cross / Blue Max, 50 = Order of Merit — these are our best fit to real WWI medal precedence pending authoritative capture of the original thresholds (see gaps below). - War-win mechanic — a side wins the war either by reaching the battle-kill-goal or by wiping out every hangar at the enemy's focus field. On war-won, every online pilot on the winning side gets a wars_won credit; the pilot whose bullet or bomb dropped the last hangar (or scored the goal-crossing kill) also gets a war_winning_shots credit. Hangars rebuild after the win.
- Battle-total tracker — kill totals per side; milestone and battle-won messages fire in the arena. Winning a battle also triggers the default hangar rebuild.
- AI-controlled drones — patrol bots populate the arena when few humans are online. Each side has an admin-tunable fleet, physics-modeled against real-pilot envelope data (3 flight-model classes matching the six aircraft, per the 1999 SimGuild docs). Bots exploration-patrol between random airfields (not a fixed corridor), pursue and attack real enemy pilots, evade threats on their six, and die visibly when shot down. Bot interactions never affect real-pilot stats — kills for / against bots, hits either way, all cost nothing on your career record.
- Pilot-watch email notifications — pick any registered pilots to follow on your profile. When a followed pilot enters the arena you get an email (rate-limited by admin-tunable cooldown, default 5 min per-follower and per-pilot). Sending is queued and drained every minute at a controlled rate so a big login burst can't stall the arena or hammer SMTP. No IP addresses ever appear in the email.
- Session history — every arena session (who / when / how long / which side / did they fly?) is logged for admins.
- Client version gate — running an out-of-date client shows a grey "update your client" message in the Ready Room and blocks FLY, so everyone online is on the same build.
- Maintenance mode — admin toggles a checkbox and the arena picker shows "Main Arena (Maint)"; new logins are refused until it clears. Existing sessions keep flying.
- Zombie-session eviction — a client that hard-quits without a clean disconnect (crash / power off / router died) is detected and dropped within seconds instead of sitting as a ghost. TCP keepalive at the OS level is the belt-and-suspenders.
- Player log timezone — every timestamp on the site renders in the viewer's own local timezone automatically. Email notifications render in the recipient's timezone from their profile (set on the profile page).
- Same-NAT identity safety — if two clients from one public IP try to log in with overlapping timing, the server will never mis-attribute one's callsign to the other's arena connection. Cleanest case both join correctly; worst case one gets a red "IDENTITY AMBIGUOUS" line and a "close the game and reconnect" prompt.
- Graceful server restart — restarts broadcast a 20-second red countdown ("SERVER RESTARTING in 20s…") to every connected pilot, then close cleanly so the client returns to the menu instead of a silent connection reset. Fresh arena logins during the first 3 minutes after a restart get a red banner explaining that prior sessions were cleared.
- Stale-client protection after a restart — a client whose game is still running from before the restart but whose game state is stuck gets dropped by the server (no ghosts on the map) and prompted to close and restart the game on next reconnect.
- Live server tuning from the website — friendly-fire, damage multiplier, battle-win kill goal, chat rate limit, reserved radio channels, arena message-of-the-day, hangar durability numbers, hangar rebuild policy, admin-forced hangar destructions, force-anon-for-all, maintenance mode, and the pilot-watch cooldown are all editable live from the Server Settings page; the game picks up changes within seconds — no restart needed.
- Admin hangar toggles + live grid — the Server Settings → Fields & hangars page has a checkbox grid for every hangar at every field (state persists), a real-time read-only view of which hangars are down right now (auto-refreshes every 3 s), and a "Reset ALL hangars" button that rebuilds every destroyed hangar instantly.
🧪 Ready to test — please confirm in live play
Wired server-side but not yet confirmed with several live pilots. If you break these, tell AKVaska+ — not the squad.
- Bigger sessions — a full furball with a dozen-plus real pilots at once, and longer multi-hour sittings, to shake out anything that only shows up under sustained load. Everything above holds with 5 real pilots online at once; we want more pilots to prove out the 100+ pilot design range.
- Bot flight physics — 3-class model calibrated against ~40K samples of real-pilot flight envelope data (top speeds, sustained turn, roll rates for turner / mid / fast classes). Nieuport 28 still has zero recorded samples so its physics is inherited from Pfalz DIII; whenever someone flies a Nieuport we'll get real data to refit against.
- War-win by hangar wipe — knock out every hangar at the enemy's focus field to end the war. Broadcast fires, all online winners get a wars_won credit, the pilot who dropped the last hangar gets a war_winning_shots credit. Needs a live end-to-end run to confirm the mechanic feels right in play.
🔧 Under active development
Known follow-ups — not shipped, not blocking play.
- Combat AI aggression tuning — bot pursuit, gun-cone, evade duration, and personality-variance knobs are all live in the admin panel. The starting values match the observed engagement style of the human pilots we recorded, but they'll get further calibrated as more sessions come in.
- Client-side sound behavior decode (Matt-PC) — before we tweak any more audio the game plays server-driven (bomb, engine start, guns, damage), waiting on the client sound-dispatch decode so any server-side change doesn't break something we haven't measured.
❌ Known gaps — not bugs (yet)
If you notice any of these, please don't file them as bugs — they're tracked. Anything else that looks broken, do tell AKVaska+ about it.
- Authentic 1999 medal thresholds — the game had a medal system with a small character/pip after the callsign that changed as your streak crossed tiers (that's where the "+" in some pilots' names comes from). We match the well-known WWI historical medal hierarchy for the tier names, but the exact 1999 kill-streak numbers and the mapping from streak → callsign character haven't been recovered from a primary source yet. Wayback Machine's capture of simguild.com is patchy and doesn't include the awards page.
- In-flight cockpit stats overlay — kills/streak are recorded server-side and shown in the Ready Room + on the website; the live in-cockpit stats overlay isn't wired up yet (no known original-client path to push numbers to the HUD mid-flight).
- Sub-6 aircraft flight-model tuning — the 1999 game has three shared physics classes across six planes, but the exact per-aircraft feel differences (roll rates, pitch authority, dive terminal) come from client input-shaping we haven't fully decoded. Live envelope data is filling this in over time.
- Distance-gated bomb sound tuning — the ~4-mile audible radius is a first estimate. If it feels wrong in play (too quiet nearby, too loud farther out), the radius is a one-constant tweak.
Logging in
In the game's Account field type your registered callsign, in the Password field type your website password, pick your side, and click Logon.
Short callsigns work — no padding needed. The Callsign screen that appears after login accepts anything; the server always uses your registered callsign.