A simple Space Invaders-style game written in Go for the terminal.
![]() |
|---|
| Game demo, played on terminal, recorded using asciinema |
- Playable in the terminal (cross-platform)
- Move your ship left/right and shoot aliens
- Aliens move and shoot back
- Score tracking
- Game over and restart functionality
aor Left Arrow: Move leftdor Right Arrow: Move right- Spacebar: Shoot
q: Quitr: Restart (after game over)
- Go 1.16 or newer
- Terminal/console with basic ANSI support
-
Clone or download this repository.
git clone https://github.com/ahmad-alkadri/go-invaders-space.git
-
Open a terminal in the project directory and run.
go run main.go
-
Alternatively, you can build it:
go build -o go-invaders-space ./go-invaders-space
- Tested extensively on
bash, not yet on Windows - Uses the eiannone/keyboard package for keyboard input.
- Automated packaging is configured via GoReleaser.
- On Linux, .deb and .rpm packages are created.
- On Windows and Linux, prebuilt archives (zip/tar.gz) are uploaded.
- Go to the Actions tab, open the "Release" workflow, click "Run workflow".
- Enter a new tag like
v1.0.0and run. The workflow will tag and publish a release with artifacts. - Alternatively, push a tag
v*to trigger the workflow automatically.
Requirements: Go and GoReleaser installed.
# snapshot build without publishing
goreleaser release --snapshot --cleanEnjoy blasting some aliens!
