Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GLA Quad Cannon doubles DPS when vet 1 and becomes weaker when scrapped and vetted #56

Closed
commy2 opened this issue Aug 27, 2021 · 56 comments · Fixed by #1055
Closed

GLA Quad Cannon doubles DPS when vet 1 and becomes weaker when scrapped and vetted #56

commy2 opened this issue Aug 27, 2021 · 56 comments · Fixed by #1055
Labels
Bug Something is not working right Controversial Is controversial Minor Severity: Minor < Major < Critical < Blocker

Comments

@commy2
Copy link
Collaborator

commy2 commented Aug 27, 2021

The current behaviour of the Quad is best summed up in this picture:

https://i.imgur.com/DSOJdrb.png

I propse we change the veterancy bonuses of the Quad to make them align with all other units, and make scrapping them up a small bonus on every veterancy level.

@xezon
Copy link
Collaborator

xezon commented Aug 27, 2021

Please investigate the damage values across veterancy, scrap & co. Maybe this can be fixed and tweaked in a meaningful way where Quad overall keeps same strength in early and late game.

@xezon xezon added Bug Something is not working right Task A task for someone to work on labels Aug 27, 2021
@ReLaX82
Copy link

ReLaX82 commented Aug 28, 2021

Nice Summery, horrible to See.

Shall I make a Proposal?

@commy2
Copy link
Collaborator Author

commy2 commented Aug 28, 2021

One "easy" to implement fix is to overwrite the Rate Of Fire veterancy bonuses for the Quad Cannon and to instead slightly increase the Damage veterancy bonuses to roughly match what the ROF would do in a game with more simulation steps per time unit.

See: commy2/zerohour@b253b89
Also see: commy2/zerohour@e7a0d3f

@Generalcamo
Copy link
Collaborator

Be extremely careful with that proposal. Both the mods C&C Shockwave and ROTR did fix this issue by using the "intended" values as you propose, however it turned out to radically boost the quad's damage to insane levels. We ended up having to perform an approximately 25% cut on the salvage damage levels as compared to the ZH "intended" level. Likely this was never caught during quality assurance testing, therefore the balance was never actually properly finished here.

For reference for those not in the know: the bug itself is caused by the rate of fire being tied to frame rate; in a 30FPS match (the standard for multiplayer), it is technically impossible to have a delay between shots (DBS) that is less than 33.333 (which is rounded up to 66ms). The first salvage upgrade brings the quad cannon to a DBS of 50, which is rounded to 66; this is the absolute minimum value that is possible, therefore the second salvage level does nothing (and due to the first salvage level having less damage than no salvage at all, a single veterancy level that brings the quad to the absolute minimum DBS means that the salvage level would cause it to do less DPS)

@Jundiyy
Copy link
Collaborator

Jundiyy commented Aug 31, 2021

Whilst it would be nice to fix, I know mods have but with different values (even as mentioned above) this would have devistating effects on gameplay. GLA Quads would be so much more powerful and GLA itself would be.
If we lower damage values for less vetted/'scrapped' this would weaken GLA. So it causes problems whichever way it is fixed.

@commy2
Copy link
Collaborator Author

commy2 commented Aug 31, 2021

The current behavior also has devastating effects on gameplay.

Be extremely careful with that proposal. Both the mods C&C Shockwave and ROTR did fix this issue by using the "intended" values as you propose, however it turned out to radically boost the quad's damage to insane levels.

I did not propose the "intended" values by EA. It's obvious to anyone that they break the game. In fact, I did not propose any values, just a technical way to apply yet unspecified values.

@xezon
Copy link
Collaborator

xezon commented Aug 31, 2021

The least I would suggest doing is to not nerf the Quad at all when scrapping up. OR reversing the model: No Scrap has the big gun, and when scrapping up the gun gets smaller. It's stupid, but at least its readable. So this would then help discourage players to drive with Quat over scraps.

@xezon
Copy link
Collaborator

xezon commented Aug 31, 2021

I put together some values that are still close to original but swapped and more reasonable. Unscrapped damage is still close to the original damage. And scrap gets small buffs until max damage output is reached. If Quad kills ground units then there will always be something to pickup and quad can be scrapped up. Problem: Air enemies. There is no scrap from Air units so vetted quads will not reach max potential vs Air as opposed to the original.

      No Scrap    Scrap +1    Scrap +2
