Skip to content
NeverMorewdPublic

About

Retro tank-battle game built with Avalonia UI & Pipboy.Avalonia — 100 hand-crafted stages, pure vector graphics, bilingual EN/中文, playable in the browser via WebAssembly.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

icon

Iron Vault

Play Online Built with Claude AI Powered by Pipboy.Avalonia .NET 10 License: MIT

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.

🎮 Play now in your browser(Github Pages) →

🎮 Play now in your browser(CloudFlare publish AOT) →


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

About

Retro tank-battle game built with Avalonia UI & Pipboy.Avalonia — 100 hand-crafted stages, pure vector graphics, bilingual EN/中文, playable in the browser via WebAssembly.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages