View Issue Details

IDProjectCategoryLast Update
0001676AI War 1 / ClassicBug - OtherDec 1, 2010 1:51 pm
ReporterVinraith Assigned Tokeith.lamothe  
Status resolvedResolutionfixed 
Product Version4.042 
Summary0001676: (4.042) Early game wave sizes way out of hand
DescriptionI'm a big fan of the new, harder waves but this can't possibly be intended. This is a two player game, two random non-technologist AI's at 7.3 each, initial waves (at AIP 21) are in the 600's with one over 1000. That's just not survivable, and I'm assuming it's not intended behavior.
TagsNo tags attached.
Internal Weight

Activities

Vinraith

Dec 1, 2010 1:13 am

reporter  

excessive waves.sav (252,322 bytes)

Vinraith

Dec 1, 2010 1:18 am

reporter  

Master Cylinder Pants

Dec 1, 2010 1:23 am

reporter   ~0004718

Tried a solo game at level 7 with easier AIs - got similar results, one turtle sent nothing and a fortress baron sent close to 500 ships on the first wave (AIP < 25).

keith.lamothe

Dec 1, 2010 7:22 am

administrator   ~0004720

I don't suppose either of you had advanced logging (under settings window, advanced tab) on and could post your MainThreadWaveComputationLog.txt and AIThreadWaveComputationLog.txt files from the RuntimeData directory?

I think I know what the problem is: previously there was a bug that applied the wave-size multiplicative factor twice instead of once, and those factors start at less than one. The bug resulted in factors greater than one going increasingly bonkers, but also made the factors less than one much easier than intended.

That said, these wave sizes sound more than a bit out there ;)

Master Cylinder Pants

Dec 1, 2010 11:07 am

reporter   ~0004759

Sorry, didn't have adv logging on last night but... I brought a laptop to work today and sometimes you have to reproduce game bugs instead of work (at work)!
In doing so I found something interesting. I wasn't paying attention to my settings on the first pass and used simple ship types and non schitz waves (with a fortress baron and vanilla ai, lvl 7). Got what appear to be normal waves given the AIP. Save, screenshot and log to be attached shortly.
Then, I realized what I did and kept everything fixed except I turned on schitz waves and used complex ships and.. there you go - both AIs sent 500+ waves at less than 25 AIP. Files also to be attached shortly.

Master Cylinder Pants

Dec 1, 2010 11:09 am

reporter  

Master Cylinder Pants

Dec 1, 2010 11:09 am

reporter  

Master Cylinder Pants

Dec 1, 2010 11:10 am

reporter  

simple ships - non schitz AIThreadWaveComputationLog.txt (1,503 bytes)   
12/1/2010 10:56:08 AM (4.042)
-----------------------------------
Starting CreateHomogenousWaveToPlanet at Game Time: 0:11:39 ; Player.AIType: Vanilla ; Player.AIDifficulty: 7 ; AIProgressionLevel: 10 ; AITechLevel: 1 ; WaveSize: 1
aiTypeBasedAIPIncrement : 0
workingShips = ( ( AIProgressionLevel * Player.AIDifficulty ) / ( 11 - Player.AIDifficulty ) ) : 17.5
workingShips *= FInt.FromParts( 1, AILoop.Instance.AIRandom.Next( 0, 300 ) ) : 19.77
workingShips = Min(workingShips,Player.AIDifficulty * 20) :140
workingShips = Min(workingShips,Player.AIDifficulty * 10) :140
numberShips = workingShips.IntValue :140
after AdjustNumberShipsFromAIType call, numberShips :70
numberTech123 = numberShips - numberExplosive - numberCore :70


12/1/2010 10:56:08 AM (4.042)
-----------------------------------
Starting CreateHomogenousWaveToPlanet at Game Time: 0:11:39 ; Player.AIType: Fortress_Baron ; Player.AIDifficulty: 7 ; AIProgressionLevel: 10 ; AITechLevel: 1 ; WaveSize: 1
aiTypeBasedAIPIncrement : 0
workingShips = ( ( AIProgressionLevel * Player.AIDifficulty ) / ( 11 - Player.AIDifficulty ) ) : 17.5
workingShips *= FInt.FromParts( 1, AILoop.Instance.AIRandom.Next( 0, 300 ) ) : 17.76
workingShips = Min(workingShips,Player.AIDifficulty * 20) :140
workingShips = Min(workingShips,Player.AIDifficulty * 10) :140
numberShips = workingShips.IntValue :140
after AdjustNumberShipsFromAIType call, numberShips :70
numberTech123 = numberShips - numberExplosive - numberCore :70


Master Cylinder Pants

Dec 1, 2010 11:10 am

reporter  

complex ships - schitz on AIThreadWaveComputationLog.txt (1,529 bytes)   
12/1/2010 11:02:52 AM (4.042)
-----------------------------------
Starting CreateMixedWaveToPlanet at Game Time: 0:11:39 ; Player.AIType: Vanilla ; Player.AIDifficulty: 7 ; AIProgressionLevel: 10 ; AITechLevel: 1 ; WaveSize: 1
aiTypeBasedAIPIncrement : 0
workingShips = ( ( AIProgressionLevel * Player.AIDifficulty ) / ( 11 - Player.AIDifficulty ) ) : 17.5
workingShips *= FInt.FromParts( 1, AILoop.Instance.AIRandom.Next( 0, 300 ) ) : 20.11
workingShips = Min(workingShips,Player.AIDifficulty * 20) :140
workingShips = Min(workingShips,Player.AIDifficulty * 10) :140
numberShips = workingShips.IntValue :140
after AdjustNumberShipsFromAIType call, numberShips :70
numberTech123 = numberShips - numberDefensive - numberExplosive - numberCore :70


12/1/2010 11:02:52 AM (4.042)
-----------------------------------
Starting CreateMixedWaveToPlanet at Game Time: 0:11:39 ; Player.AIType: Fortress_Baron ; Player.AIDifficulty: 7 ; AIProgressionLevel: 10 ; AITechLevel: 1 ; WaveSize: 1
aiTypeBasedAIPIncrement : 0
workingShips = ( ( AIProgressionLevel * Player.AIDifficulty ) / ( 11 - Player.AIDifficulty ) ) : 17.5
workingShips *= FInt.FromParts( 1, AILoop.Instance.AIRandom.Next( 0, 300 ) ) : 20.61
workingShips = Min(workingShips,Player.AIDifficulty * 20) :140
workingShips = Min(workingShips,Player.AIDifficulty * 10) :140
numberShips = workingShips.IntValue :140
after AdjustNumberShipsFromAIType call, numberShips :70
numberTech123 = numberShips - numberDefensive - numberExplosive - numberCore :70


Master Cylinder Pants

Dec 1, 2010 11:10 am

reporter  

Master Cylinder Pants

Dec 1, 2010 11:10 am

reporter  

Master Cylinder Pants

Dec 1, 2010 11:11 am

reporter   ~0004761

I suspect you can work out which files are which!

Master Cylinder Pants

Dec 1, 2010 11:13 am

reporter   ~0004762

And for some reason this was filed under Product Version 4.041 but as Vinraith noted in his report it's actually happening to us under 4.042.

keith.lamothe

Dec 1, 2010 11:15 am

administrator   ~0004764

Do you have the MainThread computation logs too?

Nihilus

Dec 1, 2010 11:24 am

reporter  

Nihilus

Dec 1, 2010 11:24 am

reporter   ~0004766

Got that beat. Level 5 ai, 50 aip, initial wave of almost 4000. Mostly from an 'everything' ai, the other guy's stuff is pretty standard. Maybe a bad interaction between schizo and everything, making a full wave for each ship type?

