PUBG: Pisteytyksen sääntömuutos kaudelle 6

Santeri "sntr" Lehtonen PUBG

XPUBGista pois siirymisen myötä meille on avautunut mahdollisuus päästä käsiksi suureen määrään dataa, joka on mahdollistanut uuden tasoituksellisen pisteytysjärjestelmän käyttöönoton. Kanastats.com-palvelu on integroitu suoraan PUBG API:in, mistä olemmekin saaneet kerättyä datan aina pelitunneista laukausten osumatarkkuuteen asti. Data on kerätty pelaajien kaikista pelaamista otteluista, joten mukana on myös mm. Team Deathmatch-pelit, Ranked-pelit sekä kilpaa peliä pelaavien turnauspelit. Dataa kertyikin koko projektista yhteensä lähes sata miljoonaa riviä. Tästä kehitimme kohtuullisen monimutkaisen laskukaavan pelaajakohtaiselle tasoitukselle ja yhdistimme pelaajakohtaiset tasoitukset tiimikohtaisiksi tasoituksiksi.

Tasosarjoista huolimatta joukkueiden taitotasot eroavat toisistaan myös tasosarjojen sisällä. Halusimmekin siis mahdollistaa mahdollisimman tasaiset sarjat kaikille ja siitä syystä kehitimme tämän tasoitusjärjestelmän. Ajoimme aikaisempien kausien pelipäivien tuloksia läpi järjestelmästä ja iloksemme saimme erittäin tasaisen sarjataulukkotilanteen läpi koko kauden näin mahdollistaen jokaiselle joukkueelle tasapuolisen mahdollisuuden sarjavoittoon.

Otamme pisteytysjärjestelmän käyttöön tästä päivästä alkaen ja jo heti tämän illan Challengers-pelit pelataan järjestelmää hyödyntäen.

Tasoitusjärjestelmän toiminta

Järjestelmässä jokaiselle joukkueelle annetaan kaksi lukua: tasoituskerroin ja tasoitusluku. Tasoitusjärjestelmä perustuu dynaamisesti joukkueiden karttoihin osallistuvaan kokoonpanoon ja heidän PUBG-historiaansa, joten luku ei varsinaisesti ole julkaisukelpoinen. Joukkueiden ei tarvitse erikseen ilmoittaa otteluissa pelaavia pelaajia, sillä pelaajakohtaisia arvoja lasketaan jatkuvasti pelaajien pelatessa peliä ja pistelaskua suorittaessa pisteet lasketaan lukuja hyödyntäen. Joukkueet voivat siis edelleen vapaasti vaihdella pelaajia karttojen välissä, kunhan pelaaja on ilmoitettu joukkueeseen etukäteen.

Tasoitusluku

Tasoitusluku lisätään joukkueen ansaitsemaan SUPER-pistemäärään. Luvulla on tarkoitus tasoittaa joukkueiden kerryttämää pistemäärää otteluista. Luvussa käytetään ennakko-olettamaa, että tietyillä kokoonpanoilla pelaavat joukkueet sijoittuvat otteluissa toisia paremmin. Esimerkiksi jatkuvasti häntäpäille sijoittuvan joukkueen ennakkoon oletettu pistemäärä on pienempi kuin jatkuvasti kymmenen tapon voittoja ottavan joukkueen, joten joukkue kerryttää pisteitä jopa sijoituksista, joita SUPER-pisteytys ei palkitsisi pisteillä. Luku voi olla negatiivinen, jolloin paljon pisteitä keräävät joukkueet ansaitsevat vähemmän pisteitä otteluista kuin SUPER-pisteytys joukkueelle antaisi.

Esimerksiksi Joukkue A:n tasoitusluku on 4 ja Joukkue B:n tasoitusluku on -4. Joukkue A sijoittuu yhdeksänneksi ja saa pelissä yhden tapon, jolloin joukkue ansaitsee pelistä viisi (5) pistettä. Joukkue B puolestaan voittaa ottelun ja saa kuusi (6) tappoa, joukkue B ansaitsee 12 pistettä.

Tasoituskerroin

Tasoituskerroin on kerroin, joka perustuu joukkueen pelaajien suorituksiin pelikentillä. Luku on kerroinluku väliltä 0.3-3.0. Tasoituskertoimella kerrotaan joukkueen pistemäärä tasoitusluvun laskemisen jälkeen ja pyöristetään pyöristyssääntöjen mukaan kokonaislukuun.

Tasoitusluvussa olleiden joukkue-esimerkkien mukaan Joukkue A:n tasoituskerroin on 1.7 ja Joukkue B:n kerroin on 0.8. Tällöin Joukkue A:n lopullinen pistemäärä ottelusta on yhdeksän (9) pistettä ja vastaavasti Joukkue B:n on kymmenen (10) pistettä.

Alla ovat sarjataulukkotilanteet viiden (Challengersin osalta neljän) pelipäivän jälkeen. Sarjataulukot päivitetään tämän päivän aikana Kanastats.com-palveluun.

Masters

Challengers

2nd Division

Läpinäkyvyyden vuoksi avaamme tasoitukseen laskemiseen käytettävän koodin kaikille. Koodiin on yritetty myös avata selkokieliseksi välivaihteita, jotta se olisi ymmärrettävä myös python-kieltä tuntemattomille pelaajille. Koodisivulle pääset täältä. Suosittelemme jokaisen edes vilkaisevan koodia, jotta ymmärrätte paremmin järjestelmän toimintaa!