On this page
  1. How it plays
  2. In Minecraft’s lineage
  3. After
  4. Related
  5. Mechanics
  6. References
  7. Sources

RollerCoaster Tycoon is Chris Sawyer’s theme park management game, published for Windows by MicroProse and Hasbro Interactive in March 1999. GameSpot listed it as new in stores on 22 March, while IGN gives 31 March1. The player builds a theme park, laying coasters a piece at a time2 and setting shops along the paths3, for guests who make up their own minds4. In the tutorial scenario of the 2001 reprint of the manual, the player has until October of the first year to bring in 250 guests and reach a park rating of 6005. Two add-on packs followed in 1999 and 2000, RollerCoaster Tycoon 2 in 2002, and an Xbox version in 20036.

Computer Games Magazine wrote that it was made mainly by one person, in a village near Dunblane in Scotland7. Sawyer says it began in 1996 as a sequel to his Transport Tycoon. He had rebuilt its isometric world so that track could run on bridges over bridges, and while watching vehicles on them he wondered what they would be like as roller coasters. Within a month or two of adapting the code, basic coasters ran8. He has said Bullfrog’s Theme Park was fun to play but its roller coasters were “rubbish”9. He bought himself out of the sequel’s contract and funded “Project White Knuckle” himself, and the game kept that name until Hasbro bought MicroProse and the Tycoon name came with it10. People in the industry told him it would only ever be a niche game11. His site says it is 99% x86 assembly, with some C to talk to Windows and DirectX12. In his telling, assembly made the detailed simulation fast enough, at the cost of a game that can’t be recompiled for other machines13.

Reviewers compared it with Theme Park. GameSpot’s Alan Dunkin called it a combination of Theme Park and Disney’s Coaster and scored it 8.6 out of 10, faulting its two speeds, stop and go, and its “only 21 scenarios and no way to make more”14,15. IGN’s Jason Bates found it a lot like Theme Park, “but so what? It’s also a lot of fun”, and gave it 8.516,17. Jeff Green of Computer Gaming World called it “an utterly charming gem of a strategy game”18, and Computer Games Strategy Plus named it Strategy Game of the Year19. By PC Data’s count it was the best-selling game of 1999, with over 700,000 copies sold in the US20, and Computer Gaming World reported in July 2002 that it had sold 4 million21. Sawyer recalls slow early sales, then the shock of finding it among the year’s best sellers, and hearing that it appealed to grandparents as well as strategy fans22.

#How it plays

Sawyer wanted it to be “fun to play with rather than just fun to play against”23. Coasters are built a piece at a time. The track has to close its loop back at the station, may pass over or under itself but never cross at the same level, and needs a straight piece between a climb and a drop2. A test run rates the ride for excitement, intensity, and nausea, on scales the manual gives as 0 to 10, though intensity can go higher. Excitement sets what the ride can charge and how popular it is, and grows with speed, pacing, scenery, close passes by paths and other rides, and novelty. Spins, sharp turns, and inversions make riders sick, and a ride rated over 10 for intensity may find no riders even for free24. Shops need no queue, but most serve from one side, which has to face a path3.

The guests can’t be ordered about. Sawyer wanted them to make up their own minds from what they see and feel, and testers complained that they got lost too easily in odd-shaped parks4. The player reads them instead. One window lists every guest’s current thought and totals the thoughts by frequency, so a complaint near the top flags a problem, and each guest’s own window shows their recent thoughts, their spending, and how much intensity and nausea they will stand25. The manual teaches needs as chains: guests who eat will want bathrooms and bins, and salty food makes them thirsty26. Lost guests come from the footpaths, so it advises against dead ends and long trails to nowhere, and park maps help27.

The park rating, from 0 to 1000, sums up the guests’ view of the rides, layout, tidiness, and value, but it says only that something is wrong, not what28. The manual says the player has borrowed from the bank to improve the park, and that guest spending is the only income besides that loan29.

#Guests in OpenRCT2

The 1999 game’s code isn’t public. OpenRCT2, an open-source re-implementation of RollerCoaster Tycoon 2, shows how its rebuilt version of the sequel’s engine runs guests, though its readme says it improves the guest AI30. In OpenRCT2 each guest has a preferred range of intensity and a tolerance for nausea. It turns down a ride outside that range or above that tolerance, thinking “X looks too intense for me” or “I want to go on something more thrilling than X”, and a happy guest will stretch further than an unhappy one31. A ride that has crashed is refused by all but the happiest32. Happiness creeps toward a target that sinks when the guest is tired, hungry, thirsty, or needs the toilet33. While it eats, any food makes a guest thirstier34. About every 26 seconds of game time a walking or sitting guest voices one of its needs and walks to the nearest stall, toilet, or cash machine that meets it35. Guests who are content, rested, and still carrying money stay; any other guest may decide to go home at any check36. A walking guest checks whether it is lost each time it reaches the next point on its way and at every dead end, and one lost long enough thinks “I’m lost!” and grows unhappier37.

OpenRCT2’s park rating is a sum. It counts the guests and the share of them who are happy, and charges for those who can’t find the exit38. Rides add points for uptime, for an average excitement and intensity near a middle target, and for their total thrills39. Old litter costs points, and the result is capped at 99940.

#In Minecraft’s lineage

In 2010 Markus Persson said the builder game he was working on when he found Infiniminer was supposed to be “a lightweight Dwarf Fortress”, “kinda like if DF and Rollercoaster Tycoon had a baby”41. In 2011 he wrote that he had pitched that isometric mining game as “Dwarf Fortress meets Rollercoaster Tycoon meets Dungeon Keeper”, before Infiniminer turned him to the first-person prototype of Minecraft42.

#After

Sawyer calls RollerCoaster Tycoon 2 his favorite, but thinks the original and its add-ons may have been better games, with more challenge, and that their scenarios were better. RollerCoaster Tycoon Classic recreates the sequel with the original’s scenarios added, 95 in all43. Sawyer said RollerCoaster Tycoon’s engine was adapted for Chris Sawyer’s Locomotion in 200444. OpenRCT2 can play the original game’s scenarios from its files, and brings back features of the first game that the sequel dropped, such as the in-game mountain tool30. PC Gamer placed Parkitect in the line of the early RollerCoaster Tycoon games45.

Mechanics