Master Cylinder Pants

Dec 1, 2010 11:29 am

reporter   ~0004767

I do, I think, sadly if so it's all rolled in to one file (I didn't delete it between attempts like i did for the other log). Attaching now..
Note - it probably has data from one or two other attempts at the beginning when I was sorting out what happened.

Master Cylinder Pants

Dec 1, 2010 11:29 am

reporter  

full MainThreadWaveComputationLog.txt (21,725 bytes)   
12/1/2010 10:41:36 AM (4.042)
-----------------------------------
Triggering Normal Wave; wave size factor: 1; Game Time: 0:11:40

12/1/2010 10:41:36 AM (4.042)
-----------------------------------
Triggering Normal Wave; wave size factor: 1; Game Time: 0:11:40

12/1/2010 10:41:36 AM (4.042)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 0:11:40
WaveSize factor: 1
Raw Units Dictionary Entries: 
ZenithBombardment => 70
LeechStarship => 1


12/1/2010 10:41:36 AM (4.042)
-----------------------------------
Performing first CheckWave with size factor of 1 on wave at Game Time: 0:11:40

CheckWave: populating count of ZenithBombardment with base magnitude of 70
numberUnits = kv.Value * this.WaveSize : 70
after applying ShipCapMultiplier if any, numberUnits : 8.75
after applying CanUseNeinzulRegenerator if any, numberUnits : 8.75
after applying Mark-based multiplier if any, numberUnits : 8.75
after applying at-least-one rule, numberUnits : 8.75
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 26.25
numberUnitsInt = numberUnits.IntValue : 26
after at-least-effective-ship-cap-rule, numberUnitsInt : 26

CheckWave: populating count of LeechStarship with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 1
after applying ShipCapMultiplier if any, numberUnits : 1
after applying CanUseNeinzulRegenerator if any, numberUnits : 1
after applying Mark-based multiplier if any, numberUnits : 1
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 3
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

Wave total ships: 27
TypesForDirectAdd count by type: 
ZenithBombardment => 26
LeechStarship => 1
TypesForCarrierAdd count by type: 


12/1/2010 10:52:22 AM (4.042)
-----------------------------------
Triggering Normal Wave; wave size factor: 1; Game Time: 0:11:40

12/1/2010 10:52:22 AM (4.042)
-----------------------------------
Triggering Normal Wave; wave size factor: 1; Game Time: 0:11:40

12/1/2010 10:52:23 AM (4.042)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 0:11:41
WaveSize factor: 1
Raw Units Dictionary Entries: 
MissileShip => 70
LeechStarship => 1


12/1/2010 10:52:23 AM (4.042)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 0:11:41
WaveSize factor: 1
Raw Units Dictionary Entries: 
ElectricShuttle => 70
LightStarship => 1


12/1/2010 10:52:23 AM (4.042)
-----------------------------------
Performing first CheckWave with size factor of 1 on wave at Game Time: 0:11:41

CheckWave: populating count of MissileShip with base magnitude of 70
numberUnits = kv.Value * this.WaveSize : 70
after applying ShipCapMultiplier if any, numberUnits : 35
after applying CanUseNeinzulRegenerator if any, numberUnits : 35
after applying Mark-based multiplier if any, numberUnits : 35
after applying at-least-one rule, numberUnits : 35
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 105
numberUnitsInt = numberUnits.IntValue : 105
after at-least-effective-ship-cap-rule, numberUnitsInt : 105

CheckWave: populating count of LeechStarship with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 1
after applying ShipCapMultiplier if any, numberUnits : 1
after applying CanUseNeinzulRegenerator if any, numberUnits : 1
after applying Mark-based multiplier if any, numberUnits : 1
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 3
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

Wave total ships: 106
TypesForDirectAdd count by type: 
MissileShip => 105
LeechStarship => 1
TypesForCarrierAdd count by type: 


12/1/2010 10:52:23 AM (4.042)
-----------------------------------
Performing first CheckWave with size factor of 1 on wave at Game Time: 0:11:41

CheckWave: populating count of ElectricShuttle with base magnitude of 70
numberUnits = kv.Value * this.WaveSize : 70
after applying ShipCapMultiplier if any, numberUnits : 8.75
after applying CanUseNeinzulRegenerator if any, numberUnits : 8.75
after applying Mark-based multiplier if any, numberUnits : 8.75
after applying at-least-one rule, numberUnits : 8.75
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 26.25
numberUnitsInt = numberUnits.IntValue : 26
after at-least-effective-ship-cap-rule, numberUnitsInt : 26

CheckWave: populating count of LightStarship with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 1
after applying ShipCapMultiplier if any, numberUnits : 1
after applying CanUseNeinzulRegenerator if any, numberUnits : 1
after applying Mark-based multiplier if any, numberUnits : 1
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 3
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

Wave total ships: 27
TypesForDirectAdd count by type: 
ElectricShuttle => 26
LightStarship => 1
TypesForCarrierAdd count by type: 


12/1/2010 10:53:41 AM (4.042)
-----------------------------------
Triggering Normal Wave; wave size factor: 1; Game Time: 0:11:40

12/1/2010 10:53:41 AM (4.042)
-----------------------------------
Triggering Normal Wave; wave size factor: 1; Game Time: 0:11:40

12/1/2010 10:53:41 AM (4.042)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 0:11:41
WaveSize factor: 1
Raw Units Dictionary Entries: 
Raider => 70
Dreadnought => 1


12/1/2010 10:53:41 AM (4.042)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 0:11:41
WaveSize factor: 1
Raw Units Dictionary Entries: 
MissileShip => 70
LightStarship => 1


12/1/2010 10:53:41 AM (4.042)
-----------------------------------
Performing first CheckWave with size factor of 1 on wave at Game Time: 0:11:41

CheckWave: populating count of Raider with base magnitude of 70
numberUnits = kv.Value * this.WaveSize : 70
after applying ShipCapMultiplier if any, numberUnits : 87.5
after applying CanUseNeinzulRegenerator if any, numberUnits : 87.5
after applying Mark-based multiplier if any, numberUnits : 87.5
after applying at-least-one rule, numberUnits : 87.5
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 262.5
numberUnitsInt = numberUnits.IntValue : 262
after at-least-effective-ship-cap-rule, numberUnitsInt : 262

CheckWave: populating count of Dreadnought with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 1
after applying ShipCapMultiplier if any, numberUnits : 1
after applying CanUseNeinzulRegenerator if any, numberUnits : 1
after applying Mark-based multiplier if any, numberUnits : 1
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 3
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

Wave total ships: 263
TypesForDirectAdd count by type: 
Raider => 262
Dreadnought => 1
TypesForCarrierAdd count by type: 


12/1/2010 10:53:41 AM (4.042)
-----------------------------------
Performing first CheckWave with size factor of 1 on wave at Game Time: 0:11:41

CheckWave: populating count of MissileShip with base magnitude of 70
numberUnits = kv.Value * this.WaveSize : 70
after applying ShipCapMultiplier if any, numberUnits : 35
after applying CanUseNeinzulRegenerator if any, numberUnits : 35
after applying Mark-based multiplier if any, numberUnits : 35
after applying at-least-one rule, numberUnits : 35
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 105
numberUnitsInt = numberUnits.IntValue : 105
after at-least-effective-ship-cap-rule, numberUnitsInt : 105

CheckWave: populating count of LightStarship with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 1
after applying ShipCapMultiplier if any, numberUnits : 1
after applying CanUseNeinzulRegenerator if any, numberUnits : 1
after applying Mark-based multiplier if any, numberUnits : 1
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 3
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

