Difference between revisions of "AI Storytellers"

From RimWorld Wiki
Jump to navigation Jump to search
(42 intermediate revisions by 19 users not shown)
Line 1: Line 1:
 
<!--Top Nav Box-->
 
<!--Top Nav Box-->
{| align=center
 
! {{MainSection_Nav}}
 
|}
 
 
{| align=center
 
{| align=center
 
| {{AI_Storytellers_Nav}}
 
| {{AI_Storytellers_Nav}}
 
|}
 
|}
<hr>
+
----
 
<!-- End Nav -->
 
<!-- End Nav -->
  
The AI storyteller creates events like pirate raids, resource drops, or animal attacks. Their choices will affect the story of your colony.
+
{{TOCright}}
  
The gameplay of '''RimWorld''' is driven by AI (Artificial Intelligence) Storytellers. The AI Storyteller that you choose will make decisions about what events it wants you to encounter and when, based on the situation you are currently in and on the biases of that particular AI.
+
The '''AI Storyteller''' creates events like pirate raids, resource drops, or animal attacks. Storytellers will never entirely disallow events because of population. Their choices will affect the story of your colony.
  
Choosing an AI is the first decision you make in '''RimWorld''', and will have a great influence on the narrative that is formed as you play. Difficulty is now selected separately from Storyteller but both are changeable in-game.
+
Gameplay is driven by AI (Artificial Intelligence) Storytellers. The AI Storyteller that you choose will make decisions about what events it wants you to encounter and when, based on the situation you are currently in and on the biases of that particular AI.
 +
 
 +
Choosing an AI will have a great influence on the narrative that is formed as you play. Difficulty is selected separately from the Storyteller but both are changeable mid-game.
 
{{clear}}
 
{{clear}}
 
==Current AI Storytellers==  
 
==Current AI Storytellers==  
The storytellers that currently exist in the game are as follows:
 
  
===Cassandra Classic===
+
* [[File:Cassandra.png|50px]][[Cassandra Classic]]
{{:Cassandra Classic}}
+
 
 +
* [[File:Phoebe.png|50px]][[Phoebe Chillax]]
 +
 
 +
* [[File:Randy.png|50px]][[Randy Random]]
  
