View Issue Details

IDProjectCategoryLast Update
0002869AI War 1 / ClassicSuggestion - AI Behavior And TacticsDec 7, 2012 5:26 pm
ReporterTechSY730 Assigned Tokeith.lamothe  
Status closedResolutionwon't fix 
Product Version5.000 
Summary0002869: Give the "starship like" tier of fleet ships a hard cap in waves
DescriptionI'm not going to repost my whole "fleet tier" breakdown again, but just for reference, things in the starship like tier have starship like caps (2-5 or so), starship like stats, and starship like attack power and/or durability, and starship like costs. This would include (but is not limited to) Spire stealth battleships and Spire maws.

Basically, these ships are starships in everything but name. There is a very good reason why starships are given hard caps in waves.

This suggestion would prevent absurd situations like 50 spire stealth battleships in one wave. (As reported by Draco18s)


A more elegant solution would be to make their "starshipness" formal, and move them to the actual starship class. But, I'm not sure how much hacking of the code would be necessary to implement "bonus starship types" in addition to bonus fleet ship types.
TagsNo tags attached.
Internal Weight

Relationships

related to 0002891 resolvedkeith.lamothe Impossible Situation, 0000686:0001200 Spire Maws (II) in standard attack wave 2 hours in 
related to 0009987 new Refactor very low cap fleet ships into bonus starships 

Activities

keith.lamothe

Feb 19, 2011 9:44 am

administrator   ~0010503

Well, if for some reason we had a wave where the "main body" was composed of, say, leech starships, the numbers would not be hard capped. The only reason they're hard-capped in waves right now is that they're just an "add on" on top of the main wave.

If there is a specific case where the waves are too large, please submit the wave calculation logs so we can check how the math arrived at (for instance) 50 stealth battleships.

The SSB has a ship cap multiplier of 0.03. So in theory you'd only see a 50-SSB wave in a context where it would be normal to see a wave of 1650 fighters (or bombers, or missile frigates, or anything else with a 1.0 multiplier).

Are 50 SSBs inherently more dangerous than 1650 of any such other fleet ship type?

Or were the other waves that were of those 1.0-multiplier types way smaller than 1650?

Red Spot

Feb 19, 2011 9:50 am

reporter   ~0010505

[i]A more elegant solution would be to make their "starshipness" formal, and move them to the actual starship class. But, I'm not sure how much hacking of the code would be necessary to implement "bonus starship types" in addition to bonus fleet ship types.[/i]

Mk4 starship bombers :)

TechSY730

Feb 19, 2011 9:53 am

reporter   ~0010506

Last edited: Feb 19, 2011 9:57 am

Well, would 50 bomber starships, or 50 flagship starships, or (horror upon horrors) 40 raid starships be more dangerous than a huge number of smaller fleet ships?

Again, I am arguing that things like Spire stealth battleship are starships in all but name.

If starships (excepting raid starships) really aren't that threatening, why do they have a hard cap instead of a very low wave multiplier (like .03 or less), like the "starship like" fleet ships do?

EDIT: If starships are threatening enough to deserve a hard cap, then the starship like fleet ships should too.

TechSY730

Feb 19, 2011 9:56 am

reporter   ~0010507

Okay then, it seems like when someone comments on a issue marked as feedback, it is automatically changed to assigned, you may want to look into that.

keith.lamothe

Feb 19, 2011 10:00 am

administrator   ~0010508

What I'm saying is that starships don't have a hard cap because they're that much more dangerous, they have a hard cap (in waves) because they aren't the main body of the wave. If they were, they would not have the hard cap.

And the starship-like fleet ships are staying fleet ships because:
1) We like it that way.
2) There's no code support for "bonus starship types" and adding it would probably take a week of coding and months of bug reports :)

And yea, mantis is weird about that, don't have time to figure out why.

keith.lamothe

Feb 19, 2011 10:04 am

administrator   ~0010509

Oh, my earlier number of 1650 would have been on high caps, by the way. SSBs don't scale with the cap since the number is so low anyhow.

On low caps it would have been more like 410 fleet ships.