Wave total ships: 106
TypesForDirectAdd count by type: 
MissileShip => 105
LightStarship => 1
TypesForCarrierAdd count by type: 


12/1/2010 10:56:08 AM (4.042)
-----------------------------------
Triggering Normal Wave; wave size factor: 1; Game Time: 0:11:40

12/1/2010 10:56:08 AM (4.042)
-----------------------------------
Triggering Normal Wave; wave size factor: 1; Game Time: 0:11:40

12/1/2010 10:56:08 AM (4.042)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 0:11:41
WaveSize factor: 1
Raw Units Dictionary Entries: 
Bomber => 70
LeechStarship => 1


12/1/2010 10:56:08 AM (4.042)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 0:11:41
WaveSize factor: 1
Raw Units Dictionary Entries: 
ElectricShuttle => 70
Dreadnought => 1


12/1/2010 10:56:08 AM (4.042)
-----------------------------------
Performing first CheckWave with size factor of 1 on wave at Game Time: 0:11:41

CheckWave: populating count of Bomber with base magnitude of 70
numberUnits = kv.Value * this.WaveSize : 70
after applying ShipCapMultiplier if any, numberUnits : 35
after applying CanUseNeinzulRegenerator if any, numberUnits : 35
after applying Mark-based multiplier if any, numberUnits : 35
after applying at-least-one rule, numberUnits : 35
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 105
numberUnitsInt = numberUnits.IntValue : 105
after at-least-effective-ship-cap-rule, numberUnitsInt : 105

CheckWave: populating count of LeechStarship with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 1
after applying ShipCapMultiplier if any, numberUnits : 1
after applying CanUseNeinzulRegenerator if any, numberUnits : 1
after applying Mark-based multiplier if any, numberUnits : 1
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 3
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

Wave total ships: 106
TypesForDirectAdd count by type: 
Bomber => 105
LeechStarship => 1
TypesForCarrierAdd count by type: 


12/1/2010 10:56:08 AM (4.042)
-----------------------------------
Performing first CheckWave with size factor of 1 on wave at Game Time: 0:11:41

CheckWave: populating count of ElectricShuttle with base magnitude of 70
numberUnits = kv.Value * this.WaveSize : 70
after applying ShipCapMultiplier if any, numberUnits : 8.75
after applying CanUseNeinzulRegenerator if any, numberUnits : 8.75
after applying Mark-based multiplier if any, numberUnits : 8.75
after applying at-least-one rule, numberUnits : 8.75
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 26.25
numberUnitsInt = numberUnits.IntValue : 26
after at-least-effective-ship-cap-rule, numberUnitsInt : 26

CheckWave: populating count of Dreadnought with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 1
after applying ShipCapMultiplier if any, numberUnits : 1
after applying CanUseNeinzulRegenerator if any, numberUnits : 1
after applying Mark-based multiplier if any, numberUnits : 1
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 3
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

Wave total ships: 27
TypesForDirectAdd count by type: 
ElectricShuttle => 26
Dreadnought => 1
TypesForCarrierAdd count by type: 


12/1/2010 11:02:51 AM (4.042)
-----------------------------------
Triggering Normal Wave; wave size factor: 1; Game Time: 0:11:40

12/1/2010 11:02:51 AM (4.042)
-----------------------------------
Triggering Normal Wave; wave size factor: 1; Game Time: 0:11:40

12/1/2010 11:02:52 AM (4.042)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 0:11:41
WaveSize factor: 1
Raw Units Dictionary Entries: 
SpireGravityRipper => 7
MissileShip => 12
Fighter => 15
VorticularCutlass => 20
Dreadnought => 1
Bomber => 16


12/1/2010 11:02:52 AM (4.042)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 0:11:41
WaveSize factor: 1
Raw Units Dictionary Entries: 
Fighter => 15
Bomber => 16
AutocannonMinipod => 15
MissileShip => 12
ZenithParalyzer => 12
LightStarship => 1


12/1/2010 11:02:52 AM (4.042)
-----------------------------------
Performing first CheckWave with size factor of 1 on wave at Game Time: 0:11:41

CheckWave: populating count of SpireGravityRipper with base magnitude of 7
numberUnits = kv.Value * this.WaveSize : 7
after applying ShipCapMultiplier if any, numberUnits : 1.75
after applying CanUseNeinzulRegenerator if any, numberUnits : 1.75
after applying Mark-based multiplier if any, numberUnits : 1.75
after applying at-least-one rule, numberUnits : 1.75
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 5.25
numberUnitsInt = numberUnits.IntValue : 5
after at-least-effective-ship-cap-rule, numberUnitsInt : 49

CheckWave: populating count of MissileShip with base magnitude of 12
numberUnits = kv.Value * this.WaveSize : 12
after applying ShipCapMultiplier if any, numberUnits : 6
after applying CanUseNeinzulRegenerator if any, numberUnits : 6
after applying Mark-based multiplier if any, numberUnits : 6
after applying at-least-one rule, numberUnits : 6
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 18
numberUnitsInt = numberUnits.IntValue : 18
after at-least-effective-ship-cap-rule, numberUnitsInt : 98

CheckWave: populating count of Fighter with base magnitude of 15
numberUnits = kv.Value * this.WaveSize : 15
after applying ShipCapMultiplier if any, numberUnits : 7.5
after applying CanUseNeinzulRegenerator if any, numberUnits : 7.5
after applying Mark-based multiplier if any, numberUnits : 7.5
after applying at-least-one rule, numberUnits : 7.5
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 22.5
numberUnitsInt = numberUnits.IntValue : 22
after at-least-effective-ship-cap-rule, numberUnitsInt : 98

CheckWave: populating count of VorticularCutlass with base magnitude of 20
numberUnits = kv.Value * this.WaveSize : 20
after applying ShipCapMultiplier if any, numberUnits : 20
after applying CanUseNeinzulRegenerator if any, numberUnits : 20
after applying Mark-based multiplier if any, numberUnits : 20
after applying at-least-one rule, numberUnits : 20
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 60
numberUnitsInt = numberUnits.IntValue : 60
after at-least-effective-ship-cap-rule, numberUnitsInt : 196

CheckWave: populating count of Dreadnought with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 1
after applying ShipCapMultiplier if any, numberUnits : 1
after applying CanUseNeinzulRegenerator if any, numberUnits : 1
after applying Mark-based multiplier if any, numberUnits : 1
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 3
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

CheckWave: populating count of Bomber with base magnitude of 16
numberUnits = kv.Value * this.WaveSize : 16
after applying ShipCapMultiplier if any, numberUnits : 8
after applying CanUseNeinzulRegenerator if any, numberUnits : 8
after applying Mark-based multiplier if any, numberUnits : 8
after applying at-least-one rule, numberUnits : 8
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 24
numberUnitsInt = numberUnits.IntValue : 24
after at-least-effective-ship-cap-rule, numberUnitsInt : 98

Wave total ships: 540
TypesForDirectAdd count by type: 
SpireGravityRipper => 49
MissileShip => 98
Fighter => 98
VorticularCutlass => 196
Dreadnought => 1
Bomber => 98
TypesForCarrierAdd count by type: 


12/1/2010 11:02:52 AM (4.042)
-----------------------------------
Performing first CheckWave with size factor of 1 on wave at Game Time: 0:11:41

CheckWave: populating count of Fighter with base magnitude of 15
numberUnits = kv.Value * this.WaveSize : 15
after applying ShipCapMultiplier if any, numberUnits : 7.5
after applying CanUseNeinzulRegenerator if any, numberUnits : 7.5
after applying Mark-based multiplier if any, numberUnits : 7.5
after applying at-least-one rule, numberUnits : 7.5
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 22.5
numberUnitsInt = numberUnits.IntValue : 22
after at-least-effective-ship-cap-rule, numberUnitsInt : 98

