Here are some more concrete details from an analysis of the reverse-engineered Roller Coaster Tycoon 2 source code, provided and maintained by the OpenRCT2 project.
Roller Coaster Tycoon 2 calculates a park's rating perhaps in reverse from how you'd expect; it starts you out with full points, and then deducts points for things that are wrong with the park.
Or actually, it starts you with more than full points, so you can have a couple of problems before they begin to noticeably affect your park rating.
You start with a value of 1150 (or 1050, in 'difficult' scenarios). And then:
- Number of guests in the park (0-2000) adds -150 to +3.
- Percentage of guests in the park that are at least 50% happy (0%-83%) adds -500 to +0
- Each guest who is currently lost (excluding the first 25) adds -7.
- If there are no rides or facilities in the park, add -200.
- If there are rides or facilities in the park, then average recent downtime across everything in the park (0%-100%) adds +0 to -200.
- If there are no rides, add -100.
- If there are rides, take the difference between the average ride excitement value and 3.6. As this difference goes (0-4.0), add +0 to -50.
- If there are rides, take the difference between the average ride intensity value and 5.2. As this difference goes (0-4.0), add +0 to -50.
- Total ride intensity value across all rides (0-40.0) adds -100 to +0.
- Total ride excitement value across all rides (0-40.0) adds -100 to +0.
- Pieces of litter in the park (0-150) adds +0 to -600.
- Number of fatalities ever in the park (0-3) adds -0 to -600.
- Finally, clamp the resulting value into the range (0-999).
That's it! That's the complete calculation for park rating. It's calculated from scratch every time it updates, which is once every 512 game ticks (approximately 5 seconds).
Where I list a range of input values and what they add, the mapping between the range of values and the bonus/penalty points they award is linear. If you have 1000 guests in the park (halfway between 0 and 2000), you get -73 points added to your park rating (halfway between -150 and +3).
Where I've listed a range of input values, values outside the range are clamped into it. So for example, there is no further benefit to park rating for having more than 2000 guests in the park; if you have 3000 guests, they'll be treated as if there were only 2000 for the purposes of this calculation.
The penalty to Park Rating for fatalities in the park appears to be permanent; I can't find anything in the code which ever reduces it. (Peeps will eventually stop worrying about a ride which they think of as unsafe if it runs for a long time without accidents afterwards, but the park rating will never recover)
A couple of surprises, here:
- Scenery doesn't matter at all (except inasmuch as it affects the excitement level of rides).
- Variety of stalls/rides doesn't matter at all (having multiple rides of the same type does reduce their ride value, and ride value affects the park value and a bunch of other things, but it doesn't affect the park rating.)
- Prices for stalls/rides don't matter at all.
- Awards don't matter at all.