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
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:
I micro-manage (all queues, every turn). For Influence regression, I also jot down:
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.
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
Like you stated, but the InfluenceMinToClaim determines whether a tile is actually claimed.
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.
There are many great features available to you once you register, including:
Sign in or Create Account