Alle cases

Tre spil, der ikke kan lægges sammen

  • Min rolleFrivillig — formand og udvikler
  • TypeTurneringssystem — tre sites og et API
  • Påbegyndt2026
Bygget medHTMLCSSJavaScriptAzure Static Web AppsAzure FunctionsMySQLGitHub Actions
Se produktet live

Problemet

AKBU Odense holder LAN for byens unge, og der spilles tre ting på en aften: Minecraft, Fortnite og Among Us. Point blev ført på papir og i hovedet, og stillingen fandtes kun ét sted — hos den, der havde arket. Deltagerne kunne ikke følge med undervejs, og det er ellers halvdelen af det sjove ved en turnering.

Det egentlige problem var, at de tre spil ikke kan lægges sammen. Fortnite giver point for hver eliminering og har ingen øvre grænse, mens Minecraft dømmes på kreativitet, ambition og tema med ti point i hver, altså højst tredive. Lægger man tallene sammen råt, afgør Fortnite turneringen alene, og byggekonkurrencen bliver til pynt.

Oven i det taster Fortnite-deltagerne selv deres resultat ind — der står ingen dommer bag hver skærm. Og dommerne på Minecraft og Among Us går rundt mellem bordene med en telefon i hånden på et netværk, der ikke altid er der.

Det jeg byggede

Point regnes om efter placering. I hvert spil oversættes deltagerens placering til point fra én fælles tabel, så det tæller lige meget at vinde Minecraft og at vinde Fortnite, uanset hvordan de to spil tæller internt. Lige placeringer deler pladsen på sportens sædvanlige måde — 1, 2, 2, 4.

Reglerne ligger i én fil, som både serveren og browseren henter. Stillingen på storskærmen kan derfor ikke regne anderledes end serveren, og der findes kun ét sted, hvor en regel kan laves om.

Selvindtastning holdes ærlig ved at være offentlig frem for ved at være låst. Alt, hvad der tastes ind, står synligt i en log, og en dommer kan annullere en indtastning — men annulleringen bliver stående med sin begrundelse. Når alle sidder i det samme lokale, er det langt stærkere end en adgangskode.

Dommerne gemmer fra deres egen telefon, og den samme runde kan gemmes to gange uden at tælle dobbelt: en gemning retter i stedet for at lægge til. På et netværk, hvor man ikke kan se, om det gik igennem, skal det være trygt at trykke gem en gang til. Ingen telefon er bundet til en bestemt dommer, så et fladt batteri betyder et nyt login og ikke en tabt runde. Navne slås sammen, før de gemmes, så "Jonas", "jonas" og "JONAS" bliver den samme deltager og ikke tre.

Der er med vilje intet byggetrin. Siderne er almindelig HTML, CSS og JavaScript, så en rettelse midt i et arrangement er ude efter et par minutter frem for ti. Databasen er en delt MySQL med et loft på hundrede forbindelser, og systemet er bygget efter det: små forbindelsespuljer og hentning med jævne mellemrum frem for forbindelser, der holdes åbne hele aftenen.

Udtrykket er pixelart med en skrift fra 8-bit-æraen, for det er et LAN og ikke et regneark. Skriften ligger på sitets eget domæne, så der ikke skal hentes noget fra Google midt i en turnering.

Hvor det står i dag

Systemet kører som tre selvstændige sites: stillingen til storskærmen, dommernes telefonside og deltagernes egen indtastning. De deler database og regler, men kan udgives hver for sig, så en rettelse ét sted ikke rører de to andre.

Der er ingen cookies og ingen sporing. Deltagerne er mindreårige, og der gemmes ikke andet end det, der skal til for at føre en stilling: et navn og nogle point.