Airborne Submarine Squadron is a browser-forward take on the classic Sopwith-style arcade, rebuilt on the Gossamer launcher. Features atmosphere flight, underwater combat with thermal layers and caterpillar drive, orbital space navigation, three ship types, two enemy submarine classes, mine chain-cutting, supply drops, hangar defense, and a commander ejection system.
This repo now hosts a playable Gossamer frontend that wraps the AffineScript/WASM core and the launcher/installer ecosystem. The current goal is finishing the orbit/depth-charge gameplay loop and stabilizing builds, installs, and multi-platform deploys.
Prereqs:
-
AffineScript compiler available on (or set to a local checkout)
-
Modern browser or Deno runtime for launcher support
-
Node.js only if you want to run the standalone WASM runner
|
Note
|
prefers the compiler but copies into (and preserves legacy artifacts) when no compiler is present, so playtesting works out of the box. |
# Build to WebAssembly
./build.sh
# Run the WASM module (exports )
node run_wasm.js build/airborne-submarine-squadron.wasm main./launcher.sh gossamer # launch the Gossamer desktop/web player
python3 -m http.server -d gossamer # serve browser version from gossamer/ and open http://localhost:8000Controls, HUD, and color settings live inside the pause menu () and the on-screen legend ().
-
Free-flight submarine with accelerometer/afterburner, diver ejection (Tab/M), and space transition when you exceed 88 MPH with a sharp climb.
-
Weapon triad: torpedoes (), missiles (), and depth charges (). Depth charges are anti-sub-super weapons with particle trails and wide blast radii.
-
Digital Knight Rider–style HUD showing speedometer, accelerometer, status gauges, and a persistent controls legend.
-
Solar map in the top-left corner, warp hotkeys (, Enter, –), and leaderboard tracking performance per mission.
-
Custom skin tuning (, , , while paused) plus retro battle background and diver/tray integration.
Core flight:
-
Arrow keys – steer, climb, dive
-
Space – fire selected weapon
-
Shift – stabilise in all modes (atmosphere, water, space)
-
A – afterburner (drains fuel, regenerates over time)
-
P – periscope toggle (Shift+P for auto mode)
-
E / M – disembark / embark
-
Tab – emergency eject (commander)
-
Z / X – aim swivel (on land only)
Weapons (number keys):
-
1 – Machine gun (unlimited)
-
2 – Torpedo
-
3 – Missile
-
4 – Depth charge
-
5 – Bouncing bomb
-
9 – Railgun (commander)
Pause menu (Esc):
-
[/]– cycle sub skin -
,/.– tune hue (Spectrum skin only) -
R – rainbow preset | B – Spectrum preset | P – Pride preset
-
L – toggle legend | H – HALO parachute | D – deep-diver kit
-
C – cycle supply crate frequency | G – Nemesis sub toggle
-
S – save | O – load | N – new game | Q – quit (2-stage)
-
0–9 – rebind action | Backspace – reset keybinds
Eight skins ship in the pause menu ([ / ] to cycle):
-
Ocean Blue – default (
#4a6bafhull,#e74c3cwings) -
Retro Red, Amber Gold, Emerald, Violet – fixed palettes
-
Spectrum Custom – HSL-based, tune hue with
,/.(0–360°) -
Rainbow – animated rainbow stripes, hue shifts with
world.tick -
Pride Submarine – static 6-stripe pride flag (red, orange, yellow, green, blue, violet)
Spectrum auto-generates hull/wings/tower/nose/porthole colours from a single
hue value, persisted in localStorage under airborne-submarine-squadron:gossamer:settings.
The pause menu shows a live colour-swatch preview of the current skin’s
hull / wings / tower / nose / porthole components.
-
– ensures the WASM bundle is refreshed. Points to when you need a fresh compile; otherwise the prebuilt is reused.
-
– installs desktop/start-menu shortcuts through the Gossamer tray workflow.
-
– multiplatform entry point that wires the Gossamer runtime, browser view, and desktop tray helper.
-
– optional Justfile targets for type-checking and scripted builds.
-
– Deno lockfile/runtime dependency state.
This project is distributed as source + WASM artifacts and launched via Deno/Gossamer. No npm packaging is used in this repository.
-
build/anddist/contain the generated WASM payloads. -
launcher.shandrun.jsare the primary runtime entry points. -
Justfileprovides build/test workflows under Deno.
./launcher.sh --browser # start the browser version (Deno file server + HUD)
bash gossamer/launch.sh # direct Gossamer desktop build
./launcher.sh --stop # stop running Deno/Gossamer instances and tray helpersThe game now features an advanced, cross-platform integration system:
-
Reflective Architecture: Self-aware installation with platform detection
-
Homoiconic Design: Self-describing configuration and metadata
-
Self-Healing: Automatic file verification and backup restoration
-
Fault Tolerance: Graceful degradation on unsupported platforms
-
Cross-Platform: Linux, Windows (partial), RISC-V, Minix support
./integ.sh # Enhanced installer with diagnostics
./launcher.sh --install # Traditional installation-
Multiple Icon Formats: PNG, SVG, and ICO (Windows compatibility)
-
Automatic Platform Detection: Linux, Windows, RISC-V, Minix
-
Self-Diagnostics: Pre-installation health checks
-
Fault Tolerant: Continues with limited functionality if tools missing
-
Backup System: Automatic backup of critical files in
.backup/
| Platform | Status | Icons | Menu Integration |
|---|---|---|---|
Linux (x86_64/ARM) |
✓ Full |
PNG, SVG, ICO |
✓ Menu + Desktop |
Windows |
⚠ Partial |
✓ ICO available |
Manual setup required |
RISC-V |
⚠ Planned |
✓ ICO available |
Future support |
Minix |
⚠ Planned |
- |
Future support |
For Windows users:
- ICO file provided at desktop/icons/airborne-submarine-squadron.ico
- Contains multiple sizes: 16x16, 32x32, 48x48, 64x64, 128x128, 256x256
- Manual shortcut creation may be needed until full installer available
-
– developer notes, telemetry, and feature writeups
-
– launcher page, HUD canvas, and loader visuals
-
– supporting web assets and auxiliary integrations
-
, , – narrative, power-up design, and feature references
-
– technical architecture and implementation details
-
– project roadmap and milestones
-
– maintainers and contributors information
airborne-submarine-squadron/
├── src/ # AffineScript source
│ └── main.as
├── build/ # WASM output (reuses dist/ when builder absent)
├── gossamer/ # HTML/JS launcher and HUD assets
├── CLI tools (launcher.sh, integ.sh)
├── tray/ # Rust system tray binary + installer scripts
└── README.adoc # this documentairborne-submarine-squadron/
├── index.html # Web entry point (serves Gossamer v2 engine)
├── src/ # AffineScript source (main.as = canonical)
├── gossamer/ # Gossamer v2 JS engine + desktop launcher
├── build/ # Compiled WASM artifacts (gitignored locally)
├── dist/ # Release WASM artifact (tracked)
├── tray/ # Rust system tray binary (ksni)
├── ffi/ # Zig FFI layer
├── docs/ # Design and development docs
├── launcher.sh # Unified launcher
├── build.sh # AffineScript -> WASM build script
├── Justfile # Task runner
└── .machine_readable/ # STATE.a2ml, META.a2ml, ECOSYSTEM.a2mlbuild.sh prefers a global affinescript binary on $PATH. When missing it looks for a sibling nextgen-languages/affinescript checkout and uses dune exec. Otherwise it copies the prebuilt WASM from dist/ into build/ so the launcher can run without rebuilding.
-
UI polish: Finish Groove/Burble integration in the Gossamer panel, add persistent HUD legend, leaderboard final scoring, and damage state map (rear damage slows sub, front shield vanishes when depleted, middle damage makes you sink or lose buoyancy).
-
Expansion: Ship packages for Linux (deb/rpm, kinoite/silverblue), macOS, Windows, Android/iOS, and RISC-V/minix targets, while documenting CI/build expectations.
-
Gameplay: Add orbital warp menu (Enter → Orbit → Depart) with digital speedometer (space speeds), planet numbering, hazard handling (Sun burns), and multi-map transitions with alien terrain.
-
AffineScript WASM pipeline: Complete WebKit compiler compatibility; graduate co-processor from frame counter to primary physics engine.
This repository is documented and distributed under AGPL-3.0-or-later, the Palimpsest-MPL license layer on top of MPL-2.0 is the licnecning for Gossamer (linear-type gui wrapper), Burble (high assurance multiplayer communications), and Affinescript (affine-type programming language, compiling to WASM). See or https://github.com/hyperpolymath/palimpsest-license for full terms and for foundational technologies..