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

Det möjligör saker som inte funkat förr.
Det är det här jag försöker förklara att det helt enkelt inte stämmer. De bästa dialogsystemen är de enklaste. Diverse LLM-baserade dialogmoddar har hittills mest varit kuriosa, men otroligt styltiga och fulla av hallucinationer. Röstsyntes har sina användningsområden däremot, men då handlar det ju om att framställa material, inte om att ersätta system.

En intressant sak med spel som försökt göra röststyrt gameplay på olika sätt genom åren (exempelvis Tom Clancy's EndWar) är också att röststyrning är ganska usel. Rösttolkning, även med väldigt bra teknologi och stora dataset, har ofta svårt för dialekter, talfel, mumlat uttal, etc. För att inte tala om att de måste tränas på alla möjliga tänkbara språk och brytningar. Mycket av teknologin är också i molnet, vilket skapar väntetid på dina anrop och kräver att du är online hela tiden.

Många spelare vill inte prata som input heller, och att det tar mycket längre tid att kombinerat tala och lyssna än att läsa text. En del spelare som spelar dialogdrivna spel idag använder subtitles och trycker vidare när de läst klart, istället för att lyssna igenom hela den talade dialogen, exempelvis. Eller de spelar på handhållna maskiner utan ljud för att inte störa rumskamrater eller familj.
 
Jag tror att flera olika användningar av AI blandas ihop här.

Jag håller med om att ett spel behöver kontrollerbara och testbara system. I ett taktiskt spel skulle jag exempelvis inte vilja låta en språkmodell fritt avgöra träffresultat, skador eller vilka regler som gäller från en situation till en annan. Sådant bör normalt hanteras av en deterministisk regelmotor.

Men därifrån följer inte att AI saknar värde inne i själva spelet.

AI kan exempelvis användas för dialog, dynamiska reaktioner, berättande, rådgivare, spelledarliknande funktioner, variation i uppdrag eller för att låta figurer reagera mer naturligt på sådant spelaren gör. Det intressanta är enligt mig inte att låta en språkmodell ersätta hela spelmotorn, utan att kombinera den med tydliga regler och begränsningar.

Regelmotorn kan bestämma vad som faktiskt är möjligt och vilket spelmekaniskt resultat en handling får. AI:n kan sedan formulera, gestalta och reagera inom dessa ramar. Då kan man få större variation och flexibilitet utan att helt ge upp förutsägbarhet och testbarhet.

Det som också har förändrats snabbt är hur en LLM kan interagera med resten av systemet. Det handlar inte längre bara om att modellen lämnar ett textsvar. Genom verktygsanrop och tydligt definierade gränssnitt kan den läsa tillstånd från andra delar av programmet, anropa funktioner, hämta information, starta processer och lämna strukturerade instruktioner till vanlig kod.

I ett spel skulle en LLM exempelvis kunna fråga regelmotorn vilka handlingar som är tillåtna, be den genomföra en vald handling och sedan gestalta resultatet. Det är fortfarande den vanliga koden som verifierar reglerna och förändrar spelvärlden. Modellen behöver inte själv vara regelmotor.

Tekniskt sett är detta förstås en kombination av språkmodellen, verktygslagret och den övriga programvaran. Men den praktiska skillnaden är stor. För bara några månader sedan var sådana arbetsflöden betydligt mer begränsade och opålitliga. I dag kan modellerna arbeta mer självständigt över flera steg och interagera med annan kod med betydligt högre precision.

Jag utvecklar just nu Skyfront 1918, ett digitalt taktiskt flygstridsspel inspirerat av Blue Max. Jag kan programmera själv, men AI har gjort att jag kan utveckla betydligt snabbare och arbeta med fler delar av projektet än vad som annars hade varit realistiskt för mig som ensam utvecklare.

Jag bestämmer arkitektur, regler, krav och prioriteringar. AI hjälper mig att skriva och ändra kod, felsöka, ta fram tester, dokumentera lösningar samt arbeta med grafik och gränssnitt. Resultatet granskas och testas precis som annan kod.

Jag utvärderar även vissa av de här verktygen i mitt arbete, och bara under de senaste sex månaderna har jag sett en tydlig förbättring. Deras förmåga till kreativitet, problemlösning och faktiskt skapande har ökat markant, samtidigt som de i högre grad kan behålla kvaliteten i genomförandet.

Tidigare var de främst bra på tydligt avgränsade uppgifter. Nu kan de i större utsträckning analysera ett problem, föreslå en lösning, använda andra verktyg, kontrollera resultatet och fortsätta arbetet över flera steg.

Det betyder inte att de blivit felfria. AI kan fortfarande missförstå krav, välja dåliga lösningar och introducera buggar. När en modell används under pågående spel krävs därför tydliga rättigheter, validering, begränsningar och reservlösningar.

Jag tror därför inte att frågan är om AI hör hemma i spelutveckling eller inne i spel. Frågan är vilka uppgifter den ska utföra, vilken kod den får interagera med och vilka delar av systemet som måste förbli strikt deterministiska.

En språkmodell är sannolikt en dålig ersättare för en exakt regelmotor. Den kan däremot bli ett mycket kraftfullt lager ovanpå en sådan.

Och eftersom utvecklingen går så snabbt bör man vara försiktig med att dra långsiktiga slutsatser utifrån vad modellerna klarade för ett år sedan – eller ens för sex månader sedan.
 
AI kan exempelvis användas för dialog, dynamiska reaktioner, berättande, rådgivare, spelledarliknande funktioner, variation i uppdrag eller för att låta figurer reagera mer naturligt på sådant spelaren gör. Det intressanta är enligt mig inte att låta en språkmodell ersätta hela spelmotorn, utan att kombinera den med tydliga regler och begränsningar.
Min hela poäng är att detta görs både bättre och enklare med andra välbeprövade medel.

Ai som verktyg för att underlätta utveckling är en separat konversation, däremot.
 
Det kan absolut stämma för vissa uppgifter, särskilt när problemet går att beskriva med tydliga regler och ett begränsat antal möjliga tillstånd. Då är traditionell kod ofta både snabbare, billigare och mer förutsägbar.

Men jag tycker att ”både bättre och enklare” blir ett alltför generellt påstående. Vilka välbeprövade medel syftar du på, och vilken konkret funktion jämför vi?

Om målet exempelvis är att en figur ska välja mellan tio fördefinierade handlingar är ett traditionellt beslutsträd sannolikt bättre. Men om figuren ska kunna tolka spelarens fritt formulerade avsikt, väga in ett stort sammanhang, kommunicera naturligt och därefter anropa spelets befintliga funktioner, blir jämförelsen en annan.

En modern LLM behöver inte själv ersätta regelmotorn. Den kan använda den. Modellen kan tolka situationen och begära en handling, medan vanlig kod kontrollerar om handlingen är tillåten och genomför den deterministiskt. Det är just förmågan att interagera med andra delar av systemet genom definierade verktyg och API:er som har förbättrats kraftigt på senare tid.

Det går naturligtvis att bygga motsvarande beteenden med dialogträd, tillståndsmaskiner, skript och stora mängder specialskriven logik. Frågan är om det verkligen alltid blir enklare och bättre när man vill hantera öppna, språkliga och svårförutsägbara interaktioner.

Min poäng är alltså inte att en LLM är bäst för allt. Min poäng är att den numera kan komplettera välbeprövade system och lösa vissa typer av problem som tidigare krävde mycket omfattande speciallogik eller starkt begränsade spelarval.

Något jag ser på jobbet, och jag jobbar med väldigt seniora individer är att många av dem känner sig hotade av det här verktyget. Jag försöker förklara för dem att man antagligen inte behöver känna sig hotad. Däremot så kommer tex. projektplanerares roller att övergå att vara en mer kreativ roll. Vi kommer att kunna utföra väldigt mycket mer, det gäller oavsett roll och system man agerar inom,
 
Men jag tycker att ”både bättre och enklare” blir ett alltför generellt påstående. Vilka välbeprövade medel syftar du på, och vilken konkret funktion jämför vi?
Närmast alla former av dynamik är enklare att åstadkomma med andra medel. LLMer är svarta lådor.

Beskriver några tekniker här: https://playtank.io/2023/08/12/an-object-rich-world/

(Blir inget mer utförligare svar här, för jag är begränsad till mobilen just nu.)
 
Jag tycker att artikeln är bra, men jag tycker inte riktigt att den stödjer den breda slutsatsen att nästan all dynamik görs enklare med andra metoder.

Den beskriver framför allt metoder för systemisk simulering och interaktion mellan kända objekt: Stim/Response, traits, meddelanden, tillståndsfrågor och ECS. För sådant som eld, skada, fysik, materialegenskaper och andra spelregler håller jag med om att deterministiska system normalt är rätt verktyg.

Men artikeln beskriver också begränsningarna. Stim/Response kräver att kopplingarna skapas uttryckligen och blir innehållsintensivt. Trait matching kan bli otympligt när antalet interaktionstyper växer. Procedurgenerering beskrivs som dyr och inte nödvändigtvis enklare. Slutsatsen är uttryckligen att det inte finns någon universallösning.

En LLM behöver inte konkurrera med de systemen. Den kan ligga ovanpå dem.

Den kan exempelvis:
  • tolka fritt formulerade instruktioner från spelaren,
  • sammanställa ett stort och spritt sammanhang,
  • föreslå en av flera tillåtna handlingar,
  • anropa spelets vanliga kod genom definierade verktyg,
  • formulera dialog och reaktioner utifrån resultatet.
Den deterministiska koden kan fortfarande avgöra vad som är möjligt, utföra handlingen och uppdatera spelvärlden. LLM:n behöver alltså inte bestämma skada, fysik eller den auktoritativa spelstaten.

Att LLM:er är svarta lådor är en verklig begränsning, men det är inte samma sak som att hela systemet måste bli en svart låda. Man kan begränsa modellen till typade verktygsanrop, validera parametrarna, kontrollera behörigheter, logga alla handlingar och låta vanlig kod verkställa resultatet. Då är modellens interna resonemang svårt att inspektera, men dess möjliga effekter på spelvärlden är fortfarande kontrollerade.

Det går förstås att efterlikna mycket av detta med beslutsträd, regler, tillståndsmaskiner och handskrivna dialogsystem. Men då måste man i hög grad i förväg beskriva vilka formuleringar, sammanhang och kombinationer som ska hanteras.

Så jag tror fortfarande att vi talar om delvis olika problem. Artikeln visar bra metoder för att skapa konsekventa och emergenta simuleringar. En LLM kan tillföra något på den öppna, språkliga och kontextberoende nivån – och samtidigt använda just de system som artikeln beskriver.

Jag är övertygad om att det i närtid kommer LLM som helt kan ersätta spelledaren och göra det bättre än 90% av alla spelledare. Lite sidotråd men ändå... :) Jag ser fram mot det. Många av problem som LLM har idag som begränsar det är minne. Men det jobbas på att lösa dessa problemen. Vi har ett sådant forskningsprojekt som pågår. Det ser lovande ut.
 