CheckWave: populating count of Bomber with base magnitude of 16
numberUnits = kv.Value * this.WaveSize : 16
after applying ShipCapMultiplier if any, numberUnits : 8
after applying CanUseNeinzulRegenerator if any, numberUnits : 8
after applying Mark-based multiplier if any, numberUnits : 8
after applying at-least-one rule, numberUnits : 8
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 24
numberUnitsInt = numberUnits.IntValue : 24
after at-least-effective-ship-cap-rule, numberUnitsInt : 98

CheckWave: populating count of AutocannonMinipod with base magnitude of 15
numberUnits = kv.Value * this.WaveSize : 15
after applying ShipCapMultiplier if any, numberUnits : 15
after applying CanUseNeinzulRegenerator if any, numberUnits : 15
after applying Mark-based multiplier if any, numberUnits : 15
after applying at-least-one rule, numberUnits : 15
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 45
numberUnitsInt = numberUnits.IntValue : 45
after at-least-effective-ship-cap-rule, numberUnitsInt : 196

CheckWave: populating count of MissileShip with base magnitude of 12
numberUnits = kv.Value * this.WaveSize : 12
after applying ShipCapMultiplier if any, numberUnits : 6
after applying CanUseNeinzulRegenerator if any, numberUnits : 6
after applying Mark-based multiplier if any, numberUnits : 6
after applying at-least-one rule, numberUnits : 6
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 18
numberUnitsInt = numberUnits.IntValue : 18
after at-least-effective-ship-cap-rule, numberUnitsInt : 98

CheckWave: populating count of ZenithParalyzer with base magnitude of 12
numberUnits = kv.Value * this.WaveSize : 12
after applying ShipCapMultiplier if any, numberUnits : 6
after applying CanUseNeinzulRegenerator if any, numberUnits : 6
after applying Mark-based multiplier if any, numberUnits : 6
after applying at-least-one rule, numberUnits : 6
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 18
numberUnitsInt = numberUnits.IntValue : 18
after at-least-effective-ship-cap-rule, numberUnitsInt : 98

CheckWave: populating count of LightStarship with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 1
after applying ShipCapMultiplier if any, numberUnits : 1
after applying CanUseNeinzulRegenerator if any, numberUnits : 1
after applying Mark-based multiplier if any, numberUnits : 1
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 3
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

Wave total ships: 589
TypesForDirectAdd count by type: 
Fighter => 98
Bomber => 98
AutocannonMinipod => 196
MissileShip => 98
ZenithParalyzer => 98
LightStarship => 1
TypesForCarrierAdd count by type: 


Master Cylinder Pants

Dec 1, 2010 11:30 am

reporter   ~0004768

@Nihilus - that's what I was thinking too - a full wave for each type.

Nihilus

Dec 1, 2010 11:31 am

reporter   ~0004769

Reading through my log now, and yep, that's what's happening. It's applying the 100 unit floor for each unit type, from an Everything AI with Schizo enabled.... pretty cool, actually, but definitely a bug and not a feature :P

keith.lamothe

Dec 1, 2010 11:32 am

administrator   ~0004770

Thanks for the files, will take a look :)

And Nihilus, if you use advanced logging you can compare the everything-AI and the other-AI's computations, which is much more valuable than speculation :) That said, I think some of the minimum-number logic may be interacting with the large number of distinct types to create an abnormally large wave, yes.

keith.lamothe

Dec 1, 2010 11:34 am

administrator   ~0004771

It doesn't actually do a full wave for each type, it spreads the raw numbers across the types randomly, but the raw numbers are transformed into the final numbers via logic that includes some minimum-count logic designed to avoid waves of 1 zenith electric bomber, etc. It may be that schizo needs to reduce or ignore the minimums.

Nihilus

Dec 1, 2010 11:38 am

reporter   ~0004772

Bingo. I would say ignore the minimums, because the initial AddInboundWave has almost all 1 and 2 of each type, only a few 3's. Any floor higher than that could potentially double what it should be.

Master Cylinder Pants

Dec 1, 2010 11:41 am

reporter   ~0004773

Yeah, pure speculation from users... got to love it.

Master Cylinder Pants

Dec 1, 2010 11:42 am

reporter   ~0004774

Well, from me anyhow... Nihilus seems to know something. But it's pure blind hip shot on my end.

Vinraith

Dec 1, 2010 12:42 pm

reporter   ~0004777

Last edited: Dec 1, 2010 1:01 pm

It was filed under 4.041 because 4.042 wasn't available via the drop down in Mantis, at least at the time. I should have thought to turn on the advanced logging, will do so now and reproduce those waves.

Edit: Not that you even need more, but those have been added as OP_ for reference.

Vinraith

Dec 1, 2010 1:01 pm

reporter  

OP_AIThreadWaveComputationLog.txt (2,987 bytes)   
12/1/2010 12:57:38 PM (4.042)
-----------------------------------
Starting CreateMixedWaveToPlanet at Game Time: 0:11:10 ; Player.AIType: Golemite ; Player.AIDifficulty: 7.3 ; AIProgressionLevel: 21 ; AITechLevel: 1 ; WaveSize: 1
aiTypeBasedAIPIncrement : 0
workingShips = ( ( AIProgressionLevel * Player.AIDifficulty ) / ( 11 - Player.AIDifficulty ) ) : 41.43
workingShips *= FInt.FromParts( 1, AILoop.Instance.AIRandom.Next( 0, 300 ) ) : 44.2
workingShips = Min(workingShips,Player.AIDifficulty * 20) :146
workingShips = Min(workingShips,Player.AIDifficulty * 10) :146
numberShips = workingShips.IntValue :145
after AdjustNumberShipsFromAIType call, numberShips :72
numberTech123 = numberShips - numberDefensive - numberExplosive - numberCore :72


12/1/2010 12:57:38 PM (4.042)
-----------------------------------
Starting CreateMixedWaveToPlanet at Game Time: 0:11:10 ; Player.AIType: Golemite ; Player.AIDifficulty: 7.3 ; AIProgressionLevel: 21 ; AITechLevel: 1 ; WaveSize: 1
aiTypeBasedAIPIncrement : 0
workingShips = ( ( AIProgressionLevel * Player.AIDifficulty ) / ( 11 - Player.AIDifficulty ) ) : 41.43
workingShips *= FInt.FromParts( 1, AILoop.Instance.AIRandom.Next( 0, 300 ) ) : 53.19
workingShips = Min(workingShips,Player.AIDifficulty * 20) :146
workingShips = Min(workingShips,Player.AIDifficulty * 10) :146
numberShips = workingShips.IntValue :145
after AdjustNumberShipsFromAIType call, numberShips :72
numberTech123 = numberShips - numberDefensive - numberExplosive - numberCore :72


12/1/2010 12:57:38 PM (4.042)
-----------------------------------
Starting CreateMixedWaveToPlanet at Game Time: 0:11:10 ; Player.AIType: Stealth_Master ; Player.AIDifficulty: 7.3 ; AIProgressionLevel: 21 ; AITechLevel: 1 ; WaveSize: 1
aiTypeBasedAIPIncrement : 0
workingShips = ( ( AIProgressionLevel * Player.AIDifficulty ) / ( 11 - Player.AIDifficulty ) ) : 41.43
workingShips *= FInt.FromParts( 1, AILoop.Instance.AIRandom.Next( 0, 300 ) ) : 42.5
workingShips = Min(workingShips,Player.AIDifficulty * 20) :146
workingShips = Min(workingShips,Player.AIDifficulty * 10) :146
numberShips = workingShips.IntValue :145
after AdjustNumberShipsFromAIType call, numberShips :72


