Från labbet

Spel med procedurell generering (Godot)

Med hjälp av Godot har vi skapat ett spel som utspelar sig i en oändlig kontorsmiljö och där du som kyckling ska utforska så många rum som du kan utan att spöket fångar dig.

Tech used

  • Godot open-source game engine

Press to view video

Bakgrund

Procedurell generering är en metod för att skapa data algoritmiskt och används oftast i spel för att generera stora mängder innehåll, t.ex. världar, objekt och texturer.

Vi alla var sedan tidigare nyfikna på spelutveckling och procedurell generering så vi bestämde oss för att utveckla ett spel baserat på Prototyps kontorsmiljöer.

Processen

Eftersom vi i gruppen inte hade någon tidigare erfarenhet av spelutveckling och procedurell generering började vi så klart med att sätta oss in i grunderna för hur det fungerar. Därefter tittade vi främst på hur befintliga spelprojekt har använt procedurell generering och hur olika spelmotorer, som Godot, Unity och Unreal, kan användas för att skapa detta. Eftersom Godot-spelmotorn är byggd med öppen källkod (open source) blev det snabbt en favorit hos teamet och sedermera vårt val när vi gick vidare.

Spel med procedurell generering

Utmaningarna

Generellt sett är procedurell generering komplext och har en stor majoritet av olika användningsområden. Tanken på att skapa en procedurellt genererad värld med procedurellt genererat innehåll var en ganska överväldigande tanke för oss, särskilt eftersom ingen av oss faktiskt hade gjort det tidigare. Dessutom stod vi inför utmaningen av att hinna skapa ett spel på vecka med den teknik som fanns tillgänglig. Vi visste att oavsett vilken spelmotor vi valde måste vi ta lite tid på oss för att vänja oss vid den och även om spelmotorn Godot var ett självklart val för oss visade den sig vara mycket mer utmanande att använda än väntat.

Som utvecklare vet vi också hur viktigt det är med versionskontroll. I ett tidspressat projekt som detta blev vi dock tvungna att lägga våra principer åt sidan och försöka vara mer flexibla genom att göra saker lite mer old school, alltså ha flertalet olika mappar med nya ändringar som vi skickade till varandra via Slack.

Resultat / Lärdomar

Att utveckla ett spelbart 3D-spel på en vecka med liten eller ingen erfarenhet är en utmanande men givande erfarenhet. Vi är stolta över att vi överträffade våra förväntningar och kunde slutföra vårt skräckspel Never Ending Office. Spelet utspelar sig i en nedsläckt och oändlig kontorsmiljö, där du som kyckling (?) måste fly från det jagande spöket för att överleva. Spelarens mål är att utforska så många olika kontorsrum som möjligt utan att bli fångad.




Att procedurellt generera en värld och interaktioner erbjuder så många spännande möjligheter, både för spel och i andra sammanhang. Vi har lärt oss mycket och fått många idéer från projektet som vi tar med oss i framtiden.

Om vi hade fortsatt att utveckla spelet skulle vi ha:

  • Etablerat bakgrunden till varför ett spöke jagar en kyckling genom en oändlig kontorsmiljö.
  • Skapar regler för spawning av objekt, som till exempel att bord alltid spawnar med en tillhörande stol.
  • Lägga till så att vi har mer än en våning.
  • Se till att påskägg blir tydligare, som till exempel att ha ett dolt rum diverse objekt.
  • Lägg till en ordentlig vy för game over.
  • Lägga till en highscore-lista.