Jag tycker att artikeln är bra, men jag tycker inte riktigt att den stödjer den breda slutsatsen att nästan all dynamik görs enklare med andra metoder.
Artikeln är ju bara ett axplock. Poängen är ju inte “använd en av dessa istället för LLM” utan att den fundamentala arkitekturen som byggs måste stödja dynamik och att det på alla sätt blir bättre OCH enklare.
 
Där håller jag med om grundprincipen: den underliggande arkitekturen måste stödja dynamik. En LLM kan inte rädda ett system där spelvärlden saknar tydliga objekt, tillstånd, regler och gränssnitt.

Det jag inte är övertygad om är steget där detta sägs bli bättre och enklare på alla sätt utan LLM. Det beror på vilken sorts dynamik vi pratar om.

För fysisk, regelstyrd och auktoritativ dynamik är traditionella system normalt överlägsna. Men om spelet ska tolka fritt språk, väga samman stora mängder kontext, improvisera dialog eller översätta en spelares vaga avsikt till handlingar i systemet, kan en LLM vara ett användbart lager ovanpå den arkitekturen.

Då ersätter den inte objektmodellen eller regelmotorn. Den använder dem genom definierade funktioner. Den kan exempelvis föreslå en handling, medan vanlig kod kontrollerar om den är tillåten och genomför den.

