Shooter · FPS

Anarch

Carve ten levels of a 200 KB public-domain raycast shooter whose variable-height floors, projectile-firing robots, and integer-only engine echo the Wolfenstein-Doom lineage.

Overview

A level loads in a single tick, and the first robot is already grinding toward you down the corridor before you have located the exit. That immediacy is the whole point of Anarch, a public-domain first-person shooter that strips the genre back to its 1990s raycasting core. Authored from scratch by Miloslav "drummyfish" Číž and released under CC0 — every line of code, texture, and sound — the game is engineered as a suckless, pure-C artifact that refuses floating point, file I/O, and dynamic allocation. The complete binary fits inside roughly 200 KB and runs on as little as 32 KB of RAM, yet the custom engine still renders variable floor and ceiling heights, shearing look-up and look-down, jumping, and weapon bobbing — features the original Wolfenstein 3D never had. Every enemy attack is a projectile rather than hitscan, so strafing a glowing bolt down a long hall is a real option, and the robot foes keep the combat readable. It appeals to tinkerers who want a hackable single-file engine, speedrunners who want instant load times, and anyone chasing an honest circle-strafe duel.

How to Play

Move with WASD, turn with the mouse or the arrow keys, and hold the left mouse button to fire. The goal on each of the ten levels is to fight through the maze, grab the colored keycards that unlock locked doors, and reach the exit elevator; health, ammo, and fresh weapons line the route. Mouse-look drives the engine's shearing look for vertical aiming, and a dedicated jump key clears the ledges that the variable floor heights create. Number keys cycle through up to six weapons, each drawing on one of three ammo pools, and pulling back behind a corner breaks line of sight on projectile-firing enemies. The browser build, compiled through Emscripten, runs the same loop as the native binary and loads almost instantly, with progress saved only at the start of each level.

Tips & Strategy

Treat corner peeks as your main survival tool. Because enemy fire is projectile-based, once a bolt is in the air you can sidestep behind a wall and lean back out to return shots — never hold a corridor duel in the open. Learn the keycard colors first: locked doors block the exit path, so charging forward without the right key funnels you into dead ends and concentrated robot fire. Conserve the stronger weapons for groups, since the ammo types are shared across only a few guns and the heavy launcher drains reserves fast. Use jumping to drop off ledges and shortcut between floor heights, which lets you reposition faster than the simple grid AI can track. Ranged robots telegraph a shot a beat before they fire, giving you a window to begin strafing; learn that timing and you will dodge damage that no armor could have absorbed. With no health regeneration between pick-ups, retreat is usually the correct read — a level cleared at full health beats a fast finish limping out at one bar.

Controls

Keyboard
WASD — moveArrow keys — turnNumber keys — cycle weaponsDedicated jump key — clear ledges
Mouse
Hold the left button to fire; mouse-look drives vertical aim

Features

  • Pure-C integer-only raycasting engine
  • Ten levels with keycard-locked doors
  • Projectile-based enemy combat you can strafe
  • Variable floor and ceiling heights with jumping
  • CC0 public-domain code and assets
  • Browser build via Emscripten