For reference, on low caps, a human player in single-player gets (iirc) 5 mkI SSBs and 49 mkI fighters; so if a given SSB is as dangerous as 10 fighters in that case, it's about right. A wave of 50 SSBs in that situation would be "sibling" to a wave of about 410 of said fighters. Which is a bit of a different ratio but not astronomically so.

TechSY730

Feb 19, 2011 10:08 am

reporter   ~0010510

Last edited: Feb 19, 2011 10:11 am

Well, I figured it would not be practical to make bonus starship type logic. Oh well.

So I guess the issue is now is whether that multiplier of .03 is low enough, or if it needs to nerfed further.

Draco, do you have the wave computation log from when you got those 50 spire stealth battleships? That would help us know if you got hit with an appropriately sized wave for your AIP, or if the AI managed to push in more than they should of.

TechSY730

Feb 19, 2011 10:10 am

reporter   ~0010511

What about some of the even more powerful, even lower ships cap spire ships (like spire blade spawners)? What are their multipliers like?

keith.lamothe

Feb 19, 2011 10:12 am

administrator   ~0010512

Blade spawners actually have a higher ship cap (0.05). 0.03 is the lowest a fleet ship goes.

If the SSB is too dangerous at 0.03 I'm much more likely to nerf the ship (say, health and damage down by 10% or 20%). Multipliers that small don't work that great anyway. For one, by all rights the human should get 6 mkIs (0.03 * 200 = 6) but they don't since the base cap is 196.

Red Spot

Feb 19, 2011 11:08 am

reporter   ~0010513

TechSY, what I meant was that there is a way the game handles bonus starships, as seen with for instance the bomber starship mk4. (That isnt exactly the same as normal bonusship, but it also isnt like normal ship/starship.)

Draco18s

Feb 19, 2011 11:09 am

developer   ~0010514

You asked for wave computation logs, and ye shall receive.

This particular wave wasn't an issue to deal with, as they all came through a wormhole with a tachyon drone and 8 tractor beams, but at other times a few of them have slipped past defenses and buried themselves deep in friendly territory.

It was only because they were all stuck in tractor beams that I noticed how many there were.

Based on the logs, it appears as if it is two waves from two AIs, but [i]all 50 of them[/i] showed up as red (the other AI being green). I may have a save post-wave-announcement to double check (according to the in-game timer in my screenshot I would have a save from 92 seconds prior, and the wave-calc time below is 4 minutes prior).

2/18/2011 9:43:04 PM (5.001)
-----------------------------------
Triggering Normal Wave; wave size factor: 0.95; Game Time: 6:17:59

2/18/2011 9:43:05 PM (5.001)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 6:17:59
WaveSize factor: 0.95
Raw Units Dictionary Entries:
SpireStealthBattleshipII => 469
LeechStarshipII => 1


2/18/2011 9:43:05 PM (5.001)
-----------------------------------
Receiving AddInboundWave from AI Thread at Game Time: 6:17:59
WaveSize factor: 0.95
Raw Units Dictionary Entries:
SpireStealthBattleshipII => 456
LeechStarshipII => 2
RaidStarship => 1

2/18/2011 9:43:05 PM (5.001)
-----------------------------------
Performing first CheckWave with size factor of 0.95 on wave at Game Time: 6:17:59

CheckWave: populating count of SpireStealthBattleshipII with base magnitude of 469
numberUnits = kv.Value * this.WaveSize : 447.7
after applying the ship-type-specific cap multiplier (which includes the unit-cap-scale multiplier), numberUnits : 13.33
after applying CanUseNeinzulRegenerator if any, numberUnits : 13.33
after applying Mark-based multiplier if any, numberUnits : 12
after applying at-least-one rule, numberUnits : 12
after applying difficulty-based multiplier (if <= 3 then 1, if <= 4 then 1.5, if <= 5 then 1.75, if <= 6 then 2, if <= 7 then 2.25, anything higher gets 2.5), numberUnits : 27
numberUnitsInt = numberUnits.IntValue : 26