Vet0    +0          +40         +80
Vet1    +80         +100        +120
Vet2    +100        +120        +140
Vet3    +120        +140        +160

We could also shift damage to say Quad is weaker with no scrap, but also stronger with max scrap.

      No Scrap    Scrap +1    Scrap +2
Vet0    +0          +40         +80
Vet1    +100        +120        +140
Vet2    +120        +140        +160
Vet3    +140        +160        +180

Next is a reasonable approach. Scrap up just does nothing.

      No Scrap    Scrap +1    Scrap +2
Vet0    +0          +60         +60
Vet1    +120        +120        +120
Vet2    +140        +140        +140
Vet3    +160        +160        +160

We could also reduce Vet0 Scrap Damage a bit to compensate for the fact that we keep benefits at Vet1:

      No Scrap    Scrap +1    Scrap +2
Vet0    +0          +30         +30
Vet1    +120        +120        +120
Vet2    +140        +140        +140
Vet3    +160        +160        +160

@xezon
Copy link
Collaborator

xezon commented Aug 31, 2021

Going forward, I would suggest to come up with the most logical approach that is suitable, implement and then test and review this by playing pro matches. We can always revert back to original if it changes gameplay too much.

@ZekeDlyoung
Copy link

ZekeDlyoung commented Sep 1, 2021

How about keeping the quads insane damage bonus as EA intended, but changing the damage type to GATTLING?

Or make it similar to the technical? Only scrap weapons would be changed to have GATTLING damage, so the player chooses whether you want quads to stay "good vs everything" (since full vet no salvage quad gives the most DPS anyway), or if the player is willing to get the extra damage but make it specialized against infantry and aircraft only

@Jundiyy
Copy link
Collaborator

Jundiyy commented Sep 1, 2021

Reducing non scrapped quad damage must be a no go, that would change gameplay a lot.
Scrapped Quads...Its difficult to say, making GLA quada even more powerful than they are, would once again change gameplay but not as much as not scrapped change.
This would end up requiring a massive amount of test games from top players to see what would be best.
I do like the approach of just changing the model to show if it's more or less.

@xezon
Copy link
Collaborator

xezon commented Sep 1, 2021

The values I suggested above did not factor in the fact that Scrap also has a chance to increase the Veterancy level of the unit. At which chance does a scrap increase veterancy for Quad? With this information we may be able to estimate a better rebalance of damage values.

@Stubbjax
Copy link
Collaborator

Stubbjax commented Sep 1, 2021

These are the chances according to Crate.ini:

WeaponChance = 100%
LevelChance = 25%
MoneyChance = 75%

Which translates to a 100% chance of a weapon upgrade if not fully scrapped, and then a 25% chance to rank up if not heroic.

@xezon
Copy link
Collaborator

xezon commented Sep 1, 2021

Hmm ok in that case the Scrap Vet Up influence is negligible.

@Jundiyy
Copy link
Collaborator

Jundiyy commented Sep 1, 2021

I would prefer to keep original no vetted unit stats the same and also not vetted + scrap.
The others could have a very minimal to know increase.

Or

Have non scrapped Quads have very slightly lower damage. Scrap one does the damage of the 1.04 not scrapped Quad and then scrap 2 does a tiny bit more.
So for example using the first post, vet 1 would be 115, scrap veg 1 would be 120 and double scrap vet 1 would be 125. This would keep Quads nearly at the same level as they originally are. Although would need to test to see if it's too much of a change.

@xezon
Copy link
Collaborator

xezon commented Sep 1, 2021

@Jundiyy that would be table 3 or 4 I posted previously.

@Jundiyy
Copy link
Collaborator

Jundiyy commented Sep 1, 2021

Ah yes, so table 3 would be no change at all, which seems reasonable.

Table 4 weakens scrapped but non vetted Quads? If so, rather not do that.
I suppose my version was slightly different
Although I think table 3 is good.

@commy2
Copy link
Collaborator Author

commy2 commented Sep 1, 2021

