Att testa regler med AI + simulering

Faehrengaust

Stallpappa
Joined
27 Sep 2001
Messages
2,816
Location
Vattholma - Uppsala
Håller på och finslipar/balanserar närstridsregler och jag tog givetvis hjälp av min vän ChatGPT. Tänkte skriva några ord om processen och hur det har funkat för den som är intresserad.

OBS: Detta är ingen generell AI diskussion utan en diskussion om hur man kan använda AI/Simulering för att testa regler.

Jag har jobbat i tre steg.

1. Spelat strider med ChatGPT som SL

Jag började med att skapa några färdiga rollpersoner. I systemet som jag har så krävs det bara 1 Färdighet, 4 Krafttyper (motsvarar grundegenskaper i någon mening) och utrustning.

Sedan bad jag ChatGPT spela någon av personerna medan jag spelade en annan. ChatGPT fick sköta om tärningarna och redovisa alla slag och beräkningar. Jag gav den lite olika instruktioner mellan gångerna och varierade värdena lite.

Spelade igenom ca 30 strider och rättade ett par konstigheter som jag upptäckte. Sen var jag nöjd med att reglerna funkade i grunden.

2. Vibe-kodning av simulator

Sedan vide-kodade jag en simulator. Det tog 1 prompt så hade jag en fungerande sådan (det är så jäkla kraftfullt!). Jag sa bara åt den att jag ville ha samma möjlighet för manuella strider som jag haft i chatten och att jag dessutom ville jag ha möjlighet att simulera större antal strider automatiskt. Och jag ville ha möjlighet att ändra på värden i GUI't.

Efteråt har jag filat och ändrat på simulatorn flera gånger genom nya promptar. Och jag har uppdaterat den flera gånger baserat på regeländringar som jag gjort.

Nu kunde jag testa flera olika uppställningar med olika viktade beteenden. Med en knapptryckning kör den 1000 strider och presenterar resultat.

Det här ledde till att jag hittade flera balansproblem som jag kunde rätta till. Med tiden har jag adderat flera variabler att testa och jag kommer att fortsätta göra så.

3. Analys av simulationer

Ett balansproblem som gäckade mig var att långspjutet var för bra och jag förstod inte varför utifrån simuleringsdatat. Då bad jag ChatGPT att köra simuleringen och analysera den vilket resulterade i att den gav mig en tabell med parametrar som påverkade resultatet och den gav mig flera olika variationer. Där kunde jag hitta ett problem i hur en av mina Hållningar (typ gard) fungerade - den hade större effekt än jag tänkt mig just i kombination med långspjut.

Det jag kunde göra nu är att be den köra simuleringen med en viss regeländring utan att faktiskt ändra i mina regler eller simulatorn. På det sättet kunde jag mycket snabbt testa mig fram till vilken parameter jag skulle pilla på för att kunna komma till önskat resultat.

Detta har visat sig otroligt kraftfullt och jag kan nu testa massvis med varianter på mycket kort tid utan att skriva mer än kortare prompter. Vad blir följderna om jag lägger till den här egenskapen på Yxa? Vad blir följden om jag lägger till det här fummelresultatet? Etc.

Detta har även visat sig vara ett effektivt sätt att testa förenklingar av reglerna. Vad blir konsekvenserna om jag tar bort den där specialregeln? Det har gjort att jag kunnat skala av och förenkla utan att förlora mer än någon % i något utfall.

Slutsats

Otroligt kraftfullt verktyg. Har hållit på i ca 4 timmar sammanlagt och kunnat förbättra mina regler avsevärt.

Dessutom är det kul. Skulle nog kunna bygga vidare på simulatorn och få det till något spelbart i sig :)

Dock är jag helt medveten om att detta inte ersätter riktigt speltest. Det är en sak att reglerna faktiskt fungerar och ger rätt utfall, men en annan hur strider känns runt spelbordet. Men, det är skönt att kunna komma till spelbordet med någonting som jag vet fungerar i grunden. Då kommer frågorna inte handla om spelbalans utan om känslan.

Lite bilder så klart, först Kombattanterna:

1792492069389.png

Sedan resultat av simulering:

1792492196603.png
 
En sak som AI också är bra på i sammanhanget är att bedöma reglerna och se sådant som om det är luckor i dem, om det är ojämnt "djup", om de är begripliga osv.

En väldigt bra prompt är "beskriv med egna ord hur den här regeln funkar", och se om den tolkar rätt.

Jag har också gjort brädspel i webutförande bara genom att ge den dokumentet med mina regler, några riktlinjer och be den genomföra det.
 