CheckWave: populating count of LeechStarshipII with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 0.95
after applying the ship-type-specific cap multiplier (which includes the unit-cap-scale multiplier), numberUnits : 0.95
after applying CanUseNeinzulRegenerator if any, numberUnits : 0.95
after applying Mark-based multiplier if any, numberUnits : 0.86
after applying at-least-one rule, numberUnits : 1
after applying difficulty-based multiplier (if <= 3 then 1, if <= 4 then 1.5, if <= 5 then 1.75, if <= 6 then 2, if <= 7 then 2.25, anything higher gets 2.5), numberUnits : 2.25
numberUnitsInt = numberUnits.IntValue : 2
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:
SpireStealthBattleshipII => 26
LeechStarshipII => 1
TypesForCarrierAdd count by type:


2/18/2011 9:43:05 PM (5.001)
-----------------------------------
Performing first CheckWave with size factor of 0.95 on wave at Game Time: 6:17:59

CheckWave: populating count of SpireStealthBattleshipII with base magnitude of 456
numberUnits = kv.Value * this.WaveSize : 435.29
after applying the ship-type-specific cap multiplier (which includes the unit-cap-scale multiplier), numberUnits : 12.97
after applying CanUseNeinzulRegenerator if any, numberUnits : 12.97
after applying Mark-based multiplier if any, numberUnits : 11.67
after applying at-least-one rule, numberUnits : 11.67
after applying difficulty-based multiplier (if <= 3 then 1, if <= 4 then 1.5, if <= 5 then 1.75, if <= 6 then 2, if <= 7 then 2.25, anything higher gets 2.5), numberUnits : 26.25
numberUnitsInt = numberUnits.IntValue : 26

CheckWave: populating count of LeechStarshipII with base magnitude of 2
numberUnits = kv.Value * this.WaveSize : 1.91
after applying the ship-type-specific cap multiplier (which includes the unit-cap-scale multiplier), numberUnits : 1.91
after applying CanUseNeinzulRegenerator if any, numberUnits : 1.91
after applying Mark-based multiplier if any, numberUnits : 1.72
after applying at-least-one rule, numberUnits : 1.72
after applying difficulty-based multiplier (if <= 3 then 1, if <= 4 then 1.5, if <= 5 then 1.75, if <= 6 then 2, if <= 7 then 2.25, anything higher gets 2.5), numberUnits : 3.87
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 RaidStarship with base magnitude of 1
numberUnits = kv.Value * this.WaveSize : 0.95
after applying the ship-type-specific cap multiplier (which includes the unit-cap-scale multiplier), numberUnits : 0.95
after applying CanUseNeinzulRegenerator if any, numberUnits : 0.95
after applying Mark-based multiplier if any, numberUnits : 1.43
after applying at-least-one rule, numberUnits : 1.43
after applying difficulty-based multiplier (if <= 3 then 1, if <= 4 then 1.5, if <= 5 then 1.75, if <= 6 then 2, if <= 7 then 2.25, anything higher gets 2.5), numberUnits : 3.22
numberUnitsInt = numberUnits.IntValue : 3
it's a starship so only adding one rule : 1 (had you going there, didn't we)

Wave total ships: 28
TypesForDirectAdd count by type:
SpireStealthBattleshipII => 26
LeechStarshipII => 1
RaidStarship => 1
TypesForCarrierAdd count by type:

keith.lamothe

Feb 19, 2011 11:17 am

administrator   ~0010517

Last edited: Feb 19, 2011 11:17 am

Do you have the AIThread log of the same waves? We have to split the logs since it's bad news to have two separate threads trying to append to the same log file at the same time.

Thanks for the main thread logs, though :)

Draco18s

Feb 19, 2011 11:21 am

developer   ~0010518

*dig dig dig*

2/18/2011 9:43:04 PM (5.001)
-----------------------------------
Starting CreateHomogenousWaveToPlanet at Game Time: 6:17:58 ; Player.AIType: Sledge_Hammer ; Player.AIDifficulty: 7 ; AIProgressionLevel: 351 ; AITechLevel: 2 ; WaveSize: 0.95
aiTypeBasedAIPIncrement : 30
workingShips = ( AIProgressionLevel * player.AIDifficulty ) / ( 13 - player.AIDifficulty ) : 444.5
workingShips *= FInt.FromParts( 0, AILoop.Instance.AIRandom.Next( 800, 1100 ) ) : 469.79
workingShips = Min(workingShips,Player.AIDifficulty * 10) :469.79
numberShips = workingShips.IntValue :469
Inside AdjustNumberShipsFromAIType, multiplier: 1
after AdjustNumberShipsFromAIType call, numberShips :469
numberTech123 = numberShips - numberExplosive - numberCore :469