I feel like keeping +120% @ vet 1, which is an absoluetly insane buff compared to any other upgrade in the game, is the wrong direction to go. Vetted Quads will still be able to delete buildings and tanks alike in seconds.
Just focusing on the scrap levels does not address the elephant in the room. All this change (table 1-4) would effectively do is to buff the Quad. Hard to sell a patch when it buffs the Quad, instead of make it so players are rewarded fo keeping units alive longer (and also picking up scrap).

@commy2
Copy link
Collaborator Author

commy2 commented Sep 1, 2021

For comparision and to put actual numbers into this discussion, for normal units that do not fire at the simultation frame limit of the game, the bonuses from vet 1 are +20% Rate of Fire and +10% Damage, which totals to roughly +32% DPS due to the cummulative nature.

+32% compared to +120%

That's 4 times as much for the Quad, and a real issue with the game.

Edit: and just to put this into more context, at vet 3, non bugged units gain +60% Rate of Fire and +30% Damage, which adds up to +108% DPS. ...which is still less than a Quad at vet 1 lol

@xezon
Copy link
Collaborator

xezon commented Sep 1, 2021

@Jundiyy I have to correct myself. Table 2 refers to what you wrote before.
@commy2 Vetted Quads are very strong indeed. I think even when nerfing they are still very strong. But such strong unit is needed for GLA, because it allows to kill humvees and chinooks which are hard to kill with unvetted quads.

@Jundiyy
Copy link
Collaborator

Jundiyy commented Sep 1, 2021

Ah yes, thank you. That table is similar to what I proposed yes. Although I'd prefer a smaller change to keep the feel more normal.

@xezon xezon added the Controversial Is controversial label Sep 2, 2021
@RisingZH
Copy link

RisingZH commented Sep 4, 2021

I definitely wouldn't change unvetted + unscrapped quads, would be too difficult to balance.

Table 3 seems like the easiest to implement and least controversial, makes no sense for quads to get weaker with scrap.

I do like the idea of table 1 but this would fall more into the category of a balance change than a bug fix and would require a lot of testing.

@ImTimK
Copy link
Collaborator

ImTimK commented Sep 9, 2021

I feel as long as the base quad doesn't change, everything should be fine. Vetted quad always rather been overpowered and GLA never relied on those. That's why I think there's some room to subtly tweak the numbers, here an example:

      No Scrap    Scrap +1    Scrap +2
Vet0    +0          +50         +70
Vet1    +120        +130        +140
Vet2    +130        +140        +150
Vet3    +140        +150        +160

I feel that table 3 of xezon has more negative impact on the game than this one, because in practice you don't see ppl avoiding scraps in the middle of battles. That means statistically the Quad performance is not as good as the non-scrap numbers indicate. Table 3 is a buff that GLA does not need.

@MTKing4
Copy link
Collaborator

MTKing4 commented Sep 10, 2021

Table 1 by far the best of the 4 tables

Or this

That's why I think there's some room to subtly tweak the numbers, here an example:
Screenshot_20210910-163824_Chrome

@ImTimK
Copy link
Collaborator

ImTimK commented Sep 10, 2021

Add in the reason that you always should scrap your nonvetted quads anyway because it’s a fast and reliable way of making many quads have 60% extra damage output. You’re not skipping that because potential veterancy without scraps will be better. That’s stupid because you want to have as much firepower as possible for the very next engagement.

@Stubbjax
Copy link
Collaborator

If players aren't already aware of the relatively large negative impact of scrapping quads, then they are certainly not likely to notice minor adjustments to the base damage values (apparently as much as ~50%).

However, if players are aware of the issue and collect the scrap anyway, then they are essentially accepting the damage reduction and thus should accept damage / balance adjustments to compensate this being fixed.

Conversely, if players are aware of the issue and actively avoid collecting scrap because of it, then you have a fundamental flaw that detracts from gameplay and should be fixed.

@MTKing4
Copy link
Collaborator

MTKing4 commented Sep 10, 2021

Even when they know and actively trying to not take the scrap, it still happens by accident a whole lot of times by experts themselves, so yeah it should be fixed

@xezon
Copy link
Collaborator

xezon commented Nov 20, 2021

Related test branches:

@ReLaX82
Copy link

