april 29, 2017

Hur det är att delta i Ludum dare

Hur det är att delta i Ludum dare

Helgen efter påsk anordnades spelutvecklingstävlingen Ludum dare för 38:e gången. En tävling som är gratis att delta i och utan några priser till vinnaren.

Tävlingen är global och har ingen fysisk lokal för de som tävlar. Lagen har bara 48 eller 72 timmar på sig att göra ett komplett spel från grunden på ett tema som avslöjas vid tävlingens start. Trots detta brukar mellan 2000 - 3000 bidrag lämnas in av lag med allt från en till tio deltagare.

Skillnaden mellan 48 eller 72 timmar beror på ifall man tävlar ensam eller i ett lag. Ensam så har man faktiskt färre timmar på sig än ifall man tävlar i ett lag. På Ludum dare-språk brukar det kallas compo när man är ensam eller jam när man är flera som tävlar.

Så varför är man med och spenderar en hel helg under press och dålig sömn? Jag har varit med och tävlat sex gånger nu och börjar få ganska bra rutin på det hela och tänkte sammanfatta hur det är att tävla i Ludum dare och varför man bör göra det.

Man kan dela upp tävlingen i följande delar och faser.

Temat

-Va? Hur kunde det här temat vinna? Jag kommer inte på någonting... Hoppas de andra i mitt lag har en bra idé.

Panikkoda

-Kommer inte på något. Bäst att jag börjar skriva lite kod så någonting händer. Kanske en idé dyker upp.

Varför syns ingenting??

-Jag har juh gjort allt rätt. Ingenting syns på skärmen. Inte en enda pixel. Inga sprites. Inte ens bakgrundsfärgen ändras. Varför gick jag med på det här igen. Den här gången blir det inget spel.... Oj jag har visst glömt att anropa spelets renderingsloop. Nu funkar det.

Matteproblemet

Flera timmar spenderas på någon snygg och unik effekt men ingen i laget kan matematiken för att göra det bra. Den här fasen brukar oftast inträda på eftermiddagen den första dagen. Den avslutas med ett "-nej nu får vi äta något" följt av "-vi väntar med den effekten så länge"

Kvällskodning

Saker börjar falla på plats. Placeholder grafik börjar bytas ut mot riktig. Någon slags gameplay börjar kännas av. Till slut avslutas dagen runt midnatt för en god natts sömn. Det är bättre att vara utvilad på söndagen än att försöka sitta hela natten.

Dag två

Efter några timmars sömn så börjar dag två med att man testar spelet och ser det med nya ögon. Kanske kommer det nya idéer eller saker som ska bort. Spelet utvecklas sakta vidare och man hamnar i ett slags lungt flow där saker sakta faller på plats. Mer och mer genvägar tas i koden eftersom det inte finns tid att göra genomtänkta designbeslut. Efter att ha varit med några gånger så börjar man få en känsla för hur man kan skriva snabb och effektiv kod där det är enkelt att införa nya funktioner och idéer.

Eftermiddagspaniken

-Va? Är klockan så mycket redan?? Vi kommer aldrig hinna blir klara. Speciellt med den där effekten vi vill ha in. Vi glömmer den och stryker de här idéerna.

Finputs

De sista timmarna läggs på att finputsa game play och lägga till introskärm, game over och eventuellt en instruktion.

Dag tre

Tävlar man i ett jam så finns ytterligare ett dygn tillgodo. Tyvärr sitter man oftast outvilad och trött på jobbet och funderar på varför det inte är helg snart samt saker som skulle behöva putsas på i spelet och funktioner som man vet att andra kommer ha åsikter på.

Slutputsning och inlämning

Här ska man akta sig ifrån att köra en "-Jag ska bara lägga till det här..." fast man vet att det kommer säkert ge upphov till oväntade buggar men trots vetskapen så gör man så klart det ändå. Tar screenshots, upptäcker att spelet inte går att exportera som tänkt. Att man missat någon timing issue så någon del går snabbare/långsammre beroende på hastigheten på datorn.

Till slut laddas spelet upp tillsammans med screenshots på Ludum dares site trots alla småbuggar och issues som man vet finns där.

Efter inlämningen

-Vi borde ha gjort power ups så här istället... -Varför skjuter bossen skotten sådär??? -Varför tar det längre tid för skeppet att droppa bomben när jag testar spelet på den här långsamma datorn???

Betygsätta andras spel

Under ca tre veckor ska laget sedan spela och betygsätta andras spel. Poäng ges i t.ex grafik, ljud, humor och ett generellt betyg. Oftast brukar man hinna igenom hundra spel totalt. Spelen är av varierande kvalité. Allt ifrån snygga och välgjorda till "-Vad spelade jag just??!"

Vinnaren

Till slut annonseras de lag som fått mest poäng i de olika kategorierna och vinnaren är den som fått högst betyg i kategorin generellt (overall).

Jag brukar lyckas placera mig i övre halvan av bidragen. Både när jag varit själv och när jag tävlat i lag.

Så varför är man med? Det är roligt att spendera en hel helg fokuserad på spelutveckling och det kreativa arbetet. Slutresultatet är kanske inte det viktiga, inte heller var spelet hamnar i listorna. När man packat ihop datorn den sista kvällen så börjar man redan längta till nästa tävling som är fyra månader bort.

Behöver man kunna spelprogramering innan? Det kan vara bra att man iallafall har ett litet hum över hur man ska presentera och rita grafik på skärmen så inte hela helgen går åt att rita upp en sprite.

Vad ska man skriva spelet i för språk? Många använder Unity och del Game maker. Några kodar i Javascript, andra i Python och Lua. Själv föredrar jag Java och ett bibliotek som heter LibGDX som har mycket funktioner och klarar av att krosskompileras till både Desktop (Jarfil) och Browser (HTML5 med WebGL). Det är viktigt att spelet kan spelas på så många plattformar som helst och att spelaren inte ska behöva installera Python eller Lua lokalt.

Kan man fortsätta utveckla spelet efter tävlingen? Ja visst, detta är en av anledningarna att många är med och tävlar. Man kommer på en spelidé och känner att det finns potential för vidare utveckling. Nästan varje tävling brukar resultera i något spelsläpp på Steam. Kurerad samling av släppta spel finns här.

Så jag rekommenderar alla att försöka var med minst en gång. Kan man inte programmera så finns det mycket att bidra med som spelideer, grafik, musik och ljud. Det är inget att vara rädd för. Alla är med på samma villkor. Ett gäng glada amatörer som försöker göra ett spel från noll.

När är nästa tävling? Ludum Dare 38 avslutades precis och om tidschemat håller så kommer nästa under andra hälften av augusti. Håll utkik på Ludum dares sida

Råd och tips
  • Planera enkelt. Det går att växa snabbt ur ett fungerande enkelt spel.

  • Sömn. Det är bättre att sova ordentligt före tävlingen och mellan lördag och söndag än att försöka göra allt i en enda sittning med korta power naps.

  • Var inte rädd. Rita knasig grafik, koda knasig game play. Experimentera!

  • Koden vinner ingen tävling. Ingen ska code reviewa den. Ta genvägar och fulhack där det behövs.

Spelexempel

Lets go Bananas in outer space Ett solobidrag från min andra tävling.

Panic room från december 2016 tillsammans med Mathias Lindfeldt.

Mina solobidrag och där jag varit med i ett lag finns på Ludum dares gamla site och Ludum dares nya site. Alla spel kräver tangentbord och mus.