Tag en gåtur i en uendelig by

Illustration: Marion42
En spiludvikler har lavet et program, som giver dig muligheden for at tage på gåtur i en uendelig by. Programmet bruger algoritmen Wave Function Collapse, som er inspireret af fænomenet inden for kvantemekanikken med samme navn.

En spiludvikler, som går under navnet Marian42, har udgivet et program, som gør det muligt at tage på opdagelse i en uendeligt stor by.

Programmet er skrevet til PROCJAM 2018, en begivenhed, hvor udviklere bruger en uge på at lave spil, som udnytter procedural generation - altså spil, hvor indholdet genereres af en algoritme.

Mariams program, som også går under navnet Wave Function Collapse, er ikke et spil i den traditionelle forstand, men nærmere en teknologi-showcase. Der er ikke andet at gøre end at gå – eller flyve – rundt og udforske byen.

Programmet kan downloades her.

Inspireret af, men ikke faktisk kvantemekanik

Marians spil bruger algoritmen Wave Function Collapse til at lave den uendelige by. Algoritmen er inspireret af det kvantemekaniske fænomen bølgefunktionens kollaps.

I kvantemekanikken er bølgefunktionens kollaps lidt forenklet det, der sker, når en bølgefunktion via observation går fra at være i en superposition af flere mulige tilstande, til at gå ned til én bestemt tilstand.

Wave Function Collapse-algoritmen fungerer efter et lignende koncept. Et område starter i en uobserveret tilstand, hvor hvert områder er i en superposition af alle mulige tilstande. I takt med at algoritmen observerer forskellige områder, kollapser de ned til en bestemt tilstand.

Se en video af programmet her.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (6)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Torben Mogensen Blogger

Programmet er ganske imponerende, men det har samme problem som de fleste procedurelt genererede landskaber/byskaber/osv.: Det bliver lidt monotomt, fordi der ikke er den store variation. Det er de samme komponenter, der gentages, de er blot sat sammen på forskellige måder. Selv om byen var endelig, villde den være umulig at finde rundt i, fordi der ikke er kendingsmærker. Det er lidt ligesom, hvis man havde et uendeligt antal castle blocks (https://images-na.ssl-images-amazon.com/images/I/91cVsVnF4eL.SX466.jpg) til at bygge et uendeligt slot.

Ikke dermed sagt, at det er ubrugeligt -- tværtimod. Procedural generation er fint til at fylde detaljer ud efter en designer har lavet grovskitser, eller alternativt til at lave et (måske lidt ensformigt) landskab, som en designer så kan tilføje detaljer til. Det er også teoretisk muligt (men noget mere besværligt) at indbygge variation i procedural generation. Når man snakker om arkitektur er udfordringen, at det er svært for et program at opfinde troværdige arkitektoniske elementer. Det er nemt nok at sammensætte elementer, der er designet af mennesker, men at designe nye elementer, der passer harmonisk sammen, er meget svært.

I øvrigt er der ikke noget nyt i procedurelt genererede byer. Det interessante er, at den er uendelig stor, og bliver genereret "on demand", men selv det er set før i andre kontekster.

Torben Mogensen Blogger

I øvrigt sjovt at se at nye elementer først popper op i baggrunden når der f.eks. drejes rundt om et hjørne.

Der bliver sikkert brugt en line-of-sight algoritme, hvor man ser i forskellige retninger for at se, hvor langt væk man kan se (generer i de nærmeste felter, hvis det blokerer synes, så stop, ellers generer i det næste felt også, osv). Man bruger nok ikke alle retninger, men måske i femgraders intervaller, sådan at et element kan dukke op lidt senere, end når et hjørne af det vill ehave været synligt.

Torben Mogensen Blogger

Det var vel noget lignende, der lå bag spillet Elite engang for længe siden. Et helt univers på få kilobyte.

Ja, netop. Alle galakse- og planetdetaljer blev genereret af algoritmer. Det har man bibeholdt i den nye version Elite:Dangerous, hvor man også har lavet texture på planeter og landskaber på planetoverflader på samme måde.

Metoden er også kendt fra strategispil såsom Civilisation og Age of Empires: Her kan man vælge tilfældigt genererede kort eller bruge et værktøj til at tegne sit eget. Man har ofte flere muligheder i værktøjet, end den procedurale genering har. I Age of Empires kunne man f.eks. lave lodrette skrænter, hvilket man aldrig ser i genererede kort. Af senere eksempler er Minecraft nok særligt kendt.

Log ind eller Opret konto for at kommentere
Pressemeddelelser

Welcome to the Cloud Integration Enablement Day (Bring your own laptop)

On this track, we will give you the chance to become a "Cloud First" data integration specialist.
15. nov 2017

Silicom i Søborg har fået stærk vind i sejlene…

Silicom Denmark arbejder med cutting-edge teknologier og er helt fremme hvad angår FPGA teknologien, som har eksisteret i over 20 år.
22. sep 2017

Conference: How AI and Machine Learning can accelerate your business growth

Can Artificial Intelligence (AI) and Machine Learning bring actual value to your business? Will it supercharge growth? How do other businesses leverage AI and Machine Learning?
13. sep 2017
Jobfinder Logo
Job fra Jobfinder