entomophobiac
Pistoler & Mord
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:
drive.google.com
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.
drive.google.com
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.
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:
kill_horse3.mp4
drive.google.com
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.
Dave.mp4
drive.google.com
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: