Back to blog
Mekanikker

Er Mini Krakens terningkast retfærdige? Et kig ind i terningmotoren

Før eller siden spørger alle borde om det: er den her tingest fusket? Her er en ærlig, jargonfri rundtur i, hvordan Mini Kraken vælger et tal — hvorfor det er retfærdigt, hvordan du selv kan verificere det, og hvad vi a...

Er Mini Krakens terningkast retfærdige? Et kig ind i terningmotoren

Før eller siden er der en ved bordet, der siger det højt: "Det kan umuligt være tilfældigt. Den her tingest hader mig." En digital terning kan ikke rasle hen over rigtigt træ, så når man rammes af en stribe uheld, er det helt naturligt at spekulere på, om appen lægger en finger på vægtskålen.

Godt spørgsmål. Det fortjener et ligefremt svar, så her er det med det samme: Mini Krakens terninger er retfærdige. Hver side har lige stor chance, intet bliver puffet, og — usædvanligt nok — kan du faktisk selv verificere et kast. Denne artikel gennemgår præcis, hvordan det fungerer, i et almindeligt sprog, så du næste gang emnet dukker op har noget konkret at pege på.

Hvad "retfærdig" egentlig betyder

Før vi taler om vores motor, hjælper det at slå fast, hvad en retfærdig terning overhovedet er.

En retfærdig d20 betyder én ting: hver af dens tyve sider er lige sandsynlig — en ren 1-ud-af-20-chance, hvert eneste kast. Ikke "nogenlunde jævnt." Ikke "jævnt i gennemsnit, med en lille smule husfordel." Præcis jævnt. En retfærdig d6 giver hver side en 1-ud-af-6-chance; en retfærdig d100, 1-ud-af-100. Det er hele definitionen.

Læg mærke til, hvad retfærdighed ikke lover. Den lover ikke, at du får alle tyve tal at se, hvis du kaster tyve gange. Den lover ikke, at en dårlig stime snart vil "udligne sig." Den lover ikke, at resultatet vil føles jævnt. Retfærdighed er kun nogensinde et udsagn om oddsene på hvert kast — og på det punkt går vi ikke på kompromis.

Motoren under motorhjelmen

Mini Kraken bruger ikke en hjemmelavet genvej til at kaste terninger. Hvert kast — på hjemmesiden, i dine karakterark, på det virtuelle spillebord og gennem Fortuna-botten på Discord — kører gennem den samme fælles terningmotor, bygget på et modent, open source-terningbibliotek, der har kastet terninger for bordrollespillere i årevis.

Det betyder noget af to grunde. For det første betyder et open source-fundament, at matematikken ikke er en sort boks; det er kode, som enhver kan læse, teste og pille fra hinanden. For det andet betyder det, at vi ikke er ved at genopfinde noget skrøbeligt. Tilfældighed er et af de områder, hvor smart hjemmebryg har tendens til at introducere subtil bias, og gennemtestede biblioteker findes netop, så ingen behøver det.

Det vigtige er, hvad motoren gør, når den har brug for et tal.

Hvordan et tal bliver valgt — og hvorfor der ikke er nogen skjult bias

Her er den del, de fleste aldrig hører om, og den er i sandhed hjertet i "er det her retfærdigt?"

Den naive måde at forfalske et terningkast på er at gribe en tilfældig værdi og skære den til med division med rest — programmeringens svar på "divider og tag resten." Det er hurtigt, og det er næsten retfærdigt. Men det har en berømt fejl kaldet modulo-bias: fordi det interval, du starter fra, sjældent går præcist op i antallet af terningsider, ender nogle få sider med at være ganske lidt mere sandsynlige end de andre. På en enkelt d20 er skævheden ganske lille, men den er reel, og det er præcis den slags usynlige finger-på-vægtskålen, der får "fusket"-anklager til at hænge fast.

Vores motor afviser den genvej. I stedet for at tvinge et akavet tal til at passe, bruger den en teknik, der ofte kaldes forkastelsessampling (rejection sampling). Sagt i almindeligt sprog: hvis en rå tilfældig værdi falder ned i den bittelille rest-flig, der ville skævvride oddsene, smider motoren den væk og trækker stilfærdigt en ny. Den beholder kun værdier, der afbilder sig perfekt jævnt på terningens sider. Resultatet er en fordeling med ingen bias overhovedet — hver side lander på sin præcise, ærlige sandsynlighed. Du lægger aldrig mærke til den lejlighedsvise omtrækning; den sker på en brøkdel af et millisekund. Men på grund af den er en Mini Kraken-d20 så jævn, som matematikken tillader.

Det er den tekniske rygrad i hele svaret. Retfærdig er ikke et marketingord her; det er en egenskab ved den måde, tallet vælges på.

3D-terningerne er ærligt teater

Mini Kraken er kendt for sine rigtige 3D-fysikterninger, der triller hen over skærmen og falder til ro — og det er her, en fornuftig person kunne blive mistænksom. Hvis en fysiksimulering afgør, hvor terningen lander, kunne animationen så ikke være justeret til at lande på lave tal?

