Gilmoy Gilmoy

Gilmoy's 0.42 Journal: Cultural "Influance" 101

Gilmoy's 0.42 Journal: Cultural "Influance" 101

GC3 influence was a mystery to me.  So I'm delving into the numbers.  This is my attempt at a "Culture 101" thread.  I will break up my findings into (many) replies, and edit as I improve the upper and lower bounds.

My goal is to reverse-engineer the cultural influence equations.  We did that for economy, so our collective players' knowledge on this forum exceeds the "Econ 101" thread.  As a by-product, I plan to influence-flip many AI planets.  I don't care about actually winning the game; I probably won't even get that far.  eviator's Not Culture Flipping thread made me curious.  Since then, I have been enthralled by the beauty in numbers :inlove:

I debated whether to put this in the Early Feedback sub-forum, but I think this topic is more general than a Beta 1 issue.  We regular users cannot post in Journals, which I guess is restricted to Stardock dev staff.

A. Test game parameters & methodology

Altarian, Large galaxy, Scattered, vs. 3 Godlike.  Considerations:

  • Racial traits are the first choice point.
    • Drengin have =0% Influence.  This is the only way to plot the hex radii for influence values < 37.5) :)
    • Terran, Altarian, Iridium have +25% Influence.  They're all equally good for this test.
  • Iridium's -25% Growth make them very intriguing, since they probably won't win a straight conquest race.  But ...
    • [0.42 opt-in bug] Iridium Constructor crashes to desktop on Build Starbase command.
      • Fixed in 0.42-09/11!

I micro-manage (all queues, every turn).  For Influence regression, I also jot down:

  • for every turn
    • for every colony
      • all of its Influence-related parameters (as described below)

For my 1st test game, I also wrote simple Excel macros to double-check for consistency, and through 38 81 turns my predictions fit the data perfectly.  I hope to use this data to tighten the bounds on the influence-to-radius function's staircase-like thresholds.

196,094 views 26 replies
Reply #26 Top

Gilmoy,

as discussed in the pm exchange.

GalCiv3GlobalDefs.xml

<InfluenceMinToClaim>0.03</InfluenceMinToClaim>
<InfluenceTallyMod>0.1</InfluenceTallyMod>
<InfluenceRadiusRoot>1.75</InfluenceRadiusRoot>
<InfluenceBellCurveTargetDivisor>3</InfluenceBellCurveTargetDivisor>

The InfluenceTallyMod is the /10 in your observed accumulation

Quoting Gilmoy, reply 1

current influence += (previous turn's influence growth/10)

Like you stated, but the InfluenceMinToClaim determines whether a tile is actually claimed.

Quoting Gilmoy, reply 7

Friendly ZOCs evidently merge via a simple max function, not add.  It doesn't matter how many overlapping ZOCs affect a hex; only the "strongest" one counts.

I have not - yet - found a perfect fit function f(x,IaO) where x is the distance in tiles from the influence origin and IaO is the influence at the origin (planet). But the closest that i am currently at is:

f(x, IaO) = IaO * exp (-x / (2 * InfluenceRadiusRoot ^ 2)) / (InfluenceBellCurveTargetDivisor * sqrt (2 * pi)) / 40

My delta of error is near 0.001 (against my compiled data set). Which means my function occasionally matches a higher range earlier to a given influence (for the specified InfluenceMinToClaim of 0.03) than the game.

But maybe there is some internal rounding (either on the collected data set or within my/SD's formula) happening that escapes me, or i use a different floating point precision (for either number storage or for the math functions) than SD.