The head meets a cell only while his box top is at least the head depth below the top of its cell row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Stompede
A side-scrolling platformer engine with the feel of classic 8-bit platformers: exact, frame-by-frame movement at 60 updates per second, whole pixels on screen, a four-voice sound chip.
The engine plays content packs. It comes with its own small game, and it can import an NES platformer ROM that you own into a pack on your machine, so the game looks and sounds like that original. Nothing imported is part of this repository or of the program.
Building
Needs Zig 0.16. SDL3 is fetched and built by the Zig build.
zig build # the game: zig-out/bin/stompede
zig build run # build and start it
zig build test # the tests
Playing
stompede # play
stompede --import game.nes # import a ROM you own into a pack, then play
stompede --pack <dir> # play the pack in a directory
Without other choices the game plays an imported pack if there is one.
Imported packs live in packs/<name>/ in the data directory:
$XDG_DATA_HOME/stompede or ~/.local/share/stompede on Linux,
%APPDATA%\stompede on Windows, ~/Library/Application Support/stompede on macOS; --data <dir> names another one. The
importer accepts only the version it supports and says so for any other
file.
Keys: arrows or WASD move, X or space jump, Z or shift run, Enter pauses, Esc quits.
Without a window (for checks): --script <text or file> plays a list of
held buttons and frame counts (r right, l left, u up, d down,
j jump, x run, n nothing: n10 rx60 rxj20), --shot <out.png>
saves the last frame, --map <out.png> the whole area, and --area <n>
picks the pack's area. zig build color-swatch -- <out.png> [hue saturation contrast gamma] shows the console colours an import uses.
Licence
MIT, see LICENSE.