Scoring....
- pooty
- Posts: 4535
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Scoring....
So several players have noticed, myself included on occasion, that we don't seem to get the right number of points.
First, lets make sure we understand what the scoring should be: (And please correct me if I not right)
From the Game itself with no mods/mutators.
Killing Player: 1 pt
Killing Vehicle(Turrets are stationary vehicles): 1pt
Killing an Important Vehicle: 5pts (its a property of vehicle right now applies to Mino and MAS)
Stepping on a Node: 0 pts
Stepping on a Node that builds: 2 pts
Linking Node completely up: 5 pts (3 for linking, 2 pt for completion)
Shared link points on building a Node: 1 pt per a few seconds, shared ONLY if players are linking node directly.. no points for a link chain.
Destroying a Node: 5 pts
Destroying a building Node: 3pts (based on one in game testing)
Linking occupied vehicles: 0 pts
Damaging the Core: 1 pt per 100 damage?
Suicides/Falling = -1 pt
So killing a vehicle with one occupant (say a Manta) should net you 2 pts. Killing mino with driver only 6 pts. Killing a fully staffed mino should be 8 pts.
I don't think you get extra points for killing sprees, etc.
We have a mutator for those that don't know called ONSPlus ( https://www.omnipotents.com/utmisc/ONSPlus.html ) that attempts to address some of the failings above
It can provide points for other situtations (see link above), however, the linking bonus for nodes seems to work, but linking bonus on vehicles ONLY works on stock/ECE vehicles (Manta, Scorp, Goliath, Raptor, Cicada, HellBender, Leviathan), not on custom vehicles (mino, Tiamat, bio, firetank etc so you get 0 pts for linking those). And it only works right when using the LINK gun. So shared points don't work right when 2 people link a Goat Sucker or Link Tank/Badger)
Same on Shield bonus (works with Paladin, but not Crusader, Aegis or Turtle).
Same with Damage Points I think, works on stock vehicles but no on custom ones -- at least not reliably...
And back to the original point, it doesn't seem to be working consistently one way. Damage bonus is turned off, yet some have reported getting damage points. The ONSPlus code seems a bit fragile in spots based on observations like that...
This likely is contributing to imbalanced games.... players getting points for linking a Goliath but not a Mino makes no sense. We could turn that off (in fact it might be ), however the observed inconsistent scoring needs to be fixed to drive PPH used by balancer.
So, we need help with this:
1. Test on the server (or even standalone helps): What is actually happening? Is there truly a scoring bug like we've observed during game play? (I believe there is). Document what happens and how.
2. Fix the bonus scoring for healing (and damage?) for custom vehicles. (or at least determine how much work it is...)
Should get points for linking occupied vehicles for sure. And I like the idea of shield absorbtion points too.
We have questioned damage points, since mino/levi/ion spamming can generate a ton of kills and then additional points on top of that skews the scores -- but shouldn't you get some points for helping kill a Levi/Tiamat/Kraken/Shocker/Pallas but the counter is you're going to rack up kills with a mino, why give out any extras on top of it?
End goal is consistent scoring that helps drive balancer, fixing/understanding the glitches is the first step. So we need a couple of volunteers (best if you have a mic) to test during the day so we can see exactly what is happening.
First, lets make sure we understand what the scoring should be: (And please correct me if I not right)
From the Game itself with no mods/mutators.
Killing Player: 1 pt
Killing Vehicle(Turrets are stationary vehicles): 1pt
Killing an Important Vehicle: 5pts (its a property of vehicle right now applies to Mino and MAS)
Stepping on a Node: 0 pts
Stepping on a Node that builds: 2 pts
Linking Node completely up: 5 pts (3 for linking, 2 pt for completion)
Shared link points on building a Node: 1 pt per a few seconds, shared ONLY if players are linking node directly.. no points for a link chain.
Destroying a Node: 5 pts
Destroying a building Node: 3pts (based on one in game testing)
Linking occupied vehicles: 0 pts
Damaging the Core: 1 pt per 100 damage?
Suicides/Falling = -1 pt
So killing a vehicle with one occupant (say a Manta) should net you 2 pts. Killing mino with driver only 6 pts. Killing a fully staffed mino should be 8 pts.
I don't think you get extra points for killing sprees, etc.
We have a mutator for those that don't know called ONSPlus ( https://www.omnipotents.com/utmisc/ONSPlus.html ) that attempts to address some of the failings above
It can provide points for other situtations (see link above), however, the linking bonus for nodes seems to work, but linking bonus on vehicles ONLY works on stock/ECE vehicles (Manta, Scorp, Goliath, Raptor, Cicada, HellBender, Leviathan), not on custom vehicles (mino, Tiamat, bio, firetank etc so you get 0 pts for linking those). And it only works right when using the LINK gun. So shared points don't work right when 2 people link a Goat Sucker or Link Tank/Badger)
Same on Shield bonus (works with Paladin, but not Crusader, Aegis or Turtle).
Same with Damage Points I think, works on stock vehicles but no on custom ones -- at least not reliably...
And back to the original point, it doesn't seem to be working consistently one way. Damage bonus is turned off, yet some have reported getting damage points. The ONSPlus code seems a bit fragile in spots based on observations like that...
This likely is contributing to imbalanced games.... players getting points for linking a Goliath but not a Mino makes no sense. We could turn that off (in fact it might be ), however the observed inconsistent scoring needs to be fixed to drive PPH used by balancer.
So, we need help with this:
1. Test on the server (or even standalone helps): What is actually happening? Is there truly a scoring bug like we've observed during game play? (I believe there is). Document what happens and how.
2. Fix the bonus scoring for healing (and damage?) for custom vehicles. (or at least determine how much work it is...)
Should get points for linking occupied vehicles for sure. And I like the idea of shield absorbtion points too.
We have questioned damage points, since mino/levi/ion spamming can generate a ton of kills and then additional points on top of that skews the scores -- but shouldn't you get some points for helping kill a Levi/Tiamat/Kraken/Shocker/Pallas but the counter is you're going to rack up kills with a mino, why give out any extras on top of it?
End goal is consistent scoring that helps drive balancer, fixing/understanding the glitches is the first step. So we need a couple of volunteers (best if you have a mic) to test during the day so we can see exactly what is happening.
- captainsnarf
- Posts: 2713
- Joined: Tue Jul 06, 2021 1:51 pm
- Location: Washington
- Server Sponsor: Yes
- Server Admin: Yes
- Contact:
Re: Scoring....
In default ONS, there are no points for killing vehicles except the levi. Killing a vehicle with one occupant is one point. Killing a levi with one occupant is 5 points. Killing an empty vehicle is 0 points.
Node points are only given when the node changes state to active or destroyed. If you heal a node almost all the way and then it gets destroyed before finishing you get no points. If you touch and go at a node and it finishes you get 4 points.
Killing a player is 1 point. Killing a 'critical player' is 2 points.
In ONS, this is a critical player
If your node is under attack and you kill the person attacking you get 2 points instead of 1. If they are within 2000 units of your node and you kill them you also get 2 points. Those are 'critical players'.
Node points are only given when the node changes state to active or destroyed. If you heal a node almost all the way and then it gets destroyed before finishing you get no points. If you touch and go at a node and it finishes you get 4 points.
Killing a player is 1 point. Killing a 'critical player' is 2 points.
In ONS, this is a critical player
Code: Select all
function bool CriticalPlayer(Controller Other)
{
local int x;
if (Other.Pawn == None || Other.PlayerReplicationInfo == None)
return Super.CriticalPlayer(Other);
for (x = 0; x < PowerCores.length; x++)
if ( (PowerCores[x].CoreStage == 0 || PowerCores[x].CoreStage == 2) && PowerCores[x].DefenderTeamIndex != Other.GetTeamNum()
&& ((PowerCores[x].bUnderAttack && Other.PlayerReplicationInfo == PowerCores[x].LastDamagedBy) || VSize(Other.Pawn.Location - PowerCores[x].Location) < 2000) )
return true;
return Super.CriticalPlayer(Other);
}
Re: Scoring....
I'll start recording with the scoreboard visible what I see happening in regards to scoring. It seems like somehow a mix of scoring math happens on any given map, oddly seeming like it's inconsistent player to player within a single match. All you have to do is look at the Stats DB to prove this out, but video from as many players as possible would help pinpoint exactly what the inconsistencies are and maybe find some pattern. These are the typical scoring anomalies I've noticed:
1. Sometimes you get only 1 pt for killing any vehicle/player, including Minos and Levis, regardless of their proximity to a node
2. Sometimes you get damage points from hitting vehicles before they die - score ticks up as you shoot them (this is supposed to be completely turned off)
3. Sometimes scoring seems to act as expected, where you get a couple pts per regular occupied vehicle, 5 pts for Mino/Levi, etc, and you get 2 pts from shooting "critical players" as snarf showed is the expected behavior.
All 3 above see to often occur within the same match, affecting each player differently. One hypothetical player with 60 kills and 20 nodes built/destroyed might have a hugely inflated score of say 300 (likely getting damage pts), while another player with identical stats might have half the score at 150 (getting only 1 pt per kill). I know there can be differences in how many node pts and kill pts each player gets depending on variable criteria, but players with nearly identical match stats should not have that big of a scoring difference, but it happens frequently.
1. Sometimes you get only 1 pt for killing any vehicle/player, including Minos and Levis, regardless of their proximity to a node
2. Sometimes you get damage points from hitting vehicles before they die - score ticks up as you shoot them (this is supposed to be completely turned off)
3. Sometimes scoring seems to act as expected, where you get a couple pts per regular occupied vehicle, 5 pts for Mino/Levi, etc, and you get 2 pts from shooting "critical players" as snarf showed is the expected behavior.
All 3 above see to often occur within the same match, affecting each player differently. One hypothetical player with 60 kills and 20 nodes built/destroyed might have a hugely inflated score of say 300 (likely getting damage pts), while another player with identical stats might have half the score at 150 (getting only 1 pt per kill). I know there can be differences in how many node pts and kill pts each player gets depending on variable criteria, but players with nearly identical match stats should not have that big of a scoring difference, but it happens frequently.
“Never argue with stupid people, they will drag you down to their level and then beat you with experience.”
― Mark Twain
― Mark Twain
- pooty
- Posts: 4535
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: Scoring....
Not true, you get points as you link/build when actively linking even if the node never makes it, I've tested it.If you heal a node almost all the way and then it gets destroyed before finishing you get no points. If you touch and go at a node and it finishes you get 4 points.
I also saw in some cases building a node fully got me 4 pts instead of 5 pts its happened both times.. so this might depend on how long it takes to link...
Touch and go only gets you 2pts. (Even if a bot links it up you still get 2pts for a node that starts and eventually completes in any way)
I've tested both above...
Killing a vehicle with one occupant is one point.
Code: Select all
/* special scorekill function for vehicles
Note that it is called only once per independant vehicle (ie not for attached turrets subclass)
If a player is killed inside, normal scorekill will also be applied (so extra points for killed players)
*/
function int VehicleScoreKill( Controller Killer, Controller Killed, Vehicle DestroyedVehicle, out string KillInfo )
{
//log("VehicleScoreKill Killer:" @ Killer.GetHumanReadableName() @ "Killed:" @ Killed @ "DestroyedVehicle:" @ DestroyedVehicle );
// Broadcast vehicle kill message if killed no player inside
if ( Killed == None && PlayerController(Killer) != None )
PlayerController(Killer).TeamMessage( Killer.PlayerReplicationInfo, YouDestroyed@DestroyedVehicle.VehicleNameString@YouDestroyedTrailer, 'CriticalEvent' );
if ( KillInfo == "" )
{
if ( DestroyedVehicle.bKeyVehicle || DestroyedVehicle.bHighScoreKill )
{
KillInfo = "destroyed_key_vehicle";
return 5;
}
}
return 0;
}
Either way looks like you get 0 extra points for occupied vehicles unless its Important (or Key) (Ion is +5, so is MAS/Mino AFAIK )
So there's two properties for bonus destruction:
From Vehicle Class
Code: Select all
bHighScoreKill
Type: bool
Vehicle is considered important, and awards 5 points upon destruction.
indicates two variables (key and highscorekill)...which means they could be set elsewhere besides the vehicle itself? (though I haven't found any where they get set other than on the vehicle itself). This might explain why at times you get 1 and other get 5 or 6. Not damage points. Not sure what difference between the two are..(or were intended for) as they seem to do same thing, but at least if both are true its only 5 and not 10. Seems like keyVehicle makes the bots want it more and give bonus points, where highscorekill is just the points. Seems like sloppy coding:
var() bool bHighScoreKill; // vehicle is considered important, and awards 5 points upon destruction.
Isn't Important vehicle and key vehicle pretty much same?
- captainsnarf
- Posts: 2713
- Joined: Tue Jul 06, 2021 1:51 pm
- Location: Washington
- Server Sponsor: Yes
- Server Admin: Yes
- Contact:
Re: Scoring....
bKeyVehicle is just a boolean flag on the vehicle. The only default vehicle that has it set is the levi. The only mods that have it that I'm aware are the mods based on the levi like kraken, and also the link tank for whatever reason. bHighScoreKill is not set on any vehicle I could find or referenced in any mutator I could find.
I could have sworn I saw people get 4 points for touch and go, but I tested and yes it is 2 points not 4.
I could have sworn I saw people get 4 points for touch and go, but I tested and yes it is 2 points not 4.
Re: Scoring....
There's definitely damage pts happening sometimes, or something else that behaves similarly, because I've literally watched the score tick up as I'm shooting a plasma tank and multiple other "non-key" or non-important vehicles. Typically, you should be awarded pts only AFTER the vehicle dies, not while you're shooting it.
I'll start making a point to record it when it's happening. Recording has just become a bit of a pain recently... I have to remember to disconnect my second monitor before launching the game, or the Nvidia software records a blank screen. That started after one of the updates.
“Never argue with stupid people, they will drag you down to their level and then beat you with experience.”
― Mark Twain
― Mark Twain
- captainsnarf
- Posts: 2713
- Joined: Tue Jul 06, 2021 1:51 pm
- Location: Washington
- Server Sponsor: Yes
- Server Admin: Yes
- Contact:
Re: Scoring....
Here is the meat of ONSPowerNode->HealDamage scoring
So it's pretty much just a straight up ratio of how much you heal it. It's worth 5 points. If you heal 1/5 health then you get 1 point.
For touch-and-go, the player that started the power node is designated the 'constructor' and awarded half points for the node if it finishes constructing.
from state Reconstruction in ONSPowerCore.uc
So you actually get 2.5 points for touch and go but it is rounded down to 2 points.
Code: Select all
Amount = Min(Amount * LinkHealMult, DamageCapacity - Health);
Health += Amount;
if (ONSPlayerReplicationInfo(Healer.PlayerReplicationInfo) != None)
ONSPlayerReplicationInfo(Healer.PlayerReplicationInfo).AddHealBonus(float(Amount) / DamageCapacity * Score);
For touch-and-go, the player that started the power node is designated the 'constructor' and awarded half points for the node if it finishes constructing.
from state Reconstruction in ONSPowerCore.uc
Code: Select all
if (Constructor != None && Constructor.PlayerReplicationInfo != None)
{
Constructor.AwardAdrenaline(Score);
Level.Game.ScoreObjective(Constructor.PlayerReplicationInfo, float(Score) / 2.0);
Level.Game.ScoreEvent(Constructor.PlayerReplicationInfo, float(Score) / 2.0, ConstructedEvent[DefenderTeamIndex]);
}
- Provert
- Posts: 83
- Joined: Sat Jun 12, 2021 8:28 pm
- Location: La Mesa, CA
- Server Sponsor: Yes
- Contact:
Re: Scoring....
pooty wrote: ↑Fri Mar 18, 2022 11:53 amNot true. Last night I joined, started a node, it was knocked out by enemy, started again, got knocked out again, started a third time, got knocked out a third time and I was then killed and ended up with -1 point. By your calculations I should have had 3 points and then lost a point for being killed. This was on junkyard randomizer, so maybe it only works on certain maps?
Not true, you get points as you link/build when actively linking even if the node never makes it, I've tested it.
I also saw in some cases building a node fully got me 4 pts instead of 5 pts its happened both times.. so this might depend on how long it takes to link...
- pooty
- Posts: 4535
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: Scoring....
Last night I joined, started a node, it was knocked out by enemy = 0 pts, unless you linked long enough...Last night I joined, started a node, it was knocked out by enemy, started again, got knocked out again, started a third time, got knocked out a third time and I was then killed and ended up with -1 point. By your calculations I should have had 3 points and then lost a point for being killed. This was on junkyard randomizer, so maybe it only works on certain maps?
started again = 0 pts, got knocked out again,
started a third time, got knocked out a third time =0 pts and I was then killed and ended up with -1 point.
Not sure how you got -1, but you ONLY get the points from starting it IF the node builds completely.
You get points for linking but its like 10 seconds (?) or something (feels like forever in game).
If you didn't do that:
- Provert
- Posts: 83
- Joined: Sat Jun 12, 2021 8:28 pm
- Location: La Mesa, CA
- Server Sponsor: Yes
- Contact:
Re: Scoring....
Then you are contridicting your own post where you said you get points for linking "even if thenode never makes it" as you stated.