ReLaX82 commented Jan 19, 2022

I think just looking "quite" over these numbers cant be the result.

In work I also do some calculations and so I did here.
I think we need to think about the occurance of vetted quads. Maybe it gives in Theory a better picture.

I am just trying to tackle and understand the topic better. Just have a Look, I included 3 examples. Also we can add boundaries or other circumstances.

https://www.gamereplays.org/community/index.php?act=Attach&type=post&id=873955

@ReLaX82
Copy link

ReLaX82 commented Feb 8, 2022

In order to investigate how much % of each Quad is moving around as an overview I made this topic
--> https://www.gamereplays.org/community/index.php?showtopic=1059670

Post 11 contains a massive amount of replays which might be of use.

You can make a evaluation out of these reaplys.

As long as this scrap deny point is treated like it has been I will not further support here.

ReLaX

@xezon
Copy link
Collaborator

xezon commented Jul 13, 2022

I was wondering why @Jundiyy would insist on not changing the damage output of non-scrapped Quads, because in a regular battle environment there would be a fair distributions of Scrap Crates to pick up and get the damage output levels increased. However, that assumes a ground war scenario. For Quads vs air units the assumption falls flat and GLA would be hurt with nerfed No Scrap quads against air attacks. Most notably against attacks from USA Airforce, which can amass planes and helicopters, which leave no scrap to pick up when shot down.

Without this air battle consideration, I do find @ImTimK suggestion reasonable. Essentially inverting the damage on scrap levels and scaling the middle scrap value would give the Quad an overall almost identical pool of damage. No scrap and level 1 scrap could be tweaked a bit, but starting point is this:

Inverted & Scaled

      No Scrap    Scrap +1    Scrap +2     DMG Sum    DMG Sum Diff
Vet0    +0          +60         +60          120          +0
Vet1    +76         +98        +120          294          +22
Vet2    +92        +116        +140          348          +24
Vet3    +108       +134        +160          402          +26

Original

      No Scrap    Scrap +1    Scrap +2     DMG Sum
Vet0    +0          +60         +60          120
Vet1    +120        +76         +76          272
Vet2    +140        +92         +92          324
Vet3    +160        +108        +108         376

Unfortunately we cannot just do that because of the chance of pure air battles.

@xezon
Copy link
Collaborator

xezon commented Jul 13, 2022

In regards to boosting GLA anti air, there is still this option, but it is not for Early game and thus no replacement for weaker quads.

@xezon
Copy link
Collaborator

xezon commented Jul 13, 2022

Right now I think that there is no clever solution to change this and make guarantees that it plays fairly. This however would assume that it was fair originally to begin with. The only approach I can think of here is to simply initiate a trial run. Submit something that looks reasonable on paper, and then observe whether or not we end up with cool GLA fights in this project. Maybe it plays ok, then we can tweak it further if so required. And in the worst case we just revert it to what it was originally.

I propose the following values:

Inverted & Scaled Buff

      No Scrap    Scrap +1    Scrap +2     DMG Sum    DMG Sum Diff
Vet0      +0         +60         +60         120          +0
Vet1     +80        +100        +120         300          +28
Vet2    +100        +120        +140         360          +36
Vet3    +120        +140        +160         420          +44

When we change DPS in test patch, I suggest to not specify how we changed it. We can just let users play and wait for unbiased feedback.

@ImTimK
Copy link
Collaborator

ImTimK commented Jul 13, 2022

Right now I think that there is no clever solution to change this and make guarantees that it plays fairly. This however would assume that it was fair originally to begin with. The only approach I can think of here is to simply initiate a trial run. Submit something that looks reasonable on paper, and then observe whether or not we end up with cool GLA fights in this project. Maybe it plays ok, then we can tweak it further if so required. And in the worst case we just revert it to what it was originally.

I propose the following values:

Inverted & Scaled Buff

      No Scrap    Scrap +1    Scrap +2     DMG Sum    DMG Sum Diff
Vet0      +0         +60         +60         120          +0
Vet1     +80        +100        +120         300          +28
Vet2    +100        +120        +140         360          +36
Vet3    +120        +140        +160         420          +44

When we change DPS in test patch, I suggest to not specify how we changed it. We can just let users play and wait for unbiased feedback.

