Retro terminal shooter with sound, score tracking, and a festive holiday skin (snowfield, tree-like invaders, candy-cane shots).
_ ____ _____ _ _ ____ _ ___ _ _ ____ _ _
/ \ | _ \| ____| \ | |/ ___| | / _ \| \ | |/ ___|| | | |
/ _ \ | | | | _| | \| | | | | | | | | \| | | | |_| |
/ ___ \| |_| | |___| |\ | |___| |__| |_| | |\ | |___ | _ |
/_/ \_\____/|_____|_| \_|\____|_____\___/|_| \_|\____||_| |_|
ARENCLOUD retro holiday edition
SCORE: 01200 HIGH: 03400 INVADERS: 18
. ' .
V V'V V V V V V V V V V.V V V V V V
. ' . '
' V V V V V V V V V V V'V V V V V V V
. ' . '
V V V V V V V.V V V V V V V V V V V .
. ' . '
V V V V V V'V V V V V V V V V V.V V
. '
. ' . '
. ' .
. ' . '
. ' . '
. '
. ' . '
. ' . '
' . '
. ' 🪃 . '
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- With sound:
cargo run - Mute at runtime:
cargo run -- --mute - No sound dependencies:
cargo run --no-default-features - Menu: Space/Enter to start, Esc/Q to exit. Retry after win/lose with Space/Enter.
- Move: arrows,
A/D, orH/L - Shoot:
Space,Enter,W, orK - Pause:
P - Quit:
EscorQ
- Snowy background, festive menus, tree-like invaders, candy-cane shots, and a snowy ground line.
- Difficulty ramps as invaders move and when you score hits; invaders and shots animate.
- Score + persistent high score on the HUD (
high_score.txtis used to store it). - HUD shows remaining invaders to track progress.
- Linux needs ALSA dev libs. The build script probes
alsaviapkg-configand emits a friendly warning; installlibasound2-dev(or equivalent) for sound. - If ALSA is not available, build/run without sound (
--no-default-features) or just mute (--mute). - The
sound/folder (explode/lose/move/pew/startup/win WAVs) ships with release artifacts. These sounds were AI-generated using the author's voice as a source.
- Format:
cargo fmt --all -- --check - Lint:
cargo clippy --no-default-features --all-targets -- -D warnings - Tests:
cargo test --no-default-features
- CI:
.github/workflows/ci.ymlruns fmt, clippy, and tests (no-sound) on pushes/PRs. - Releases:
.github/workflows/release.ymlbuilds release binaries on Linux/macOS/Windows, bundles thesound/assets and README, and uploads them as artifacts.
- WebAssembly/HTML5: current
rodio/cpalbackend is not WASM-ready; a WebAudio backend would be needed for browser builds.