πŸ“– OLD WORLD PIPES← WIKI
Old World Pipes screenshot

Seven floors down to the thing the mains were built to feed.

Somebody built a drainage system four thousand years ago and somebody else stopped maintaining it. You go in at the inflow with a pistol, a lamp and three flares, and you go down. Every floor is generated fresh: trunk lines, sumps, flooded sections you have to swim, catwalks that creak twice before they drop you, three keys behind three doors, and things in the walls that were left there on purpose. The lamp runs on a battery and the battery runs out. At the bottom, in the intake, the Pipe God is awake and it has five mouths.

β–Ά PLAY OLD WORLD PIPESVERSION Bby Wow Cool Games

STORY & LORE

The mains

Seven depths, each with a name and a character: the inflow at the top where the light still reaches, the cut, the flooded levels where the water is over your head and the air is on a timer, and the intake at the bottom. Crews have been down here before you β€” their tags are on the concrete, dated in a numbering nobody uses any more, and most of them are warnings.

The lamp

Four minutes of full beam, or nine on dim, and that is the whole budget. Batteries are down there but not on a schedule. Flares burn for forty-five seconds wherever you throw them and they are the only light that does not cost you the lamp. Running the mains in the dark is possible. It is not advisable.

The Pipe God

Five mains converge on a pit at the bottom and something in the pit has been drinking from all of them. It has five heads on five necks and a body that only opens up once the heads are dead. It slams, it volleys, it rains, and it calls the crawlers in when it is bored of doing its own work.

HOW IT PLAYS

Generated, not authored

Every floor is built from scratch: a trunk line that prefers to run downstream and bends when it feels like it, a fork that dead-ends in a sump, lateral chambers, and drops between levels. The generator then proves the floor before it hands it to you β€” every key reachable in order, the exit reachable behind every door, and no one-way drop you cannot climb out of. If a layout fails that proof it is thrown away and rebuilt, up to sixty times.

Water

Water sits at a level per cell. Shallow water slows you and lets you climb a taller step; deep water you swim, and swimming down puts you under, and under has fifteen seconds of air before it starts costing you. Falling into deep water breaks the fall entirely β€” it is sometimes the fastest way down and always the wettest.

The catwalks

Some of the planking is sound and some is rotten, and the only way to tell is to stand on it. Rotten boards creak first and break about a second later, so the crossing is a decision rather than a surprise: go now and go fast, or find another way round. Nothing the generator does can strand you behind a plank that has already gone.

Three guns

A pistol you start with, a pump shotgun that puts a brute down at conversational range, and a nailer that holds a great deal more than you would expect. Ammunition is per type and it is not generous.

Keys and secrets

Two or three doors per floor, each with a key somewhere behind an ambush that triggers when you take it. Secret walls are pushed open with E and there is at least one on every floor. Clearing a floor of every kill, every item and every secret is tracked on the tally when you reach the way down.

It finds its own level

The scene is rendered at 426x240 and every dynamic light in range is evaluated for every pixel of it β€” nothing at all for a graphics card, and a great deal for a machine that has fallen back to software rendering. The game watches its own frame time and trims the light budget when it needs to, starting with the lights furthest from you, then puts it back when there is room. On anything with a working GPU it never leaves full quality.

GALLERY

WHAT IS DOWN THERE

ThingBehaviour
CrawlerWakes on sight, closes fast, will not enter deep water.
SpitterStands off and dissolves you from range.
MutantWhat a crew became. It still has the gun.
BruteCharges, and the slam carries.
BOSS: The Pipe GodFive heads, then a body. Slams, volleys, rains and summons.

NUMBERS

ThingValue
Lamp, full beam240 seconds
Lamp, dimabout 530 seconds
Battery pickup+90 seconds
Flares3 to start, 45 seconds each
Air underwater15 seconds, then 12 damage a second
Safe fall3 metres; beyond that 12 damage a metre, capped at 80
Rotten plankcreaks at 0.5s, breaks at 1.3s
Dash22 m/s for a quarter second, 1.2s cooldown

CONTROLS

KeyDoes
WASD / mouseMove and look
ClickShoot
1 2 3 / wheelWeapons
SpaceJump, and confirm on the tally
ShiftDash β€” it clears an eight metre gap that a run-jump will not
EUse: doors, plates, cracked walls
FLamp: on, dim, off
GDrop a flare
RRestart the descent

VERSION HISTORY

VERSION B2026-09-15
  • Genre moved from Shooting to Shooting β€Ί FPS. Categories are two levels now β€” overarching genres with sub-genres beneath them β€” so this is a more precise shelf rather than a different one: the game still appears under Shooting.
VERSION A2026-09-06
  • Added to the catalogue. A seven-floor generated descent through drainage mains, rendered in WebGL2 at 426x240 and upscaled, with everything β€” geometry, textures, palettes and audio β€” produced procedurally at load. No external assets.
  • Wired to the arcade: score accumulates over a whole descent from floors cleared, depth, kills, secrets and items, with a large bonus for killing the Pipe God. Submitted on every floor clear and again when the run ends.
  • Seven achievements, from clearing the first floor to sweeping one completely to killing the thing at the bottom.
  • The game ships its own test harness at ?test=1 β€” 55 checks covering movement, falling, swimming, drowning, planks, the lamp, every enemy and the boss, plus generation validity. All 55 pass.
  • Corrected a mislabelled line in that harness which printed the generation result as "24/25 valid" when it only ran 24 seeds, making a clean pass look like a one-in-twenty-five failure. Generating 360 floors across 60 seeds and all 6 depths produced no invalid layouts.
  • Added adaptive quality: the game measures its own frame time and trims the dynamic light budget when frames run long, restoring it when they do not. On a machine with no GPU at all, where the browser falls back to software rendering, this took it from 15fps to a stable 30.
  • Added the two failure screens it never needed as a standalone file: a clear message when WebGL 2 is unavailable instead of a black canvas, and a message on touch devices, which cannot lock a pointer or reach the number keys.
  • Optimised the fragment shader without changing a pixel: the light loop now skips lights the surface is not inside (it was doing a square root, a normalize and a pow for lights contributing exactly nothing), skips the specular term entirely on surfaces that have none, raises to the 24th and 32nd power by repeated squaring instead of pow(), and uses a reciprocal radius computed once on the CPU. Verified bit-identical: 102,240 pixels compared against the previous build, zero differ.
  • Lights whose whole sphere sits behind the camera no longer take one of the sixteen shader slots, so the budget goes to lights that can actually reach something visible.
  • A depth prepass was tried and measured worse β€” a corridor renderer has little overdraw, and a second geometry pass costs more than it saves β€” so it is not in the build.