Maelstromeous / ps2alerts-website

This project has moved!
https://github.com/ps2alerts/website
GNU General Public License v2.0
10 stars 1 forks source link

Performance metrics taking population imbalance into account #20

Open asttl opened 8 years ago

asttl commented 8 years ago

Situation Populations can get quite imbalanced during the course of Alerts. The imbalance can vary quite a bit. There is a end of the Alert swing towards the wining faction, caused either by players on losing factions logging off or switching sides.

Servers can have extended periods of overpop or underpop for different factions. During these times, the actual performance of the faction is of interest to leaders/vets on underpop factions, and a morale booster if performing strongly.

In the new VP system, ganging up on a faction is common and something Daybreak should look at. A faction can perform quite strongly and still lose an Alert, so performance would be very interesting to those factions and bragging rights.

Suggestion:

A custom performance metric that takes pop imbalance into account. If this isn't possible a measure of pop imbalance would be interesting to a lot of people.

Possible metric

Presentation:

Maelstromeous commented 8 years ago

In version 2 I did a system similar to this, I came up with a formula, which I dubbed "Alert Performance Score (APS)".

Basically, it worked similar to this, on a per faction basis:

3 samples of population were taken (as at that time there was no ability to take populations "live"), taken at 30 minutes, 1 hour and the final 15 minutes

APS = (AVG of totalPop samples / AVG of factionPop samples) x faction result territory %

e.g:

VS Pop AVG: 400 Total Pop AVG: 1200 VS Territory %: 36%

(1200 / 400) * 36 = 108

It was intended that if the faction pops suddenly shifted to another empire, that they would be punished as their average faction population would be higher, therefore their division would be higher. Using total pop also meant it scaled accordingly, so if it was an alert late night, and people were logging off, it would scale accordingly.

Also, if a factions population was lower, but they also got more territory, they would get rewarded for being able to be more efficient with their populations.

Now, I do record populations every 30 seconds (or so), so this formula would be very accurate. I've not given it much thought recently, it would be something nice I would like to bring back at some point.

Is this along the lines you meant?

asttl commented 8 years ago

The thing is that with the VPs for capturing warpgates it's very often the case that factions can get double teamed.

Is it possible to get a value for pop distribution on each of the three fronts? e.g.

TRpop faces TRenemies = NConTRfront + VSonTRfront NCpop faces NCenemies = TRonNCfront + VSonNCfront VSpop faces VSenemies = NConVSfront + TRonVSfront

Calculating pop on each front:

Simplest to ask Daybreak for querying precise pop totals at a base, if that function is not already available. If Daybreak don't want to give that info, pop totals on each front would be helpful.

Difficulty:

Linear difficulty is probably fine for a start I guess. e.g. DifficultyTR(t) = FactionDifficulty(TRenemies(t),TRpop(t))

FactionDifficulty(Enemies,Pop) might be a table, or just be equal to Enemies/Pop

Averaging DifficultyTR over an alert might give a measure of difficulty.

The simplest Achievement might be Achievement = AverageOverAlert(DifficultyTR(t)) * final territory result %

Achievement:

APS = (AVG of totalPop samples / AVG of factionPop samples) x faction result territory %

  • Alert starting conditions might give an empire extra starting territory
  • The thing is, if a faction had a spike where they had 3x players as enemies faced, and took a lot of territory they need to be penalised (e.g. ghost capping territory as happens when the 2 enemy factions are fighting each other only - as happens often when a faction is being double teamed and warpgated, or just a big pop spike).

Delta achievements:

AchievementDelta(Base, WinLoss, TimeInterval) = AverageDifficultyOverRelevantTime(TimeInterval)* Credit(Base, WinLoss)

Achievement over an alert would be just summing over all the deltas.

This is the ideal scenario. A lot depends on what the API makes available. Something like weighting based on enemy pop to faction pop is a lot better than not taking pop into account at all.

Maelstromeous commented 8 years ago

We have no information on population at particular bases so that is impossible I'm afraid.

asttl commented 8 years ago

I see. I sent promptcritical a link to this conversation, as it's possibly interesting to Daybreak.

While I'm here, DA has made the list of sanctioned infantry weapons here : http://stats.dasanfall.com/ps2/items/weapons Just letting you know if you haven't seen it, as I recall you mentioned wanting to know on reddit : ).

Maelstromeous commented 8 years ago

Prompt's fully aware of my API requests, I'm pretty sure he's quite sick of it by now :P

Unless I'm blind, I don't see a definitive "This is a sanctioned weapon" flag. I'm not going to go through every single gun and check if it's sanctioned, there's over 700 weapons in the game.

asttl commented 8 years ago

I'm not sure what you mean by a definitive flag, but from the csv they are the weapons marked 'i' in the 3rd column. AIUI infantry sanctioned weapons are just the full-auto and semi-auto including pistols (except the shotgun magscatter), and semi-auto sniper rifles. That csv also seems to contain other classifications like tank, sniper, shotgun, esf etc. and an 'n' classification for everything else.

Maelstromeous commented 8 years ago

Ok that's interesting. Thanks for the info, I'll look into it.