Riktigt coolt! Jag försökte något liknande med min husreglade variant av EON-3 reglerna när jag byggde en kampanj som utspelade sig i Westeros. Ville få till en viss känsla i striderna och ville veta hur mycket skillnad olika rustningar gjorde under korta respektive längre strider etc. Så ja, här fungerar sådana här verktyg otroligt väl! Du får berätta mer och utveckla mer vad du kommer fram till i ditt eget stridssystem senare då just spjut är ett sådant vapen som ofta väljs bort av spelare till deras rp, och något jag som SL också underanvänder då spjut varken är flashiga eller speciellt bra i de flesta system. Spjut är dock awesome och något jag insett alldeles för sent.
 
Riktigt coolt! Jag försökte något liknande med min husreglade variant av EON-3 reglerna när jag byggde en kampanj som utspelade sig i Westeros. Ville få till en viss känsla i striderna och ville veta hur mycket skillnad olika rustningar gjorde under korta respektive längre strider etc. Så ja, här fungerar sådana här verktyg otroligt väl! Du får berätta mer och utveckla mer vad du kommer fram till i ditt eget stridssystem senare då just spjut är ett sådant vapen som ofta väljs bort av spelare till deras rp, och något jag som SL också underanvänder då spjut varken är flashiga eller speciellt bra i de flesta system. Spjut är dock awesome och något jag insett alldeles för sent.

Det här är ett Vikinga-fantasy spel som utspelar sig ett par generationer efter Ragnarök. Jag har valt att ha med ovanligt få vapen för att vara fantasy. Alla vapen har en tydlig roll/profil - vad är de bra på och när man använder dem. De flesta vapnen är tagna direkt från vikingarnas arsenal (i huvudsak spjut, svärd, yxa, tvåhandsyxa, sax, kniv), men just Långspjutet är ett vapen som har lite skakig historisk grund (det finns ett par vapen som man är osäker på vad de egentligen var). Men, jag la in det som ett vapen man tagit till mot en del monster där man vill hålla avståndet.

Så det jag ville få till är att Långspjut inte ska vara något effektivt vapen i vanlig strid, men ett bra vapen mot stora monster. Problemet jag fick var att det vann ca 60% av alla strider mot alla andra vapen. Med de egenskaperna hade det blivit det automatiska vapenvalet för alla situationer vilket är precis vad jag vill undvika. Här hjälpte simulatorn mig att förstå vad jag skulle skruva på för parametrar. Nu ligger Långspjutet på under 40% vinster med lika Färdighet etc. Det är precis där jag vill ha den - ingen spelare kommer att välja det som vapen i vanlig strid, men man kommer att vilja ha den när man möter trollet eller lindormen.

Jag hade ett liknande problem med Yxa + Sköld som blev för svagt. Där fick jag ändra på tre parametrar för att få det att funka.

Vanligt Spjut (det vi tänker på när vi tänker vikingar) finns också och där har jag inte haft några problem, den presterar som jag tänkt mig - dvs bra.

Sen är det så klart så att när man skruvar på en parameter så kan det slå på annat. Men återigen är simulatorn ovärderlig i att snabbt kolla hur det blir. Jag har ett flertal sparade kämpar som jag kan testa med. Nästa tanke är att skapa en möjlighet att köra sammantagna test med förväntade värden - dvs typ 10 olika par som kör med förväntade utfall. Det blir ett regressionstest när jag ändrar något.

Ett annat nästa steg är att lägga in strid med flera deltagare, men där är jag inte helt klar med första regelutkastet. Jag kommer antagligen följa ungefär samma steg som tidigare för det. Först spela mot ChatGPT som SL för att få en känsla utifrån spelarperspektiv och sedan simulera.

PS. Det som förvånat mig är hur lite tokens detta kostat. Jag har bara använt ca 5% av mina tokens för veckan. Då har jag gjort annat också förutom simuleringen.
 
PS. Det som förvånat mig är hur lite tokens detta kostat. Jag har bara använt ca 5% av mina tokens för veckan. Då har jag gjort annat också förutom simuleringen.
Det går mindre än vad man tror, tills man kör fast och behöver köra modellen på högsta kvaliteten...

Jag har gjort en backend för min utveckling, så först kör den API tills jag har slut på tokens, sedan växlar den till en annan backend som kör en browser headless via vanliga webgränssnittet som inte använder tokens, skulle den haverera så faller jag tillbaka på en tredje backend som lägger en fil oc instruktioner på clipbordet som jag klistrar in manuellt i chaten, och sedan plockar den automatiskt responsen. Skadar inte att ha backupplaner...
 
Back
Top