Author Topic: Possible to know how many accumulated points in exo calculations?  (Read 845 times)

Offline Spikey00

  • Lord of just 5 Colony Ships
  • Master Member Mark II
  • *****
  • Posts: 1,703
  • And he sayeth to sea worm, thou shalt wriggle
Citing from the wiki here, is there an area where I can view the numbers?  I'm deep in a mentally-questionable 54 hour 10/10 brute force snake campaign I've been playing over a year, and this information would be important (as I somehow previously didn't know they actually increased over time apart from AIP) if I should be making a final push for the exogalactic tranceiver if the maximum point thresholds haven't been reached yet or if I should continue to wrestle with the AI by capturing a few more planets to expand the spire fleet.
I'd take a sea worm any time over a hundred emotionless spinning carriers.
irc.appliedirc.com / #aiwar
AI War Facebook
AI War Steam Group

Offline keith.lamothe

  • Arcen Games Staff
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,318
Re: Possible to know how many accumulated points in exo calculations?
« Reply #1 on: December 15, 2015, 10:01:46 PM »
Mentally questionable indeed. How do you keep the CPU cool?

For the numbers you're looking for, I think RuntimeData/LogicLog_EventAttackPopulation.txt will help if you have Advanced Logging toggled on :)
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Spikey00

  • Lord of just 5 Colony Ships
  • Master Member Mark II
  • *****
  • Posts: 1,703
  • And he sayeth to sea worm, thou shalt wriggle
Re: Possible to know how many accumulated points in exo calculations?
« Reply #2 on: December 16, 2015, 07:13:00 AM »
OutOfMemory stutters happening every ingame second half of the time indirectly helps a lot!   :'(

So... I'm not sure if I'm using the formula correct; my maximum budget based on broken golems medium, spirecraft hard, and 15 spire cities, (110000+110000+10000+(60000*15)+60000)*3=3570000 should be correct (?), but mindlessly skimming through the logs it seems I'm definitely already capped with what I have to assume is the spire campaign exo since 48:27:01? 

Code: [Select]
Populating EventAttackArmada, 20520000 total points; Game Time: 47:26:59
Populating EventAttackArmada, 20862000 total points; Game Time: 54:11:01
Populating EventAttackArmada, 20862000 total points; Game Time: 55:12:01
Populating EventAttackArmada, 243450 total points; Game Time: 55:13:25
Populating EventAttackArmada, 20862000 total points; Game Time: 56:13:01
Populating EventAttackArmada, 237150 total points; Game Time: 56:15:48
Most recent:  Populating EventAttackArmada, 20745000 total points; Game Time: 57:14:01
Battlegroup actual budget spent: 1036832 on 221 ships (for reference that is 62731.36 strength).  * apparently 20 of these

So I guess my other question would be how CPAs are calculated?  I should probably know this stuff, but I'm a horrible person with horrible math skills who has thought all this time that CPAs are simply based on the current AIP.

Code: [Select]
Sample of three CPAs

Triggering CPA (always from first AI); Game Time: 39:33:00
effectiveAIPForCPAPurposes = this.AIProgressionLevelEffective = 750
since diff > 9, numberOfSecondsPerPointOfMinimumAIPForCPAPurposes = 240 + ( (FInt)120 * ( (FInt)9 - this.AIDifficulty ) ).IntValue = 120
minimumAIPForCPAPurposes = Game.Instance.GameSecond / numberOfSecondsPerPointOfMinimumAIPForCPAPurposes = 1186
effectiveAIPForCPAPurposes = Max(effectiveAIPForCPAPurposes,minimumAIPForCPAPurposes) = 1186[/b]
difficultyFactor = ( this.AIDifficulty * this.GetHandicapMultiplier() ) / ( 13 - this.AIDifficulty ) : 3.33
aiTypeFactor = 1
simulateMaxTimeWaveFactor = Mat.One + ( ( this.AIDifficulty * 2 ) / ( ( 14 - this.AIDifficulty ) * 3 ) ) : 2.67
simulateDoubleWaveFactor = 2
simulateDifficultySpecificWaveSizeMultiplier = 12
humanHomeworldCountMultiplier = Mat.One + (FInt)( humanHomeworldCount - 1 ) = 1
numberOfShips (before applying cap-scale) = ( (FInt)effectiveAIPForCPAPurposes * difficultyFactor * aiTypeFactor * simulateMaxTimeWaveFactor * simulateDoubleWaveFactor * simulateDifficultySpecificWaveSizeMultiplier * humanHomeworldCountMultiplier ).IntValue = 252991
numberOfShips (after applying cap-scale) = 126495

Triggering CPA (always from first AI); Game Time: 47:16:30
effectiveAIPForCPAPurposes = this.AIProgressionLevelEffective = 653
since diff > 9, numberOfSecondsPerPointOfMinimumAIPForCPAPurposes = 240 + ( (FInt)120 * ( (FInt)9 - this.AIDifficulty ) ).IntValue = 120
minimumAIPForCPAPurposes = Game.Instance.GameSecond / numberOfSecondsPerPointOfMinimumAIPForCPAPurposes = 1418
effectiveAIPForCPAPurposes = Max(effectiveAIPForCPAPurposes,minimumAIPForCPAPurposes) = 1418
difficultyFactor = ( this.AIDifficulty * this.GetHandicapMultiplier() ) / ( 13 - this.AIDifficulty ) : 3.33
aiTypeFactor = 1
simulateMaxTimeWaveFactor = Mat.One + ( ( this.AIDifficulty * 2 ) / ( ( 14 - this.AIDifficulty ) * 3 ) ) : 2.67
simulateDoubleWaveFactor = 2
simulateDifficultySpecificWaveSizeMultiplier = 12
humanHomeworldCountMultiplier = Mat.One + (FInt)( humanHomeworldCount - 1 ) = 1
numberOfShips (before applying cap-scale) = ( (FInt)effectiveAIPForCPAPurposes * difficultyFactor * aiTypeFactor * simulateMaxTimeWaveFactor * simulateDoubleWaveFactor * simulateDifficultySpecificWaveSizeMultiplier * humanHomeworldCountMultiplier ).IntValue = 302480
numberOfShips (after applying cap-scale) = 151240

Triggering CPA (always from first AI); Game Time: 57:09:00
effectiveAIPForCPAPurposes = this.AIProgressionLevelEffective = 513
since diff > 9, numberOfSecondsPerPointOfMinimumAIPForCPAPurposes = 240 + ( (FInt)120 * ( (FInt)9 - this.AIDifficulty ) ).IntValue = 120
minimumAIPForCPAPurposes = Game.Instance.GameSecond / numberOfSecondsPerPointOfMinimumAIPForCPAPurposes = 1714
effectiveAIPForCPAPurposes = Max(effectiveAIPForCPAPurposes,minimumAIPForCPAPurposes) = 1714
difficultyFactor = ( this.AIDifficulty * this.GetHandicapMultiplier() ) / ( 13 - this.AIDifficulty ) : 3.33
aiTypeFactor = 1
simulateMaxTimeWaveFactor = Mat.One + ( ( this.AIDifficulty * 2 ) / ( ( 14 - this.AIDifficulty ) * 3 ) ) : 2.67
simulateDoubleWaveFactor = 2
simulateDifficultySpecificWaveSizeMultiplier = 12
humanHomeworldCountMultiplier = Mat.One + (FInt)( humanHomeworldCount - 1 ) = 1
numberOfShips (before applying cap-scale) = ( (FInt)effectiveAIPForCPAPurposes * difficultyFactor * aiTypeFactor * simulateMaxTimeWaveFactor * simulateDoubleWaveFactor * simulateDifficultySpecificWaveSizeMultiplier * humanHomeworldCountMultiplier ).IntValue = 365622
numberOfShips (after applying cap-scale) = 182811

So what do the lines
Quote
minimumAIPForCPAPurposes = Game.Instance.GameSecond / numberOfSecondsPerPointOfMinimumAIPForCPAPurposes = 1714
effectiveAIPForCPAPurposes = Max(effectiveAIPForCPAPurposes,minimumAIPForCPAPurposes) = 1714
mean, and where does that result number come from?  At 57h I have a total AIP of 1479 but reduced it by 966; however it seems like waiting is literally killing me because the CPA just keeps growing regardless.  I'd have to guess that it's considering how long the game has been in progress? 


I'm basically now wondering if in this situation I should just reload my save as far back as possible and just try to rush transceiver or capture more planets for spirefleet, given that the original plan of lowering the AIP through Spire Civilian Leaders almost does literally nothing in this scope if I'm in AIP MK3 territory and my spire fleet of 250something becomes less capable of defeating 150k units in carriers every hour, plus what seems to be a very substantial reinforcement/threat replenishment rate, plus these puny golem+spirecraft+hybrid+spire exo waves.  I don't even know if it's feasible at this point, reading that the spire exo wave strength is multiplied by 1.5 and spawns every minute...  it almost seems like having 960 AIP was far more easier than having 513.


I hate my life, send halp keith plis
also apparently my reinforcements log is 525mb and hybridhives_mainthread is 200mb compared to everything else neat and tidy below 2mb
I'd take a sea worm any time over a hundred emotionless spinning carriers.
irc.appliedirc.com / #aiwar
AI War Facebook
AI War Steam Group

Offline keith.lamothe

  • Arcen Games Staff
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,318
Re: Possible to know how many accumulated points in exo calculations?
« Reply #3 on: December 16, 2015, 03:04:30 PM »
So... I'm not sure if I'm using the formula correct; my maximum budget based on broken golems medium, spirecraft hard, and 15 spire cities, (110000+110000+10000+(60000*15)+60000)*3=3570000 should be correct (?), but mindlessly skimming through the logs it seems I'm definitely already capped with what I have to assume is the spire campaign exo since 48:27:01?
I'm not sure, one way to find out is to see if the next round of exos have higher points than the previous, but it looks like your hour-57 one is actually smaller than your hour-56 one (were your spire cities all fully built at the beginning of both ones? losing some buildings temporarily reduces the cap a bit).

The way-smaller exos are presumably the spirecraft-hard ones.

Quote
effectiveAIPForCPAPurposes = this.AIProgressionLevelEffective = 750
This means your AIP is 750, and that's what it normally bases the CPA on.

Quote
since diff > 9, numberOfSecondsPerPointOfMinimumAIPForCPAPurposes = 240 + ( (FInt)120 * ( (FInt)9 - this.AIDifficulty ) ).IntValue = 120
This means you're playing above difficulty 9, and that therefore the minimum base value for the CPA is 1 for every two minutes (120 seconds) that the game's run. On lower difficulties this number is higher (and the resulting number thus lower), and past a certain point the rule isn't there at all.

Quote
minimumAIPForCPAPurposes = Game.Instance.GameSecond / numberOfSecondsPerPointOfMinimumAIPForCPAPurposes = 1186
This is the result of (game time) / (two minutes).

Quote
effectiveAIPForCPAPurposes = Max(effectiveAIPForCPAPurposes,minimumAIPForCPAPurposes) = 1186
This is where it takes either your AIP or the (game time) / (two minutes), whichever is larger.

Quote
At 57h I have a total AIP of 1479 but reduced it by 966; however it seems like waiting is literally killing me because the CPA just keeps growing regardless.
The CPAs will keep growing regardless, yes, though at some point the strategic reserve and special forces will bottom out and it just won't have anything left to throw. Though I don't know if you can reach that point in this case.

Anyway, I'm guessing the CPAs aren't the main threat to you, compared to the exos. Though it does so kindly like to synchronize, iirc...


Quote
I'm basically now wondering if in this situation I should just reload my save as far back as possible and just try to rush transceiver or capture more planets for spirefleet, given that the original plan of lowering the AIP through Spire Civilian Leaders almost does literally nothing in this scope if I'm in AIP MK3 territory and my spire fleet of 250something becomes less capable of defeating 150k units in carriers every hour, plus what seems to be a very substantial reinforcement/threat replenishment rate, plus these puny golem+spirecraft+hybrid+spire exo waves.  I don't even know if it's feasible at this point, reading that the spire exo wave strength is multiplied by 1.5 and spawns every minute...  it almost seems like having 960 AIP was far more easier than having 513.Warheads.
Fixed that for you.

I guess the question is whether you specifically want to win via FS or if you just want to win. The latter could probably be accomplished by rebuilding your capital fleet after the last exo, selecting said fleet, and right-clicking the enemy homeworlds (assuming the CSGs are down or absent).

The former would be dicier, but I guess if you've got your homeworld on the opposite end of the snake and really concentrate on fighting the AI at every planet, they simply can't reach the transceiver in time once it's up. At that point the question is whether the entire imperial spire fleet is sufficient to win the war. If it's not, well, that answers a more fundamental question about this scenario ;)

