Making Crawl of the Forsaken: Fate, the Ancient Cave, and a 3D pipeline that fits in a browser tab

· 4 min read

By Phil · building Legitsauce

Crawl of the Forsaken is the most technically ambitious thing on Legitsauce, a real-time 3D dungeon crawler running inside a browser tab, and also the most shamelessly nostalgic. It's a love letter to two games a decade and a genre apart, and it exists because a one-person studio decided to build a whole bestiary the cheap way: in code.

The Crawl of the Forsaken title screen: a torchlit dungeon door flanked by braziers, with New Run, Settings, and Credits buttons
The title screen of the current work-in-progress build. The door is load-bearing, narratively speaking.

The two ancestors

Fate (WildTangent, mid-2000s). If you had a family PC back then you might remember it: a top-down action RPG about descending an endless dungeon below a cozy town. Fate understood the thing most dungeon crawlers miss, which is that the town matters as much as the dungeon. Every vendor was a named character. Your pet trotted along beside you and could be packed off topside to sell your loot. That rhythm of descend, fill your bags, come home, kit up, go deeper gave the endless dungeon a pulse. Crawl of the Forsaken takes the rhythm wholesale. The basecamp hub is run by named townsfolk rather than menus, because Fate proved a shopkeeper with a name beats a shop screen every single time.

Lufia II's Ancient Cave. Tucked inside a 1996 SNES JRPG is a 99-floor randomized dungeon that quietly invented half the roguelite genre. Floors reshuffle every run, a sliver of progress carries between attempts, and the descent has fixed checkpoints where you bank what you've got or push your luck. That push-your-luck checkpoint structure is the backbone of my game. Crawl of the Forsaken is 99 floors across 10 biomes with a dragon at the bottom, and portal floors checkpoint your descent. Skip one to save time and the next death costs you double. Skill points you buy between runs stick around forever, so even a doomed run feeds the next one. That's the Ancient Cave formula, and I saw no reason to improve on it.

The problem: 3D is expensive

Here's the catch with a 3D dungeon crawler: it needs models. Monsters, weapons, props, vendors, a dragon. That's traditionally the line item that kills solo 3D projects, since modeling, rigging, and animation are each a profession of their own.

The answer here is procedural geometry. Every monster in Crawl of the Forsaken is built out of primitive shapes in code (boxes, ellipsoids, capsules, cylinders, faceted shards), assembled by a small GDScript helper into a body and then dressed in flat-shaded color and emissive glow. There are no imported model files for the bestiary at all. A creature is a script that draws itself when it spawns. Per creature, the workflow goes like this:

  1. Concept. The design doc's description of silhouette, palette, and vibe for the creature.
  2. Block-in. Rough the body out of a handful of primitives at roughly the right proportions, pointed at the camera.
  3. Trace and refine. Render a front and three-quarter view, hold it against the concept, and nudge shapes, counts, and colors until the silhouette reads.
  4. Light it. Eyes, runes, lava seams, and spores get emissive materials so they pop at gameplay camera distance.

Three or four professions collapse into one tight loop: write shapes, render, look, fix. The engine does the math. Somebody still has to supply the taste, because the gap between "a stack of capsules" and "an ice troll" is entirely proportion and palette.

Making it fit in a browser

The second hard problem is that everything above has to come down the wire before anyone plays. The whole game, every monster and biome tileset and the dragon, has to fit into a payload a phone on hotel Wi-Fi will actually finish downloading. Procedural creatures are a cheat code for this. A monster that's code instead of a textured mesh weighs a few kilobytes and ships inside the game logic, so there's no per-model texture budget to fight in the first place. The engine itself (Godot 4.6 compiled to WebAssembly) is shared across every game on the site and cached after your first visit, so each game only pays for its own content.

Where it stands

The hero standing beside a glowing escape portal on a torchlit dungeon floor in Crawl of the Forsaken
An early floor in the work-in-progress demo — escape portal lit, deeper floors waiting. Still under construction, and it shows in places; that's the fun of shipping in the open.

Crawl of the Forsaken is live as a playable demo. The loop is in (descend, fight, loot, fall back to basecamp, spend, go deeper) and the full campaign down to floor 99 is being tuned. The combat already has the thing I cared most about carrying over from Fate: monster swings are telegraphed, so a cool head can back-strafe through a wind-up and punish the recovery. Auto-attack mops up the trash. Your job is target priority and footwork.

Play the demo here, free, in the browser, like everything else on the site. And if you spent 2005 sending your pet to town with a bag full of unidentified swords: welcome home.