2/18/2011 9:43:04 PM (5.001)
-----------------------------------
Starting CreateHomogenousWaveToPlanet at Game Time: 6:17:58 ; Player.AIType: Sledge_Hammer ; Player.AIDifficulty: 7 ; AIProgressionLevel: 351 ; AITechLevel: 2 ; WaveSize: 0.95
aiTypeBasedAIPIncrement : 30
workingShips = ( AIProgressionLevel * player.AIDifficulty ) / ( 13 - player.AIDifficulty ) : 444.5
workingShips *= FInt.FromParts( 0, AILoop.Instance.AIRandom.Next( 800, 1100 ) ) : 456.87
workingShips = Min(workingShips,Player.AIDifficulty * 10) :456.87
numberShips = workingShips.IntValue :456
Inside AdjustNumberShipsFromAIType, multiplier: 1
after AdjustNumberShipsFromAIType call, numberShips :456
numberTech123 = numberShips - numberExplosive - numberCore :456

keith.lamothe

Feb 19, 2011 11:34 am

administrator   ~0010520

Thanks :)

Hmm, yea, looks like a double wave from 1 AI player (I need to tell the logs to include the AI player number, though). Was this on a single-player, single-human-homeworld game?

Anyway, the questions on my mind are:
1) Assuming this was low-caps, would a wave (total between the two of them) of 430 Raptors have been significantly easier to deal with? That's roughly the corresponding number it would have used.
2) Does the wave size feel right, whichever ship it would have picked?
3) Is it just a matter of the SSB being OP? Or at least Over-Annoying? ;) I could slow it down to make it easier to catch, etc.

Draco18s

Feb 19, 2011 11:43 am

developer   ~0010523

Last edited: Feb 19, 2011 11:43 am

Two player, single homeworld each.

1) Low Caps (with my current RAM limitation, I *could* have Normal or High, but the game's (mostly) the same so might as well use less CPU)

2) Aside from "bombers munching defenses" its probably OK. This is the farthest into a game I've gotten, its some of those early waves that get too large too fast (the requisite defenses being all high crystal in cost: force fields, tractor beams, and most turrets).

3) I don't think SSBs are "overpowered." They're strong for a "fleet ship" maybe even strong for a "starship" but this is coming from using them as a player. You can micro them very well if you try. In the hands of the AI they're "strong" but not "deadly." I think it stems from their speed + health + damage [i]potential[/i], if your not careful.

That is, their damage isn't scary individually, or even as a group of 4 or 5, but that they can, once inside your borders, hit anywhere and can, without warning, take down a system (due to two things: 1) the non-announcement of FFs under attack and 2) quick death of the command station ones the FF dies).

(SSBs are actually one of the few ships where I'd say that their cloaking favors the player, not the AI. Not often you'll hear that).

keith.lamothe

Feb 19, 2011 11:49 am

administrator   ~0010525

Ok, the two-player explains the double-wave then. Yea, it doesn't sound like anything was much outside the "intended" envelope with those.

The AI can certainly be a bastard with SSBs, though. I ran into them a lot in one of my games and they caused me quite a bit of grief. Mostly because I tend to have a fortified "inner perimeter" and let my "buffer zone" go fairly lightly defended. The SSBs punished me heavily for that practice ;) I was rebuilding command stations an awful lot...

On the bomber waves I have another thing I'm going to try soon.

TechSY730

Feb 19, 2011 2:06 pm

reporter   ~0010527

About the whole bomber wave thing. I personally have had not too much trouble with them. But that may be because I play with schizo waves and tend to spam tractor beam turrets.

I will admit that as my defenses start spreading a little thinner in the mid game, they become more annoying, but not to the point where I would start complaining.

Draco18s

Feb 21, 2011 12:12 am

developer   ~0010566

Schizo means you get bombers more often, but you get fewer of them. Half as many bombers plus the same number of fighters isn't a bad trade.

TechSY730

Mar 22, 2011 6:05 pm

reporter   ~0011243

