For AI agents: the complete documentation index is available at https://terepforever.com/llms.txt, the full documentation bundle is available at https://terepforever.com/llms-full.txt, and this page is available as Markdown at https://terepforever.com/index.md.

An off-road driving game

Terep Forever

Cars built from particles and springs that bend, dent and break as you drive them over the hills. A 1996 idea, exact to the bit, on every screen you own.

The Terep Forever app icon
The game's blue car under the yellow infinity sign on a green field

What it is

Atomic vehicles on a heightmap

Terep Forever is an independent re-creation of the idea behind a 1996 Hungarian DOS demo: the cars are built from particles and springs, so they bend, dent and break as you drive them across the terrain. It contains none of the original's code or data; it is written again from a functional specification.

  • Deterministic physics

    An integer-only simulation at a fixed 120 Hz: the same drive gives the same result, bit for bit, on every platform.

  • The 1996 picture on the GPU

    The original's 320 x 200 palette look, drawn by compute shaders on Metal, Direct3D 12 and Vulkan. A wide screen gets more of the same pixels, not smaller ones.

  • Worlds of any size

    From the original's 256 x 256 cells to 12 km across: race circuits with a race line, cities at night, and real mountain roads at true scale.

  • One game, every screen

    Keyboard, any gamepad, touch controls on a phone or tablet, the Siri Remote on Apple TV, and a split screen for up to four players.

  • The community's own

    The tracks, cars and skins of the Terep 30th Anniversary Edition are included, each credited to its author.

Game modes

Thirteen ways to drive

The cards of the game's mode carousel. Every mode has maps made for it, and the same reset key, countdown and results.

  • Free roam

    Anywhere on the game's own world or on any of the 95 community tracks.

  • Hill climb

    Up the Stelvio, Pikes Peak, the Gavia, the Giau and more, at true scale, against the clock and a ghost.

  • Race

    Laps against computer drivers on fifteen circuits: a race, a knockout or a cup, with road traffic.

  • Sprint

    Start to finish through five timed checkpoints, through a city or across the country, alone or as a series.

  • Drag

    Four abreast down a night city's strip: six gears by hand, a shift light, nitrous, a best-of-three knockout.

  • Time trial

    Eight minutes on a circuit alone, against the ghost of your best lap.

  • Rumble

    Three minutes in a walled derby arena: every knock dents the cars for good and scores the points.

  • King of the hill

    A crown on a summit: hold the ring around it alone for 30 seconds to win.

  • Soon

    Drift

    Sliding sideways for points on walled night city courses, against rivals who drift them too.

  • Co-op

    Flag hunt

    Twelve flags over the open ground, collected together against the team's clock.

  • Co-op

    Orienteering

    Six hidden controls, a compass and the distance to go; no arrow.

  • Co-op

    Convoy

    Everyone through every checkpoint of a route; the time spent spread out is added to the team's.

  • Co-op

    Car ball

    Push a grey wreck into the goal, as many times as four minutes allow.

Flag hunt, orienteering, convoy and car ball are co-op games on a split screen: halves for two, quadrants for four.

Vanilla '96

The original's physics exactly, its 4:3 picture and five cars, on a beige CRT in a school computer room around 2001.

Platforms

Where it runs

One code base, every target: the picture keeps its pixels' shape on every screen.

  • iPhone
  • iPad
  • Mac
  • Apple TV

iPhone, iPad, Mac and Apple TV

Metal, with MetalFX scaling the pixels. iOS and iPadOS 16, macOS 13 and tvOS 16 or later.

Coming soon
  • Windows
  • Linux
  • Steam Deck
  • Android

Windows, Linux, Steam Deck and Android

Direct3D 12 on Windows 10 and 11; Vulkan on Linux, SteamOS and Android.

Coming soon

Screens

From the game

Every pixel a hard-edged block, as in 1996.

Latest release

Version 0.10.0 17 October 2026

The changelog of the release, as generated from the commits.

## [0.10.0] - 2026-10-17

### Bug fixes
- **game:** A car put back twice at the same spot goes home (15e121b)
- **game:** A car's distance is where it stands on the road (bac3840)
- **sim:** Skip the hull test for solid cars whose boxes are apart (07ce245)
- **game:** A chaser that gets nowhere backs off; the ghost's splits by its nose (1855496)
- **gpu:** Create the device without Vulkan's clip distances, for Mali phones (5f2d7ef)
- **game:** A marker post beside the camera no longer overflows (6785e3b)
- **assets:** A real road's stone barrier stands before a fall of the ground (4e9e22a)
- **game:** The couch car page's panel as tall as what it holds, START big under a groove (6fecb1d)
- **game:** The value and controls pages on the devices: room under the back arrow, an iPad's sizes (0a4f886)
- **game:** The small driving screen's joystick knob is solid (93b8a9f)
- **game:** Vanilla '96's touch pause menu over the picture's whole box (3ffb0ff)
- **game:** The mode page's middle row by midpoint (clippy) (d4c7af0)
- **game:** A wreck in free roam shows its screen (88c41c5)
- **game:** The Licences' buttons a fingertip on a tablet, shallow indents on a phone (3023498)
- **game:** The Licences' couch look no smaller than 11 points (5099c17)
- **game:** The merged looks' loose ends (7974ece)

### Chores
- **xtask:** A benchmark script for the release build on macOS (cd99b7b)

