Blogi • 16.11.2022

Ludum Dare Game Jamit Goforen toimistolla

Ludum Dare Game Jamit Goforen toimistolla

Koodasin toimistolla koko viikonlopun ilman palkkaa! Mistä oikein on kyse?

Ludum Dare

Osallistuin syksyn 2022 Ludum Dare Game Jameihin, joissa on ideana kehittää peli 2–3 päivän aikana. Ludum Dare on latinaa ja tarkoittaa ”Antaa peli”. Tapahtumaa on järjestetty jo vuodesta 2002 alkaen noin kaksi kertaa vuodessa ja nämä olivat 51. Jamit. Osallistuin tapahtumaan itse kuudetta kertaa, kaikki aiemmat pelit ovat vapaasti saatavilla lähdekoodeineen. Jokaisen Ludum Daren aluksi paljastetaan Jamien teema, johon pelin on tavalla tai toisella liityttävä. Tällä kertaa teemaksi äänestettiin ”Every 10 seconds”. Kaikissa peleissä tulisi siis tapahtumaan jotain joka 10. sekunti, ellei teemaa tulkitse jotenkin luovemmalla tavalla. Hait tappavat joka 10. sekunti 0.00000386 ihmistä.

Hyödynsimme Jamien ajan Goforen Tampereen toimiston tiloja. Tilat ovat työntekijöiden vapaassa käytössä iltaisin ja viikonloppuisin ja esimerkiksi kattosauna Pormestarissa työntekijät voivat järjestää erilaisia tapahtumia lasten syntymäpäiväjuhlista pikkujouluihin. Meille riitti vain tyypillinen neukkari, jonka 50″ siirreltävät televisiot pääsivät kovaan käyttöön. Uusien ominaisuuksien demoaminen vieruskaverille ei ole ikinä ennen ollut näin helppoa. Lisäksi fläppitaulu ja PostIt-laput olivat kovalla käytöllä, suorastaan pro-meininki.

Miten tehdä hyvä peli viikonlopun aikana?

Kaikki lähtee pelin ideoinnista. Pelin ideointi vaatii hieman mielikuvitusta ja erilaisten ideoiden simuloimista päässä. 72 tuntia on liian lyhyt aika usean erilaisen prototyypin rakentamiseen, joten prototyyppejä on ”pelattava” omassa mielikuvituksessaan. Lisäksi pelin idea on kyettävä selittämään riittävän tarkasti muulle tiimille esimerkiksi fläppitaulun avulla. Koko tiimillä on oltava eheä käsitys pelin lopputuloksesta, jotta työskentely on tehokasta.

Tässä tiimimme vinkit pelin kehittämiseen:

  1. Idean täytyy olla niin yksinkertainen, että uskot pystyväsi toteuttamaan Minimum Viable Productin 6 tunnissa (sisältäen lounas- ja kahvitauot). Loppuaika menee pelin hiomiseen, eli grafiikan, äänien ja pelimekaniikoiden, kuten esimerkiksi kiihtyvyyksien, painovoiman ja tutoriaalin, tekemiseen. On parempi tehdä Pong todella hyvin, kuin epäonnistua Minecraft 2.0:n tekemisessä.
  2. Älä valitse ideaa sen perusteella, minkälaista peliä haluaisit itse pelata. Et kuitenkaan pysty nauttimaan samalla tavalla omasta pelistäsi, koska se ei pysty yllättämään sinua, ja näet joka paikassa parantelua kaipaavia asioita.
  3. Älä valitse ideaa sen perusteella, minkälaisia pelejä luulet muiden haluavan pelata. Et kuitenkaan onnistu arvauksessasi ja pelisi kärsii kouluruuan kohtalon: jokaiselle jotain, mutta kenellekkään ei mitään.
  4. Valitse idea sen perusteella, mitä haluat tehdä. Game Jamit on erinomainen paikka kokeilla esimerkiksi jotain sinulle uutta teknologiaa, pelimekaniikkaa, art styleä tai perspektiiviä. Game Jamit eivät ole myöskään työ, vaan harrastus, joten prosessin on oltava mahdollisimman nautinnollinen.
  5. Ääniä ei pidä missään nimessä aliarvioida, ne ovat yksi tärkeimmistä ominaisuuksista. Aloittelevat pelintekijät laiminlyövät äänet usein ja ne ovat tyypillisesti ensimmäinen asia, joka jätetään kiireessä pois, jotta aikaa jää uusien ominaisuuksien tekemiseen. Ei näin. Hiiri ja näppäimistö naksahtavat syystä: Ne tarjoavat vasteen käyttäjän toimille. Pelistä tulisikin löytyä edes hyvin alkeelliset 8-bittiset äänet. Erittäin nopea ja helppo työkalu erilaisten äänitehosteiden luomiseen on ChipTone.
  6. Etsi ja opettele hyvät työkalut. Aiemmin mainitun ChipTonen lisäksi kannattaa käyttää monipuolisesti erilaisia työkaluja. Meidän pelimme syntyi Unityn, Paint.net, Audacityn ja Blenderin avulla. Lisäksi ihmiskunnan avuksi taiteeseen on saapunut tekoälyn generoimat kuvat. Käytimme DALL·E 2 ja Stable Diffusion -tekoälyjä luomaan oman pelimme päävalikkoon sekä voitto- ja häviöruutuun kaunista vesiväritaidetta.