I think this is a good model to test first.

For ground battles I think it plays out positively overall, it would take a little longer for Quads to become insanely powerful, but it's probably a minor justified nerf since GLA is usually a bit too successful with the mindless Quad spam vs a number of factions (China's mainly).

For air battle matchups, this change would probably play out positive vs China's going Lixes/Migs, as it allows a few more errors from the China player without GLA obtaining super overpowered quads too easily.

Only vs Air it might play out negatively though, because Comanches are quite a bit better than Lixes and it's not always easy for GLA to have enough firepower. And as you mentioned yourself, scraps are non-obtainable vs pure Commiespam whereas China's usually combine air with ground.

@xezon
Copy link
Collaborator

xezon commented Jul 14, 2022

Original

DelayBetweenShots 25 equals 66
DelayBetweenShots 50 equals 66
DelayBetweenShots 100 equals 133
DelayBetweenShots 200 equals 200

GameData.ini

  WeaponBonus = VETERAN  RATE_OF_FIRE  120%
  WeaponBonus = VETERAN  DAMAGE        110%
  WeaponBonus = ELITE    RATE_OF_FIRE  140%
  WeaponBonus = ELITE    DAMAGE        120%
  WeaponBonus = HERO     RATE_OF_FIRE  160%
  WeaponBonus = HERO     DAMAGE        130%

Weapon.ini

Weapon QuadCannonGun
  PrimaryDamage         = 10.0
  DelayBetweenShots     = 100 ; is 133
  WeaponBonus           = PLAYER_UPGRADE DAMAGE 125%
End

Weapon QuadCannonGunAir
  PrimaryDamage         = 5.0
  DelayBetweenShots     = 100 ; is 133
  WeaponBonus           = PLAYER_UPGRADE DAMAGE 125%
End

Weapon QuadCannonGunUpgradeOne
  PrimaryDamage         = 8.0
  DelayBetweenShots     = 50 ; is 66
  WeaponBonus           = PLAYER_UPGRADE DAMAGE 125%
End

Weapon QuadCannonGunUpgradeOneAir
  PrimaryDamage         = 5.0
  DelayBetweenShots     = 50 ; is 66
  WeaponBonus           = PLAYER_UPGRADE DAMAGE 125%
End

Weapon QuadCannonGunUpgradeTwo
  PrimaryDamage         = 8.0
  DelayBetweenShots     = 25 ; is 66
  WeaponBonus           = PLAYER_UPGRADE DAMAGE 125%
End

Weapon QuadCannonGunUpgradeTwoAir
  PrimaryDamage         = 5.0
  DelayBetweenShots     = 25 ; is 66
  WeaponBonus           = PLAYER_UPGRADE DAMAGE 125%
End

Edit: Incorrect calculations redacted.

@xezon
Copy link
Collaborator

xezon commented Jul 14, 2022

Quad Scrap Veterancy comparison video:

https://www.youtube.com/watch?v=pc8jtTn2_ao

@EnigmaZift
Copy link

EnigmaZift commented Jul 14, 2022

This spreadsheet explains everything:
https://docs.google.com/spreadsheets/d/1DHJviAjbmICpXkhKTD0OfykxS52lgHb5FG6s8uhAD0I/edit#gid=0

The issue is that the original Quad actually did 2.0 more damage than the Scrapped versions, at the cost of half the rate of fire.
However, as the scrap changes the rate of fire, the rate of fire also rounds up to the nearest logic frame.
The second scrap's reduction in rate of fire has no effect because they both round to the same logic frame.

The rate of fire bonus from being veteran allows the Unscrapped Quad to fire at the same rate as the Scrapped Quads.
Due to the increased raw damage of the Unscrapped Quad, it provides an overall better DPS.

I would be very cautious about how I approached changing the Quad, but there's the full calculation there.

@xezon
Copy link
Collaborator

xezon commented Jul 14, 2022

Quad Cannon Stuff.xlsx

@xezon
Copy link
Collaborator

xezon commented Jul 15, 2022

Alright. I combined knowledge of Enigma and hanfield and put them into new comprehensive data sheet which shows many stats and all Quad guns.