12/1/2010 12:57:38 PM (4.042)
-----------------------------------
Starting CreateMixedWaveToPlanet at Game Time: 0:11:10 ; Player.AIType: Stealth_Master ; Player.AIDifficulty: 7.3 ; AIProgressionLevel: 21 ; AITechLevel: 1 ; WaveSize: 1
aiTypeBasedAIPIncrement : 0
workingShips = ( ( AIProgressionLevel * Player.AIDifficulty ) / ( 11 - Player.AIDifficulty ) ) : 41.43
workingShips *= FInt.FromParts( 1, AILoop.Instance.AIRandom.Next( 0, 300 ) ) : 44.2
workingShips = Min(workingShips,Player.AIDifficulty * 20) :146
workingShips = Min(workingShips,Player.AIDifficulty * 10) :146
numberShips = workingShips.IntValue :145
after AdjustNumberShipsFromAIType call, numberShips :72
numberTech123 = numberShips - numberDefensive - numberExplosive - numberCore :72


Vinraith

Dec 1, 2010 1:01 pm

reporter  

OP_MainThreadWaveComputationLog.txt (18,940 bytes)   
12/1/2010 12:57:38 PM (4.042)
-----------------------------------
Triggering Normal Wave; wave size factor: 1; Game Time: 0:11:11

12/1/2010 12:57:38 PM (4.042)
-----------------------------------
Triggering Normal Wave; wave size factor: 1; Game Time: 0:11:11

12/1/2010 12:57:38 PM (4.042)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 0:11:11
WaveSize factor: 1
Raw Units Dictionary Entries: 
Fighter => 14
Raider => 17
SpacePlane => 15
Bomber => 15
Dreadnought => 1
MissileShip => 11


12/1/2010 12:57:38 PM (4.042)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 0:11:11
WaveSize factor: 1
Raw Units Dictionary Entries: 
Fighter => 14
SpacePlane => 17
MissileShip => 12
Bomber => 19
Raider => 10
LeechStarship => 1


12/1/2010 12:57:38 PM (4.042)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 0:11:11
WaveSize factor: 1
Raw Units Dictionary Entries: 
EtherJet => 21
SpacePlane => 12
Raptor => 18
AutocannonMinipod => 21
LeechStarship => 1


12/1/2010 12:57:38 PM (4.042)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 0:11:11
WaveSize factor: 1
Raw Units Dictionary Entries: 
AutocannonMinipod => 12
SpaceTank => 8
MicroFighter => 7
MissileShip => 7
Raptor => 10
Fighter => 8
Bomber => 7
EtherJet => 8
SpacePlane => 5
LightStarship => 1


12/1/2010 12:57:38 PM (4.042)
-----------------------------------
Performing first CheckWave with size factor of 1 on wave at Game Time: 0:11:11

CheckWave: populating count of Fighter with base magnitude of 14
numberUnits = kv.Value * this.WaveSize : 14
after applying ShipCapMultiplier if any, numberUnits : 7
after applying CanUseNeinzulRegenerator if any, numberUnits : 7
after applying Mark-based multiplier if any, numberUnits : 7
after applying at-least-one rule, numberUnits : 7
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 21
numberUnitsInt = numberUnits.IntValue : 21
after at-least-effective-ship-cap-rule, numberUnitsInt : 89

CheckWave: populating count of Raider with base magnitude of 17
numberUnits = kv.Value * this.WaveSize : 17
after applying ShipCapMultiplier if any, numberUnits : 21.25
after applying CanUseNeinzulRegenerator if any, numberUnits : 21.25
after applying Mark-based multiplier if any, numberUnits : 21.25
after applying at-least-one rule, numberUnits : 21.25
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 63.75
numberUnitsInt = numberUnits.IntValue : 63
after at-least-effective-ship-cap-rule, numberUnitsInt : 222

CheckWave: populating count of SpacePlane with base magnitude of 15
numberUnits = kv.Value * this.WaveSize : 15
after applying ShipCapMultiplier if any, numberUnits : 13.13
after applying CanUseNeinzulRegenerator if any, numberUnits : 13.13
after applying Mark-based multiplier if any, numberUnits : 13.13
after applying at-least-one rule, numberUnits : 13.13
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 39.38
numberUnitsInt = numberUnits.IntValue : 39
after at-least-effective-ship-cap-rule, numberUnitsInt : 155

CheckWave: populating count of Bomber with base magnitude of 15
numberUnits = kv.Value * this.WaveSize : 15
after applying ShipCapMultiplier if any, numberUnits : 7.5
after applying CanUseNeinzulRegenerator if any, numberUnits : 7.5
after applying Mark-based multiplier if any, numberUnits : 7.5
after applying at-least-one rule, numberUnits : 7.5
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 22.5
numberUnitsInt = numberUnits.IntValue : 22
after at-least-effective-ship-cap-rule, numberUnitsInt : 89

CheckWave: populating count of Dreadnought with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 1
after applying ShipCapMultiplier if any, numberUnits : 1
after applying CanUseNeinzulRegenerator if any, numberUnits : 1
after applying Mark-based multiplier if any, numberUnits : 1
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 3
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

CheckWave: populating count of MissileShip with base magnitude of 11
numberUnits = kv.Value * this.WaveSize : 11
after applying ShipCapMultiplier if any, numberUnits : 5.5
after applying CanUseNeinzulRegenerator if any, numberUnits : 5.5
after applying Mark-based multiplier if any, numberUnits : 5.5
after applying at-least-one rule, numberUnits : 5.5
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 16.5
numberUnitsInt = numberUnits.IntValue : 16
after at-least-effective-ship-cap-rule, numberUnitsInt : 89

Wave total ships: 645
TypesForDirectAdd count by type: 
Fighter => 89
Raider => 222
SpacePlane => 155
Bomber => 89
Dreadnought => 1
MissileShip => 89
TypesForCarrierAdd count by type: 


12/1/2010 12:57:38 PM (4.042)
-----------------------------------
Performing first CheckWave with size factor of 1 on wave at Game Time: 0:11:11

CheckWave: populating count of Fighter with base magnitude of 14
numberUnits = kv.Value * this.WaveSize : 14
after applying ShipCapMultiplier if any, numberUnits : 7
after applying CanUseNeinzulRegenerator if any, numberUnits : 7
after applying Mark-based multiplier if any, numberUnits : 7
after applying at-least-one rule, numberUnits : 7
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 21
numberUnitsInt = numberUnits.IntValue : 21
after at-least-effective-ship-cap-rule, numberUnitsInt : 89

CheckWave: populating count of SpacePlane with base magnitude of 17
numberUnits = kv.Value * this.WaveSize : 17
after applying ShipCapMultiplier if any, numberUnits : 14.88
after applying CanUseNeinzulRegenerator if any, numberUnits : 14.88
after applying Mark-based multiplier if any, numberUnits : 14.88
after applying at-least-one rule, numberUnits : 14.88
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 44.63
numberUnitsInt = numberUnits.IntValue : 44
after at-least-effective-ship-cap-rule, numberUnitsInt : 155

CheckWave: populating count of MissileShip with base magnitude of 12
numberUnits = kv.Value * this.WaveSize : 12
after applying ShipCapMultiplier if any, numberUnits : 6
after applying CanUseNeinzulRegenerator if any, numberUnits : 6
after applying Mark-based multiplier if any, numberUnits : 6
after applying at-least-one rule, numberUnits : 6
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 18
numberUnitsInt = numberUnits.IntValue : 18
after at-least-effective-ship-cap-rule, numberUnitsInt : 89