Pelin koodaukseen ja toteuttamiseen en valitettavasti voi antaa mitään muuta tiivistettyä vinkkiä kuin ”git gud” eli suomeksi: harjoitus tekee mestarin. Game Jameissa tärkeintä on osallistuminen omista epävarmuuksista ja aikataulullisista haasteista huolimatta. Oma mottoni Jamien suhteen on George S. Pattonin sitaatti ”A Good Plan, Violently Executed Now, Is Better Than a Perfect Plan Next Week.”. On usein haasteellista löytää 72 tuntia harrastukselle, puhumattakaan siitä, että saisi mukaansa muutaman kaverin. Mutta osallistua voi siitä huolimatta!

Pelin kehittämisen vaiheet

Ensimmäisen tunnin jälkeen pelimme idea oli visualisoitunut neukkarin fläppitaululle: Reaaliaikaisen ja vuoropohjaisen strategiapelin yhdistelmä hexaruudukolla. Vuoro vaihtuisi 10 sekunnin välein. Jokaisen vuoron alussa pelaaja saisi uudet toimintapisteet käyttöönsä. Pelin keskeisessä osassa olisi suuri loppuvastus, joka ampuu erittäin suuria ja hitaita projektiileja, joita pelaajan tulisi väistellä.

10 tunnin kohdalla pelissä oli satunnaisesti generoitu Kouvola, kartalla pystyi liikkua ja panssaroitu 8 pyöräinen ajoneuvo jahtasi pelaajan ohjastamaa valkoista kuutiota 10 sekunnin sykleissä. Vaikka Kouvola on kaunis kaupunki, peli näytti masentavalta eikä se tuntunut ollenkaan hauskalta pelattavalta. Paniikki iski ja päätimme heittää Kouvolan vallankumouksen roskiin.

Päätimme vaihtaa masentavan ja pimeän Kouvolan ja panssariauton pirteään Karibian saaristoon ja merirosvoihin. Ehkä hieman ylikulutettu teema, mutta syystäkin, peli näytti heti paljon pirteämmältä. Tekoälyn generoimat tekstuurit näyttivät kuitenkin hieman hassuilta, oikeastaan silmiin sattui. Pelistä puuttui myös lähes kaikki mekaniikat, tavoite, viholliset ja äänet. Toisaalta aikaa oli jäljellä vielä 50 tuntia.