Den svarta lådan begränsas alltså till tolkning och val, medan de faktiska effekterna fortfarande kan vara typade, validerade, loggade och deterministiska.

Jag tror därför inte att vi egentligen är oense om behovet av en bra systemarkitektur. Skillnaden är att jag ser LLM:n som en möjlig komponent i den arkitekturen, medan du verkar se den som något som konkurrerar med arkitekturen.

Och påståendet att andra metoder blir både bättre och enklare i närmast alla fall är så generellt att det behöver prövas mot ett konkret användningsfall. Annars blir det svårt att avgöra vad ”bättre” och ”enklare” faktiskt betyder.
 
Artikeln är ju bara ett axplock. Poängen är ju inte “använd en av dessa istället för LLM” utan att den fundamentala arkitekturen som byggs måste stödja dynamik och att det på alla sätt blir bättre OCH enklare.
Där håller jag inte helt med. Det behöver inte bli bättre på ALLA sätt. Det behöver bli bättre för det specifika användningsfallet. Liksom, en F1-bil är bättre än en traktor på att komma runt en bana fort, men på åkern är traktorn kung.

Så, så länge verktyget löser mina specifika behov, så är jag nöjd, oavsett verktyg.
 
MODERERING

Pratar ni fortfarande digital spelutveckling? Eller pratar ni generellt om AI och LLM?

