Jump to content
OpenRCT2
Sign in to follow this  
Deurklink

Guide: When and how do guests spawn?

Recommended Posts

Guest spawning is something that is not very well understood in the OpenRCT2 community. The functions that dictate when a new guest will spawn are quite simple though, so in this guide I will try to explain them.

Guest spawning probability is handled in the function park_calculate_guest_generation_probability(), which can be found in park.cpp:
image.png.724935df2b626d498e9e14d1d6b7787a.png

Some scenarios have an option ticked that makes guest generation more difficult. If this option is enabled, guest generation will be calculated a little bit differently. In the first section i will handle the normal situation, in the second section of this guide i will handle the difficult guest generation situation. In the third section the guest spawning will be handled and in the section after that i will cover advertisements. The final section has some tips on how to keep the guest spawn rate high.

1. Scenarions with normal guest generation
2. Scenarions with more difficult guest generation
3. Guest spawning
4. Advertisements
5. Conclusion

1. Scenarios with normal guest generation

Suggested guest maximum

The first thing this function does is calculate a suggested maximum of guests. It cycles through the list of rides in the park, and for each ride it adds a value to the suggested guest maximum. 

image.png.246280085cfe0b7d1c6a216c4b42e998.png

Every ride type has its own specific ride bonus value, which can be found in RideData.cpp (Search for const uint8 rideBonusValue). For a giga coaster, this value is 120. For a corkscrew coaster, this value is 100. So if your park has 2 giga coasters and 1 corkscrew coaster, suggestedMaxGuests would have a value of 340. If you would build 240 corkscrew coasters, suggestedMaxGuests would have a value of 24000.

Total ride value for money

The second thing this function does is calculate the total ride value the guests get for their money. In an earlier guide, i explained how the ride value is calculated. 

image.png.42000b2f8e99e4473959be21cc84b9d8.png

This function subtracts the entry price of a ride from the value of the ride. If rides are not overpriced, totalRideValueForMoney will increase. This variable will be used in a later function.

Guest generation probability

Now the function will start to calculate the guest spawning probability, which is a number from 0 to 65536.

First 50 is added to the probability value.

Then, the function takes the park rating and subtracts 200 from it. The result of this subtraction will be clamped to a minimum of 0, and a maximum of 650. Then this number is added to the probability value.

image.png.79a4da3479f7f9f00b08265474eae2f2.png

If your park rating was less than 200 your probability value would now be 50 + 0 which gives a result of 50. If your park rating was higher than 850 your probability would now be 50 + 650 which gives a result of 700.

The function then adds the number of guests heading to the park to the number of guests already in the park, and compares it to the suggested guest maximum it calculated earlier: 

image.png.5c64501ed43251dd56cd35fcbc9d3096.png

If the number of guests is higher than the suggested maximum, the probability is divided by 4, effectively reducing the guest generation by 75%.

If the number of guests in your park is higher than 7000, the probability also gets decreases by 75%.

image.png.fc261384ca142d1a26a0428089eb4eb0.png

Then the function checks the entrance price of your park and compares it to the total ride value the guests get for their money.

image.png.9a1d2a8a4c4bee7398b38c905722031a.png

If the entrance fee of your park is too high, the guest spawning probability gets divided by 4. If it is way too high, it gets divided by 4 again, which only leaves around 6% of the original value.

Finally, the function checks for any awards that are active. Positive awards increase the probability by 1/4th, negative awards decrease the probability by 1/4th. This is multiplicative, so if you have three positive awards active, the probability gets multiplied by 1.25 x 1.25 x 1.25 which is almost twice as much as it started with.

image.png.02802823e946230e799b36c14435c950.png

I will discuss in chapter 3 how this probability is used to generate new guests.

2. Scenarios with difficult guest generation

In scenarios where the option more difficult guest generation is enabled, there are some differences to the above formulas.

Suggested guest maximum

To calculate the suggested guest maximum, the same ride bonus value formula as above is used, but now it adds a maximum of 1000 points. So if you build 15 corkscrew coasters which would each add 100 points to the guest maximum in a normal park, the guest maximum will only increase by 1000 instead of 1500. 
image.png.363f20687596f2b2077beb334dc49786.png

Then after this formula is applied, the function checks all tracked rides. Every tracked ride that is over 600 meters long, and has an excitement of over 6.00 will have its ride bonus value applied again, twice.

image.png.a11b7b640f93bd8f8c0b3e5c4d796bb5.png

So if you build 15 corkscrew coasters which all meet the length requirement of 600 meters and all have an excitement of higher than 6.00, then you the suggested guest maximum would be 1000 (from the first function) + 15 * 100 * 2 (from the second function), which gives us a suggested guest maximum of 4000. Spamming many small rollercoasters in these scenarios will not help much as they dont reach the requirements and will only add to the maximum of 1000 from the first function. The key to generating many guests in these parks is to make long, exciting roller coasters.

Guest generation probability

The second difference in parks with more difficult guest generation is that when the amount of guests is higher than the suggested guest maximum, the probability now gets divided by 4 again, effectively dividing it by 16. This is why it may feel like you hit a cap at some point if you reach the suggested guest maximum.

image.png.947f733852804693a0f07b227e78fa00.png

3. Guest generation

Now that the guest generation probability is calculated, the value can be used to generate guests.

image.png.ec4538cd4ca0fb0ce2aa2f5e3cd58933.png

Basically, what this function does is generate a random number from 0 to 65535 every tick. If the random number is lower than the guest spawn probability, a guest will be spawned. The guest spawn probability will usually be a number from 0-1500 depending on the amount of positive awards, if the number of guests is higher than the suggested max, etc. When the value is around 1500, approximately 1 guest will be spawned every second.

There is another check in this function that ensures that no guests will spawn in a scenario with more difficult guest generation if the number of guests in the park is 150 more than the suggested guest maximum.

4. Advertisements

Advertisements are a special way to increase the number of guests in your park, because they use a separate probability value, and they bypass all the checks mentioned in the functions above.

image.png.1be7475d41759d51fac0e05a4daa6f4e.png

The different marketing strategies add the following amount of points to the marketing guest spawn probability:

Free entry to park: 400
Free entry to a ride: 300
Half price entry to park: 200
Food or drink for free: 200
Advertising campaign for park: 250
Advertising campaign for ride: 200

Note that the advertisement campaigns that lower the price of the park or a ride have their probability value divided by 8 if the price is very low.

image.png.d84bfd1d4733164b4e204e78a09d153f.png

Having all advertisements campaigns active will give a probability value of 1450, which will spawn a guest almost every second.

5. Conclusion

In order to spawn many guests, you'll want to do the following things:

In a normal scenario:

- Make as many small and cheap rollercoasters as possible. These will all raise the suggested guest maximum by a lot, no matter how long or exciting they are.

In a scenario with more difficult guest generation:

- Make many rollercoasters with a length of over 600 meters and an excitement of over 6.00. These will raise the guest maximum by a lot.

In all scenarios:

- Keep your park rating above 850! If the rating is any lower the spawn rate will drop.
- Try getting many positive awards. An easy one to get is most dazzling color scheme (paint all your rides bright purple, bright green, bright pink or light orange).
- Advertisements! These will win you scenarios, because they bypass the checks for suggested guest maximum, etc.

One last limit you may run into is the sprite limit. RCT2 currently cannot handle more than ~9600 sprites, which includes peeps and vehicles etc. Once this limit is reached, no more guests will spawn.

This guide was written using the source code of OpenRCT on 12th of March 2018.

Edited by Deurklink
  • Like 3
  • Informative 2

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×