CheckWave: populating count of Bomber with base magnitude of 19
numberUnits = kv.Value * this.WaveSize : 19
after applying ShipCapMultiplier if any, numberUnits : 9.5
after applying CanUseNeinzulRegenerator if any, numberUnits : 9.5
after applying Mark-based multiplier if any, numberUnits : 9.5
after applying at-least-one rule, numberUnits : 9.5
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 28.5
numberUnitsInt = numberUnits.IntValue : 28
after at-least-effective-ship-cap-rule, numberUnitsInt : 89

CheckWave: populating count of Raider with base magnitude of 10
numberUnits = kv.Value * this.WaveSize : 10
after applying ShipCapMultiplier if any, numberUnits : 12.5
after applying CanUseNeinzulRegenerator if any, numberUnits : 12.5
after applying Mark-based multiplier if any, numberUnits : 12.5
after applying at-least-one rule, numberUnits : 12.5
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 37.5
numberUnitsInt = numberUnits.IntValue : 37
after at-least-effective-ship-cap-rule, numberUnitsInt : 222

CheckWave: populating count of LeechStarship with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 1
after applying ShipCapMultiplier if any, numberUnits : 1
after applying CanUseNeinzulRegenerator if any, numberUnits : 1
after applying Mark-based multiplier if any, numberUnits : 1
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 3
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

Wave total ships: 645
TypesForDirectAdd count by type: 
Fighter => 89
SpacePlane => 155
MissileShip => 89
Bomber => 89
Raider => 222
LeechStarship => 1
TypesForCarrierAdd count by type: 


12/1/2010 12:57:38 PM (4.042)
-----------------------------------
Performing first CheckWave with size factor of 1 on wave at Game Time: 0:11:11

CheckWave: populating count of EtherJet with base magnitude of 21
numberUnits = kv.Value * this.WaveSize : 21
after applying ShipCapMultiplier if any, numberUnits : 15.75
after applying CanUseNeinzulRegenerator if any, numberUnits : 15.75
after applying Mark-based multiplier if any, numberUnits : 15.75
after applying at-least-one rule, numberUnits : 15.75
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 47.25
numberUnitsInt = numberUnits.IntValue : 47
after at-least-effective-ship-cap-rule, numberUnitsInt : 133

CheckWave: populating count of SpacePlane with base magnitude of 12
numberUnits = kv.Value * this.WaveSize : 12
after applying ShipCapMultiplier if any, numberUnits : 10.5
after applying CanUseNeinzulRegenerator if any, numberUnits : 10.5
after applying Mark-based multiplier if any, numberUnits : 10.5
after applying at-least-one rule, numberUnits : 10.5
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 31.5
numberUnitsInt = numberUnits.IntValue : 31
after at-least-effective-ship-cap-rule, numberUnitsInt : 155

CheckWave: populating count of Raptor with base magnitude of 18
numberUnits = kv.Value * this.WaveSize : 18
after applying ShipCapMultiplier if any, numberUnits : 9
after applying CanUseNeinzulRegenerator if any, numberUnits : 9
after applying Mark-based multiplier if any, numberUnits : 9
after applying at-least-one rule, numberUnits : 9
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 27
numberUnitsInt = numberUnits.IntValue : 27
after at-least-effective-ship-cap-rule, numberUnitsInt : 89

CheckWave: populating count of AutocannonMinipod with base magnitude of 21
numberUnits = kv.Value * this.WaveSize : 21
after applying ShipCapMultiplier if any, numberUnits : 21
after applying CanUseNeinzulRegenerator if any, numberUnits : 21
after applying Mark-based multiplier if any, numberUnits : 21
after applying at-least-one rule, numberUnits : 21
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 63
numberUnitsInt = numberUnits.IntValue : 63
after at-least-effective-ship-cap-rule, numberUnitsInt : 178

CheckWave: populating count of LeechStarship with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 1
after applying ShipCapMultiplier if any, numberUnits : 1
after applying CanUseNeinzulRegenerator if any, numberUnits : 1
after applying Mark-based multiplier if any, numberUnits : 1
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 3
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

Wave total ships: 556
TypesForDirectAdd count by type: 
EtherJet => 133
SpacePlane => 155
Raptor => 89
AutocannonMinipod => 178
LeechStarship => 1
TypesForCarrierAdd count by type: 


12/1/2010 12:57:38 PM (4.042)
-----------------------------------
Performing first CheckWave with size factor of 1 on wave at Game Time: 0:11:11

CheckWave: populating count of AutocannonMinipod with base magnitude of 12
numberUnits = kv.Value * this.WaveSize : 12
after applying ShipCapMultiplier if any, numberUnits : 12
after applying CanUseNeinzulRegenerator if any, numberUnits : 12
after applying Mark-based multiplier if any, numberUnits : 12
after applying at-least-one rule, numberUnits : 12
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 36
numberUnitsInt = numberUnits.IntValue : 36
after at-least-effective-ship-cap-rule, numberUnitsInt : 178

CheckWave: populating count of SpaceTank with base magnitude of 8
numberUnits = kv.Value * this.WaveSize : 8
after applying ShipCapMultiplier if any, numberUnits : 4
after applying CanUseNeinzulRegenerator if any, numberUnits : 4
after applying Mark-based multiplier if any, numberUnits : 4
after applying at-least-one rule, numberUnits : 4
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 12
numberUnitsInt = numberUnits.IntValue : 12
after at-least-effective-ship-cap-rule, numberUnitsInt : 89

CheckWave: populating count of MicroFighter with base magnitude of 7
numberUnits = kv.Value * this.WaveSize : 7
after applying ShipCapMultiplier if any, numberUnits : 5.25
after applying CanUseNeinzulRegenerator if any, numberUnits : 5.25
after applying Mark-based multiplier if any, numberUnits : 5.25
after applying at-least-one rule, numberUnits : 5.25
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 15.75
numberUnitsInt = numberUnits.IntValue : 15
after at-least-effective-ship-cap-rule, numberUnitsInt : 133

CheckWave: populating count of MissileShip with base magnitude of 7
numberUnits = kv.Value * this.WaveSize : 7
after applying ShipCapMultiplier if any, numberUnits : 3.5
after applying CanUseNeinzulRegenerator if any, numberUnits : 3.5
after applying Mark-based multiplier if any, numberUnits : 3.5
after applying at-least-one rule, numberUnits : 3.5
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 10.5
numberUnitsInt = numberUnits.IntValue : 10
after at-least-effective-ship-cap-rule, numberUnitsInt : 89

CheckWave: populating count of Raptor with base magnitude of 10
numberUnits = kv.Value * this.WaveSize : 10
after applying ShipCapMultiplier if any, numberUnits : 5
after applying CanUseNeinzulRegenerator if any, numberUnits : 5
after applying Mark-based multiplier if any, numberUnits : 5
after applying at-least-one rule, numberUnits : 5
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 15
numberUnitsInt = numberUnits.IntValue : 15
after at-least-effective-ship-cap-rule, numberUnitsInt : 89

CheckWave: populating count of Fighter with base magnitude of 8
numberUnits = kv.Value * this.WaveSize : 8
after applying ShipCapMultiplier if any, numberUnits : 4
after applying CanUseNeinzulRegenerator if any, numberUnits : 4
after applying Mark-based multiplier if any, numberUnits : 4
after applying at-least-one rule, numberUnits : 4
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 12
numberUnitsInt = numberUnits.IntValue : 12
after at-least-effective-ship-cap-rule, numberUnitsInt : 89