MechanicKindHow
Structure placementa shop serves from one side, which has to face a path; only the Information Kiosk serves from all four
Every claim about this game, by concept (36)
generalGameSpot's new-releases post of 22 March 1999 listed MicroProse and Hasbro Interactive's RollerCoaster Tycoon, developed by Chris Sawyer, as new on store shelves that Monday. IGN's review page gives 31 March 1999 instead, and Computer Games Magazine's interview of January 2000 says only that it was released in March.Web
Sawyer's own site says RollerCoaster Tycoon was released through Hasbro Interactive early in 1999, followed by two add-on packs, Added Attractions (Corkscrew Follies) in late 1999 and Loopy Landscapes in September 2000; an Xbox version published by Infogrames Interactive in 2003; and RollerCoaster Tycoon 2, published by Infogrames in October 2002.Publisher
Computer Games Magazine wrote in January 2000 that RollerCoaster Tycoon was created in a small village near Dunblane, Scotland, mainly by one person, Chris Sawyer.Interview
Sawyer has said RollerCoaster Tycoon began as a sequel to Transport Tycoon in 1996. He had rewritten the isometric world so that track could run on bridges over bridges, and while watching vehicles on those bridges he wondered what they would be like as roller coasters. He adapted the code he had written, had basic roller coasters running within a month or two, and abandoned the sequel. OpenRCT2's readme says the engine of RollerCoaster Tycoon 2 was based on Transport Tycoon.Publisher
Sawyer told Arcade Attack that Bullfrog's Theme Park was a fun game but its roller coasters were "rubbish", which got him thinking, and that a book called "White Knuckle Ride", with photos of big roller coasters, made him think how fun it would be to build one in a Transport Tycoon-like isometric world.Interview
Sawyer has said he bought himself out of the Transport Tycoon 2 contract and worked on "Project White Knuckle" full time, funding it himself and keeping it under wraps. The game kept the name White Knuckle through development, even after Hasbro Interactive became involved; when Hasbro bought MicroProse, the "Tycoon" connection made it RollerCoaster Tycoon.Interview
Sawyer has said that people in the games industry told him a roller-coaster game would only ever be a niche game, and that the negative reactions gave him serious doubts during its two years of development.Interview
Sawyer's site says RollerCoaster Tycoon is 99% x86 assembly, with some C to interface with Windows and DirectX, built with Microsoft Macro Assembler 6.11c, Visual C 5 and the DirectX 5 SDK. In a 2015 interview he said Transport Tycoon and RollerCoaster Tycoon on the PC were "entirely" programmed in x86 assembler code.Publisher
Sawyer said assembly let him make the simulation more detailed: it needed so much processing that it had to be highly optimised, which he thought impossible in a high-level language. The cost is that assembly can't be recompiled for another platform.Interview
Asked why the game isn't difficult in the usual strategy-game sense, Sawyer said it should be "fun to play with rather than just fun to play against", and that a harder game might turn hours of park building into bankruptcy and the end of the game.Interview
The 2001 mini manual opens with "A Word from John Wardley", a ride designer whose coasters include Nemesis and Oblivion at Alton Towers and Megafobia at Oakwood, with tips on designing a coaster as a journey that keeps its surprises to the end.Manual
Alan Dunkin's GameSpot review of 13 April 1999 scored it 8.6 out of 10.Web
Dunkin described it as a combination of Disney's Coaster and Bullfrog's Theme Park, with Theme Park its only real competition. He faulted it for running at only two speeds, stop and go, and for its 21 scenarios, with no way to make more and no open-ended scenario.Web
Jason Bates's IGN review of 2 April 1999 scored it 8.5 out of 10.Web
Bates wrote that it was a lot like Theme Park, "but so what? It's also a lot of fun", and that MicroProse had beaten Bullfrog's Theme Park 2 to the punch.Web
Jeff Green's review in Computer Gaming World (July 1999) called it "an utterly charming gem of a strategy game from MicroProse", a game in which you get to clean up vomit, and a change of pace for players tired of conquering galaxies and fighting wars.Magazine
Eurogamer's review of 18 May 2000, by nach0king, scored it 8 out of 10.Web
Eurogamer's reviewer called it extremely impressive, "great for strategy fans, SimCity lovers, and anyone hoping to produce the next Disneyland".Web
Computer Games Strategy Plus's awards, posted on 6 March 2000, named it Strategy Game of the Year, with Heroes of Might and Magic III and Jagged Alliance 2 as finalists. The citation praised it for keeping the player on the fun parts, unlike Theme Park.Web
Computer Games Magazine wrote in January 2000 that RollerCoaster Tycoon was the best-selling game of 1999 according to PC Data, with over 700,000 copies sold in the US. The magazine reasoned from that figure, as about 80% of the market, that it had likely sold more than a million in under a year.Interview
Computer Gaming World reported in July 2002, announcing the sequel, that RollerCoaster Tycoon had sold 4 million copies.Magazine
Sawyer recalled that sales started slow but steady and that it was a shock, a few months later, to learn the game was among the top-selling PC games of the year, with players from strategy fans to grandparents.Interview
Sawyer calls RollerCoaster Tycoon 2 his favorite, but thinks the original and its expansion packs may have been better games: the sequel's free-form play took away some of the challenge, and the original's scenarios were better. RollerCoaster Tycoon Classic, which recreates the sequel, brought back the original's scenario structure, for 95 scenarios in all.Interview
Sawyer said the RollerCoaster Tycoon engine was then adapted for a new transport game, Chris Sawyer's Locomotion (2004), so the code went full circle from the abandoned Transport Tycoon 2.Interview
OpenRCT2 is an open-source re-implementation of RollerCoaster Tycoon 2 that needs the original game's files. Its readme says it adds improved guest and staff AI, and brings back mechanics of the first game that the sequel dropped, such as the in-game mountain tool and the "have fun" objective; with the first game's files it can play the original scenarios.Developer
PC Gamer's Ellen McGrody likened Parkitect in 2018 to the early RollerCoaster Tycoon games, as isometric and management-focused, and wrote that it had grown from a recreation of the isometric rollercoaster sim into an evolution of it. Its developers, quoted there, speak of "older games" without naming one.Web
The manual's rules for building a coaster piece by piece: the last piece must join the station platform to close the loop; track may pass over or under itself with enough clearance but may not cross itself at the same level; a rise can't turn straight into a drop without a straight piece between; supports reach only so high; and track goes underground only where the land is prepared.Manual
A test run gives each custom ride three ratings, excitement, intensity and nausea, which the manual scales from 0 to 10, though intensity can go over 10. Higher excitement lets the ride charge more and makes it more popular; it comes from the ride type and design, speed, pacing, nearby scenery, the view, close passes by paths and other rides, and novelty. Intensity comes from the forces, inversions and speed; a ride rated over 10 may find no riders even for free. Spinning, sharp turns and inversions raise nausea.Manual
Sawyer has said he wanted the guests "uncontrollable": they can't be forced to do anything and make up their own minds from what they see, feel and experience, run by "quite a primitive algorithm". Testers complained that guests got lost too easily in odd-shaped parks.Interview
The Guest Info window lists each guest's current thought and action, and its second tab totals every guest's thoughts in order of frequency, so a complaint near the top flags a problem. Each guest's own window shows their recent thoughts, their spending in the park, and their preferred ride intensity and tolerance for nausea.Manual
The manual teaches needs as chains of cause and effect: guests who eat will need bathrooms and litter bins, salty food makes them thirsty, and a hungry guest looks out for a food stall.Manual
The manual says how often guests get lost depends entirely on the footpaths: avoid dead ends, complex routes and long trails to nowhere, and sell park maps at Information Kiosks, which make a guest much less likely to get lost. A lost guest can be picked up and dropped on a central path.Manual
The park rating, from 0 to 1000, reflects the guests' overall impression of ride design, layout, tidiness, value and efficiency. The manual warns that it shows that there is a problem but never what the problem is.Manual
The manual's tutorial scenario gives the player until October of Year 1 to bring 250 guests into the park and raise the park rating to at least 600.Manual
The manual says the player has borrowed from the bank to improve the park, and that this loan is the working capital; besides it, the only money is what guests spend in the park. The park value, another report, weighs land and equipment, the quality and profit of the rides, and the park rating.Manual
Structure placementNearly every shop or stall has a front with a serving window, and that side must face a path for guests to use it; the Information Kiosk serves from all sides. Shops need no entrance, exit or queue.Manual

