Digital spelutveckling och varför jag är Ai-skeptiker

entomophobiac

Pistoler & Mord
Joined
6 Sep 2000
Messages
9,721
Location
Uppsala
Det är dags att illustrera varför jag är Ai-skeptiker, sett endast från mitt egna isolerade perspektiv.

Jag har jobbat med digital spelutveckling i snart 20 år. Programmering, design, startups, konsultation; du hinner ganska mycket på 20 år i en så volatil bransch. Min specialitet senaste fem-sex åren har blivit systemdesign. Både av transferenstyp, exempelvis XP-system och liknande, och emergenstyp, som handlar mer om hur objekt kommunicerar med varandra. (Den här terminologin har jag tagit fram själv, vilket illustrerar ett av de problem som finns i spelutveckling — det saknas ett bra sätt att prata om de här sakerna.)

Min specialitet, och vad jag blir anlitad för att hjälpa studios med, föreläsa om, och även försökt utveckla i egna projekt (med varierad framgång), kan grovt summeras som hur spel görs mer dynamiska. Det jag nämligen upptäckte för några år sedan var att det här är väldigt dåligt förstått och att vi skulle kunna få fler spel av den här typen genom att sprida kompetensen kring hur de byggs — för kanske 25-30 år sedan var nästan alla spel mer systemdrivna.

Alla har varit hungriga. Allt från Crusader Kings II+ till Minecraft till Baldur's Gate III till roguelikes till de moderna Zelda-spelen har öppnat folks ögon mer och mer för vad systemdriven design innebär och vilka möjligheter som finns. Det har byggts upp en ansenlig hype kring systemdrivna sätt att tänka, och där har jag halkat in på bananskal med otippat bra timing. (Önskar att det här var planerat, men det här började med att jag "skrev av mig" i bloggform, som sedan lett till närmast alla mina gig som frilansare.)

"Kill_horse3"
Den här videon brukar jag visa för att illustrera systemdriven emergens. Projektet den kommer från blev aldrig släppt, eftersom förläggaren gick i konkurs. Men jag har fått tillstånd att visa den i föreläsningssammanhang. I det här projektet fanns ett karaktärssystem, som bland annat skötte "dismemberment", det fanns system för objektinteraktion (svärd, rustning, etc.), och det fanns system för att generera animation från enskilda "frames". Fokus på hög grad respons.

En eftermiddag fick en programmerare för sig att "slänga in en häst" i karaktärssystemet och sen skriva över spelarkaraktärens animation med hästens animation. Resultatet var en snabb men enkel variant av att rida. Men på grund av de övriga systemen så uppstod resultatet i videon:


Det här var alltså aldrig planerat. Men för det dåvarande teamet blev det en "aha"-upplevelse och gapflabb, för vi såg svart på vitt vad hög grad dynamik faktiskt innebär för spelupplevelsen. Hade behövt lite visuell polish för att bli en riktig feature, såklart, men just enkelheten i att kombinera de olika systemen var absolut central.

"Douchebag Dave"-prototypen
Det tydligaste exemplet på skadan som gjorts av GenAi kan illustreras av den här prototypen. Den skapades på en dag som ett experiment för att testa dynamisk realtidsdialog. Sättet den gör detta på är att objekt i spelvärlden ges vissa egenskaper, dessa egenskaper samlas ihop i realtid, och sen skickas de till en databas för att få tillbaka den bäst lämpade dialograden. Inspirerat av Left 4 Dead. Den skrevs alltså på en dag, för själva logiken är busenkel, och extremt modulär. Du kan skriva 10 000 rader dialog och kategorisera dem för att skapa en väldigt responsiv dialogsimulation.

Du kan titta på världen, tänka att, "fan om Dave går förbi Rolfe och hans fisk, då måste han ju kunna kommentera den?" Du har lagt in en sån line i systemet på en minut eller mindre.


GenAi
Båda de här exemplen fungerar för att det är busenkla system som skapar komplexitet genom att interagera med varandra. Inputs som ger outputs som används som inputs på andra ställen, eller kommuniceras som feedback till spelaren. Som utvecklare kan du kontrollera vilka system som interagerar, men du har aldrig som mål att kontrollera spelarens interaktion, och du kan förse alla system med detta på dynamiska sätt. Det är enkelt att debugga, det är lätt att bygga verktyg till, och vill du utöka något av det kan du bara lägga till ett till system som accepterar samma inputs och/eller ger liknande outputs och du får en exponentiell ökning av möjliga kombinationer.

Skälet att alla spel för 30 år sedan gjordes på detta sättet är att det på många sätt är enklare än att göra spel som är contentdrivna.