Om det första, carry on, om det andra, stay on topic istället.

MVH


/Magnus
 
Men om spelet ska tolka fritt språk, väga samman stora mängder kontext, improvisera dialog eller översätta en spelares vaga avsikt till handlingar i systemet, kan en LLM vara ett användbart lager ovanpå den arkitekturen.
Och det är exakt detta som jag menar inte stämmer. Men det är också en typ av argumentation som diskussionsklimatet kring Ai idag inte brukar acceptera. :)
 
Och det är exakt detta som jag menar inte stämmer. Men det är också en typ av argumentation som diskussionsklimatet kring Ai idag inte brukar acceptera. :)
Jag accepterar absolut att du menar att även detta görs bättre utan LLM. Men då vore det intressant att förstå hur, snarare än att diskutera huruvida åsikten får uttryckas.

Ta ett konkret exempel: spelaren skriver en tidigare oförutsedd instruktion med fritt språk. Systemet ska tolka avsikten utifrån vad som har hänt tidigare, identifiera relevanta objekt och relationer i spelvärlden, välja bland tillåtna systemfunktioner och formulera en situationsanpassad reaktion.

Hur skulle du bygga den funktionen med andra metoder, och på vilket sätt blir lösningen enklare och bättre?

Det är fullt möjligt att du har en övertygande arkitektur för det. Men ”det stämmer inte” räcker inte riktigt för att visa det, särskilt när påståendet är att andra metoder är bättre och enklare i närmast samtliga fall.

Jag hävdar inte att LLM är den enda möjliga lösningen eller att den alltid är bäst. Jag hävdar att den kan vara ett användbart lager i vissa arkitekturer. Det borde vara en teknisk och empirisk fråga som går att jämföra utifrån exempelvis utvecklingstid, robusthet, kostnad, variation och förmåga att hantera tidigare oförutsedda indata.

