Dunerider
A rocket dune buggy in a desert that does not end. Drive it, then build roads in the sky.
Dunerider
An indestructible buggy with independent suspension and a rocket, loose in a desert that does not end. Drive it over dunes, salt flats and oases, jump the chasms, and climb the mega-dunes. Then build: every cell of the desert can hold one flat tile, tilted and turned to any whole degree, or a curved shape such as a quarter-pipe, placed by hand at the prompt or by a script running while you drive.
Dunerider needs a desktop browser with WebGL 2. On a phone it explains this and pauses; your tiles are kept.
First moves
The game opens on a menu over the desert. Choose Free roam to drive the desert you have, New desert for a fresh one, or From a seed to grow a particular one. The same seed always grows the same desert, so "seed 4417, the chasm north of the start pad" means the same place to everyone.
- W / Up - throttle.
- S / Down - brake, then reverse.
- A / D - steer.
- Space - rocket boost.
- Shift / E - hop, from the ground, every two seconds.
- V - camera: chase, high, or orbit (drag to circle, scroll to zoom).
- B - back to the start pad. N - a new desert.
- P / R - pause / resume. M - sound. H - help.
- :q - quit.
In the air, throttle and steering tilt the buggy. The rocket stretches a jump; it cannot outweigh gravity, so it never flies. menu brings the menu back and play drives again.
More room on desktop
Ctrl+B, then F expands the desert within the browser. Ctrl+B, then T reaches the terminal, where every command below works while you drive.
Building
The desert is a grid of cells, one buggy-length on a side. X runs east, Y runs north, and Z is height. Every value is a whole number.
place X Y Z PITCH YAW # fill one cell with a tile
place X Y Z 0 YAW SHAPE [SIZE] [ceiling] # a shaped tile (below)
remove X Y Z # empty one cell (all of a shaped tile)
remove --all # remove every tile; asks first, -y skips asking
PITCH runs from -90 to 90 and tilts the tile up toward YAW. YAW is a compass heading: 0 north, 90 east. Flat tiles side by side make one floor; 45-degree tiles stepped one over and one up make a ramp. Placing into a filled cell replaces its tile, so a script is safe to run twice.
Shapes
Four shapes curve where a flat tile cannot. Each keeps pitch 0 and faces north, east, south or west (YAW 0, 90, 180 or 270).
| Shape | What it is |
|---|---|
quarter [SIZE] | Flat to straight up, the wall of a half-pipe. It runs SIZE cells ahead and up, 2 to 5 (2 if you leave it out). Add ceiling to hang it upside down. |
slope [SIZE] | Climbs one cell over SIZE cells, 2 to 5 (2 by default): a climb the buggy takes without the rocket. |
sag | The foot of a 45-degree ramp, curving up out of a flat floor. |
crest | The top of a 45-degree ramp, levelling off onto a flat floor. |
A shape starts in the cell you name, where the tile behind it ends (a flat tile, or a 45-degree one for a crest), and runs on ahead until it meets the next tile (flat, 45 degrees or straight up) with no step. It fills every cell it passes through, so placing into any of them replaces it, remove on any of them removes it, and each of those cells counts toward the world's limit of 10,000. On a shaped tile the buggy's suspension stiffens at the bottom of its travel: a loop of size 3 or more holds the buggy at up to 180 km/h, and a size 2 loop to about 125.
place 0 10 0 0 0 sag # a smooth ramp north: the foot,
place 0 11 1 45 0 # 45-degree tiles one over and one up,
place 0 12 2 0 0 crest # and the top, onto flat tiles from 0 13 2
place 0 10 0 0 0 quarter 3 # a loop six cells high
place 0 10 5 0 0 quarter 3 ceiling
place 0 9 5 0 180 quarter 3 ceiling
place 0 9 0 0 180 quarter 3
Four quarters make a loop, but the road into it runs through the last quarter's cells and the road out through the first's. ./loop.sh & solves that the way a script can: it builds the loop with the last quarter missing, puts it in once you are climbing, and turns the first quarter into road once you are over the top. It also reads the sand ahead with scan ground and raises its road a cell above the highest of it, climbing there with a sag, 45-degree tiles and a crest, so it works among the dunes. Start it on level ground or facing uphill: rolling downhill into the ramp can wedge the buggy at its foot, and the script refuses where the sand drops steeply just ahead.
scan tells a script where it is: scan cell prints the X Y Z under the buggy, scan ahead 2 the cell two ahead along your heading, scan ground X Y the height of the sand in a column, and scan heading, scan speed and scan time what they say. scan tiles > my-build.sh saves everything you have built as a script.
Helpers
Your home has a ~/dunerider folder of starter scripts:
./kicker.sh- a launch ramp six cells north. Face north, hold Space and hit it square.
./stairway.sh- thirty 45-degree steps rising north.
./pave-ahead.sh &- lays a flat tile two cells ahead every tenth of a second.
./cruise.sh &- holds the throttle at 40 while you steer.
./goto.sh X Y- steers toward a cell; awk works out the bearing.
./loop.sh &- a loop ahead on a road raised above the sand, opened as you ride round it. Line up and floor it.
More builders live on GitHouse: Bridges, towers and slides from GitHouse clones them, drives them, and records a change with Git.
The & keeps the prompt free while the helper runs. Run ./pave-ahead.sh &, then drive off a dune or across a chasm: the road appears under your wheels and holds your height. A helper's throttle and steering add to your keys, and stopping it releases only what it was holding. jobs lists helpers, kill %1 stops the first one, and nano pave-ahead.sh edits it. delay counts game time, so pausing holds every helper.
Your world
~/dunerider/world.sh holds your seed and every tile. It saves as you build and loads when you come back. It is an ordinary script: cp world.sh mesa.sh keeps this desert, load mesa.sh brings it back, and bash world.sh in another desert rebuilds the same tiles there.
A day lasts 24 minutes of game time, starting at 08:00. Mirages rise off the salt flats around midday, and at night the buggy drives by headlight under the moon and stars.
Badges
Twelve badges are hidden in every desert. The menu's Badges page shows a rumour for each one you have not found, and badges lists them at the prompt. They are kept in ~/dunerider/badges.txt. There is no leaderboard.