Oxid is an arcade-style game where you fight waves of monsters in a fixed-screen maze. This is more or less a clone of Verminian Trap (2013, Locomalito). Verminian Trap was originally inspired by Wizard of Wor (1980, Midway).
Oxid is written in the Zig programming language (requires version 0.7.x).
Note: After cloning the oxid repository, make sure to update the submodules (git submodule init
followed by git submodule update
).
Oxid can be built into a native executable or a WebAssembly binary.
The native build requires SDL2 and should work on Linux, Mac and Windows (untested).
To build and run the debug build:
zig build play
# or, equivalently:
zig build
zig-cache/oxid
To build and run the release build:
zig build -Drelease-safe=true
zig-cache/oxid
Oxid supports a few command-line options for things like refresh rate and audio sample rate. Run zig-cache/oxid --help
for a listing.
The WebAssembly build has no third-party requirements.
To build and serve:
sh build_web.sh www # choose any destination directory
cd www
python3 -m http.server # or any other web server of your choice
Game controls (these can be rebound in the menu):
Menu controls:
Debug/cheat controls:
Low-level graphics code was originally based on andrewrk’s Tetris demo for Zig. WebAssembly code was based on raulgrell’s fork of the same project.
Some sound effects from https://opengameart.org/content/512-sound-effects-8-bit-style
Uses Dawnbringer’s 16-color palette.
Uses Hejsil’s zig-clap, my zig-hunk, zig-pcx and zig-wav one-file libraries, as well as zang for audio.