Om slutsatsen redan på förhand är att inget sådant användningsfall kan finnas, blir ståndpunkten däremot svår att pröva.
 
Ta ett konkret exempel: spelaren skriver en tidigare oförutsedd instruktion med fritt språk.
Det här är ju exakt vad en LLM är, dock. Problemet är att den är stokastisk, och inte kan ge exempelvis två olika spelare samma upplevelse. Den kan inte enkelt ges sammanhang av mer artistisk art.

Fritext är dock inte en populär form av input — men absolut något en LLM gör “bättre” på ett grundläggande plan.
 
Fast när vi spelar rollspel får olika spelgrupper redan helt olika upplevelser av samma scenario.

Två spelledare gestaltar inte en rollperson likadant. De gör olika tolkningar, improviserar olika svar och reagerar olika på spelarnas idéer. Till och med samma spelledare kan hantera motsvarande situation på olika sätt vid två speltillfällen. Spelarna bidrar dessutom med sin egen kreativitet och leder berättelsen i oförutsedda riktningar.

Är det ett fel?

Jag skulle säga att det ofta är en central del av rollspelandet. Målet är inte nödvändigtvis att alla ska få exakt samma upplevelse, utan att upplevelsen ska vara sammanhängande, trovärdig och hålla sig inom spelets avsedda ramar.

Det betyder förstås inte att all stokastik är bra. Om två identiska handlingar får olika regelmekaniska konsekvenser utan begriplig anledning blir det problematiskt. Men man kan låta regelmotorn hantera den auktoritativa spelstaten och låta en LLM bidra med sådant som gestaltning, tolkning och variation.

Två spelare kan då få samma regelmässiga förutsättningar men olika formuleringar, reaktioner och berättelsemässiga detaljer. Det är inte självklart sämre. Det kan tvärtom vara närmare hur ett mänskligt lett rollspel faktiskt fungerar.

Frågan är därför inte om spelarna får exakt samma upplevelse, utan vilka delar som måste vara konsekventa och vilka delar som tjänar på variation.
 
För mig är det nog enkelt – jag har varken här eller i några andra sammanhang hört ett enda exempel på videospelsmekanik som genAI behövs till eller gör bättre, och som jag faktiskt skulle vilja ha i spel. Jag är helt OK med att vissa kategorier av spelmekaniker helt enkelt aldrig realiseras i videospel. Alla videospel någon kan tänka sig, behöver inte skapas.
 
För mig är det nog enkelt – jag har varken här eller i några andra sammanhang hört ett enda exempel på videospelsmekanik som genAI behövs till eller gör bättre, och som jag faktiskt skulle vilja ha i spel. Jag är helt OK med att vissa kategorier av spelmekaniker helt enkelt aldrig realiseras i videospel. Alla videospel någon kan tänka sig, behöver inte skapas.
Det är en fullt rimlig hållning, men då tror jag också att vi har lämnat den tekniska frågan och hamnat i en fråga om smak.

Om du inte vill ha den typen av spelmekanik finns det naturligtvis inget värde för dig i att den blir möjlig. Alla tekniskt möjliga spel behöver inte skapas, och alla spel behöver inte tilltala alla.

Men det säger inte så mycket om huruvida tekniken faktiskt kan skapa värde för andra spelare eller utvecklare.

Jag kan exempelvis tänka mig spel där jag vill kunna uttrycka en avsikt med vanligt språk i stället för att välja mellan förskrivna dialogalternativ, där personer minns och reagerar på sådant jag faktiskt har gjort, eller där en spelledarliknande funktion kan anpassa presentation, ledtrådar och sociala reaktioner till en situation som utvecklaren inte beskrivit exakt i förväg.