### Documentation
- Driving a linked game from the map editor (612c68f)
- A benchmark of the release build on the M4 Max (8e6f717)
- The benchmark plan's leftovers, chunk streaming considered (5c1063b)
- Agent skills for the map editor's blackbox (82bb25d)
- **docs:** An iPhone's headless output is under Library/Application Support (d696bb2)
- **docs:** --changed between commits, the full check on merging to main (f98718f)
- **docs:** The menus' two looks, and testing them on the devices (25a2f17)

### Features
- **game:** --mapeditor links the game to the map editor and takes its teleports (3ac6cab)
- **editor:** The linked game's car on the plan, teleport by Cmd-click and MCP (0363b65)
- **editor:** An agent skill to run the game linked to the map editor (7b75cac)
- **game:** A linked game closes when the map editor asks (986b8ca)
- **editor:** A bigger 3D view with a distance switch, and the tools as buttons (c4b71ff)
- **sim:** A crash between solid cars crumples their faces (e93d66d)
- **game:** The rumble scores knocks from the simulation's contacts (7be3664)
- **game:** The reset key respawns after a three-second countdown (20e3ab2)
- **game:** A hill climb lists each completed section's time (7c630b0)
- **game:** The reset puts a car back where it left the road (d0212f9)
- **game:** The hill climb first among the races (b806be1)
- **gpu:** Log the memory Metal has allocated (eaea461)
- **editor:** A blackbox of the linked game, its replays and clips for tests (8c2b85b)
- **platform-android:** The game on a phone linked to the map editor (4164a44)
- **game:** On-screen touch controls and menus by tap (0e5f343)
- **platform-ios:** The game on an iPhone linked to the map editor (1e392d6)
- **game:** The track page names no maker of the game's own maps and car (c87ce8d)
- **game:** The pause menu's options without textures and status lines (68877e4)
- **game:** The app icon's ground fills the picture (f866394)
- **game:** A reset button on the touch screen beside the camera (fcdf2d7)
- **game:** The hill climb's latest section, its height and full results (9c94abc)
- **game:** A car out of control is put back, or the game stops on it (e00c0ff)
- **game:** The track page shows map thumbnails, a map built once chosen (80a54d9)
- **game:** A loading picture at start instead of a black screen (172f825)
- **sim:** Race circuits' run-offs end in standing tyre walls (510668e)
- **xtask:** Check --changed checks what the changed files touch (04003d9)
- **game:** The screen's safe area and a fingertip's size in frame pixels (9ffd973)
- **game:** The touch look: buttons a fingertip big, taps on release, swipeable carousels (6da9969)
- **game:** The couch look inside a TV's title-safe area (9280d67)
- **game:** A pad's shoulders turn the menus' carousels (c44a856)
- **game:** The Siri Remote's Menu button: Home at the top, pause in a game (2375929)
- **game:** Merge the couch look's title-safe area, Siri Remote and shoulders (84b85bf)
- **game:** The touch car page lives with the song banner, its layout checked on every screen (409e138)
- **game:** Merge the car page's two looks (dd8e0c2)
- **game:** The touch look's audio rows slide, the controls page draws the controls (d4bddde)
- **game:** Merge the audio, video and controls pages' touch look (e9bf8cd)
- **game:** Vanilla '96's CRT seen close on a phone or a tablet (e6e1e2f)
- **game:** Vanilla '96's CRT a little wider on a tablet (c35779c)
- **game:** Merge Vanilla '96's close CRT on phones and tablets (cd37037)
- **game:** The touch pause menu keeps the run-ending items apart and asks first (eafd172)
- **game:** Merge the pause menu's touch look (8b642ad)
- **game:** The touch track page: the view changes on letting go, the panel above the song banner (d713992)
- **game:** The touch track page's band at the bottom again, long lines broken onto the next (d8b403a)
- **game:** Merge the track page's touch look (dc9a3ef)
- **game:** Mode cards light up as they near the middle; the touch page clears the song banner (4db7984)
- **game:** The mode page's NEXT about 64 points high on a big screen (9f37a92)
- **game:** Merge the game-mode carousel's smooth turn (a43c346)
- **game:** Results and wreck screens keep clear of their touch buttons (e0bfb61)
- **game:** On a tablet the on-screen controls are a phone's size (d13fcd9)
- **game:** The song banner just above the steering, on any screen (1ebc802)
- **game:** Merge feat/touch-menus into the end screens (5a60a03)
- **game:** The song banner over a game's results, the end screens as they are (4f898d6)
- **game:** Merge feat/touch-menus (Vanilla '96 framing) into the end screens (9c31afa)
- **game:** Merge the end screens, the race HUD in the safe area and the tablet's controls (f18fbef)
- **game:** The touch main page sits in the middle, the settings' small print slides (afaeb43)
- **game:** Merge the main and settings pages' touch look (deac04f)
- **game:** The Licences screen in both looks, legible on a phone (a63b304)
- **game:** The Licences on a TV in letters seen from a sofa (5ad4f51)
- **game:** Merge the licences screen in both looks (f0b03f1)
- **platform-ios:** A tap runner to test the touch look on a device (b78d53a)

### Performance
- **assets:** Share the fine and true heights with the simulation's world (7778391)

### Tests
- **game:** The whole CRT glass on every hand-held screen (7f86fb4)
- **game:** The CRT's cover by the controls on the layer's rows (e9a948a)