Nej — og grunden er rækkefølgen af begivenheder. Motoren vælger tallet først. Animationen bliver derefter bedt om at lande på det. Den trillende terning, du kigger på, er en tro gengivelse af et resultat, der allerede var afgjort retfærdigt, et øjeblik forinden, af den samme upartiske motor, der er beskrevet ovenfor. Fysikken er der for fornemmelsens skyld — den tilfredsstillende raslen og rullen, som flade tekstresultater fladtrykker — ikke for at bestemme udfaldet. Det er showmanship oven på ærlig matematik, og den kan bogstaveligt talt ikke puffe til tallet, for tallet eksisterer allerede, før terningen begynder at bevæge sig.

Én motor, overalt — så et kast betyder det samme

En subtil kilde til tillid er konsekvens. På nogle platforme opfører et kast ét sted sig anderledes end et kast et andet sted. På Mini Kraken er en d20 en d20, uanset om du trykker på den i dit karakterark, slipper den på det virtuelle spillebord eller taster den ind i en Discord-kanal, hvor Fortuna lytter.

Det skyldes, at alle disse flader kalder den samme motor. Der findes ikke en "venlig" kaster til hjemmesiden og en anden til Discord. Et kast bærer nøjagtig den samme betydning på tværs af hele økosystemet, hvilket både er en bekvemmelighed og en garanti: der er ingen særlig tilstand, hvor oddsene stilfærdigt ændrer sig.

Du kan faktisk verificere et kast

Her er den funktion, der forvandler "stol på os" til "tjek det selv."

Motoren understøtter deterministisk genafspilning. Sagt i almindeligt sprog kan et kast knyttes til en lille startværdi kaldet et seed, og det samme seed genskaber altid præcis den samme sekvens af resultater. Fodr motoren med det samme seed to gange, og du får identiske terninger, hver eneste gang. Det er det stik modsatte af et fusket system: en fusket kaster er nødt til at skjule, hvordan den fungerer, mens vores kan række dig opskriften og bevise, at de samme input altid producerer det samme, reproducerbare output. Tilfældighed, du kan afspille igen, er tilfældighed, du kan revidere.

Hvad vi aldrig gør

At være retfærdig handler lige så meget om tilbageholdenhed som om teknik. Så, ligeud, her er, hvad Mini Krakens terninger ikke gør:

  • Ingen "terning-karma." Vi holder aldrig regnskab med, at du har været uheldig, og rækker dig i det skjulte et godt kast for at kompensere — heller ikke omvendt. Hvert kast er uafhængigt, præcis som rigtige terninger er.
  • Ingen skjult justering. Der er ingen usynlig "udjævning", der klipper dine yderpunkter fra for at få resultaterne til at føles pænere. Nogle værktøjer gør stilfærdigt netop det. Vi gør ikke; en stime er en stime.
  • Ingen hemmelige modifikatorer. De eneste bonusser, der lægges til, er dem, du kan se i kastet — dit arks modifikatorer, fordel og så videre. Intet bliver lagt til eller trukket fra i mørket.
  • Ingen målretning. Motoren ved eller bekymrer sig ikke om, hvem du er. Den er ikke venligere over for spillederen eller grummere over for den nye spiller. Den aner ikke, hvad en "spiller" overhovedet er.

Terningerne er ligeglade. Den ligegyldighed er hele pointen.

"Men mine kast er stadig mærkelige"

Det kan de godt føles som — og den følelse er reel, selv når terningerne er perfekte. Ægte tilfældighed er klumpet: den producerer stimer, klynger og grum timing langt oftere, end vores intuition forventer, og vores hukommelse klynger sig til katastroferne, mens den stilfærdigt kasserer de glemmelige gennemsnitskast. En retfærdig d20 vil helt sikkert række dig tre 1'ere i træk en gang imellem; det er ikke bevis på bias, det er bevis på, at tilfældigheden gør sit arbejde.

Det gab mellem "retfærdig" og "føles retfærdig" er stort nok til at fortjene sin egen artikel — se Hvorfor retfærdige terninger føles fuskede for psykologien bag stimer af uheld. Og hvis du vil stille skeptikeren i dig tilfreds empirisk, er den ærlige test volumen: kast en d20 et par hundrede gange, og se spredningen flade ud mod jævnt. Et dusin kast vil altid se klumpet ud; tusind fortæller sandheden.

Kast med fortrøstning

Så, er Mini Kraken retfærdig? Ja — af design, ikke af løfte. Hver side er lige sandsynlig, matematikken bag hvert tal er upartisk ned til decimalen, 3D-animationen fremfører kun et resultat, der allerede er valgt ærligt, den samme motor kører overalt, og et kast kan reproduceres og tjekkes frem for at tages på tro.

Terningerne elsker dig ikke, og de hader dig ikke. De ruller bare. Og på Mini Kraken ruller de lige — så du kan holde op med at spekulere over maskineriet og komme tilbage til historien, hvor det gode faktisk sker.