Ranch Defense Force Source

In development: playable in your browser

The Whitacre place, outside Canton, Ohio, 1987

Ranch Defense Force

Pixel-art bullet-heaven on a cursed Ohio farm: work the field from first light to full dark, one day per run.

WASD or arrows to move. Your weapons fire on their own. Space for the class ability.

FIRST LIGHT

6:30 AM · Wave 1

First light

A crop duster went over low on Tuesday, and whatever it sprayed turned the hands, the neighbours and the stock into cursed, shambling things. You are the last one on the property with a job to do.

A run is one day. Wave 1 starts at first light with one farmhand, a pitchfork and a few hens that are not quite right.

Wave 1, captured from the live game.

4:20 PM · Wave 16

The crowd grows with the day

Enemies step on from just past the edge of the screen, all the way round you, and there are more of them every wave. Seeds drop and level you up; each level deals a hand of cards.

Feed buys from the shop after waves 5, 10, 15, 20 and 24. Weapons merge up through tiers as you pick your cards. The light is the clock, and the clock is the difficulty.

Golden hour. The weapons are firing themselves.

Every third wave

Something big comes out of the field

The Cockerel at wave 6, the Thing in the North Pasture at 9, the Prize Bull at 12, the Sow at 15, the Combine at 18, the Spray Rig at 21. At the end of the day the Duster comes over low with its lamps on: the crop duster itself, with nobody flying it.

The Prize Bull, a huge dark bull, standing in a plowed field beside the farmhand with its health bar along the bottom.
The Prize Bull, wave 12.
The Duster, a rusted biplane, flying over the dark field with its lamps lit and a green glow at its wingtip, the player below.
The Duster, last light.

8:20 PM · Wave 22

Full dark

By the end the sun is gone and you are fighting by lantern light in the rain, with eyes shining in the corn. Outside the lantern the field is near-dark, but the turned still carry a moonlit rim and glowing eyes, so you can read what is killing you.

A couple of hundred of them were alive on the field when this clip was cut.

The Spray Rig, wave 22, by lantern light.

Between runs

The Homestead

Six classes, each on a different axis: the Hand anchors, the Kid runs, and so on. Four of them unlock at the Homestead, paid for with the acres a run earns. The title screen and the Homestead are the game's own renderer too: the farm at sundown, live.

The title screen: the farm at sundown with six classes standing round a burning barrel and their class cards along the bottom.
The title screen.
The Homestead: the farm at sundown with signs for the Seed Catalog, the Feed Store, the Bunkhouse and the County Fair.
The Homestead.

How it was made

A farm, a day, and a lot of light

No engine

TypeScript, Vite and a hand-written WebGL2 renderer. The world is drawn at the art's own resolution, one art pixel to one texel, and scaled to the screen once with a sharp filter, so every sprite shares one pixel density and the camera glides without crawling.

Light is the clock

A colour buffer, an emissive buffer, a light buffer and a shadow mask are composited every frame. Sun shadows are the sprites themselves, projected along the sun from their feet. The whole day is one keyframed curve in a content file. Birds, wind, crickets, an owl and thunder are synthesised in code and follow the hour.

Photograph, critique, fix

A photo tour boots the real game, plays it with a bot and photographs fixed moments. A fresh reviewer who sees only the photos and the pitch lists the worst problems, they get fixed, and the loop repeats. It has run for more than twenty rounds. The baseline review scored the earlier version 4 out of 10.

Bugs that taught something

Every tilled plot once read as camouflage because the layout mask used an unsigned distance, so half of each plot flipped back to grass at the edges. The day looked flat for ten rounds of colour grading because the lantern's highlight curve was also easing the sun. Both are written up in the repo's notes.

Art

Characters, animals, buildings and items are generated with PixelLab and cut into 8-direction clips; the farm tiles and interface pieces are LimeZu's packs. The sim underneath is fixed-step and deterministic, with bot pilots and a test suite that plays whole runs.

These clips

Recorded by a script, frame by frame, from the live game: the game's own bot pilots the farmhand, the sim steps one frame at a time and a screenshot is taken each step. On late waves the bot's health is topped up so it survives the camera. Nobody played by hand.

Credits and licences

Pixel-art packs: Modern Farm and Modern User Interface
By LimeZu, used and published with LimeZu's permission for this repository only. Not MIT; please do not lift the art from this project.
Character, animal, building and item art
Generated with PixelLab.
Music: Abstraction
From the Music Loop Bundle by Benjamin Burnes / Tallbeard Studios. CC0.
Sound effects
Generated with ElevenLabs; the ambience is synthesised in code.
Typefaces on this page
Rye by Sorkin Type and IBM Plex Mono by IBM, both under the SIL Open Font License 1.1 (Rye, IBM Plex Mono).
Code
MIT. See the repository.