View Issue Details
ID | Project | Category | Date Submitted | Last Update | |
---|---|---|---|---|---|
0002869 | AI War 1 / Classic | Suggestion - AI Behavior And Tactics | Feb 19, 2011 12:44 am | Dec 7, 2012 5:26 pm | |
Reporter | TechSY730 | Assigned To | keith.lamothe | ||
Status | closed | Resolution | won't fix | ||
Product Version | 5.000 | ||||
Summary | 0002869: Give the "starship like" tier of fleet ships a hard cap in waves | ||||
Description | I'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. | ||||
Tags | No tags attached. | ||||
Internal Weight | |||||
related to | 0002891 | resolved | keith.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 |
|
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? |
|
[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 :) |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
What about some of the even more powerful, even lower ships cap spire ships (like spire blade spawners)? What are their multipliers like? |
|
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. |
|
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.) |
|
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: |
|
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 :) |
|
*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 |
|
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. |
|
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). |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. ;) |
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 |