Osallistuminen Ludum Dareen ei vaadi 100 % omistautumista. Kuten aiemmin on todettu, peli-ideasi tulisi olla niin pieni, että se on ”valmis” kuudessa tunnissa. Eräiden Jamien aikana kävin esimerkiksi sukujuhlissa Lahdessa, mutta saimme silti pelimme valmiiksi. Nyt päättyneillä Jameilla meitä oli mukana lauantaina kolme henkeä, sunnuntain aamuna kaksi henkeä ja sunnuntai-iltana enää yksi tekijä.

40 tunnin kohdalla peli alkoi jo muovautua. Teimme tekstuureita ja grafiikoita uudelleen ja kartta satunnaisgeneroitiin tuottamaan pieniä saaria. Pelissä oli alkeelliset äänet, kompassi näytti mistä suunnasta tavoite löytyy ja suurin osa pelin mekaniikoista oli valmiina. Peli oli kuitenkin vielä kaukana valmiista ja muut tiimiläiset olivat jo palanneet valmistautumaan työelämään.

Yllä oleva kuva syntyi noin 15 minuutissa DALL·E 2 tekoälyllä yhdistämällä pari tekoälyn generoimaa kuvaa. Ensin loin kuvan oikean reunan tekstisyötteellä: “Traditional sailing ship sinking and smoking black smoke. Tropical sea. Digital art.”. Tämän jälkeen loin kuvan vasemman reunan ”Pirate ship with red sails sailing next to smoking ship. Digital art.”. Tämän jälkeen parantelin kuvaa hieman kumittelemalla huonoja kohtia ja annoin tekoälyn generoida kumitetut kohdat uudelleen, kunnes saavutin miellyttävän lopputuloksen.

72 tunnin jälkeen

Kolmen vuorokauden raatamisen jälkeen peli oli julkaistu. Haasteista huolimatta onnistuimme mielestämme paremmin kuin ikinä aiemmin! Parasta allekirjoittaneelle onkin ollut nähdä oma kehittymisensä: jokainen peli on ollut edeltäjäänsä parempi. Kilpailussa pääsimme sijalle 787. Kilpailuun oli ilmoittautunut 4886 tiimiä, eli pelimme oli kuitenkin parhaan 20 % joukossa.

Pelimme kärsi hieman vaikeudesta ymmärtää pelin mekaniikoita ja moni pelin ominaisuuksista tulkittiin bugiksi. Esimerkiksi, jos pelaaja yritti purjehtia vastatuuleen, laiva lähti luovimaan automaattisesti. Kaikki testaajat tulkitsivat tämän vain bugiksi reitinhakualgoritmissa. Pelaajille tuotti myös haasteita ymmärtää, miksi heidän liikkumispisteensä ovat loppuneet. Iso osa pelaajista myös luuli, että pelaajan laiva on aseistamaton ja tuomitsivat pelin liian vaikeana tästä syystä. Kyseiset seikat olivat selitettynä pelin ohjeissa, mutta suurin osa testaajista jättivät ne lukematta. Tämä olikin meidän pelimme Akilleen kantapää: Emme ehtineet tekemään riittävän vahvaa signalointia ja opastusta pelin mekaniikoista. Keskiverto Ludum Dare -pelaaja malttaa pelata peliä muutaman minuutin ennen siirtymistä seuraavaan peliin, jolloin pelin opettelu ja ohjeiden lukeminen ei saa kestää yli 10 sekuntia tai pelaaja turhautuu.

Peli on ilmaiseksi pelattavissa selaimessa ja lähdekoodit ovat saatavilla täällä.

Katso Goforen avoimet työpaikat

Aleksi Martikainen

Aleksi opetteli koodaamaan jo lapsena tullakseen isona pelinkehittäjäksi, mutta unelma-ammatista tulikin harrastus, joka tukee vahvasti ohjelmistokehittäjän osaamista. Vapaa-ajalla opitut taidot siirtyvät työelämään, mutta vastaavasti työelämässä opitut taidot siirtyvät vapaa-ajan projekteihin. Videopelien kehittämisen lisäksi Aleksi myös pelaa niitä ahkerasti, rakkaimpana pelisarjanaan Men of War.

Piditkö lukemastasi? Jaa se myös muille.