Reopening because the original suggestion (the hard cap) was not explicitly implemented or rejected.

Can the actual suggestion be implemented or rejected? This way there won't be this sort of weird, ambiguous "Resolved by not changing anything" state the issue previously had.

Chris_McElligottPark

Mar 22, 2011 6:08 pm

administrator   ~0011244

In terms of a hard cap -- that's rejected. As Keith said, if there are specific things that seem off, please submit the wave calculation logs and we'll take a look, but we're not going to reconceptualize this at this time.

TechSY730

Mar 22, 2011 6:11 pm

reporter   ~0011245

Thank you, all I wanted was some unambiguous closure. I sort of liked that idea, but I'm not going to whine that you aren't going for it.

Chris_McElligottPark

Mar 22, 2011 6:13 pm

administrator   ~0011246

That's one of those "we are trying not to reinvent the game at the moment" things that you made us promise not to do -- not that we were planning on it anyway, but just saying. Reclassifying huge numbers of ships and introducing hard caps on something that has largely been working fine (a few cases notwithstanding) is definitely Right Out at the moment. ;)

Issue History

Date Modified Username Field Change
Feb 19, 2011 12:44 am TechSY730 New Issue
Feb 19, 2011 9:44 am keith.lamothe Note Added: 0010503
Feb 19, 2011 9:45 am keith.lamothe Assigned To => keith.lamothe
Feb 19, 2011 9:45 am keith.lamothe Status new => feedback
Feb 19, 2011 9:50 am Red Spot Note Added: 0010505
Feb 19, 2011 9:53 am TechSY730 Note Added: 0010506
Feb 19, 2011 9:53 am TechSY730 Status feedback => assigned
Feb 19, 2011 9:56 am TechSY730 Note Added: 0010507
Feb 19, 2011 9:57 am TechSY730 Note Edited: 0010506
Feb 19, 2011 10:00 am keith.lamothe Note Added: 0010508
Feb 19, 2011 10:04 am keith.lamothe Note Added: 0010509
Feb 19, 2011 10:08 am TechSY730 Note Added: 0010510
Feb 19, 2011 10:10 am TechSY730 Note Added: 0010511
Feb 19, 2011 10:11 am TechSY730 Note Edited: 0010510
Feb 19, 2011 10:12 am keith.lamothe Note Added: 0010512
Feb 19, 2011 11:08 am Red Spot Note Added: 0010513
Feb 19, 2011 11:09 am Draco18s Note Added: 0010514
Feb 19, 2011 11:17 am keith.lamothe Note Added: 0010517
Feb 19, 2011 11:17 am keith.lamothe Note Edited: 0010517
Feb 19, 2011 11:21 am Draco18s Note Added: 0010518
Feb 19, 2011 11:34 am keith.lamothe Note Added: 0010520
Feb 19, 2011 11:43 am Draco18s Note Added: 0010523
Feb 19, 2011 11:43 am Draco18s Note Edited: 0010523
Feb 19, 2011 11:49 am keith.lamothe Note Added: 0010525
Feb 19, 2011 2:06 pm TechSY730 Note Added: 0010527
Feb 20, 2011 7:56 pm XRsyst Relationship added related to 0002891
Feb 20, 2011 10:01 pm keith.lamothe Status assigned => resolved
Feb 20, 2011 10:01 pm keith.lamothe Resolution open => no change required
Feb 21, 2011 12:12 am Draco18s Note Added: 0010566
Mar 22, 2011 6:05 pm TechSY730 Note Added: 0011243
Mar 22, 2011 6:05 pm TechSY730 Status resolved => feedback
Mar 22, 2011 6:05 pm TechSY730 Resolution no change required => reopened
Mar 22, 2011 6:08 pm Chris_McElligottPark Note Added: 0011244
Mar 22, 2011 6:08 pm Chris_McElligottPark Status feedback => closed
Mar 22, 2011 6:08 pm Chris_McElligottPark Resolution reopened => won't fix
Mar 22, 2011 6:11 pm TechSY730 Note Added: 0011245
Mar 22, 2011 6:13 pm Chris_McElligottPark Note Added: 0011246
Dec 7, 2012 5:26 pm TechSY730 Relationship added related to 0009987