References

  1. ^GameSpot's new-releases post of 22 March 1999 listed MicroProse and Hasbro Interactive's RollerCoaster Tycoon, developed by Chris Sawyer, as new on store shelves that Monday. IGN's review page gives 31 March 1999 instead, and Computer Games Magazine's interview of January 2000 says only that it was released in March.WebGameSpot, New Releases, 22 March 1999 · IGN, RCT review (1999) · Computer Games Magazine, Sawyer interview, 2000revised
    How we know
    New on store shelves for Monday, March 22, 1999 is MicroProse/Hasbro Interactive's Roller Coaster Tycoon, developed by Chris Sawyer (the guy behind the classic Transport Tycoon).
    New Releases, posted 03/22/99 · archived copy ↗
    Released Mar. 31st, 1999
    game box beside the review · archived copy ↗
    Released in March, it was the best-selling game of 1999 according to PC Data
    opening paragraph · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  2. ^ abThe manual's rules for building a coaster piece by piece: the last piece must join the station platform to close the loop; track may pass over or under itself with enough clearance but may not cross itself at the same level; a rise can't turn straight into a drop without a straight piece between; supports reach only so high; and track goes underground only where the land is prepared.ManualRollerCoaster Tycoon manual
    How we know
    The last piece of track must connect to the first piece (the Station Platform) to create a closed loop.
    p. 12, building Roller Coaster 1 · archived copy ↗
    However, it is a violation of the safety code to build intersections, so you cannot have the track cross itself at the same level. … In order to switch from a rising track to a dropping track, you must have at least one piece of straight track in the middle. … There is a limit to how high above the land you can safely raise track using supports. … You cannot build track underground unless you prepare the land for it.
    p. 12 · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  3. ^ abNearly every shop or stall has a front with a serving window, and that side must face a path for guests to use it; the Information Kiosk serves from all sides. Shops need no entrance, exit or queue.ManualRollerCoaster Tycoon manual
    How we know
    Unlike a ride, a little shop doesn’t need an Entrance or Exit, and a queuing line is also unnecessary.
    p. 20, Shops and Stalls · archived copy ↗
    almost all shops have a predetermined front side with a built in access window, and that front side must be positioned next to a path in order for the guests to be able to use it. The only exception is the Information Kiosk, which has access windows on all sides.
    p. 20 · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  4. ^ abSawyer has said he wanted the guests "uncontrollable": they can't be forced to do anything and make up their own minds from what they see, feel and experience, run by "quite a primitive algorithm". Testers complained that guests got lost too easily in odd-shaped parks.InterviewArcade Attack, Chris Sawyer interview (2018)
    How we know
    Having the guests “uncontrollable” in the game appealed to me a lot – i.e. you can’t force them to do something they don’t want to do as they make their own minds up based on what they see and feel and experience.
    answer on inspiration and objectives · archived copy ↗
    Programming the guests was a really fun challenge, and quite a satisfying one when you see the results of quite a primitive algorithm looking quite “human”. … I remember testers criticising the guests’ ability to get lost far too easily if you built an odd-shaped park, perhaps one with a lake in the middle
    same answer · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  5. ^The manual's tutorial scenario gives the player until October of Year 1 to bring 250 guests into the park and raise the park rating to at least 600.ManualRollerCoaster Tycoon manualrevised
    How we know
    In the tutorial, you have until October of Year 1 to attract 250 guests into the park and build the park’s rating (a measure of reputation) to at least 600.
    p. 8, The Tutorial · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  6. ^Sawyer's own site says RollerCoaster Tycoon was released through Hasbro Interactive early in 1999, followed by two add-on packs, Added Attractions (Corkscrew Follies) in late 1999 and Loopy Landscapes in September 2000; an Xbox version published by Infogrames Interactive in 2003; and RollerCoaster Tycoon 2, published by Infogrames in October 2002.PublisherChris Sawyer, site biography
    How we know
    Chris's second big project was RollerCoaster Tycoon, released through Hasbro Interactive early in 1999, followed by two add-on packs Added Attractions / Corkscrew Follies in late 1999 and Loopy Landscapes in September 2000.
    biography · archived copy ↗
    Published by Hasbro Interactive in 1999, Xbox version published by Infogrames Interactive in 2003
    Games, RollerCoaster Tycoon · archived copy ↗
    Published by Infogrames Interactive in October 2002
    Games, RollerCoaster Tycoon II · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  7. ^Computer Games Magazine wrote in January 2000 that RollerCoaster Tycoon was created in a small village near Dunblane, Scotland, mainly by one person, Chris Sawyer.InterviewComputer Games Magazine, Sawyer interview, 2000
    How we know
    MicroProse's RollerCoaster Tycoon was created in a small village near Dunblane, Scotland, mainly by one person, Chris Sawyer.
    opening paragraph · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  8. ^Sawyer has said RollerCoaster Tycoon began as a sequel to Transport Tycoon in 1996. He had rewritten the isometric world so that track could run on bridges over bridges, and while watching vehicles on those bridges he wondered what they would be like as roller coasters. He adapted the code he had written, had basic roller coasters running within a month or two, and abandoned the sequel. OpenRCT2's readme says the engine of RollerCoaster Tycoon 2 was based on Transport Tycoon.PublisherChris Sawyer, "10 things" feature · Arcade Attack, Chris Sawyer interview (2018) · Retro Gamer 138, Chris Sawyer interview · OpenRCT2 v0.5.6revised
    How we know
    RollerCoaster Tycoon originally started as a sequel to Transport Tycoon back in 1996, but the sequel was abandoned and the code modified to handle roller coasters instead of transport vehicles.
    item 4 · archived copy ↗
    I got it to the point where I had multi-level bridges over bridges and little block-shaped trains merrily running under and over all these bridges while depth-sorting correctly.
    answer on the Transport Tycoon sequel · archived copy ↗
    While watching the vehicles moving around on multi-level bridges in Transport Tycoon 2 I started to wonder what it would be like if those vehicles were roller coasters
    p. 96, "What inspired you to make RollerCoaster Tycoon instead then?" · archived copy ↗
    I started adapting the code I had already written and within a month or two I had some basic roller coasters
    p. 96, same answer · archived copy ↗
    Eventually I decided to take a breather from the Transport Tycoon sequel and just have a bit of fun seeing if I could adapt the isometric system to handle a simple roller coaster.
    answer on the Transport Tycoon sequel · archived copy ↗
    The engine was based on Transport Tycoon, an older game which also has an equivalent open-source project
    readme.md#L68 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  9. ^Sawyer told Arcade Attack that Bullfrog's Theme Park was a fun game but its roller coasters were "rubbish", which got him thinking, and that a book called "White Knuckle Ride", with photos of big roller coasters, made him think how fun it would be to build one in a Transport Tycoon-like isometric world.InterviewArcade Attack, Chris Sawyer interview (2018)
    How we know
    Bullfrog’s Theme Park game had been published and was a really fun game to play, but quite honestly the rollercoasters in it were rubbish, and it got me thinking.
    answer on the Transport Tycoon sequel · archived copy ↗
    It started me thinking about how fun it would be to be able to build something like that in a Transport Tycoon-like 3D isometric game world.
    same answer · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  10. ^Sawyer has said he bought himself out of the Transport Tycoon 2 contract and worked on "Project White Knuckle" full time, funding it himself and keeping it under wraps. The game kept the name White Knuckle through development, even after Hasbro Interactive became involved; when Hasbro bought MicroProse, the "Tycoon" connection made it RollerCoaster Tycoon.InterviewRetro Gamer 138, Chris Sawyer interview · Chris Sawyer, "10 things" feature
    How we know
    I bought myself out of the Transport Tycoon 2 contract and effectively cancelled the project, and started working on 'Project White Knuckle' full time, funding development myself and keeping the project under wraps
    p. 96, "So it was more of a passion project…" · archived copy ↗
    Even when Hasbro Interactive became involved, the game was still going to be called White Knuckle, but then Hasbro bought Microprose, and the "Tycoon" connection was just too good an opportunity to miss, so the game became "RollerCoaster Tycoon".
    item 8 · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  11. ^Sawyer has said that people in the games industry told him a roller-coaster game would only ever be a niche game, and that the negative reactions gave him serious doubts during its two years of development.InterviewRetro Gamer 138, Chris Sawyer interview · Computer Games Magazine, Sawyer interview, 2000
    How we know
    all the advice was that it would only ever be a niche game, would never make any money
    p. 96, "So it was more of a passion project…" · archived copy ↗
    there were times during the two years of development when I had serious doubts about the game, often because of the negative reaction from other people in the game industry.
    Are you surprised by both the critical and public reaction… · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  12. ^Sawyer's site says RollerCoaster Tycoon is 99% x86 assembly, with some C to interface with Windows and DirectX, built with Microsoft Macro Assembler 6.11c, Visual C 5 and the DirectX 5 SDK. In a 2015 interview he said Transport Tycoon and RollerCoaster Tycoon on the PC were "entirely" programmed in x86 assembler code.PublisherChris Sawyer FAQ · Retro Gamer 138, Chris Sawyer interview
    How we know
    It's 99% written in x86 assembler/machine code (yes, really!), with a small amount of C code used to interface to MS Windows and DirectX.
    What language was RollerCoaster Tycoon programmed in? · archived copy ↗
    The game was written and compiled using MS Macro Assembler V6.11c, MS Visual C V5, MS DirectX 5 SDK, plus assorted custom-written tools.
    Which development tools were used to develop RollerCoaster Tycoon? · archived copy ↗
    Both Transport Tycoon and RollerCoaster Tycoon on the PC were entirely programmed in x86 assembler code.
    p. 95, answer on x86 assembly · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  13. ^Sawyer said assembly let him make the simulation more detailed: it needed so much processing that it had to be highly optimised, which he thought impossible in a high-level language. The cost is that assembly can't be recompiled for another platform.InterviewRetro Gamer 138, Chris Sawyer interview
    How we know
    I've no doubt it enabled a much more detailed level of complexity in the game
    p. 95, "Do you think working in assembly language made Transport Tycoon and RollerCoaster Tycoon better games?" · archived copy ↗
    achieving that same level of optimisation in a high level language would have proved impossible. The downside of writing in assembler code is that it can't be recompiled to run
    p. 95, same answer · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  14. ^Dunkin described it as a combination of Disney's Coaster and Bullfrog's Theme Park, with Theme Park its only real competition. He faulted it for running at only two speeds, stop and go, and for its 21 scenarios, with no way to make more and no open-ended scenario.WebGameSpot, RCT review (1999)
    How we know
    MicroProse's RollerCoaster Tycoon is a combination of two somewhat popular PC games: Coaster, an older game from Disney in which you design roller coasters, and Bullfrog's Theme Park … Since Theme Park is pretty much the only real competition
    paragraph 1 · archived copy ↗
    the game only runs at two speeds - stop and go … Finally, there are only 21 scenarios and no way to make more, and there's no generic "start from scratch and build till you drop" scenario either.
    paragraph 7 · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  15. ^Alan Dunkin's GameSpot review of 13 April 1999 scored it 8.6 out of 10.WebGameSpot, RCT review (1999)
    How we know
    GameSpot Score 8.6 great
    score box · archived copy ↗
    Alan Dunkin, GameSpot POSTED: 04/13/99
    byline · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  16. ^Bates wrote that it was a lot like Theme Park, "but so what? It's also a lot of fun", and that MicroProse had beaten Bullfrog's Theme Park 2 to the punch.WebIGN, RCT review (1999)
    How we know
    It's a lot like Theme Park but so what? It's also a lot of fun.
    deck · archived copy ↗
    MicroProse beat Bullfrog's Theme Park 2 to the punch with Roller Coaster Tycoon, a Chris Sawyer game.
    paragraph 1 · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  17. ^Jason Bates's IGN review of 2 April 1999 scored it 8.5 out of 10.WebIGN, RCT review (1999)
    How we know
    Great IGN Staff 2 Apr 1999 8.5
    score box · archived copy ↗
    Roller Coaster Tycoon is, quite simply, a lot of fun. --Jason Bates
    end of review · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  18. ^Jeff Green's review in Computer Gaming World (July 1999) called it "an utterly charming gem of a strategy game from MicroProse", a game in which you get to clean up vomit, and a change of pace for players tired of conquering galaxies and fighting wars.MagazineCGW 180, RCT reviewrevised
    How we know
    to clean up vomit. Finally!
    p. 159, "Thrills and Spills", paragraph 1 · archived copy ↗
    TYCOON, an utterly charming gem … of a strategy game from … change of pace for those tired of … conquering galaxies, fighting … wars, and building global
    p. 159, paragraph 1 · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  19. ^Computer Games Strategy Plus's awards, posted on 6 March 2000, named it Strategy Game of the Year, with Heroes of Might and Magic III and Jagged Alliance 2 as finalists. The citation praised it for keeping the player on the fun parts, unlike Theme Park.WebComputer Games Strategy Plus awards 1999
    How we know
    Posted on 03/06/2000 Strategy Game of the Year RollerCoaster Tycoon
    Strategy Game of the Year · archived copy ↗
    Unlike Theme Park, it never forces the player to get bogged down in the minutia of running a park, doing an amazing job at focusing the player in the fun parts.
    Strategy Game of the Year, paragraph 2 · archived copy ↗
    Finalists Heroes of Might and Magic III … Jagged Alliance 2
    Finalists · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  20. ^Computer Games Magazine wrote in January 2000 that RollerCoaster Tycoon was the best-selling game of 1999 according to PC Data, with over 700,000 copies sold in the US. The magazine reasoned from that figure, as about 80% of the market, that it had likely sold more than a million in under a year.InterviewComputer Games Magazine, Sawyer interview, 2000
    How we know
    Released in March, it was the best-selling game of 1999 according to PC Data, selling over 700,000 copies in the US alone. (This represents about 80% of the market, which means it's likely the game has sold more than a million units in less than a year).
    opening paragraph · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  21. ^Computer Gaming World reported in July 2002, announcing the sequel, that RollerCoaster Tycoon had sold 4 million copies.MagazineCGW 216, RCT sales
    How we know
    Infogrames is on track to release a sequel this fall to Rollercoaster Tycoon, which has now sold 4 million copies.
    p. 42, Read Me, "Rollercoaster Tycoon II" · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  22. ^Sawyer recalled that sales started slow but steady and that it was a shock, a few months later, to learn the game was among the top-selling PC games of the year, with players from strategy fans to grandparents.InterviewArcade Attack, Chris Sawyer interview (2018)
    How we know
    sales initially were quite slow but steady. But it was a shock a few months later though to find out that sales had ramped up considerably and the game was now amongst the top selling games for the PC for that entire year.
    RollerCoaster Tycoon was named as the best selling PC game in 1999… · archived copy ↗
    not just boys who liked strategy games but also girls, younger children, and adults and even grandparents too.
    same answer · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  23. ^Asked why the game isn't difficult in the usual strategy-game sense, Sawyer said it should be "fun to play with rather than just fun to play against", and that a harder game might turn hours of park building into bankruptcy and the end of the game.InterviewComputer Games Magazine, Sawyer interview, 2000
    How we know
    I think my philosophy was that it should be fun to play with rather than just fun to play against.
    RollerCoaster Tycoon isn't difficult in the traditional strategy game sense… · archived copy ↗
    it might have turned a very positive game into a rather frustrating one, where all your hard work designing and building a park might result in bankruptcy and the end of the game.
    same answer · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  24. ^A test run gives each custom ride three ratings, excitement, intensity and nausea, which the manual scales from 0 to 10, though intensity can go over 10. Higher excitement lets the ride charge more and makes it more popular; it comes from the ride type and design, speed, pacing, nearby scenery, the view, close passes by paths and other rides, and novelty. Intensity comes from the forces, inversions and speed; a ride rated over 10 may find no riders even for free. Spinning, sharp turns and inversions raise nausea.ManualRollerCoaster Tycoon manualrevised
    How we know
    purpose for testing is to determine the important characteristics of the ride — excitement, intensity, and nausea factor.
    p. 54, Building a Custom Ride · archived copy ↗
    The higher this number, the more you can successfully charge for admission to the ride, and the more popular the ride will be with your guests.
    pp. 55-56, Characteristics of the Ride · archived copy ↗
    The overall speed of the ride, its pacing, and the look of it from the outside can add to the excitement, as can nearby scenery … The age of the ride is a factor, too; novelty adds excitement. … The overall rating depends on all the forces, accelerations, changes of direction, inversions, and speed experienced by a rider over the course of the track. You can achieve intensity ratings over 10 through misguided design decisions, but don’t be surprised when no one is willing to ride it, even for free! … Spinning rides tend to have high nausea ratings, and the more turns (especially sharp ones) and inversions you include, the worse it gets.
    p. 56 · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  25. ^The Guest Info window lists each guest's current thought and action, and its second tab totals every guest's thoughts in order of frequency, so a complaint near the top flags a problem. Each guest's own window shows their recent thoughts, their spending in the park, and their preferred ride intensity and tolerance for nausea.ManualRollerCoaster Tycoon manualrevised
    How we know
    There are two display tabs in this window. the first lists the current thought and action of each guest in the park
    p. 34, Keeping Your Guests Happy · archived copy ↗
    The second tab summarizes for you the actions and thoughts of every guest, and presents them in descending order of frequency.
    p. 34 · archived copy ↗
    Condition is a detailed analysis of the visitor’s physical status and needs, plus information on his or her ride intensity preference and nausea tolerance. … Thoughts lists this visitor’s most recent few thoughts about your park. … Funds details the guest’s spending while in the park.
    pp. 82-83, Guest window · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  26. ^The manual teaches needs as chains of cause and effect: guests who eat will need bathrooms and litter bins, salty food makes them thirsty, and a hungry guest looks out for a food stall.ManualRollerCoaster Tycoon manual
    How we know
    If you serve food, your visitors will need bathrooms and trash bins; provide them before there’s a problem. Salty foods make guests thirsty, so build drink stalls.
    p. 34, "Foresee and fill visitor's needs" · archived copy ↗
    if a guest is hungry, he or she will keep an eye out for a food stall
    p. 20, Shops and Stalls · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  27. ^The manual says how often guests get lost depends entirely on the footpaths: avoid dead ends, complex routes and long trails to nowhere, and sell park maps at Information Kiosks, which make a guest much less likely to get lost. A lost guest can be picked up and dropped on a central path.ManualRollerCoaster Tycoon manual
    How we know
    How often guests … become lost depends … entirely on the system … of footpaths in your … park. Try to avoid … dead ends, complex
    p. 32, Lost Guests · archived copy ↗
    Having a map … handy significantly reduces a … guest’s chances of getting lost.
    p. 32, Park Maps · archived copy ↗
    Move the mouse pointer across the landscape until the visitor you’ve retrieved is over a central footpath (preferably near rides).
    p. 32 · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  28. ^The park rating, from 0 to 1000, reflects the guests' overall impression of ride design, layout, tidiness, value and efficiency. The manual warns that it shows that there is a problem but never what the problem is.ManualRollerCoaster Tycoon manual
    How we know
    This number (between 0 and 1000) reflects your guests’ overall impression — of ride design, park layout, tidiness, value, efficiency, etc.
    p. 34, Park Rating · archived copy ↗
    although the rating will never tell you what a problem is, only that there is a problem.
    p. 34 · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  29. ^The manual says the player has borrowed from the bank to improve the park, and that this loan is the working capital; besides it, the only money is what guests spend in the park. The park value, another report, weighs land and equipment, the quality and profit of the rides, and the park rating.ManualRollerCoaster Tycoon manualrevised
    How we know
    You have borrowed a certain amount from the bank to make improvements to the park under your management. This loan constitutes your working capital, also called cash-on-hand (COH). That and whatever income you derive from guest spending in the park are your only sources of funding.
    p. 36, Finances · archived copy ↗
    calculated by expert assessors to reflect what the park is worth in terms of the value of the land and equipment owned, the quality and profitability of the rides and the park as a whole, and the park’s overall public reputation, as determined by the Park Rating.
    p. 36, Fiscal Reports · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  30. ^ abOpenRCT2 is an open-source re-implementation of RollerCoaster Tycoon 2 that needs the original game's files. Its readme says it adds improved guest and staff AI, and brings back mechanics of the first game that the sequel dropped, such as the in-game mountain tool and the "have fun" objective; with the first game's files it can play the original scenarios.DeveloperOpenRCT2 v0.5.6
    How we know
    **OpenRCT2** is an open-source re-implementation of RollerCoaster Tycoon 2 (RCT2).
    readme.md#L66 · upstream ↗
    improved guest and staff AI … It also re-introduces mechanics from RollerCoaster Tycoon that were not present in RollerCoaster Tycoon 2. Some of those include; mountain tool in-game, the *"have fun"* objective
    readme.md#L68 · upstream ↗
    If you have the original RollerCoaster Tycoon and its expansion packs, you can [point OpenRCT2 to these] … OpenRCT2 requires original files of RollerCoaster Tycoon 2 to play.
    readme.md#L74 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  31. ^In OpenRCT2 a guest weighing a rated ride it isn't already heading for, in dry weather, turns it down when its intensity is below the guest's preferred minimum or above the preferred maximum (capped at 10), each widened by up to 2.55 as the guest gets happier; or when its nausea rating is above the guest's tolerance of 3, 6, 8 or 10, raised the same way. A guest already heading for the ride checks only that its intensity is no more than 10. At the ride, a refusal adds a thought ("X looks too intense for me", "I want to go on something more thrilling than X", "Just looking at X makes me feel sick") and lowers the guest's happiness target by 8.CodeOpenRCT2 v0.5.6
    How we know
    188    static constexpr RideRating_t NauseaMaximumThresholds[] = {
    189        300,
    190        600,
    191        800,
    192        1000,
    
    src/openrct2/entity/Guest.cpp lines 188–193 at 82b3097 · upstream ↗
    2005                    if (ride.id == guestHeadingToRideId)
    ⋮
    2007                        if (ride.ratings.intensity > RideRating::make(10, 00) && !gameState.cheats.ignoreRideIntensity)
    ⋮
    2009                            GuestRideIsTooIntense(*this, ride, peepAtRide);
    2010                            return false;
    
    src/openrct2/entity/Guest.cpp lines 2005–2012 at 82b3097 · upstream ↗
    2032                        if (!isPrecipitating || !GuestShouldRideWhileRaining(*this, ride))
    ⋮
    2034                            if (!gameState.cheats.ignoreRideIntensity)
    ⋮
    2036                                // Intensity calculations. Even though the max intensity can go up to 15, it's capped
    2037                                // at 10.0 (before happiness calculations). A full happiness bar will increase the max
    2038                                // intensity and decrease the min intensity by about 2.5.
    2039                                RideRating_t maxIntensity = std::min(intensity.getMaximum() * 100, 1000) + happiness;
    2040                                RideRating_t minIntensity = (intensity.getMinimum() * 100) - happiness;
    2041                                if (ride.ratings.intensity < minIntensity)
    ⋮
    2043                                    if (peepAtRide)
    ⋮
    2045                                        insertNewThought(PeepThoughtType::moreThrilling, ride.id);
    2046                                        if (happinessTarget >= 64)
    ⋮
    2048                                            happinessTarget -= 8;
    ⋮
    
    src/openrct2/entity/Guest.cpp lines 2032–2077 at 82b3097 · upstream ↗
    2383    static void GuestRideIsTooIntense(Guest& guest, Ride& ride, bool peepAtRide)
    ⋮
    2385        if (peepAtRide)
    ⋮
    2387            guest.insertNewThought(PeepThoughtType::intense, ride.id);
    2388            if (guest.happinessTarget >= 64)
    ⋮
    2390                guest.happinessTarget -= 8;
    ⋮
    2392            ride.updatePopularity(0);
    ⋮
    2394        guest.choseNotToGoOnRide(ride, peepAtRide, true);
    
    src/openrct2/entity/Guest.cpp lines 2383–2395 at 82b3097 · upstream ↗
    46        moreThrilling = 4,    // "I want to go on something more thrilling than X"
    47        intense = 5,          // "X looks too intense for me"
    48        haventFinished = 6,   // "I haven't finished my X yet"
    49        sickening = 7,        // "Just looking at X makes me feel sick"
    
    src/openrct2/entity/Guest.h lines 46–49 at 82b3097 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  32. ^In OpenRCT2 a guest refuses a ride that has crashed unless its happiness is at least 225 of 255, thinking "I'm not going on X - it isn't safe". Free transport rides are exempt.CodeOpenRCT2 v0.5.6
    How we know
    1951            // Assuming the queue conditions are met, peeps will always go on free transport rides.
    1952            // Ride ratings, recent crashes and weather will all be ignored.
    1953            auto ridePrice = RideGetPrice(ride);
    1954            if (!ride.getRideTypeDescriptor().flags.has(RtdFlag::isTransportRide) || ride.value == kRideValueUndefined
    1955                || ridePrice != 0)
    
    src/openrct2/entity/Guest.cpp lines 1951–1955 at 82b3097 · upstream ↗
    1985                // If happy enough, peeps will ignore the fact that a ride has recently crashed.
    1986                if (ride.lastCrashType != RIDE_CRASH_TYPE_NONE && happiness < 225)
    ⋮
    1988                    if (peepAtRide)
    ⋮
    1990                        insertNewThought(PeepThoughtType::notSafe, ride.id);
    1991                        if (happinessTarget >= 64)
    ⋮
    1993                            happinessTarget -= 8;
    ⋮
    1995                        ride.updatePopularity(0);
    ⋮
    1997                    choseNotToGoOnRide(ride, peepAtRide, true);
    1998                    return false;
    
    src/openrct2/entity/Guest.cpp lines 1985–1999 at 82b3097 · upstream ↗
    72        notSafe = 30,         // "I'm not going on X - it isn't safe"
    
    src/openrct2/entity/Guest.h line 72 at 82b3097 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  33. ^In OpenRCT2 a guest's happiness moves 4 points at a time toward a target. With each update the target drifts a point toward the middle of the 0-255 scale, and it sinks while the guest is low on energy, hungry or thirsty, or badly needs the toilet. A guest whose nausea target is 128 or more may throw up while walking, more likely the sicker it is.CodeOpenRCT2 v0.5.6
    How we know
    678    void Guest::updateMotivesIdle()
    ⋮
    680        // Idle peep happiness tends towards 127 (50%).
    681        if (happinessTarget >= 128)
    682            happinessTarget--;
    683        else
    684            happinessTarget++;
    ⋮
    686        nauseaTarget = std::max(nauseaTarget - 2, 0);
    ⋮
    688        if (energy <= 50)
    ⋮
    690            happinessTarget = std::max(happinessTarget - 2, 0);
    ⋮
    693        if (hunger < 10)
    ⋮
    695            happinessTarget = std::max(happinessTarget - 1, 0);
    ⋮
    698        if (thirst < 10)
    ⋮
    
    src/openrct2/entity/Guest.cpp lines 678–722 at 82b3097 · upstream ↗
    790        uint8_t newHappiness = happiness;
    791        uint8_t newHappinessGrowth = happinessTarget;
    792        if (newHappiness >= newHappinessGrowth)
    ⋮
    794            newHappiness = std::max(newHappiness - 4, 0);
    795            if (newHappiness < newHappinessGrowth)
    796                newHappiness = newHappinessGrowth;
    ⋮
    798        else
    ⋮
    800            newHappiness = std::min(255, newHappiness + 4);
    801            if (newHappiness > newHappinessGrowth)
    802                newHappiness = newHappinessGrowth;
    ⋮
    805        if (newHappiness != happiness)
    ⋮
    807            happiness = newHappiness;
    ⋮
    
    src/openrct2/entity/Guest.cpp lines 790–809 at 82b3097 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  34. ^In OpenRCT2, while a guest off a ride consumes what it carries, a drink raises its thirst meter (fuller is higher) by 7 a step, and food raises its hunger meter by 7, lowers its thirst meter by 3 and fills its bladder by 2: any food makes a guest thirstier.CodeOpenRCT2 v0.5.6
    How we know
    723    /* rct2: 0x0068FA89*/
    724    void Guest::updateConsumptionMotives()
    ⋮
    726        if (timeToConsume == 0 && hasFoodOrDrink())
    ⋮
    728            timeToConsume += 3;
    ⋮
    731        if (timeToConsume != 0 && state != PeepState::onRide)
    ⋮
    733            timeToConsume = std::max(timeToConsume - 3, 0);
    ⋮
    735            if (hasDrink())
    ⋮
    737                thirst = std::min(thirst + 7, 255);
    ⋮
    739            else
    ⋮
    741                hunger = std::min(hunger + 7, 255);
    742                thirst = std::max(thirst - 3, 0);
    743                toilet = std::min(toilet + 2, 255);
    
    src/openrct2/entity/Guest.cpp lines 723–744 at 82b3097 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  35. ^In OpenRCT2 a guest's full periodic update runs once every 512 ticks, and on every second one (once every 1,024 ticks) a walking or sitting guest in the park picks one thought at random from those that apply, tired, hungry, thirsty, needing the toilet, or running out of cash, and heads for the nearest food stall, drinks stall, toilet or cash machine to match. A guest leaving the park thinks only "I want to go home". On the alternate updates a guest with nausea of 140 or more thinks "I feel sick", and at 200 or more thinks "I feel very sick" and heads for first aid.CodeOpenRCT2 v0.5.6revised
    How we know
    833    void Guest::tick128UpdateGuest(uint32_t index)
    ⋮
    835        const auto currentTicks = getGameState().currentTicks;
    836        const bool ticksMatchIndex = (index & 0x1FF) != (currentTicks & 0x1FF);
    837        if (ticksMatchIndex && !peepFlags.has(PeepFlag::positionFrozen))
    ⋮
    839            updateConsumptionMotives();
    840            return;
    
    src/openrct2/entity/Guest.cpp lines 833–841 at 82b3097 · upstream ↗
    983        if ((index & 0x3FF) == (currentTicks & 0x3FF))
    ⋮
    985            /* Effect of masking with 0x3FF here vs mask 0x1FF,
    986             * which is used in the encompassing conditional, is
    987             * to reduce how often the content in this conditional
    988             * is executed to once every second time the encompassing
    989             * conditional executes. */
    
    src/openrct2/entity/Guest.cpp lines 983–989 at 82b3097 · upstream ↗
    991            if (!outsideOfPark && (state == PeepState::walking || state == PeepState::sitting))
    ⋮
    993                uint8_t num_thoughts = 0;
    994                PeepThoughtType possible_thoughts[5];
    ⋮
    996                if (peepFlags.has(PeepFlag::leavingPark))
    ⋮
    998                    possible_thoughts[num_thoughts++] = PeepThoughtType::goHome;
    ⋮
    1000                else
    ⋮
    1002                    if (energy <= 70 && happiness < 128)
    ⋮
    1004                        possible_thoughts[num_thoughts++] = PeepThoughtType::tired;
    ⋮
    1007                    if (hunger <= 10 && !hasFoodOrDrink())
    ⋮
    1009                        possible_thoughts[num_thoughts++] = PeepThoughtType::hungry;
    ⋮
    1012                    if (thirst <= 25 && !hasFoodOrDrink())
    ⋮
    1014                        possible_thoughts[num_thoughts++] = PeepThoughtType::thirsty;
    ⋮
    
    src/openrct2/entity/Guest.cpp lines 991–1033 at 82b3097 · upstream ↗
    1036                if (num_thoughts != 0)
    ⋮
    1038                    PeepThoughtType chosen_thought = possible_thoughts[ScenarioRand() % num_thoughts];
    ⋮
    1040                    insertNewThought(chosen_thought);
    ⋮
    1042                    switch (chosen_thought)
    ⋮
    1044                        case PeepThoughtType::hungry:
    1045                            GuestHeadForNearestRideWithFlag(*this, false, RtdFlag::sellsFood);
    1046                            break;
    1047                        case PeepThoughtType::thirsty:
    1048                            GuestHeadForNearestRideWithFlag(*this, false, RtdFlag::sellsDrinks);
    1049                            break;
    1050                        case PeepThoughtType::toilet:
    1051                            GuestHeadForNearestRideWithSpecialType(*this, false, RtdSpecialType::toilet);
    ⋮
    
    src/openrct2/entity/Guest.cpp lines 1036–1058 at 82b3097 · upstream ↗
    1068            if (nausea >= 140)
    ⋮
    1070                PeepThoughtType thought_type = PeepThoughtType::sick;
    1071                if (nausea >= 200)
    ⋮
    1073                    thought_type = PeepThoughtType::verySick;
    1074                    GuestHeadForNearestRideWithSpecialType(*this, true, RtdSpecialType::firstAid);
    ⋮
    1076                insertNewThought(thought_type);
    
    src/openrct2/entity/Guest.cpp lines 1068–1077 at 82b3097 · upstream ↗
    44        sick = 2,             // "I feel sick"
    45        verySick = 3,         // "I feel very sick"
    
    src/openrct2/entity/Guest.h lines 44–45 at 82b3097 · upstream ↗
    51        goHome = 9,           // "I want to go home"
    
    src/openrct2/entity/Guest.h line 51 at 82b3097 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  36. ^In OpenRCT2 a guest with energy of at least 55, happiness of at least 45 and £5 or more in pocket always stays in the park (energy 70 and happiness 60 in a park without money). Any other guest has about a 1 in 20 chance at each check of deciding to go home.CodeOpenRCT2 v0.5.6
    How we know
    3027        /* Peeps that are happy enough, have enough energy and
    3028         * (if appropriate) have enough money will always stay
    3029         * in the park. */
    3030        if (!guest.peepFlags.has(PeepFlag::leavingPark))
    ⋮
    3032            if (getGameState().park.flags.has(ParkFlag::noMoney))
    ⋮
    3034                if (guest.energy >= 70 && guest.happiness >= 60)
    ⋮
    3036                    return;
    ⋮
    3039            else
    ⋮
    3041                if (guest.energy >= 55 && guest.happiness >= 45 && guest.cashInPocket >= 5.00_GBP)
    ⋮
    3043                    return;
    ⋮
    3048        // Approx 95% chance of staying in the park
    3049        if ((ScenarioRand() & 0xFFFF) > 3276)
    ⋮
    
    src/openrct2/entity/Guest.cpp lines 3027–3055 at 82b3097 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  37. ^In OpenRCT2 a walking guest checks whether it is lost each time it reaches the next point on its way (unless it has stepped into water), and the pathfinder also checks at a dead end, a path whose only way on is back. In a park with at least two rides every second check adds to its lost counter; at 254 the guest thinks "I'm lost!" and its happiness target falls by 30, and the counter drops back to 230, so the thought repeats on later checks.CodeOpenRCT2 v0.5.6revised
    How we know
    1923        // Check if in a dead end (i.e. only edge is where the peep came from)
    1924        if (!(edges & ~(1 << direction)))
    ⋮
    1926            // In a dead end.  Check if peep is lost, etc.
    1927            peep.checkIfLost();
    1928            peep.checkCantFindRide();
    1929            peep.checkCantFindExit();
    
    src/openrct2/peep/GuestPathfinding.cpp lines 1923–1929 at 82b3097 · upstream ↗
    5475        const auto [pathingResult, _] = performNextAction();
    5476        if (!(pathingResult & PATHING_DESTINATION_REACHED))
    5477            return;
    ⋮
    5479        if (getNextIsSurface())
    ⋮
    5481            auto surfaceElement = MapGetSurfaceElementAt(nextLoc);
    ⋮
    5483            if (surfaceElement != nullptr)
    ⋮
    5485                int32_t water_height = surfaceElement->getWaterHeight();
    5486                if (water_height > 0)
    ⋮
    5488                    moveTo({ x, y, water_height });
    5489                    setState(PeepState::falling);
    5490                    return;
    ⋮
    5495        checkIfLost();
    ⋮
    
    src/openrct2/entity/Guest.cpp lines 5475–5497 at 82b3097 · upstream ↗
    1331    void Guest::checkIfLost()
    ⋮
    1333        if (!peepFlags.has(PeepFlag::lost))
    ⋮
    1335            if (RideGetCount() < 2)
    1336                return;
    1337            peepFlags.flip(PeepFlag::unknown21);
    ⋮
    1339            if (!peepFlags.has(PeepFlag::unknown21))
    1340                return;
    ⋮
    1342            timeLost++;
    1343            if (timeLost != 254)
    1344                return;
    1345            timeLost = 230;
    ⋮
    1347        insertNewThought(PeepThoughtType::lost);
    ⋮
    
    src/openrct2/entity/Guest.cpp lines 1331–1349 at 82b3097 · upstream ↗
    58        lost = 16,            // "I'm lost!"
    
    src/openrct2/entity/Guest.h line 58 at 82b3097 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  38. ^In OpenRCT2 the park rating starts from 1150 (1050 in a park set to a difficult rating). The guest count adds from -150 at none to +3 at 2,000 or more. Happy guests, those above 128 on a 0-255 happiness scale, add from -500 at none to nothing once five in six guests are happy. Guests leaving the park who can't find the exit cost 7 points each beyond the first 25.CodeOpenRCT2 v0.5.6
    How we know
    383        int32_t result = 1150;
    384        if (park.flags.has(ParkFlag::difficultParkRating))
    ⋮
    386            result = 1050;
    ⋮
    389        // Guests
    ⋮
    391            // -150 to +3 based on a range of guests from 0 to 2000
    392            result -= 150 - (std::min<int32_t>(2000, park.numGuestsInPark) / 13);
    ⋮
    394            // Find the number of happy peeps and the number of peeps who can't find the park exit
    395            uint32_t happyGuestCount = 0;
    396            uint32_t lostGuestCount = 0;
    397            for (auto peep : EntityList<Guest>())
    ⋮
    399                if (!peep->outsideOfPark)
    ⋮
    401                    if (peep->happiness > 128)
    ⋮
    
    src/openrct2/world/Park.cpp lines 383–424 at 82b3097 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  39. ^OpenRCT2's park rating then weighs the rides: the average uptime gives -200 to 0; rated rides whose average excitement is near 3.7 and intensity near 5.2 give up to 0 from -100; and the summed excitement and intensity of all rated rides, each capped, give -200 to 0.CodeOpenRCT2 v0.5.6
    How we know
    426        // Rides
    ⋮
    428            int32_t rideCount = 0;
    429            int32_t excitingRideCount = 0;
    430            int32_t totalRideUptime = 0;
    431            int32_t totalRideIntensity = 0;
    432            int32_t totalRideExcitement = 0;
    433            for (auto& ride : RideManager(gameState))
    ⋮
    435                totalRideUptime += 100 - ride.downtime;
    436                if (RideHasRatings(ride))
    ⋮
    438                    totalRideExcitement += ride.ratings.excitement / 8;
    439                    totalRideIntensity += ride.ratings.intensity / 8;
    440                    excitingRideCount++;
    ⋮
    
    src/openrct2/world/Park.cpp lines 426–475 at 82b3097 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  40. ^OpenRCT2's park rating loses 4 points for each piece of litter at least 7,680 ticks old, up to 150 pieces, and a penalty for casualties; the result is clamped to 0-999 and recalculated every 512 ticks. A cheat can force the rating to a set value.CodeOpenRCT2 v0.5.6
    How we know
    477        // Litter
    ⋮
    479            // Counts the amount of litter whose age is min. 7680 ticks (5~ min) old.
    480            const auto litterList = EntityList<Litter>();
    481            const auto litterCount = std::count_if(
    482                litterList.begin(), litterList.end(), [](auto* litter) { return litter->getAge() >= 7680; });
    ⋮
    484            result -= 600 - (4 * (150 - std::min<int32_t>(150, litterCount)));
    ⋮
    487        result -= park.ratingCasualtyPenalty;
    488        result = std::clamp(result, 0, 999);
    489        return result;
    
    src/openrct2/world/Park.cpp lines 477–489 at 82b3097 · upstream ↗
    333        // Every ~13 seconds
    334        if (currentTicks % 512 == 0)
    ⋮
    336            park.rating = CalculateParkRating(park, gameState);
    
    src/openrct2/world/Park.cpp lines 333–336 at 82b3097 · upstream ↗
    378        if (gameState.cheats.forcedParkRating != kForcedParkRatingDisabled)
    ⋮
    380            return gameState.cheats.forcedParkRating;
    
    src/openrct2/world/Park.cpp lines 378–381 at 82b3097 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  41. ^In a 2010 interview Persson described the builder game he was working on when he came across Infiniminer as "a lightweight Dwarf Fortress", "kinda like if DF and Rollercoaster Tycoon had a baby".InterviewGamasutra, Notch interview, 23 March 2010revised
    How we know
    It was supposed to be a lightweight Dwarf Fortress. Kinda like if DF and Rollercoaster Tycoon had a baby.
    How did you come across Infiniminer? · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  42. ^Persson wrote in October 2011 that he started on Minecraft in the summer of 2009 with a top-down isometric mining game pitched as "Dwarf Fortress meets Rollercoaster Tycoon meets Dungeon Keeper", then played Infiniminer, saw that a first-person view with blocky graphics worked well, and began prototyping that.Dev blogNotch, "Happy birthday, us!", 16 October 2011
    How we know
    I started working on Minecraft in the summer of 2009, starting with a top-down isometric mining game. The elevator pitch for the game was “Dwarf Fortress meets Rollercoaster Tycoon meets Dungeon Keeper”. … but then I played a game called Infiniminer and realized the first person perspective with blocky graphics worked really well and started prototyping it.
    second paragraph · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  43. ^Sawyer calls RollerCoaster Tycoon 2 his favorite, but thinks the original and its expansion packs may have been better games: the sequel's free-form play took away some of the challenge, and the original's scenarios were better. RollerCoaster Tycoon Classic, which recreates the sequel, brought back the original's scenario structure, for 95 scenarios in all.InterviewArcade Attack, Chris Sawyer interview (2018)revised
    How we know
    RollerCoaster Tycoon 2 is my personal favourite
    answer on his favourite RollerCoaster Tycoon game · archived copy ↗
    The park scenarios I designed for the original game and its expansion packs were better too … Looking back though I think the original game and its expansion packs might have actually been better “games” … what this added in terms of features and flexibility I think it also lost in terms of taking away the challenge and sense of achievement of the original game. … although it recreates the entire RollerCoaster Tycoon 2 game on the more modern platforms I also included the park scenario challenge structure from the original game … It was amazing seeing that in total this meant 95 different park scenarios to work through
    same answer · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  44. ^Sawyer said the RollerCoaster Tycoon engine was then adapted for a new transport game, Chris Sawyer's Locomotion (2004), so the code went full circle from the abandoned Transport Tycoon 2.InterviewRetro Gamer 138, Chris Sawyer interview · Chris Sawyer, site biography
    How we know
    RollerCoaster Tycoon was developed from the ashes of the abandoned Transport Tycoon 2 project, and now the well-honed RollerCoaster Tycoon game engine was then being adapted to create a new transport game.
    p. 96, answer on Locomotion · archived copy ↗
    The long-awaited sequel to Transport Tycoon, Chris Sawyer's Locomotion, was finally completed and released through Atari in October 2004.
    biography · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  45. ^PC Gamer's Ellen McGrody likened Parkitect in 2018 to the early RollerCoaster Tycoon games, as isometric and management-focused, and wrote that it had grown from a recreation of the isometric rollercoaster sim into an evolution of it. Its developers, quoted there, speak of "older games" without naming one.WebPC Gamer, Parkitect (2018)revised
    How we know
    Like the early RollerCoaster Tycoon games, it's isometric and focused on management.
    deck · archived copy ↗
    the game has grown from a simple recreation of the isometric rollercoaster sim to an evolution of it.
    paragraph 2 · archived copy ↗
    "People were unsure whether we were only trying to recreate older games or if we were going to add anything meaningful and new," they said
    paragraph 3 · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

Sources

Code

Primary

Secondary