Skip to builds

RollerCoaster Tycoon

Three browser versions of RollerCoaster Tycoon 2, with a brief covering track building, ride testing and paying guests.

  • Opus 5.5
  • Fable 5.1
  • GPT-6 Astra

What I was testing

I wanted to see how much these models had improved since my last RollerCoaster Tycoon test. I gave all three a detailed brief for building a park, laying coaster track and running the rides.

Opus 5.5 looked closest to the original game, and its controls were the easiest for me to follow. I could add a prebuilt ride without digging through the menus. Fable's track controls confused me enough that I stopped trying to build a coaster.

The prompt

Build a playable browser clone of RollerCoaster Tycoon 2: an isometric park where you lay
coaster track piece by piece, test the ride, and open it to paying guests who decide for themselves
whether it is worth riding.

Context you should know: this is going into a video watched by a large audience, your build is
played on camera against two other frontier models, and your work will be credited to you by name.
Every model gets this identical prompt. The audience has played this game. Go all out.

## Rendering

1. **2:1 dimetric projection, done correctly.** `screenX = y − x`, `screenY = (x + y) / 2 − z`.
   Tiles are 32 world units and render as a **64 × 32 px** footprint. Exactly **four** camera
   rotations, cycled with `& 3`. Height step of 8 units per level.
2. It should read as RCT: a tile grid, chunky readable sprites or low-poly geometry in that style,
   paths, grass, water, scenery. Programmer art is a failure.

## Track building

3. **Lay track piece by piece** on the grid: station platform, chain lift hill, slopes at the
   discrete pitch set, banked turns, flat turns, a helix, a vertical loop, a corkscrew, brake run,
   **block brakes**, and a photo section. Steel and wooden coaster types with different piece sets.
4. **Validity gates before a ride can open**: the circuit must be complete and return to the station,
   the station must be at least 2 tiles, and block brakes must be spaced so two trains can never
   occupy one block. An incomplete circuit is not testable.
5. **Build → test → rate → price → open.** No ratings exist until a test run completes. This ordering
   is the spine of the game; do not let a player price an untested ride.

## The physics

6. Chain lift pulls at a fixed speed. After the crest, velocity comes from gravity on the pitch,
   with quadratic drag. Track G-forces: vertical, lateral, longitudinal.
7. Speed readout in mph is `(velocity * 9) >> 18`.
8. **Crash conditions, correctly.** A train that cannot crest a hill rolls back. Two trains in one
   block collide. Derailment from G-force applies **only** to trains without upstop wheels on
   uncovered track, at lateral > 1.50 G or vertical < −0.40 G.

## Ratings — the three numbers

9. **Excitement, Intensity, Nausea**, computed from the layout: drop height, top speed, air time,
   G-forces, ride length, inversions, and proximity to scenery and other track.
10. **Six named bands, at these exact thresholds** (they are multiples of 2.56 because the game
    computes `rating >> 8`): Low below 2.56, Medium 2.56, High 5.12, Very High 7.68, Extreme 10.24,
    Ultra Extreme 12.80.
11. **The intensity penalty**: excitement is multiplied by 0.75, cumulatively, at each of 10.00,
    11.00, 12.00, 13.20 and 14.50 intensity. An Ultra Extreme ride keeps about 23.7% of its
    excitement, which is why the nastiest rides always read Low excitement. Implement this.
12. **Guests refuse to ride above 10.00 intensity**, hard.

## Guests

13. Guests are agents with **Happiness, Energy, Hunger, Thirst, Nausea, Bathroom and Money**. They
    walk the paths, queue, ride, get nauseous, buy food, get lost, and leave.
14. Each guest has a personal intensity window, widened by happiness. They weigh excitement against
    intensity, queue length and price.
15. **Price ceiling**: a guest will pay at most **2× the ride value**, hard-capped at **£20.00**.

## Money and park rating

16. **Park entry fee XOR per-ride pricing** — the two are mutually exclusive, pick one per park.
17. Running costs, staff wages per month (**Handyman £50, Mechanic £80, Security £60, Entertainer
    £55**), loans with interest.
18. **Park rating 0–999**, from guest count, ride quality, litter and crowding. **29 consecutive days
    below 700 closes the park.** Remember the formula prefers average excitement ≈3.68 and intensity
    ≈5.20 rather than rewarding maximums.

## Shipping

19. **Single self-contained `index.html`.** Any library via CDN. No build step, no server, no API
    keys, no hotlinked sprites — generate art procedurally or author it in canvas/SVG/WebGL.
20. **Sixty frames per second** with a full park and a few hundred guests. Profile it and fix it.
21. Playable within ten seconds of load, with one line of on-screen controls. Ship a small starting
    park so there is something to look at immediately.
22. **QA it by playing it.** Build a coaster, test it, check the ratings look sane, open it, watch
    guests actually queue and ride, confirm the money moves and the park rating updates. Fix what
    breaks. Write `BUILD_NOTES.md` covering which systems you implemented and which you stubbed.

Full prompt from the published experiment.

The builds

Opus 5.5 · Screenshot of the buildRuns in your browser

The full write-upOpus 5.5Read the article

Written by

Pat Simmons. Pat tests AI models and tools on the AI for Mortals YouTube channel.

AI FOR MORTALS.

Your daily AI edge that will make everyone wonder how you do it all.

Every weekday, the practical AI updates that matter, and exactly what to do with them.

The latest in AI, in plain English. Free, every weekday.