Need help with oxid?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

dbandstra
195 Stars 4 Forks MIT License 711 Commits 11 Opened issues

Description

Arcade-style game that runs natively or in the browser

Services available

!
?

Need anything else?

Contributors list

# 356,457
zig
C
Shell
710 commits
# 158,887
nix
Neovim
Bootstr...
yadm
1 commit

Oxid

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).

Play online here!

Screenshot

Building

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.

Native (OpenGL) build

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.

WebAssembly build

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

How to play

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 (4x speed)
  • shift-backquote: super fast forward (16x speed)
  • backspace: skip to next wave
  • F2: toggle rendering of move boxes
  • F4: toggle profiling spam (not available in web version or in ReleaseSmall)

Code organization

See doc/Code organization.md

Version history

See doc/Version history.md

Notes

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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.