Page 2 of 8

Re: Flamers!

Posted: 18 Jan 2012, 15:23
by Reg312
I suspect problem with time of incendiary damage, it may refer to changes in synch.
Need more tests

Re: Flamers!

Posted: 20 Jan 2012, 15:20
by Reg312
Some tests of thermal damage in master

1) Test 1
thermal armor: 15 (tracks)
incendiary damage: 350 (artillery round/bombs)
incendiary time: 20 seconds
total damage: 4057

2) Test 2
thermal armor: 69 (tracks)
incendiary damage: 350 (artillery round/bombs)
incendiary time: 20 seconds
total damage: 1086

3) Test 3
thermal armor: 15 (hover)
incendiary damage: 350 (artillery round/bombs)
incendiary time: 20 seconds
total damage: ~4160

4) Test 4
thermal armor: 69 (hover)
incendiary damage: 350 (artillery round/bombs)
incendiary time: 20 seconds
total damage: ~1300


so i cannot understand how it works.
note1: damage and splash damage parts was disabled for attacking units in tests
Formulas should work by one of following ways:
(350 - 69) * 20s = 5820 (100% damage)
(350*0.4 - 69) * 20s = 1420 (40% artillery damage to tracks, because tracks was used in my tests)
(350*0.4 - 15armor) * 20s = 2500

also, weapon modifier applied to incendiary damage, but my test show it does not, or we working with 1/3 damage

i checked damage formula in proj_checkBurnDamage
damageSoFar = (gameTime - psCurr->burnStart) * weaponIncenDamage(psStats,psProj->player) / GAME_TICKS_PER_SEC;
damageToDo = (SDWORD)damageSoFar - (SDWORD)psCurr->burnDamage;

what i see wrong in this function, if game freeze in some case then damage will be accumulated for 2-3 seconds, but armor was not accumulated. this suspicion does not refer to why incendiary damage lesser than should be

Re: Flamers!

Posted: 20 Jan 2012, 15:54
by Cyp
Hmmm... Then that formula makes absolutely no sense in 2.3, since it depends on how many FPS you can get. If you have a normal GPU, flamers are overpowered, and if you have a good GPU, then flamers are underpowered. So trying to balance flamers in 2.3 makes about as much sense as trying to balance dancing angels on the head of a pin.

In master, the formula is well-defined, since there are exactly 10 game state updates every second (independently of how many FPS you get), so the armour would be applied 10 times per second. (But it really shouldn't depend on the chosen number of updates per second, in case someone decides to change the hardcoded number of updates per second, some day.)

lib/gamelib/gtime.h in master:

Code: Select all

#define GAME_UPDATES_PER_SEC 10

Re: Flamers!

Posted: 20 Jan 2012, 16:11
by Reg312
2Cyp: may be we should change formula to
damageSoFar = (gameTime - psCurr->burnStart) / GAME_TICKS_PER_SEC * weaponIncenDamage(psStats,psProj->player) ;
i assume if we first divie by 1000, then it should work right way
for example, in current formula
damageSoFar = (102245 - 101133)*350/1000 = 1112 * 350 / 1000 = 389
if we first divide by 1000 then it can work 1112/1000=1 -> 1*350 = 350
hmm. i not sure i know how exactly work C calculation

1st call - apply 350 damage and store applied damage in psCurr->burnDamage
damageSoFar = 350

2nd call in same second -
damageSoFar = 350
psCurr->burnDamage = 350
=> 0 damage

......

1st call in second 2:
damageSoFar = 350 * 2
psCurr->burnDamage = 350
=> 350 damage

so logic of function looks correct, exept it work wrong for big values of damage due to incorrect divide / GAME_TICKS_PER_SEC

Re: Flamers!

Posted: 20 Jan 2012, 18:27
by Iluvalar
Cyp wrote: In master, the formula is well-defined, since there are exactly 10 game state updates every second (independently of how many FPS you get), so the armour would be applied 10 times per second. (But it really shouldn't depend on the chosen number of updates per second, in case someone decides to change the hardcoded number of updates per second, some day.)
It was supposed to apply 1 time per second and 2.3.9 was calculating it right. The thermal armor is broken in master; it is multplied by Game ticks per seconds (10).

Re: Flamers!

Posted: 20 Jan 2012, 19:07
by Reg312
solution looks is not too hard: damage object once per second
((gameTime - burnStart)/1000+1) * Damage
not sure it correct, need find checking of burn time.

Re: Flamers!

Posted: 20 Jan 2012, 20:25
by Cyp
Iluvalar wrote:
Cyp wrote:...
It was supposed to apply 1 time per second and 2.3.9 was calculating it right. The thermal armor is broken in master; it is multplied by Game ticks per seconds (10).
Ok, re-reading 2.3, it does actually seem to treat the armour as a damage-per-second value (which is what I think it should, just didn't think the code actually did the right thing).

Re: Flamers!

Posted: 20 Jan 2012, 20:41
by Cyp
But why is it hardcoded that droids take 15 damage per second (before armour), for 10 seconds after leaving any fire? As far as I understand, any flamer then does 50 damage minimum (armour reduces damage by at most ⅔ for some strange reason), even if the flamer stats say to do 1 damage for 1 second.

Re: Flamers!

Posted: 20 Jan 2012, 20:52
by Iluvalar
There is a "burn" damage that is hardcoded and affect everybody that is touched by fire. And in fact, the units will look like they are in fire even when they get out of the area of effect. I'd like to mod this as well... but for now it's hardcoded

Then there is the incendiary area of effect we are talking about. it's the major part of the damage (in the weapons we have now at least). That one will stop as soon as you get out of the area.

Re: Flamers!

Posted: 25 Jan 2012, 02:18
by Reg312
Can i ask why flamers and bombs incendiary damage not affected by propulsion damage modifier?
i think it should be multiplied by weapon-propulsion modifier like other weapons, except 1 thing - type of given damage should be "flamer"

Re: Flamers!

Posted: 25 Jan 2012, 07:21
by NoQ
Hmm, this could make AA hardpoints a nice counter against flame bombs.

Re: Flamers!

Posted: 27 Jan 2012, 12:03
by Reg312
i tested/debugged flamers and discovered new interesting things

1) Post-flamer effect: 15 constant damage for 10 seconds
=> flamers stronger in early game
- this effect also broken in master and post effect is 100 times of 15/10 damage
- in sum every unit gets 50 additional damage from post-flame effect
for early units it is can be more than 50% of life

2) incendiary radius of first flamer (turret "Flamer") too small
=> First flamers much stronger to cyborgs, because cyborgs are smaller
=> in my test in 60% cases flamer did not burned his target
it is really hard to burn target with 1 flamer, attack from side help in some cases

in other words:
when inferno or plasmite flamer hits target, in 100% cases target become burning
burning is valuable part of flamer damage (up to 80% of damage)
first flamer burn targets only in few cases

by both this factors we give:
1) early flamers beat cyborgs more stronger than it can be exptected
2) inferno stronger much more than first flamers, because it fire target in 100% cases