Men idag, och kanske senaste två-tre åren i synnerhet, går det inte att prata om något av detta utan att någon räcker upp handen och säger "varför inte använda ChatGPT?" (Eller motsvarande.)

Skälet är att GenAi är en svart låda. Du kan inte styra dess output utan avsevärd handpåläggning. Du kan inte egentligen kontrollera vad du får från given input heller, eftersom en LLM är stokastisk (den ger olika resultat även från samma input). Att "stoppa in ChatGPT" i något liknande de här prototyperna skulle nog kunna ge dig en större volym av exempelvis dialog eller objekt; men det skulle inte ge dig någon substans. Människor är än så länge helt överlägsna på att associera kring kontext. Att gör det skulle helt enkelt bara ge merarbete, där de enkla emergenta systemen faktiskt är helt överlägsna.

Du kan absolut använda andra varianter av Machine Learning, exempelvis Reinforcement Learning. Du kan också bygga och utbilda en egen språkmodell, men även den kommer bete sig som en svart låda. Att utbilda många av dessa modeller rör sig dessutom om månader av tid, där en prototyp som Douchebag Dave: The Insult Simulator kunde byggas på en enda dag.

Så, min professionella skepsis mot GenAi är helt enkelt att den inte gör det folk tror den gör. Faktum är att den är sämre än de många gånger busenkla kärnmodeller som funnits i 30 år eller mer.

TL;DR: jag är skeptisk för att GenAi inte gör vad folk tror den gör och ofta är skitdålig på det folk tror den gör.
 
Last edited:
Vi har ett jättebra exempel på när du faktiskt medvetet går in och förstör för att du vill sprida "principer".

Noll intresse att diskutera utifrån trådstarten. Bara går in och sprider dina principer.

Jag förlorade verkligen en del av respekten för dig där.

Se hur jävla kul det är är när man försöker diskutera något och folk går in och förstör.

 
Så, min professionella skepsis mot GenAi är helt enkelt att den inte gör det folk tror den gör. Faktum är att den är sämre än de många gånger busenkla kärnmodeller som funnits i 30 år eller mer.
Jag har inte alls samma nivå av yrkesmässig kunskap om GenAi, men har landat i samma konstaterade. Ju bättre input/promtande, desto bättre output (i de flesta fall), men precis som du skriver är det en svart låda i mitten som jag har ganska liten kontroll över. Det piggar upp mitt yrkesutövande att använda GenAi, men jag är inte det minsta rädd att den någon gång skulle kunna ersätta mig. Jag inser också att program byggda utan Ai hade varit till mycket, mycket större hjälp eftersom de går att kontrollera hela vägen.
 
Dina exempel är tämligen specifika (runtime-beteende i systemdrivna dataspel).

Är din skepticism även applicerbar på andra användarfall inom spelutveckling, så som att skapa och köra testfall (unit/integration/system/gameplay), skriva intern/extern dokumentation, skapa olika sorters kod (infra/tooling/gameplay/pipelines etc), hantera felrapporter (kategorisera, administrera, prioritera), analysera användarmönster, och så vidare?

Eller är det specifikt runtime-beteendet du syftar på nu?
 
Spännande inlägg. Jag (med noll kunskaper i utveckling av digitala spel) hade lite svårt att hänga med i svängarna - dels är det en del terminologi jag inte riktigt greppar, och dels en del vändningar i texten som gick över huvudet på mig ("Alla har varit hungriga", är spel mer eller mindre systemdrivna idag? jag behövde komma till slutet av texten för att förstå varför de två exemplen var argument emot genAI de här fallen (först trodde jag att hästexemplet var ett exempel på att genAI hade använts!)) men det löste sig med lite stöd från Gemini - så nu tror jag jag greppar invändningen!
 
"Alla har varit hungriga", är spel mer eller mindre systemdrivna idag?
Spel var mer systemdrivna förr (90-tal och tidigare), generellt, delvis för att spelutvecklare var närmre mjukvaruingenjör och för att teams var mycket mindre och fick vara lite mer scrappy.

Men med fler små aktörer och även framgångsrika systemdrivna spel i närtid har den där “hungern” uppstått igen.
 
Jag en av de som inte kan hjälpa att ibland dyka ner i AI-trådar med en (milt sagt) skeptisk attityd, men ska hädanefter fördubbla mina ansträngningar att inte ens öppna dem - främst för att jag inte vill lägga sten på admins redan tunga börda, men också för att jag faktiskt inte vill göra någon ledsen. Jag har kvar min hållning och motvilja till AI, men om mina uttryck för detta gör (och har gjort) att någon fellow forumit faktiskt känner sig illa till mods så ser jag inte värde i att göra dem.
 
Last edited:
Back
Top