CheckWave: populating count of Bomber with base magnitude of 7
numberUnits = kv.Value * this.WaveSize : 7
after applying ShipCapMultiplier if any, numberUnits : 3.5
after applying CanUseNeinzulRegenerator if any, numberUnits : 3.5
after applying Mark-based multiplier if any, numberUnits : 3.5
after applying at-least-one rule, numberUnits : 3.5
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 10.5
numberUnitsInt = numberUnits.IntValue : 10
after at-least-effective-ship-cap-rule, numberUnitsInt : 89

CheckWave: populating count of EtherJet with base magnitude of 8
numberUnits = kv.Value * this.WaveSize : 8
after applying ShipCapMultiplier if any, numberUnits : 6
after applying CanUseNeinzulRegenerator if any, numberUnits : 6
after applying Mark-based multiplier if any, numberUnits : 6
after applying at-least-one rule, numberUnits : 6
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 18
numberUnitsInt = numberUnits.IntValue : 18
after at-least-effective-ship-cap-rule, numberUnitsInt : 133

CheckWave: populating count of SpacePlane with base magnitude of 5
numberUnits = kv.Value * this.WaveSize : 5
after applying ShipCapMultiplier if any, numberUnits : 4.38
after applying CanUseNeinzulRegenerator if any, numberUnits : 4.38
after applying Mark-based multiplier if any, numberUnits : 4.38
after applying at-least-one rule, numberUnits : 4.38
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 13.13
numberUnitsInt = numberUnits.IntValue : 13
after at-least-effective-ship-cap-rule, numberUnitsInt : 155

CheckWave: populating count of LightStarship with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 1
after applying ShipCapMultiplier if any, numberUnits : 1
after applying CanUseNeinzulRegenerator if any, numberUnits : 1
after applying Mark-based multiplier if any, numberUnits : 1
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 3
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

Wave total ships: 1045
TypesForDirectAdd count by type: 
AutocannonMinipod => 178
SpaceTank => 89
MicroFighter => 133
MissileShip => 89
Raptor => 89
Fighter => 89
Bomber => 89
EtherJet => 133
SpacePlane => 111
LightStarship => 1
TypesForCarrierAdd count by type: 
SpacePlane => 44


keith.lamothe

Dec 1, 2010 1:08 pm

administrator   ~0004780

Ok, this one has been stuffed and mounted on the trophy rack, thanks :)

Of course, the early waves can still be fairly big, as you can see:

12/1/2010 1:03:09 PM (4.042)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 0:11:41
WaveSize factor: 1
Raw Units Dictionary Entries:
MissileShip => 26
SentinelFrigate => 28
Fighter => 32
VampireClaw => 31
LightStarship => 1
Bomber => 23

12/1/2010 1:03:09 PM (4.042)
-----------------------------------
Performing first CheckWave with size factor of 1 on wave at Game Time: 0:11:41

CheckWave: populating count of MissileShip with base magnitude of 26
numberUnits = kv.Value * this.WaveSize : 26
after applying ShipCapMultiplier if any, numberUnits : 26
after applying CanUseNeinzulRegenerator if any, numberUnits : 26
after applying Mark-based multiplier if any, numberUnits : 26
after applying at-least-one rule, numberUnits : 26
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 78
numberUnitsInt = numberUnits.IntValue : 78
skipping at-least-effective-ship-cap-rule due to multiple non-starship types

CheckWave: populating count of SentinelFrigate with base magnitude of 28
numberUnits = kv.Value * this.WaveSize : 28
after applying ShipCapMultiplier if any, numberUnits : 2.8
after applying CanUseNeinzulRegenerator if any, numberUnits : 2.8
after applying Mark-based multiplier if any, numberUnits : 2.8
after applying at-least-one rule, numberUnits : 2.8
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 8.39
numberUnitsInt = numberUnits.IntValue : 8
skipping at-least-effective-ship-cap-rule due to multiple non-starship types

CheckWave: populating count of Fighter with base magnitude of 32
numberUnits = kv.Value * this.WaveSize : 32
after applying ShipCapMultiplier if any, numberUnits : 32
after applying CanUseNeinzulRegenerator if any, numberUnits : 32
after applying Mark-based multiplier if any, numberUnits : 32
after applying at-least-one rule, numberUnits : 32
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 96
numberUnitsInt = numberUnits.IntValue : 96
skipping at-least-effective-ship-cap-rule due to multiple non-starship types

CheckWave: populating count of VampireClaw with base magnitude of 31
numberUnits = kv.Value * this.WaveSize : 31
after applying ShipCapMultiplier if any, numberUnits : 18.6
after applying CanUseNeinzulRegenerator if any, numberUnits : 18.6
after applying Mark-based multiplier if any, numberUnits : 18.6
after applying at-least-one rule, numberUnits : 18.6
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 55.79
numberUnitsInt = numberUnits.IntValue : 55
skipping at-least-effective-ship-cap-rule due to multiple non-starship types

CheckWave: populating count of LightStarship with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 1
after applying ShipCapMultiplier if any, numberUnits : 1
after applying CanUseNeinzulRegenerator if any, numberUnits : 1
after applying Mark-based multiplier if any, numberUnits : 1
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 3
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

CheckWave: populating count of Bomber with base magnitude of 23
numberUnits = kv.Value * this.WaveSize : 23
after applying ShipCapMultiplier if any, numberUnits : 23
after applying CanUseNeinzulRegenerator if any, numberUnits : 23
after applying Mark-based multiplier if any, numberUnits : 23
after applying at-least-one rule, numberUnits : 23
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 69
numberUnitsInt = numberUnits.IntValue : 69
skipping at-least-effective-ship-cap-rule due to multiple non-starship types

Wave total ships: 307
TypesForDirectAdd count by type:
MissileShip => 78
SentinelFrigate => 8
Fighter => 96
VampireClaw => 55
LightStarship => 1
Bomber => 69

But that's at least working as designed, no funny business. Note that this was with 2x waves and schizo on.

keith.lamothe

Dec 1, 2010 1:20 pm

administrator   ~0004781

Ah, I found another bug with how it was handling minimum-wave-size-by-difficulty, and roughly doubling that; here's a wave calc with that fixed:

12/1/2010 1:17:04 PM (4.042)
-----------------------------------
Triggering Normal Wave; wave size factor: 1; Game Time: 0:11:40

12/1/2010 1:17:04 PM (4.042)
-----------------------------------
Starting CreateMixedWaveToPlanet at Game Time: 0:11:39 ; Player.AIType: Vanilla ; Player.AIDifficulty: 7 ; AIProgressionLevel: 12 ; AITechLevel: 1 ; WaveSize: 1
aiTypeBasedAIPIncrement : 0
workingShips = ( ( AIProgressionLevel * Player.AIDifficulty ) / ( 11 - Player.AIDifficulty ) ) : 21
workingShips *= FInt.FromParts( 1, AILoop.Instance.AIRandom.Next( 0, 300 ) ) : 22.07
workingShips = Min(workingShips,Player.AIDifficulty * 10) :70
numberShips = workingShips.IntValue :70
after AdjustNumberShipsFromAIType call, numberShips :70
numberTech123 = numberShips - numberDefensive - numberExplosive - numberCore :70

12/1/2010 1:17:04 PM (4.042)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 0:11:43
WaveSize factor: 1
Raw Units Dictionary Entries:
Bomber => 15
Fighter => 14
MissileShip => 12
Infiltrator => 13
Sniper => 16
LeechStarship => 1

