Skip to content

arencloud/invaders

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Invaders (v0.2.4)

Retro terminal shooter with sound, score tracking, and a festive holiday skin (snowfield, tree-like invaders, candy-cane shots).

Logo

     _    ____  _____ _   _  ____ _     ___  _   _  ____  _   _ 
    / \  |  _ \| ____| \ | |/ ___| |   / _ \| \ | |/ ___|| | | |
   / _ \ | | | |  _| |  \| | |   | |  | | | |  \| | |    | |_| |
  / ___ \| |_| | |___| |\  | |___| |__| |_| | |\  | |___ |  _  |
 /_/   \_\____/|_____|_| \_|\____|_____\___/|_| \_|\____||_| |_|
                  ARENCLOUD retro holiday edition

Preview

 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   
                   .  '                 
     .  '                   .  '        
              .  '                   .  
.  '                   .  '             
         .  '                   .  '    
                  .  '                  
    .  '                   .  '         
             .  '                   .  '
  '                   .  '              
        .  '        🪃          .  '     
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          

Play

  • 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.

Controls

  • Move: arrows, A/D, or H/L
  • Shoot: Space, Enter, W, or K
  • Pause: P
  • Quit: Esc or Q

Gameplay

  • 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.txt is used to store it).
  • HUD shows remaining invaders to track progress.

Audio

  • Linux needs ALSA dev libs. The build script probes alsa via pkg-config and emits a friendly warning; install libasound2-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.

Development

  • Format: cargo fmt --all -- --check
  • Lint: cargo clippy --no-default-features --all-targets -- -D warnings
  • Tests: cargo test --no-default-features

CI and releases

  • CI: .github/workflows/ci.yml runs fmt, clippy, and tests (no-sound) on pushes/PRs.
  • Releases: .github/workflows/release.yml builds release binaries on Linux/macOS/Windows, bundles the sound/ assets and README, and uploads them as artifacts.

Portability

  • WebAssembly/HTML5: current rodio/cpal backend is not WASM-ready; a WebAudio backend would be needed for browser builds.

About

Oldschool game

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages