| 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. | readme.md L68 | Publisher |
| 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. | readme.md L66readme.md L68readme.md L68readme.md L74readme.md L74 | Developer |
| 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. | src/openrct2/world/Park.cpp L383–424 | Code |
| 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. | src/openrct2/world/Park.cpp L426–475 | Code |
| 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. | src/openrct2/world/Park.cpp L477–489src/openrct2/world/Park.cpp L333–336src/openrct2/world/Park.cpp L378–381 | Code |
| 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. | src/openrct2/entity/Guest.cpp L188–193src/openrct2/entity/Guest.cpp L2005–2012src/openrct2/entity/Guest.cpp L2032–2077src/openrct2/entity/Guest.cpp L2383–2395src/openrct2/entity/Guest.h L46–49 | Code |
| 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. | src/openrct2/entity/Guest.cpp L1951–1955src/openrct2/entity/Guest.cpp L1985–1999src/openrct2/entity/Guest.h L72 | Code |
| 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. | src/openrct2/entity/Guest.cpp L678–722src/openrct2/entity/Guest.cpp L790–809 | Code |
| 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. | src/openrct2/entity/Guest.cpp L723–744 | Code |
| 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. | src/openrct2/entity/Guest.cpp L833–841src/openrct2/entity/Guest.cpp L983–989src/openrct2/entity/Guest.cpp L991–1033src/openrct2/entity/Guest.cpp L1036–1058src/openrct2/entity/Guest.cpp L1068–1077src/openrct2/entity/Guest.h L44–45src/openrct2/entity/Guest.h L51 | Code |
| 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. | src/openrct2/entity/Guest.cpp L3027–3055 | Code |
| 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. | src/openrct2/peep/GuestPathfinding.cpp L1923–1929src/openrct2/entity/Guest.cpp L5475–5497src/openrct2/entity/Guest.cpp L1331–1349src/openrct2/entity/Guest.h L58 | Code |