Satunnaisluku pelin taustalla – mitä RNG oikeasti tekee?

Satunnaisluku

Arkku aukeaa, ja sisältä tulee harvinainen miekka. Korttipakka menee uuteen järjestykseen. Hyökkäys osuu kriittisenä, vaikka edellisellä kerralla sama liike ei tehnyt juuri mitään.

Pelin sisällä tapahtuu silloin pieni lasku. Pelaaja näkee vain lopputuloksen, mutta taustalla ohjelma tarvitsee luvun, jonka perusteella se valitsee yhden vaihtoehdon muiden joukosta. Tätä työtä tekee RNG eli satunnaislukugeneraattori.

Yksi kierros ei muista edellistä

Kolikkopelissä yksittäinen kierros käynnistyy, tulos muodostuu ja ruutu pysähtyy. Edellinen kierros ei kuiskaa seuraavalle, mitä symboleja pitäisi tulla. Sama ajatus näkyy myös korttipeleissä ja peleissä, joissa arkuista, vihollisilta tai palkintolaatikoista tulee vaihtelevia esineitä.

Kun pelaaja lukee sivua, jolla käsitellään sitä, mistä nettikasinosta voittaa, vastaan tulee yleensä palautusprosentteja, bonusehtoja ja kotiutuksiin liittyviä tietoja. Ne ovat pitkän aikavälin ja käytännön tason asioita. Yksittäisen kierroksen kohdalla RNG tekee kuitenkin oman työnsä juuri sillä hetkellä.

Videopelissä sama näkyy vaikka harvinaisen esineen pudotuksessa. Vihollinen kaatuu, peli arpoo palkinnon ja seuraava vihollinen käsitellään taas omana tilanteenaan. Kymmenen tyhjää arkkua ei tee yhdestoista arkkua täydeksi.

Siemenluku tekee sattumasta toistettavaa

Tietokone ei yleensä poimi satunnaisuutta tyhjästä. Monessa pelissä käytetään näennäissatunnaisia lukuja. Ohjelma saa aluksi siemenluvun, ja sen jälkeen se rakentaa pitkän lukujonon laskusäännön avulla.

Pelaajalle jono näyttää sattumanvaraiselta. Kehittäjälle siinä on käytännön hyötyä. Jos sama siemenluku syötetään samaan järjestelmään, sama tapahtumaketju voidaan joskus rakentaa uudelleen.

Tämä on tärkeää etenkin testauksessa. Jos pelimaailma rikkoutuu tietyssä kohdassa, kehittäjä ei halua metsästää samaa virhettä sokkona. Siemenluku voi palauttaa saman kartan, saman huonejaon tai saman ongelmallisen tilanteen takaisin ruudulle. Peleissä näennäissatunnaisuutta näkyy monessa kohtaa:

  • Vihollinen pudottaa yhden esineen mahdollisesta palkintolistasta.
  • Korttipakka sekoitetaan ennen jakoa.
  • Karttaan sijoitetaan huoneita, käytäviä tai resursseja.
  • Hyökkäys saa osumatarkkuuden tai kriittisen osuman.
  • Peli valitsee seuraavan tapahtuman useasta sallitusta vaihtoehdosta.

Sama generaattori ei silti päätä kaikkea yksin. Pelin omat säännöt rajaavat vaihtoehdot. Jos aloitusalueelle pitää tulla kulkukelpoinen reitti, generaattori ei saa rakentaa seinää pelaajan eteen vain siksi, että numero osui niin.

Kartta voi syntyä samasta numerosta

Proseduraalisessa generoinnissa satunnaisluku näkyy usein selvemmin kuin yksittäisessä osumassa. Pelaaja aloittaa uuden maailman, ja peli rakentaa maaston, huoneet tai reitit laskemalla vaihtoehtoja siemenluvun pohjalta.

Sama siemen voi antaa saman maailman uudelleen. Pelaaja voi joskus jakaa siemenluvun toiselle, ja toinen saa eteensä saman rakenteen, jos peliversio ja generaattorin säännöt ovat samat.

Eri siemen antaa uuden lähtökohdan. Silloin metsä, luola, kylä tai luolaston huonejärjestys voi muuttua, vaikka pelin perussäännöt pysyvät ennallaan.

Tässä kohtaa satunnaisuus ei tarkoita rajatonta vapautta. Peli voi tarkistaa, että kartassa on ulospääsy, tehtäväesine löytyy jostain ja aloituspaikka ei päädy mahdottomaan kohtaan. RNG ehdottaa. Pelin logiikka hyväksyy tai hylkää.

Aito satunnaisuus tulee mittauksesta

Näennäissatunnainen generaattori kulkee laskusäännön mukaan. Jos lähtötila ja algoritmi tunnetaan, sama lukujono voidaan periaatteessa tuottaa uudelleen.

Aidossa satunnaisuudessa lähtö haetaan fyysisestä ilmiöstä. Se voi olla esimerkiksi elektronista kohinaa tai muuta mitattavaa vaihtelua, jota ei muodosteta samalla tavalla valmiista kaavasta.

Aalto-yliopiston näennäissatunnaisfunktioita käsittelevässä aineistossa asia kulkee kryptografian kautta. Siinä olennaista on, pystyykö toinen osapuoli erottamaan näennäissatunnaisen merkkijonon aidosti satunnaisesta.

Peleissä ja kryptografiassa sana satunnaisuus ei siis aina tarkoita samaa vaatimustasoa. Pelissä riittää usein se, ettei pelaaja pysty arvaamaan seuraavaa tulosta käytännössä. Turvallisuuteen liittyvässä järjestelmässä ennustettavuuden raja on paljon tiukempi.

Sattuma tekee myös tutkimustyötä

Satunnaislukuja ei käytetä vain peleissä. Simulaatioissa samaa mallia voidaan ajaa eri lähtöarvoilla monta kertaa. Näin nähdään, millaisia tuloksia malli antaa eri tilanteissa.

Optimoinnissa satunnaisuus voi auttaa aloittamaan haun useasta suunnasta. LUT-yliopistossa julkaistussa konepajaongelmaa käsittelevässä kandidaatintyössä evoluutioalgoritmi lähtee liikkeelle satunnaisista työjärjestyksistä. Niitä muokataan myöhemmin, ja paremmat järjestykset jatkavat seuraaville kierroksille.

Tällaisessa työssä satunnainen alku ei ole lopullinen vastaus. Se antaa algoritmille ensimmäiset ehdotukset, joista se alkaa etsiä parempaa ratkaisua.

Peleissä sama perusajatus näkyy pienempänä. Ohjelma tarvitsee uuden vaihtoehdon, mutta ei halua kirjoittaa jokaista tapahtumaa ennalta valmiiksi.

Mitä pelaaja oikeastaan näkee

Pelaaja ei näe lukujonoa. Hän näkee arkun sisällön, kortin, kriittisen osuman tai kartan, joka aukesi juuri tällä pelikerralla.

RNG antaa pelille luvun. Sen jälkeen pelin omat säännöt tulkitsevat, mitä luku tarkoittaa. Sama numero voi yhdessä pelissä valita kortin, toisessa vihollisen palkinnon ja kolmannessa kartan seuraavan huoneen.

Siksi satunnaisuus tuntuu ruudulla usein yksinkertaiselta, vaikka taustalla on useita kerroksia. On siemenluku, generaattori, pelin säännöt ja vielä tarkistukset, joilla mahdottomat tilanteet rajataan pois.

Kun arkku aukeaa, pelaaja näkee vain esineen. Peli on ehtinyt tehdä päätöksen jo hetkeä aiemmin.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *