Fair terninger, fair play
Enhver backgammonspiller, der taber på en dobbelt i sidste kast, har undret sig: er disse terninger fair? Det er det rigtige spørgsmål at stille enhver backgammon-app. Her er præcis, hvordan vores terninger frembringes, hvorfor ingen, os selv iberegnet, kan skævvride dem, og hvordan resten af spillet også holdes ærligt.
Efterprøv selv ethvert afsluttet spil
Ord er billige, så her er beviset, du selv kan køre. Når et parti slutter, afslører vi dets server-seed og den forpligtelse, vi offentliggjorde før første kast. Indsæt afsløringspakken nedenfor, så genudleder denne side hver eneste terning helt fra bunden, nøjagtig den samme beregning, vores servere kørte, og fortæller dig, om terningerne stemmer. Den genimplementerer vores terningematematik åbent: en ren genudledning beviser, at hver terning følger af det afslørede seed, så intet kast blev byttet eller kastet om. For det fulde grønne, beviseligt fair resultat tilføjer du det klient-seed, din app registrerede ved spilstart: det beviser, at din egen entropi blev blandet ind, så terningerne heller ikke kunne være valgt på forhånd.
Terningerne: Beviseligt fair, kastet på serveren
Hvert kast i hvert spil frembringes af en tilfældighedsgenerator, der kører på vores spilservere, og det er beviseligt fair. Før det allerførste kast offentliggør vi en forpligtelse, et kryptografisk fingeraftryk af det hemmelige seed, terningerne vil komme fra. Når partiet slutter, afslører vi det seed, og enhver kan genudlede hver eneste terning ud fra det og sammenholde den med den forpligtelse, vi låste på forhånd. Stol ikke på os, efterprøv det selv: værktøjet ovenfor gør netop det. Fordi dit eget klient-seed også blandes ind, kan terningerne ikke vælges, byttes eller kastes om af nogen, os selv iberegnet.
Lige så vigtigt er, hvor kastet sker. Terningerne frembringes aldrig på din enhed, din telefon viser blot et kast, serveren allerede har foretaget. Netop den designbeslutning fjerner hele familien af terningefusk: en ændret app kan ikke kaste om, et forsinkelsesudsving kan ikke fordoble et kast, og intet trick på klientsiden kan skæve til det næste tal, for det næste tal findes ingen steder, før serveren skaber det.
Og kastene justeres aldrig. Der er ingen »engagementskurve«, ingen comeback-mekanik, ingen håndsrækning til spillere i en tabsstime. Generatoren hverken ved eller bekymrer sig om, hvem der vinder.
Brættet: Verificeret ved hvert eneste træk
Fair terninger ville betyde lidt, hvis brættet selv kunne drive af eller pilles ved, så spillet kører efter en streng server-autoritativ model. Din enhed fortæller aldrig serveren, hvordan brættet ser ud, den sender kun din hensigt (»flyt denne brik fra 13-punktet til 8-punktet«). Serveren efterprøver det træk mod de officielle regler og det officielle bræt; ulovlige træk afvises simpelthen, uanset hvad en ændret klient hævder.
Så kommer dobbeltkontrollen: ved hver tilstandsopdatering udsender serveren et kompakt fingeraftryk (hash) af den sande brætstilling. Din enhed beregner det samme fingeraftryk ud fra sit lokale bræt og sammenligner. Hvis blot en enkelt brik afviger, kasserer klienten sin kopi og synkroniserer på ny fra serveren. Begge spillere ser derfor beviseligt det samme spil hele tiden, uoverensstemmelser heler sig selv på én rundtur, og der er intet vindue, hvor et forældet eller manipuleret bræt kan spilles på.
Modstanderne: Glicko-2-matchmaking
Fairness handler også om, hvem du møder. Placeringerne her bruger Glicko-2, en moderne afløser for Elo, der følger både din spillestyrke og systemets tiltro til det skøn, så nye spillere hurtigt nærmer sig deres sande niveau i stedet for at være trædesten i halvtreds spil. Matchmaking parrer dig med modstandere af sammenlignelig placering, og placerede resultater føres tilbage efter hvert spil.
Resultatet: når du vinder, har du overspillet en ligemand. Når du taber, er der noget virkeligt at lære, oftest i strategivejledningerne.
Hvordan fair terninger faktisk føles
Her er den ubehagelige sandhed: ægte tilfældige terninger føles mere lunefulde, end de fleste forventer. Ægte tilfældighed frembringer fire dobbelte i træk, forgæves indgange mod et etpunktsbræt og mirakler i sidste kast, netop i de hyppigheder, sandsynligheden forudsiger. At et 17/36-kast fejler to gange i træk sker mere end hver fjerde gang. Hukommelsen gemmer skandalerne og kasserer det rutineprægede, og derfor har hver erfaren onlinespiller en historie om »fuskede terninger«, og ingen statistisk gennemgang har nogensinde bekræftet en eneste af dem her.
Vil du kalibrere din intuition, lægger vejledningen i sandsynlighedens grundbegreber de rigtige tal frem: 36 kombinationer, rammeodds på hver afstand, indgangschancer fra baren. At vide, at et bestemt tal dukker op 11 gange ud af 36, forvandler »umulig uheld« til »en helt almindelig tirsdag«.
Vil du have den dybere tekniske version, generatorklasser, hvordan commit-reveal-beviset virker, og psykologien bag »fuskede« stimer? Bloggen har den: hvordan server-side RNG faktisk virker.
Vores løfte
- Serverfrembragte, beviseligt fair terninger: aldrig kastet på en enhed, aldrig justeret for nogen spiller eller situation, og verificerbare af enhver, når spillet slutter.
- Regelhåndhævelse ved kilden: hvert træk valideres af serveren; ændrede klienter vinder intet.
- Løbende brætverificering: hash-kontrolleret ved hver opdatering, selvhelende ved enhver uoverensstemmelse.
- Færdighedsbaseret parring: Glicko-2-placeringer og placeringsbaseret matchmaking.
Fair terninger betyder, at den eneste fordel, der er tilbage ved bordet, er færdighed, og færdighed kan læres. Begynd med reglerne, skærp den med strategi, og afprøv den live: bordet nedenfor er gratis, i din browser, uden installation.