Arcade style game written in Zig
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 initfollowed 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: ```sh zig build play
zig build zig-cache/oxid ```
To build and run the release build:
sh 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 --helpfor a listing.
The WebAssembly build has no third-party requirements.
To build and serve:
sh 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): * arrow keys: move * space: shoot * esc: open menu
Menu controls: * arrow keys: move cursor * enter: select * esc: go back
Debug/cheat controls: * backquote: fast forward (not available in web version) * backspace: skip to next wave * F2: toggle rendering of move boxes * F4: toggle profiling spam (not available in web version or in ReleaseSmall)
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.