what i suggest to do:
1) Fix bug with incendiary damage (calculate only 1 time per second)
2) [to discuss] Calculate incendiary damage as damage with type "flamer"
- variant: use damage type of projectile (for example for thermite bombs it'll become as artillery round)
3) [to discuss] Increase incendiary radius of first flamers to make it more.. hmm predictable
4) [to discuss] make post-burning effect more dependent of current weapon/armor upgrades
- variant 1: just nerf this effect (set 1 damage)
- variant 2: set fire damage to smth like 10% or 5% of primary incendiary damage
5) [to discuss] and finally reduce all flamer damage to make it balanced

update: flamers also can kill walls and other defenses, because hardcrete buildings get 100% burning damage

Re: Flamers!

Posted: 27 Jan 2012, 17:20
by Iluvalar
3) Increase incendiary radius of first flamers to make it more.. hmm predictable
I dont agree with that. I always been like that. Please avoid mixing "feel" changes and optional change, with suggestions about a real obvious bug.

Re: Flamers!

Posted: 27 Jan 2012, 17:38
by Reg312
Iluvalar wrote:3) Increase incendiary radius of first flamers to make it more.. hmm predictable
I dont agree with that. I always been like that. Please avoid mixing "feel" changes and optional change, with suggestions about a real obvious bug.
"feel" change can be tested, and yes, this change should be discussed, but...
..flamer (as it is) with small radius in most cases don't burn target and make lesser damage this way
you can test it, if you dont believe.
so without fixing radius is impossible to balance flamers becase damage is undefined
may be this was already taken into account by auto-balance? i suspect it isn't :p

upd: added "[to discuss}" phrase in my suggestions

upd2:
in current code early flamers works this way: if you have 1-3 flamers and enemy have 1-3 units, you make only ~30% of damage, because burning effect dont work (less chance to catch target in small burning area)
in larger batalies flamers works better, and random missed hits finds random targets and flamers burn larger area
what i see wrong:
1) Succes of flamers dependent on luck
2) Hard to balance
3) i think 1 flamer unit should be able to burn 1 enemy target if hit was succesful
in my tests 1 flamer in 90% cases cannot burn 1 enemy tank
so better decrease damage but make flamers less randomly

may be i'm wrong in some things,
so again i repeat only suggestions in which i'm sure
1) Fix bug with incendiary damage
2) Make weapon modifiers working for incendiary damage
3) Reduce effect of constant fire damage(post-fire-effect), 15 damage in 10 sec is too much for early game

Re: Flamers!

Posted: 27 Jan 2012, 18:43
by Iluvalar
Reg312 wrote: may be this was already taken into account by auto-balance? i suspect it isn't :p
Oh course I do !
Used at a reasonable moment, and considering the penetration bonus, It expect the incendiary damage to hit 0.94 units each shot. 0.37 on one on one. That make a single unit unpredictable, but as a whole the law of the mean take over it and I'd say players that use flamers reasonably (aiming for groups, not individual) do not really take so much chances.