12/1/2010 1:17:05 PM (4.042)
-----------------------------------
Performing first CheckWave with size factor of 1 on wave at Game Time: 0:11:43

CheckWave: populating count of Bomber with base magnitude of 15
numberUnits = kv.Value * this.WaveSize : 15
after applying ShipCapMultiplier if any, numberUnits : 15
after applying CanUseNeinzulRegenerator if any, numberUnits : 15
after applying Mark-based multiplier if any, numberUnits : 15
after applying at-least-one rule, numberUnits : 15
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 45
numberUnitsInt = numberUnits.IntValue : 45
skipping at-least-effective-ship-cap-rule due to multiple non-starship types

CheckWave: populating count of Fighter with base magnitude of 14
numberUnits = kv.Value * this.WaveSize : 14
after applying ShipCapMultiplier if any, numberUnits : 14
after applying CanUseNeinzulRegenerator if any, numberUnits : 14
after applying Mark-based multiplier if any, numberUnits : 14
after applying at-least-one rule, numberUnits : 14
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 42
numberUnitsInt = numberUnits.IntValue : 42
skipping at-least-effective-ship-cap-rule due to multiple non-starship types

CheckWave: populating count of MissileShip with base magnitude of 12
numberUnits = kv.Value * this.WaveSize : 12
after applying ShipCapMultiplier if any, numberUnits : 12
after applying CanUseNeinzulRegenerator if any, numberUnits : 12
after applying Mark-based multiplier if any, numberUnits : 12
after applying at-least-one rule, numberUnits : 12
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 36
numberUnitsInt = numberUnits.IntValue : 36
skipping at-least-effective-ship-cap-rule due to multiple non-starship types

CheckWave: populating count of Infiltrator with base magnitude of 13
numberUnits = kv.Value * this.WaveSize : 13
after applying ShipCapMultiplier if any, numberUnits : 36.4
after applying CanUseNeinzulRegenerator if any, numberUnits : 36.4
after applying Mark-based multiplier if any, numberUnits : 36.4
after applying at-least-one rule, numberUnits : 36.4
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 109.19
numberUnitsInt = numberUnits.IntValue : 109
skipping at-least-effective-ship-cap-rule due to multiple non-starship types

CheckWave: populating count of Sniper with base magnitude of 16
numberUnits = kv.Value * this.WaveSize : 16
after applying ShipCapMultiplier if any, numberUnits : 3.2
after applying CanUseNeinzulRegenerator if any, numberUnits : 3.2
after applying Mark-based multiplier if any, numberUnits : 3.2
after applying at-least-one rule, numberUnits : 3.2
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 9.6
numberUnitsInt = numberUnits.IntValue : 9
skipping at-least-effective-ship-cap-rule due to multiple non-starship types

CheckWave: populating count of LeechStarship with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 1
after applying ShipCapMultiplier if any, numberUnits : 1
after applying CanUseNeinzulRegenerator if any, numberUnits : 1
after applying Mark-based multiplier if any, numberUnits : 1
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based (if >= 8 then 4, if >= 7 then 3, if >= 6 then 2, else 1) multiplier if any, numberUnits : 3
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

Wave total ships: 242
TypesForDirectAdd count by type:
Bomber => 45
Fighter => 42
MissileShip => 36
Infiltrator => 109
Sniper => 9
LeechStarship => 1

Again, 2x waves with schizo (note that 2x doesn't impact wave size _at all_, just the timing; without that I would have had to run the test longer to get the wave trigger).

Master Cylinder Pants

Dec 1, 2010 1:49 pm

reporter   ~0004785

Wow, that was fast - thank you! Looking forward to the update!

keith.lamothe

Dec 1, 2010 1:51 pm

administrator   ~0004787

Our pleasure, I hope that 4.043 will be out tonight but I'm not sure what the schedule looks like.

Issue History

Date Modified Username Field Change
Dec 1, 2010 1:13 am Vinraith New Issue
Dec 1, 2010 1:13 am Vinraith File Added: excessive waves.sav
Dec 1, 2010 1:17 am Vinraith Description Updated
Dec 1, 2010 1:18 am Vinraith File Added: Screenshot_2010_12_01_01_03_43.png
Dec 1, 2010 1:23 am Master Cylinder Pants Note Added: 0004718
Dec 1, 2010 7:22 am keith.lamothe Note Added: 0004720
Dec 1, 2010 7:22 am keith.lamothe Assigned To => keith.lamothe
Dec 1, 2010 7:22 am keith.lamothe Status new => feedback
Dec 1, 2010 11:07 am Master Cylinder Pants Note Added: 0004759
Dec 1, 2010 11:09 am Master Cylinder Pants File Added: simple ships - no schitz Screenshot_2010_12_01_10_56_11.png
Dec 1, 2010 11:09 am Master Cylinder Pants File Added: simple ships - no schitz.sav
Dec 1, 2010 11:10 am Master Cylinder Pants File Added: simple ships - non schitz AIThreadWaveComputationLog.txt
Dec 1, 2010 11:10 am Master Cylinder Pants File Added: complex ships - schitz on AIThreadWaveComputationLog.txt
Dec 1, 2010 11:10 am Master Cylinder Pants File Added: complex ships - schitz on.sav
Dec 1, 2010 11:10 am Master Cylinder Pants File Added: complex ships -schitz on Screenshot_2010_12_01_11_02_56.png
Dec 1, 2010 11:11 am Master Cylinder Pants Note Added: 0004761
Dec 1, 2010 11:13 am Master Cylinder Pants Note Added: 0004762
Dec 1, 2010 11:15 am keith.lamothe Note Added: 0004764
Dec 1, 2010 11:24 am Nihilus File Added: impossible early wave.sav
Dec 1, 2010 11:24 am Nihilus Note Added: 0004766
Dec 1, 2010 11:29 am Master Cylinder Pants Note Added: 0004767
Dec 1, 2010 11:29 am Master Cylinder Pants File Added: full MainThreadWaveComputationLog.txt
Dec 1, 2010 11:30 am Master Cylinder Pants Note Added: 0004768
Dec 1, 2010 11:31 am Nihilus Note Added: 0004769
Dec 1, 2010 11:32 am keith.lamothe Note Added: 0004770
Dec 1, 2010 11:34 am keith.lamothe Note Added: 0004771
Dec 1, 2010 11:38 am Nihilus Note Added: 0004772
Dec 1, 2010 11:41 am Master Cylinder Pants Note Added: 0004773
Dec 1, 2010 11:42 am Master Cylinder Pants Note Added: 0004774
Dec 1, 2010 12:42 pm Vinraith Note Added: 0004777
Dec 1, 2010 12:42 pm Vinraith Status feedback => assigned
Dec 1, 2010 1:00 pm Vinraith Note Edited: 0004777
Dec 1, 2010 1:01 pm Vinraith File Added: OP_AIThreadWaveComputationLog.txt
Dec 1, 2010 1:01 pm Vinraith File Added: OP_MainThreadWaveComputationLog.txt
Dec 1, 2010 1:01 pm Vinraith Note Edited: 0004777
Dec 1, 2010 1:01 pm Vinraith Product Version 4.041 => 4.042
Dec 1, 2010 1:08 pm keith.lamothe Note Added: 0004780
Dec 1, 2010 1:08 pm keith.lamothe Status assigned => resolved
Dec 1, 2010 1:08 pm keith.lamothe Resolution open => fixed
Dec 1, 2010 1:20 pm keith.lamothe Note Added: 0004781
Dec 1, 2010 1:49 pm Master Cylinder Pants Note Added: 0004785
Dec 1, 2010 1:51 pm keith.lamothe Note Added: 0004787