Quote
also apparently my reinforcements log is 525mb and hybridhives_mainthread is 200mb compared to everything else neat and tidy below 2mb
I'd suggest turning Reinforcements Logging off (it's on a separate toggle from Advanced Logging for this reason) unless you're trying to debug something specific, as it does get honking huge and the generation of those long log entries may be contributing to your memory woes

Though I'm surprised at the hybrids gobbling so much log space. I guess they have to do something. You could just genocide them to cut down on memory usage.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Spikey00

  • Lord of just 5 Colony Ships
  • Master Member Mark II
  • *****
  • Posts: 1,703
  • And he sayeth to sea worm, thou shalt wriggle
Re: Possible to know how many accumulated points in exo calculations?
« Reply #4 on: December 16, 2015, 08:52:47 PM »
The CPAs are actually the scariest thing just for their collective tankiness; exos themselves are pretty harmless alone because it's far easier to melt 200 ships over 1000 loaded ships*60000 MK3 carrier HP*150 carriers = 90 billion total HP with universally-good firepower vs maybe 100m HP.  The headache comes when the waves synchronize, and when 60-100k threat occasionally decides to join the party.

The original plan was a FS victory because the last homeworld is the last planet in the chain, and I feel like the only thing really holding my defense at this point is the spire fleet.  Everything else is just to absorb damage... so I don't know if they'd like a 73 hop excursion, although it'd probably work out more painlessly than continuing to thump my head on the wall.  But this was a campaign started on the premise of directly brute-forcing the AI so I might as well keep trying if I've gotten this far; maybe there's hope because I've been specifically sitting here with my autosaves doing nothing for 24+ hours thinking AIP was everything. 
Heh, hybrid hives aren't even worth the additional memory and calculations this late into the game... the dyson antagonizer is literally the only thing I'm able to notice. 
Anyway, thanks for all the information Keith.  Looks like I'm going in the time machine.
I'd take a sea worm any time over a hundred emotionless spinning carriers.
irc.appliedirc.com / #aiwar
AI War Facebook
AI War Steam Group