Det behöver inte innebära att en LLM får hitta på regler eller ändra spelvärlden fritt. Den kan arbeta ovanpå en vanlig systemisk arkitektur och endast använda validerade handlingar som spelets kod erbjuder.

Du kanske fortfarande inte vill spela ett sådant spel, och det är helt okej. Men ”jag vill inte ha den mekaniken” är något annat än ”den mekaniken kan göras bättre och enklare utan LLM”.

Jag tror inte heller att genAI behövs för att spel över huvud taget ska kunna vara bra. På samma sätt behöver spel inte ha fysiksimulering, procedural generering, multiplayer eller röststyrning. Men ibland öppnar ny teknik en annan designrymd, och sedan får spelare och utvecklare själva avgöra om den är intressant.
 
Det är en fullt rimlig hållning, men då tror jag också att vi har lämnat den tekniska frågan och hamnat i en fråga om smak.
Och en fråga om avvägning. LLM:er är inte neutral teknik.

Jag är beredd att gå med på att det säkert finns väldigt specifik mekanik som är svår att göra utan LLM:er. Men inte nog med att sådan mekanik inte faller mig på smaken, jag tycker också att det är rent bokstavligt omöjligt för sådan mekanik att vara värd kostnaden. Om det finns människor so inte kan ha roligt utan den specifika mekaniken, så är jag helt OK med att de fortsätter att ha tråkigt.
 
Och en fråga om avvägning. LLM:er är inte neutral teknik.

Jag är beredd att gå med på att det säkert finns väldigt specifik mekanik som är svår att göra utan LLM:er. Men inte nog med att sådan mekanik inte faller mig på smaken, jag tycker också att det är rent bokstavligt omöjligt för sådan mekanik att vara värd kostnaden. Om det finns människor so inte kan ha roligt utan den specifika mekaniken, så är jag helt OK med att de fortsätter att ha tråkigt.
Jag håller med om att LLM:er inte är neutral teknik och att kostnaderna måste vägas mot nyttan. Men argumentet att människor kan ha roligt utan en viss mekanik leder inte särskilt långt.

Vi kan ha roligt utan Rollspel.nu, datorer, internet, tryckta regelböcker, kommersiellt tillverkade tärningar och resor till spelträffar. Alla dessa saker har materiella, ekonomiska och miljömässiga kostnader. Det innebär inte att kostnaderna är identiska eller oviktiga, men frånvaron av absolut nödvändighet gör inte automatiskt en användning oförsvarbar.

Rollspel är trots allt en fritidssyssla. Nästan ingenting vi använder för den är strikt nödvändigt. Om kriteriet är att människor kan ha roligt utan tekniken blir det svårt att motivera särskilt mycket mer än att sitta tillsammans och improvisera muntligt.

Den relevanta frågan borde därför vara mer konkret: vilken kostnad orsakar just den här användningen, vilken nytta ger den, finns det rimligare alternativ och står användningen i proportion till resultatet?

Det kan absolut leda till slutsatsen att en viss LLM-funktion inte är värd kostnaden. Men det behöver bedömas utifrån den faktiska lösningen. En liten lokal modell som används ibland, en ständig molntjänst och storskalig generering är inte samma sak.

Att säga ”jag tycker inte att mekaniken är värd kostnaden” är en fullt begriplig personlig avvägning. Att säga att den bokstavligen omöjligen kan vara värd kustnaden för någon annan är däremot ett mycket starkare påstående.
 
Och en fråga om avvägning. LLM:er är inte neutral teknik.
Vad menar du med "neutral teknik"? För mig kan begreppet betyda allt eller inget, beroende på vad man lägger i det. Är en grammatikkorrigerande rättstavning neutral teknik? Är en parametrisk texturgenerator neutral teknik? En kodgenerator (och, i så fall, är det skillnad på om jag eller ChatGPT skrivit den?)?

Jag ser inte tydligt vad du lägger i begreppet.
 
Back
Top