===Phoebe Basebuilder===
+
== Options ==
{{:Phoebe Basebuilder}}
 
  
===Randy Random===  
+
=== Difficulty ===
{{:Randy Random}}
 
  
==Challenge Scale at Alpha 10==
+
The default values are based on the Rough difficulty level, where most values are at 1.0, or 100%.
When the storyteller sends threats after you, they will be a set percentage as large as in Challenge mode (the default difficulty).
 
  
{| {{STDT| sortable c_08 text-center}}
+
[[Events#Flashstorm|Flashstorm]], [[Events#Toxic Fallout|toxic fallout]] and [[Events#Volcanic Winter|volcanic winter]] are disabled in Peaceful difficulty level.
! Name !! Difficulty
 
|-
 
! Free Play
 
| TBS%
 
|-
 
! Basebuilder
 
| TBS%
 
|-
 
! Rough
 
| TBS%
 
|-
 
! Challenge
 
| TBS%
 
|-
 
! Extreme
 
| TBS%
 
|-
 
|}
 
  
'''Earlier Challenge Scale Naming'''
 
 
{| {{STDT| sortable c_08 text-center}}
 
{| {{STDT| sortable c_08 text-center}}
! Name !! Difficulty
+
! Name !! Threat scale !! Colonist mood bonus !! Base sell price multiplier !! Crop yield multiplier !! Disease interval multiplier !! Enemy reproduction rate factor
 
|-
 
|-
! Builder Mode
+
! Peaceful
| 5%
+
| 0.10
 +
| +10
 +
| 1.00
 +
| 1.20
 +
| 3
 +
| 0.1
 
|-
 
|-
! Casual
+
! Community builder
| 25%
+
| 0.30
 +
| +10
 +
| 1.00
 +
| 1.20
 +
| 2.5
 +
| 0.15
 
|-
 
|-
! Rough
+
! Adventure story
| 60%
+
| 0.60
 +
| +5
 +
| 1.00
 +
| 1.00
 +
| 1.5
 +
| 0.5
 
|-
 
|-
! Challenge
+
! Strive to survive
| 100%
+
| 1.00
 +
| 0
 +
| 1.00
 +
| 1.00
 +
| 1.0
 +
| 1.0
 
|-
 
|-
! Serious Challenge
+
! Blood and dust
| 130%
+
| 1.55
 +
| -5
 +
| 0.90
 +
| 0.95
 +
| 0.95
 +
| 1.0
 
|-
 
|-
! Extreme Challenge
+
! Losing is fun
| 160%
+
| 2.20
 +
| -10
 +
| 0.80
 +
| 0.80
 +
| 0.9
 +
| 1.0
 
|-
 
|-
 
|}
 
|}
 +
 +
 +
=== Commitment Mode (Permadeath)===
 +
Commitment mode is an option when selecting difficulty. The player must choose between Commitment and Reload Anytime mode.
 +
 +
In commitment mode, you only get one save file and can only save when quitting the game. You cannot reload the game to fix mistakes, and only when the colony dies, that's it.
 +
 +
This is the way RimWorld was meant to be played with every dramatic turn - whether tragic or hopeful - played out to full impact.
 +
 +
== Technical info ==
 +
 +
<div class="mw-collapsible mw-collapsed" style="width:800px;overflow:auto">
 +
 +
<div class="mw-collapsible-content">
 +
 +
===New Colonist Events===
 +
 +
The formula that calculates the odds of random events which add new colonists has changed in 1.0. It factors in how long a player has been at the location for which the event is generated, and the current population of that colony, including pawns who are traveling on the world map. These events include [[Events#Refugee Chased at .28Settlement.29|Refugee chased]], [[Events#Transport pod crash|Transport pod crash]], [[Events#Wanderer joins|Wanderer joins]] and [[Events#Wild .28wo.29man wanders in|Wild (human) wanders in]].
 +
 +
The following code examples and analysis were provided by user Bar0th on Steam, who gave permission for their inclusion here. <!-- This is the url of the Steam forum thread: steamcommunity.com/app/294100/discussions/0/1651043320656662118/ --> To summarize these findings: There is a new variable, "PopulationIntent," which replaces the old variables "desiredPopulationMin," "desiredPopulationMax" and "desiredPopulationCritical." It controls the odds of colonist-adding incidents happening on a particular map. The odds based on time at location decrease until the 10th day, and the odds based on population decrease until the 20th colonist. (For purposes of this formula, prisoners count as half a colonist.) Once both variables have decreased to their long-term minimum, the odds remain stable. Randy's minimum chance is .08%, while for Cassandra and Phoebe the minimum chance is .02%, so Randy is still the best option for players who wish to reach a large colony size.
 +
 +
<blockquote>
 +
----
 +
'''PopulationIntent (from StorytellerDef):<br>
 +
  populationIntentFactorFromPopCurve x populationIntentFactorFromPopAdaptDaysCurve'''<br>
 +
 +
''minIncChancePopulationIntentFactor<br>
 +
  Default = 0.05 (from C#)<br>
 +
  Randy  = 0.20 (from StorytellerDef)''<br>
 +
 +
''IncidentChanceFactor_PopulationIntent (from C#):<br>
 +
  None          = 1<br>
 +
  IncreaseHard  = Max(0.4 + PopulationIntent, minIncChancePopulationIntentFactor)<br>
 +
  IncreaseMedium = Max(PopulationIntent, minIncChancePopulationIntentFactor)<br>
 +
  IncreaseEasy  = Max(-0.4 + PopulationIntent, minIncChancePopulationIntentFactor)''<br>
 +
 +
''IncidentChanceFinal (from C#):<br>
 +
  baseChance (from IncidentDef) x IncidentChanceFactor_PopulationIntent''<br>
 +
 +
----
 +
 +
'''Example Event: Wanderer Join (baseChance = 0.4, populationEffect = IncreaseEasy)'''
 +
 +
''Day >= 10, 5 Population (PopulationIntent = 1.0)''<br>
 +
  ''Randy: 0.24% (0.4 x Max(-0.4 + 1.0, 0.2) = 0.4 x 0.6)''<br>
 +
  ''Other: 0.24% (0.4 x Max(-0.4 + 1.0, 0.05) = 0.4 x 0.6)''<br>
 +
  - They are the same, because of the high PopulationIntent.
 +
 +
''Day >= 10, 20+ Population (PopulationIntent = -1.0):''<br>
 +
  ''Randy: 0.08% (0.4 x Max(-0.4 + -1.0, 0.2) = 0.4 x 0.2)''<br>
 +
  ''Other: 0.02% (0.4 x Max(-0.4 + -1.0, 0.05) = 0.4 x 0.05)''<br>
 +
  - Here, the low PopulationIntent allows Randy's higher minIncChancePopulationIntentFactor to take effect.
 +
 +
So, there doesn't appear to be a hard cap on any of the storytellers anymore. However, some events can become much more rare at high populations (0.02% chance of a wanderer join, 0.08% if using Randy @ 20+ population). Also, for purposes of population calculation, it searches the entire map for pawns of that colony (ie: includes caravans, etc), and it also includes prisoners of that colony (each prisoner counts as half a colonist).
 +
 +
The multiple colony trick works, because it doesn't check all pawns in the map for all colonies, only the one it is currently determining the event for.
 +
 +
Also, you can check the table for the PopulationIntent from the Debug Logging Menu while in Dev Mode. Search for population, and you can bring up the table. You'll notice that after 10 days (at the top), and populations > 20 (at the left) the numbers remain the same. That's because of the curves in Storytellers.xml:
 +
 +
    ''<populationIntentFactorFromPopCurve>''<br>
 +
      ''<points>''<br>
 +
 +
        <li>0,  8.0</li><br>
 +
        <li>1,  2.0</li><br>
 +
        <li>5,  1.0</li><br>
 +
        <li>9,  0.4</li><br>
 +
        <li>12, 0.0</li><br>
 +
        <li>20,-1.0</li><br>
 +
      ''</points>''<br>
 +
    ''</populationIntentFactorFromPopCurve>''
 +
<br>
 +
<br>
 +
    ''<populationIntentFactorFromPopAdaptDaysCurve>''<br>
 +
      ''<points>''<br>
 +
 +
        <li>( 0, 0)</li><br>
 +
        <li>(10, 1.00)</li><br>
 +
 +
      ''</points>''<br>
 +
    ''</populationIntentFactorFromPopAdaptDaysCurve>''
 +
<br>
 +
----
 +
</blockquote>
 +
 +
Further investigation and updates are needed.
 +
 +
</div>
 +
</div>
 +
 +
== Version history ==
 +
 +
The names of the difficulty levels were changed in 1.0 to:
 +
*Peaceful
 +
*Builder
 +
*Medium
 +
*Rough
 +
*Savage
 +
*Merciless
 +
 +
In 1.1.2647 they were changed again to the following:
 +
*Peaceful
 +
*Community builder
 +
*Adventure story
 +
*Strive to survive
 +
*The price of survival is blood
 +
*Losing is fun
 +
 +
In 1.1.2654 "The price of survival is blood" was changed..
  
 
{{nav|ai}}
 
{{nav|ai}}
 
[[Category:AI]]
 
[[Category:AI]]

Revision as of 00:40, 4 August 2020

Basics Menus Game Creation Gameplay Pawns Plants Resources Gear Mods
Game Creation Scenario system AI Storytellers World Generation Biomes
AI Storytellers Cassandra Classic Phoebe Chillax Randy Random

The AI Storyteller creates events like pirate raids, resource drops, or animal attacks. Storytellers will never entirely disallow events because of population. Their choices will affect the story of your colony.

Gameplay is driven by AI (Artificial Intelligence) Storytellers. The AI Storyteller that you choose will make decisions about what events it wants you to encounter and when, based on the situation you are currently in and on the biases of that particular AI.

Choosing an AI will have a great influence on the narrative that is formed as you play. Difficulty is selected separately from the Storyteller but both are changeable mid-game.

Current AI Storytellers

Options

Difficulty

The default values are based on the Rough difficulty level, where most values are at 1.0, or 100%.

Flashstorm, toxic fallout and volcanic winter are disabled in Peaceful difficulty level.

Name Threat scale Colonist mood bonus Base sell price multiplier Crop yield multiplier Disease interval multiplier Enemy reproduction rate factor
Peaceful 0.10 +10 1.00 1.20 3 0.1
Community builder 0.30 +10 1.00 1.20 2.5 0.15
Adventure story 0.60 +5 1.00 1.00 1.5 0.5
Strive to survive 1.00 0 1.00 1.00 1.0 1.0
Blood and dust 1.55 -5 0.90 0.95 0.95 1.0
Losing is fun 2.20 -10 0.80 0.80 0.9 1.0


Commitment Mode (Permadeath)

Commitment mode is an option when selecting difficulty. The player must choose between Commitment and Reload Anytime mode.

In commitment mode, you only get one save file and can only save when quitting the game. You cannot reload the game to fix mistakes, and only when the colony dies, that's it.

This is the way RimWorld was meant to be played with every dramatic turn - whether tragic or hopeful - played out to full impact.

Technical info

New Colonist Events

The formula that calculates the odds of random events which add new colonists has changed in 1.0. It factors in how long a player has been at the location for which the event is generated, and the current population of that colony, including pawns who are traveling on the world map. These events include Refugee chased, Transport pod crash, Wanderer joins and Wild (human) wanders in.

The following code examples and analysis were provided by user Bar0th on Steam, who gave permission for their inclusion here. To summarize these findings: There is a new variable, "PopulationIntent," which replaces the old variables "desiredPopulationMin," "desiredPopulationMax" and "desiredPopulationCritical." It controls the odds of colonist-adding incidents happening on a particular map. The odds based on time at location decrease until the 10th day, and the odds based on population decrease until the 20th colonist. (For purposes of this formula, prisoners count as half a colonist.) Once both variables have decreased to their long-term minimum, the odds remain stable. Randy's minimum chance is .08%, while for Cassandra and Phoebe the minimum chance is .02%, so Randy is still the best option for players who wish to reach a large colony size.


PopulationIntent (from StorytellerDef):
populationIntentFactorFromPopCurve x populationIntentFactorFromPopAdaptDaysCurve

minIncChancePopulationIntentFactor
Default = 0.05 (from C#)
Randy = 0.20 (from StorytellerDef)

IncidentChanceFactor_PopulationIntent (from C#):
None = 1
IncreaseHard = Max(0.4 + PopulationIntent, minIncChancePopulationIntentFactor)
IncreaseMedium = Max(PopulationIntent, minIncChancePopulationIntentFactor)
IncreaseEasy = Max(-0.4 + PopulationIntent, minIncChancePopulationIntentFactor)

IncidentChanceFinal (from C#):
baseChance (from IncidentDef) x IncidentChanceFactor_PopulationIntent


Example Event: Wanderer Join (baseChance = 0.4, populationEffect = IncreaseEasy)

Day >= 10, 5 Population (PopulationIntent = 1.0)
Randy: 0.24% (0.4 x Max(-0.4 + 1.0, 0.2) = 0.4 x 0.6)
Other: 0.24% (0.4 x Max(-0.4 + 1.0, 0.05) = 0.4 x 0.6)
- They are the same, because of the high PopulationIntent.

Day >= 10, 20+ Population (PopulationIntent = -1.0):
Randy: 0.08% (0.4 x Max(-0.4 + -1.0, 0.2) = 0.4 x 0.2)
Other: 0.02% (0.4 x Max(-0.4 + -1.0, 0.05) = 0.4 x 0.05)
- Here, the low PopulationIntent allows Randy's higher minIncChancePopulationIntentFactor to take effect.

So, there doesn't appear to be a hard cap on any of the storytellers anymore. However, some events can become much more rare at high populations (0.02% chance of a wanderer join, 0.08% if using Randy @ 20+ population). Also, for purposes of population calculation, it searches the entire map for pawns of that colony (ie: includes caravans, etc), and it also includes prisoners of that colony (each prisoner counts as half a colonist).

The multiple colony trick works, because it doesn't check all pawns in the map for all colonies, only the one it is currently determining the event for.

Also, you can check the table for the PopulationIntent from the Debug Logging Menu while in Dev Mode. Search for population, and you can bring up the table. You'll notice that after 10 days (at the top), and populations > 20 (at the left) the numbers remain the same. That's because of the curves in Storytellers.xml:

<populationIntentFactorFromPopCurve>
<points>

  • 0, 8.0

  • 1, 2.0

  • 5, 1.0

  • 9, 0.4

  • 12, 0.0

  • 20,-1.0

  • </points>
    </populationIntentFactorFromPopCurve>

    <populationIntentFactorFromPopAdaptDaysCurve>
    <points>

  • ( 0, 0)

  • (10, 1.00)

  • </points>
    </populationIntentFactorFromPopAdaptDaysCurve>


    Further investigation and updates are needed.

    Version history

    The names of the difficulty levels were changed in 1.0 to:

    • Peaceful
    • Builder
    • Medium
    • Rough
    • Savage
    • Merciless

    In 1.1.2647 they were changed again to the following:

    • Peaceful
    • Community builder
    • Adventure story
    • Strive to survive
    • The price of survival is blood
    • Losing is fun

    In 1.1.2654 "The price of survival is blood" was changed..