https://docs.google.com/spreadsheets/d/1aOH2Yp-0NB2H2QS3TGnAQtqDFbZXMZg6

It appears GunAir has the same damage across all veterancies and scraps, so we only need to tweak the regular gun for ground units, which is good news, because that means we don't mess with Quad vs Plane battles.

@xezon
Copy link
Collaborator

xezon commented Jul 16, 2022

FYI: % values do accept comma:

float INI::Scan_PercentToReal(const char *token)
{
    float value;
    int res = sscanf(token, "%f", &value);
    captainslog_relassert(res == 1, 0xDEAD0006, "Unable to parse percentage from token %s.", token);

    return (value / 100.0f);
}

@commy2
Copy link
Collaborator Author

commy2 commented Jul 17, 2022

EnigmaZift's spreadsheet contains various errors in the numbers. Just refer to the picture in the OP. It is calculated as well as timed.

@xezon
Copy link
Collaborator

xezon commented Jul 17, 2022

Please use the spreadsheet in our repo inside Balance folder, not Enigmas. Enigmas spreadsheet helped me to get started, so his effort deserves no flak but praise.

@xezon xezon changed the title Quad Cannons double DPS when vet1; also become weaker when scrapped up while vetted. GLA Quad Cannon doubles DPS when vet 1 and becomes weaker when scrapped and vetted Jul 21, 2022
@xezon
Copy link
Collaborator

xezon commented Jul 21, 2022

https://www.youtube.com/watch?v=gVI1kYzvLuw

Check video. Quad Cannon looks very powerful. Isn't it too strong when vet?

@xezon
Copy link
Collaborator

xezon commented Jul 21, 2022

Maybe a plain redistribution is fairer.

Inverted Redist

      No Scrap    Scrap +1    Scrap +2     DMG Sum    DMG Sum Diff
Vet0    +0          +60         +60          120          +0
Vet1    +60         +92         +120         272          +0
Vet2    +76         +108        +140         324          +0
Vet3    +92         +124        +160         376          +0

Original

      No Scrap    Scrap +1    Scrap +2     DMG Sum
Vet0    +0          +60         +60          120
Vet1    +120        +76         +76          272
Vet2    +140        +92         +92          324
Vet3    +160        +108        +108         376

@ImTimK
Copy link
Collaborator

ImTimK commented Jul 21, 2022

https://www.youtube.com/watch?v=gVI1kYzvLuw

Check video. Quad Cannon looks very powerful. Isn't it too strong when vet?

Wow yea thats total bs, didn't know it was that bad.

Veterancy damage increments need to be the same as the Gat (what are the exact values?). Where it needs 1 or 2 scraps to match the gat damage output. If we choose for 1 scrap then it has potential to outperform the gat with 2 scraps.

This all can be changed without affecting anti air damage right?

@xezon
Copy link
Collaborator

xezon commented Jul 21, 2022

Yes, Quad Cannon Anti Air Guns are separate from Ground Guns. The Air Guns also have just moderate bonus with +10%, +20%, +30% for veterancy. I will add Gattling Tank Damage to DPS calculator later and post its values for reference.

@xezon
Copy link
Collaborator

xezon commented Jul 22, 2022

China Gatling vs Quad Cannon DPS

You need to primarily look at CONTINUOUS_FIRE_MEAN and CONTINUOUS_FIRE_FAST for Gatling. These are the damages with spun gun. At the bottom you find Gatling VETERAN+CONTINUOUS_FIRE_FAST which can be compared against Quads VETERAN.

gattling_vs_quad_dps

Observations

  • Unscrapped Quad is about 40 dmg points worse than Gatling at full spin
  • VETERAN Unscrapped Quad is about 40 dmg points better than VETERAN Gatling at full spin
  • HERO Unscrapped Quad is about 50 dmg points better than HERO Gatling at full spin
  • VETERAN Unscrapped Quad is about 20 dmg points better than HERO Gatling at full spin
  • VETERAN Scrapped (1) Quad is about 10 dmg points better VETERAN Gatling at full spin
  • HERO Scrapped (1) Quad is about 10 dmg points better HERO Gatling at full spin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something is not working right Controversial Is controversial Minor Severity: Minor < Major < Critical < Blocker
Projects
None yet