Digimängus võib tulemus ekraanile ilmuda hetkega, kuid selle taga toimub täpne arvutus. Juhuslike arvude generaator ehk RNG määrab tulemuse enne, kui animatsioon selle mängijale nähtavaks teeb. Selle töö mõistmiseks piisab mõnest põhimõttest, keerulist programmeerimiskoodi teadma ei pea.
Kus RNG mängu tuleb
Digitaalne mäng vajab viisi, kuidas valida järgmine tulemus ilma etteantud järjekorrata. Füüsilises kaardimängus täidab sama ülesannet segatud kaardipakk. Täringumängus tekib tulemus viskest, tarkvaras teeb vastava valiku arvutuslik süsteem.
Veebis mängides pole seda tehnilist kihti tavaliselt ekraanil näha. Näiteks Kasiinod Eestis võib tekstis esineda viitena veebikeskkondade üldisele kirjeldamisele, kuid RNG puudutab eeskätt mängu tehnilist toimimist. See ei kirjelda lehe kujundust, makselahendusi ega ühtki valikut kui teistest paremat.
Oluline on eristada mängu animatsiooni ja tegelikku tulemust. Kui rullid pöörlevad veel ekraanil, võib tarkvara olla tulemuse juba määranud. Visuaalne osa näitab arvutuse tulemust mängijale arusaadavas vormis.
PRNG alustab algväärtusest
Enamik tarkvaralahendusi kasutab pseudojuhuslike arvude generaatorit ehk PRNG-d. Sõna „pseudo” ei tähenda siin näilist juhuslikkust mängija vaatenurgast. Arvud luuakse matemaatilise algoritmiga, mille käivitamiseks kasutatakse algväärtust ehk seed’i.
Tartu Ülikooli õppematerjal selgitab pseudojuhuslike arvude genereerimist algoritmi ja algväärtuse kaudu. Sobiv algoritm loob pika arvujada, mille järgmisi liikmeid ei saa lihtsalt varasemate tulemuste põhjal ära arvata. Lihtsustatud tööjärjekord näeb välja nii:
- Süsteem saab algväärtuse, millest arvutus algab.
- Algoritm töötleb seda väärtust kindlate matemaatiliste reeglite järgi.
- Saadud arv seotakse mängus võimaliku tulemusega.
- Järgmise vooru jaoks jätkub arvutus uue sisemise olekuga.
Mängija ei pea neid arve kunagi nägema. Ekraanile jõuab nende põhjal valitud kaart, sümbol või muu mängutulemus. Algväärtus ja algoritmi sisemine olek kuuluvad tarkvara tehnilise töö juurde.
Eelmised voorud ei anna järgmist vastust
Kümme viimast tulemust võivad moodustada silmale väga korrapärase mustri. Sellest ei teki siiski valemit üheteistkümnenda tulemuse leidmiseks. Korrapärased jadad võivad juhuslikus valimis täiesti tavaliselt esineda.
Ka täring võib mitu korda järjest näidata sama arvu. Viies kuus ei tähenda, et järgmine vise peaks varasemate tulemuste tasakaalustamiseks olema üks või kaks. Digimängu korral kehtib sama põhimõte siis, kui voorude tulemused luuakse üksteisest sõltumatult.
Seetõttu pole mänguajalugu tehniline ennustusvahend. Viimase 20 või 100 vooru vaatamine kirjeldab minevikku, kuid ei avalda generaatori järgmist valikut. Ekraanil nähtav jada ei anna ligipääsu PRNG sisemisele olekule.
Ka paaritu jada pole iseenesest märk veast. Juhuslikkus ei tähenda, et kõik võimalikud tulemused peavad lühikese aja jooksul võrdselt korduma.
RNG-d kontrollitakse andmete, mitte mulje järgi
Generaatori hindamiseks ei piisa sellest, et inimene mängib mõned voorud ja tulemused tunduvad juhuslikud. Tarkvara tuleb kontrollida süstemaatiliselt. Selleks uuritakse nii programmi käitumist kui ka suuremate väljundkogumite statistilisi omadusi.
Kontrolli käigus saab muu hulgas uurida järgmisi küsimusi:
- Kas sama sisend põhjustab süsteemis tehniliselt ootuspärase käitumise.
- Kas võimalikud tulemused tekivad süsteemi ette nähtud reeglite järgi.
- Kas suurtes andmehulkades ilmneb seletamatuid kordusi või kõrvalekaldeid.
- Kas tarkvaramuudatus mõjutab varem kontrollitud funktsioone.
Selline kontroll kuulub tavapärase tarkvaraarenduse juurde palju laiemalt kui digimängud. Trinidad Wisemani käsitlus tarkvara testimisest kirjeldab näiteks tarkvara funktsionaalsuse, töökindluse ja kasutusmugavuse testimist. Testimine aitab kontrollida, kas tarkvara teeb seda, mida tehniline lahendus ette näeb.
Digimängu generaatori puhul lisandub statistiline kontroll. Üksik voor ütleb süsteemi kohta väga vähe, mistõttu analüüsitakse suurt hulka genereeritud tulemusi. Sertifitseerimisel dokumenteeritakse samuti, millist tarkvaraversiooni ja milliseid komponente kontrolliti.
RNG ja RTP tähendavad eri asju
RNG ja RTP satuvad sageli samasse arutellu, kuigi need kirjeldavad erinevaid tehnilisi osi. RNG valib konkreetse vooru tulemuse. RTP kirjeldab mängu pikaajalist matemaatilist mudelit.
Kui mängul on määratud RTP, ei tähenda see kindlat tagastust ühe mängukorra jooksul. Protsent põhineb suurel hulgal mänguvoorudel ning üksik mängusessioon võib sellest märgatavalt erineda. RNG otsustab samal ajal iga vooru konkreetse tulemuse vastavalt mängu tehnilisele ülesehitusele.
Kaardipaki näide aitab vahet hästi hoida. Kaardi segamine määrab, milline kaart järgmisena tuleb. Mängureeglid määravad aga selle, millise väärtusega erinevad kaardid ja kombinatsioonid on. Digimängus täidavad RNG ja matemaatiline mudel samamoodi erinevaid ülesandeid.
Mida mänguajaloost tegelikult teada saab
Voorude ajalugu on kasulik siis, kui soovitakse vaadata juba toimunud tulemusi. Sealt saab lugeda, mitu korda mingi tulemus ilmus või kuidas konkreetne mänguseanss kulges. Järgmise juhuarvu arvutamiseks sellest teabest ei piisa.
PRNG töötab oma algoritmi ja sisemise oleku järgi. Mängija ekraanil kuvatud tulemused on selle protsessi väljund, mitte generaatori täielik tehniline seisund. Seetõttu võib minevikku kirjeldada väga täpselt, kuid järgmine juhuslik tulemus jääb sellest eraldi.
RNG mõistmisel tasubki hoida lahus kolm asja: algoritm loob arvud, mängu matemaatika annab neile tähenduse ning graafika näitab tulemuse ekraanil. Nii muutub ka digimängu tehniline loogika palju arusaadavamaks.
