Scoring....

General Comments, Questions about all things OmnipotentS that don't go in other topics/forums
User avatar
pooty
Posts: 4535
Joined: Sat Apr 03, 2021 10:22 am
Location: Michigan
Server Sponsor: Yes
Server Admin: Yes

Scoring....

Post by pooty »

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.
User avatar
captainsnarf
Posts: 2713
Joined: Tue Jul 06, 2021 1:51 pm
Location: Washington
Server Sponsor: Yes
Server Admin: Yes
Contact:

Re: Scoring....

Post by captainsnarf »

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

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);
}
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'.
User avatar
Enyo
Posts: 1707
Joined: Mon Apr 05, 2021 11:27 pm
Server Sponsor: Yes
Server Admin: Yes

Re: Scoring....

Post by Enyo »

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.
“Never argue with stupid people, they will drag you down to their level and then beat you with experience.”
― Mark Twain
User avatar
pooty
Posts: 4535
Joined: Sat Apr 03, 2021 10:22 am
Location: Michigan
Server Sponsor: Yes
Server Admin: Yes

Re: Scoring....

Post by pooty »

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.
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...

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;
}
Seems to agree, 0 pts for normal vnormal scorekill will also be applied (so extra points for killed players)ehicles and +5 for important or key (what is key?). I think this is a bug? based on the comment: normal scorekill will also be applied (so extra points for killed players) with the word ALSO (though may apply to 1 pt per passenger too.)
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.
This https://ericdives.com/UT2004-UnCodex/en ... hScoreKill
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?
User avatar
captainsnarf
Posts: 2713
Joined: Tue Jul 06, 2021 1:51 pm
Location: Washington
Server Sponsor: Yes
Server Admin: Yes
Contact:

Re: Scoring....

Post by captainsnarf »

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.
User avatar
Enyo
Posts: 1707
Joined: Mon Apr 05, 2021 11:27 pm
Server Sponsor: Yes
Server Admin: Yes

Re: Scoring....

Post by Enyo »

pooty wrote: Fri Mar 18, 2022 11:53 am 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.
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
User avatar
captainsnarf
Posts: 2713
Joined: Tue Jul 06, 2021 1:51 pm
Location: Washington
Server Sponsor: Yes
Server Admin: Yes
Contact:

Re: Scoring....

Post by captainsnarf »

Here is the meat of ONSPowerNode->HealDamage scoring

Code: Select all

Amount = Min(Amount * LinkHealMult, DamageCapacity - Health);
Health += Amount;
if (ONSPlayerReplicationInfo(Healer.PlayerReplicationInfo) != None)
    ONSPlayerReplicationInfo(Healer.PlayerReplicationInfo).AddHealBonus(float(Amount) / DamageCapacity * Score);
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

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]);
 }
So you actually get 2.5 points for touch and go but it is rounded down to 2 points.
User avatar
Provert
Posts: 83
Joined: Sat Jun 12, 2021 8:28 pm
Location: La Mesa, CA
Server Sponsor: Yes
Contact:

Re: Scoring....

Post by Provert »

pooty wrote: Fri Mar 18, 2022 11:53 am

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...
Not 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?
User avatar
pooty
Posts: 4535
Joined: Sat Apr 03, 2021 10:22 am
Location: Michigan
Server Sponsor: Yes
Server Admin: Yes

Re: Scoring....

Post by pooty »

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?
Last night I joined, started a node, it was knocked out by enemy = 0 pts, unless you linked long enough...
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:
Image
User avatar
Provert
Posts: 83
Joined: Sat Jun 12, 2021 8:28 pm
Location: La Mesa, CA
Server Sponsor: Yes
Contact:

Re: Scoring....

Post by Provert »

Then you are contridicting your own post where you said you get points for linking "even if thenode never makes it" as you stated.
Post Reply