Posted May 26, 2026 by byronbulb
A submission for the Ancient and Nameless DragonRuby game jam
Elder Cave is a top-down cosmic horror game where you play the villain. You are an acolyte of the Old Ones — a cultist who has descended into a cave beneath the earth to awaken something ancient and terrible. Your goal is not to survive the dungeon. Your goal is to unmake the world.
The game was built in DragonRuby GTK using mRuby, for the Ancient and Nameless game jam.
“You are an acolyte of the Old Ones. Legend has it that one awaits deep beneath the earth. It is your job to awaken it and Unmake the World. The stars align. The altar waits.”
The cave is full of shoggoths — formless, shambling creatures that drift through the dark in loose swarms. Left to their own devices they wander. But they are drawn to the sacred idols you carry, and to each other. Your job is to shepherd them, merge them into greater and greater forms, and drive them to the altar where the ritual can begin.
Standing against you are inquisitors — human hunters sent to destroy your idols and, if necessary, you.
WASD or arrow keys. Diagonal movement is normalized so you don’t get a speed advantage.
You start with 2 idols in hand. More are scattered around the cave.There are 6 total.
Press SPACE near an idol on the ground to pick it up. Press SPACE with an idol in hand to place it. Placed idols act as lures — shoggoths are drawn toward the nearest one.
This is the core loop:
When a merge happens, the idol returns to your inventory. You can reuse it.
Shoggoths spawn continuously from the dark — one every 6 seconds at the start, faster as time passes. Medium and large shoggoths also periodically bud off small ones, so the population keeps growing.
Once 3 Great Ones surround the altar, the ritual begins charging. It fills on its own, but standing at the altar yourself doubles the charge rate. Hold it for 5 seconds and the Ancient One rises.
The altar is also a safe zone — shoggoths won’t damage you while you’re standing in it.
Press E to blast everything nearby away from you. Short cooldown, high utility. Shoggoths in the inner kill zone are destroyed (small) or split back into smaller forms (medium). Hunters are pushed back but not killed.
Shoggoths nearby drain your sanity. The altar restores it. If your sanity hits zero you go insane — game over. Manage how close you let the swarms get to you.
Two ways to die:
Relentless human hunters. They spawn every 30 seconds, up to a cap of 3 (growing over time). They home in on you, take 3 hits to kill with the repel’s kill zone… except you can’t kill them with repel directly, only push them. They just keep coming back.
A rarer variant that can appear depending on your run’s modifiers. Slower than inquisitors, but they emit a sanity drain aura. Standing near one costs you. They’re tinted sickly green so you can spot them.
Each run rolls 3 random omens from a pool of 11. These modify the rules of the run before you start:
| Omen | Effect | |—|—| | SWIFT ACOLYTE | +30% move speed | | FERVOR | Repel cooldown halved | | FRAGILE PSYCHE | +50 max sanity, drains faster | | IRONFLESH | +2 max HP, −20% speed | | HUNTED | Hunter cap +2 | | DIM ALTAR | Needs 4 Great Ones instead of 3 | | THIN VEIL | Ritual charges 50% faster | | EAGER SHOGGOTHS | Shoggoths 25% faster | | KEEPER OF TORCHES | Sanity recovers 3×, −1 max HP | | DREAD PACE | Shoggoths spawn half as fast | | WATCHER KIN | Some hunters are Watchers |
You see your omens on the intro screen before the run begins. Plan accordingly.
The game gets harder over time regardless of modifiers. Every 60 seconds:
There’s no way to stop this. The only way to win is to finish the ritual before the cave becomes unmanageable.
The game is built entirely in DragonRuby GTK, using mRuby. A few things I’m happy with:
Boid flocking. The shoggoths use a classic boid algorithm — separation, alignment, cohesion, plus wander and bias forces. Tier-3 (Great Ones) suppress wander entirely and march directly toward the altar or the player depending on which is closer. It creates emergent movement that feels alive without any pathfinding per entity.
Flow fields. Pathfinding around walls is handled with per-target BFS flow fields — one for the altar, one for the player, and one per placed idol. Every boid looks up their next direction in O(1). The fields rebuild lazily when targets move grid cells. This keeps performance smooth even with 100+ entities.
Cave generation. The map is procedurally generated each run using a walk-carve algorithm. The altar is always placed far from spawn, the player always starts left-center, and idols are scattered to force exploration.
Sprite animation. Custom SpriteAnimator class handles frame sequencing from packed spritesheets. Each shoggoth gets a randomized animation offset and frame duration at spawn so the swarm doesn’t pulse in sync.
Touch controls. The game supports touch on mobile and web via a virtual joystick and button overlay. The joystick spawns where your finger lands and floats to stay responsive.
Runs on desktop (Mac, Windows, Linux), and web via DragonRuby. Touch controls appear automatically when touch input is detected.
Built by Charles Bandes (@byronbulb) for the Ancient and Nameless DragonRuby game jam.