Hur Spelunky gjorde procedurgenerering kul

Av alla trender som har svept spelutrymmet under det senaste decenniet eller så har få den uppehållskraften hos processgenerering, som skriver ett system av regler för att skapa innehåll och låter ett program itera igenom dem med utgångspunkt från ett randomiserat “frö. ”

Spelare förväntar sig att deras spel har mycket innehåll och omspelbarhet, men att anställa designers och artister för att skapa massor av unika element kan vara långt utom räckhåll för många studior. Datorer kan hjälpa till. Artificiell intelligens tar komponenterna i en spelvärld och blandar och matchar dem i tusentals eller till och med miljoner olika arrangemang. Processgenerering utnyttjar sedan den makten.

Speldesigners började experimentera med dessa metoder på 1970-talet, men de flesta titlar som använde dem straffade spelarna. Processgenerering hittades oftast i spel som Rogue och Nethack, dungeon crawlers med djup, tråkig mekanik och primitiv ASCII-grafik. Tekniken användes också för att skapa solsystem för spel som Elite.

Speldesignern Derek Yu tillverkade omsorgsfullt världen av 2007: s Aquaria, en Metroidvania under vattnet som fick kritik efter att den släpptes. Men för sitt nästa projekt ville han skapa ett spel med mer omspelbarhet. På forum som TIGSource såg han andra utvecklare som Minecrafts Notch-experiment med procedurgenerering, och han bestämde sig för att prova det själv.


Få ett rep

Inspirerat av det klassiska plattformsspelet Spelunker från 1983 prototypade Yu en titel där spelaren sjönk ner i underjordiska grottor fyllda med skatt och befolkade med aggressiv fauna och dödliga fällor.

Även om varje spel följde samma generella berättelsebåge var upplevelsen och utmaningarna olika på varje gång. Det var där procedurgenerering kom in. Spelunkys värld är inte helt slumpmässig. Istället använder spelet ett komplext system för att bygga planritningar ur en palett av element. Varje nivå delas in i ett 4-för-4-rutnät med 16 “rum”, som väljs från ett antal typer. Spelaren börjar alltid i ett av de fyra rummen på den översta raden, och utgången är alltid ett av de fyra rummen på botten.

Algoritmen konstruerar en väg mellan ingången och utgången och börjar sedan lägga till detaljer i de enskilda rummen längs vägen. Varje “typ” av rum drar från ett antal möjliga mallar och sedan fylls dessa mallar med block som sannolikt är speciella typer. Detta beslut i flera lager gör att systemet kan skapa terräng som alltid är navigerbar men ger en mängd olika utmaningar.

Slutligen tog Spelunky lektioner från klassiska spel som Doom och skapade ett ekosystem där invånare och objekt har intressanta interaktioner med varandra. Kasta in ytterligare visuella och svårighetsförändringar när du fortsätter och du har ett recept på ett spel som kan skryta med massiv omspelbarhet. Yu skrev en hel bok 2016 om processen.


Andra världar

Spelunky var en oväntad hit, släpptes först som freeware och portades sedan till flera konsoler, inklusive Xbox 360, PS3 och PS4. Det finns till och med en HTML5-version. Eftersom källkoden är öppen för samhället finns det många fläktmod. Det visade att kombinera processvärldar med en mer populär spelgenre – i det här fallet Mario-liknande plattformsspel – kunde fånga en ny publik av både avslappnade spelare och hardcore speedrunners.

Processgenerering har sedan dess blivit ett viktigt verktyg i den moderna utvecklarens arsenal. Många av de mest profilerade spelen de senaste åren har använt det för att skapa innehåll, från Minecrafts unika världar till No Man’s Sky’s enorma universum. Fördelen med den här metoden är att det slumpmässiga utsäde som matas in i algoritmen kan vara ganska litet, vilket gör att filstorlekarna krymper medan programmet gör alla tunga lyft.

Även om de här verktygen inte används för att skapa spelets primära innehåll kan de fortfarande visas i bakgrunden. Konstnärer använder processgenerering för att fylla skogar som ser riktigt vilda ut eller göra karaktärer som inte spelar med olika utseende. Varje år hittar utvecklare nya sätt att utnyttja detta verktyg för att göra spel som är djupare och rikare.

Crusader Kings-spelen kombinerar algoritmiskt genererade personlighetsdrag för att avgöra hur dess härskare beter sig. Shadow of Mordor, och dess uppföljare, använder den för att generera olika orkar du slåss. Microsofts nya flygsimulator använder verkliga satellitdata som slås upp av en processgenereringsalgoritm för att bygga den stora majoriteten av jordens landskap.


Delving Deeper

Det har tagit många år för Yu att förbereda uppföljaren till Spelunky. En av de större utmaningarna för spelutvecklare som lutar mycket på processgenerering är att göra ett andra spel som känns väsentligt annorlunda, och inte bara som att fler olika tillgångar har lagts till i grytan. En hel del av det arbete som han har lagt ner involverar själva världens natur.

Medan det första spelet drivs på ett ganska strikt nätbaserat system, ger Spelunky 2 med sig en svit av vätske- och partikeleffekter. Lava och vatten kan nu sippra ut och flöda genom världen på fysiskt realistiska sätt, vilket skapar en ny dimension av utmaningen. Varje nivå har också ett extra “lager” som kan nås genom en dörr. Hitta den dörren och utforska världen på andra sidan, fördubba storleken på det utforskbara utrymmet.

Med framgången med det första spelet började Yu samarbeta med BlitWorks – företaget som överförde Spelunky till Sony-konsoler – för att koda uppföljaren. Dess inmatning gjorde att spelet kunde testas mycket mer kraftfullt innan det släpptes, vilket är vettigt. Under hela den tid som slumpmässig sådd kan spara i ena änden, måste den balanseras genom omfattande experiment från spelarens ände. För ett spel som är stolt över rättvisa (även vid högsta svårighet) är det oacceptabelt att få en spelare att bli avskuren av en seger på grund av algoritmen.

Processgenerering är inte allt-och-allt-i-speldesign, och vissa berättelser – som till exempel den rika och komplexa berättelsen om The Last Of Us – kommer antagligen aldrig att skrivas av en dator. Men det är lärorikt att se hur det hjälper designers och utvecklare att fylla i luckorna i sina spel och ge oss ett incitament att spela om och om igen, alltid känna att vi kan se något nytt.

Relaterade Artiklar

Back to top button