Iron Vault
April 17, 2026 · View on GitHub
Iron Vault
A retro armoured-combat game built with Avalonia UI v12 and styled with the Pipboy.Avalonia CRT theme library. Every tank, bullet, and explosion is drawn from pure vector geometry â no sprites, no bitmaps. Play it directly in your browser via WebAssembly, or run it natively on the desktop.
Gameplay
You command a single tank on a tile-based battlefield. Choose from 100 hand-crafted stages, each with a unique map layout. Destroy all enemy tanks to advance through waves. Enemy tanks come in four tiers â each with a distinct silhouette and color scheme â and grow progressively more dangerous as waves escalate.
Game Modes
| Mode | Description |
|---|---|
| Classic | Survive infinite waves across your chosen stage. No victory â only glory. |
| Defense | A scripted 10-wave campaign. Clear a wave to pick a Field Upgrade for your tank. |
Stages & Level Select
100 preset stages are available from a dedicated Stage Select screen (accessible before each deployment). Each stage features an intentionally designed Battle City-style map â symmetric corridors, strategic water channels, forest ambush pockets, steel fortifications, and ice fields. A bilingual stage announcement ("STAGE 1 / įŽŽäļå ģ") is displayed at the start of each new game.
Difficulty
| Rating | Enemy Bullet Speed | Fire Rate |
|---|---|---|
| Rookie (æ°å ĩ) | ~160 px/s â very easy to dodge | Half of base |
| Veteran (čå ĩ) | ~200 px/s â manageable | 30 % slower than base |
| Elite (įēūčą) | 288â352 px/s â close to player speed | 15 % faster than base |
Player bullet speed is always 288 px/s regardless of difficulty.
Power-ups
Destroyed enemies randomly drop one of seven power-ups:
| Icon | Name | Effect |
|---|---|---|
| â | Shield | Your tank becomes invulnerable temporarily |
| âļ | Freeze | All enemies stop moving and firing |
| ⎠| Fortress | Reinforces your base walls with steel |
| âē | Overload | Increases bullet speed for a limited time |
| âĪ | Life | Grants an extra life (max 5) |
| â | Repair | Fully restores your hull integrity |
| ⥠| Extra Shell | Permanently adds one simultaneous bullet |
Field Upgrades (Defense mode)
After each wave, choose one of three random upgrades:
Armor Plating · Nitro Boosters · Rapid Fire · Dual Cannon · Armour Piercing · Repair Kit
Ally Tanks
In Defense mode certain waves grant you an allied tank. Allies navigate the map autonomously using A* pathfinding and engage enemies without any input required.
Controls
| Key | Action |
|---|---|
W A S D / Arrow keys | Move / navigate menus |
Space | Fire |
Enter | Confirm / Start |
P | Pause / Resume |
Esc | Exit overlay / return |
L | Toggle English / äļæ |
UI Theme â Pipboy.Avalonia
The entire UI is themed with Pipboy.Avalonia â a custom Avalonia theme library that delivers a retro amber CRT terminal aesthetic.
| Component | Role in Iron Vault |
|---|---|
PipboyTheme | Global amber colour palette, button styles, panel borders |
PipboyWindow | Chrome-less title bar with Win11 snap support (desktop only) |
CrtDisplay | Post-processing layer over the game canvas: scanlines, scan beam, static noise, vignette |
SegmentedBar | Discrete HP bar in the HUD |
The primary accent colour is set to amber #FFA500 at startup via PipboyThemeManager.
Architecture
Iron Vault is split into four projects:
IronVault.Core â pure C#, zero UI dependency (engine, ECS, maps, localisation)
IronVault.Renderer â Avalonia DrawingContext rendering (tanks, tiles, bullets, FX)
IronVault.Desktop â .NET 10 desktop host (Window, audio, DI container)
IronVault.Browser â .NET 10 WebAssembly host (single-view, audio stub)
All graphics are drawn with Avalonia's DrawingContext API â no bitmaps, no hardware-specific code â making the renderer AOT- and WASM-safe. See docs/ARCHITECTURE.md for the full design breakdown.
Run Locally
git clone https://github.com/NeverMorewd/IronVault
cd IronVault
dotnet run --project src/IronVault.Desktop
WebAssembly (browser)
dotnet workload install wasm-tools
dotnet publish src/IronVault.Browser -c Release -o publish
# Serve publish/wwwroot/ with any static HTTP server
License
MIT