An Asteroids-style outline shooter — ship, shots, and rocks are all drawn as draw_line
polygons, no sprites — built with Spinel and
sdl as a demo of the sdl bindings.
This is the enhanced edition of vector_blaster, forked off to add
sound and visual effects on top of the same gameplay. vector_blaster itself is kept
deliberately plain — no audio, minimal effects — so it stays an easy example for new devs to
read start to finish; this project is where the fancier stuff (that would otherwise clutter
that reading experience) lives instead.
- Spinel (
spin) - SDL3, statically linked via the
sdlpackage — nobrew installneeded at build or run time
With asdf:
asdf plugin add spinel https://github.com/jockofcode/asdf-spinel
asdf install spinel master
asdf set -u spinel master # make it the default (~/.tool-versions)Or build it from source:
git clone https://github.com/matz/spinel.git
cd spinel
make
export PATH="$PWD/bin:$PATH"
cd -spin run vector_blaster_2000Or build first and run the binary directly:
spin build
./build/bin/vector_blaster_2000| Key | Action |
|---|---|
| Left / Right | Rotate ship |
| Up | Thrust |
| Space | Fire |
| W | Warp to the spot on screen with the most open room around it |
| R | Restart (after game over) |
| Esc | Quit |
Procedural retro bleeps via SDL::Audio.beep — no sound asset files. It's a single shared,
queued mono stream (see sdl's own docs), so effects are kept short and the continuous thrust
sound is throttled to a periodic engine "tick" rather than firing every frame. Fire, thrust,
asteroid splits/destructions, ship loss, warp (a faked three-note rising sweep), and level-up
(a three-note fanfare) each get a distinct tone.