maanantai 8. lokakuuta 2018

Vieraskynä: Ideasta peliksi – Painajaispeitto


Kuinka vr-pelejä oikein tehdään? Kajaanin ammattikorkeakoulun hyötypelikehitystiimin vetäjä Kyösti Koskela vastaa kysymykseen esittelemällä prosessin, jonka tuloksena syntyi yksi Tarinat peliin -hankkeen pilottipeleistä.


Alkusuunnittelu

Pelin kehittäminen on mutkikas prosessi, joka yleensä saa alkunsa pelinkehitystiimin sisäisestä ideasta. Kun kyseessä on museolle suunniteltava pelikokemus, tilanne on vieläkin monimutkaisempi.

Painajaispeiton kehitystarina alkoi museon tutustumiskäynnillä pelilabraan sekä sitä seuranneella suunnittelupalaverilla. Pelin idea ja sisältö tulivat museolta, joten ensimmäinen askel oli selvittää peliprosessiin osallistuville henkilöille käytössä olevan teknologian haasteet ja mahdollisuudet sekä muodostaa realistinen kuva käytettävissä olevista resursseista. Käytännössä tämä tarkoitti museon väen vierailukäyntiä virtuaalitodellisuuslaboratorioon.

Ensimmäinen asia, joka suunnitteluvaiheessa nousi esille, oli pelin tavoite sekä museon oma näkemys pelin viestistä. Painajaispeitto aloitti matkansa Kajaanin taidemuseon rakennuksen historiaan keskittyvänä virtuaalikokemuksena, jonka tavoitteena oli esitellä Kajaanin taidemuseon tiloissa aikaisemmin toimineen poliisitalon historiaa. Mutta kuten hyvin usein tapahtuu, peli-idea elää ja muuttuu kehitysprosessin aikana.

Tällä kertaa katalyyttina toimi Kajaanissa järjestetty tarinallistamistyöpaja. Työpajan aikana eri taustoista koostuvat ryhmät ideoivat erityylisiä peli-ideoita, ja vaikka alkuperäinen idea poliisitalosta sai hyvin kannatusta, ihmisten painajaisiin keskittyvä painajaispeitto ja sen kautta koetut painajaiset saivat tarinatyöpajan osallistujilta ylivoimaisen äänienemmistön.

Ennen varsinaisen pelitoteutuksen aloittamista koettiin tärkeäksi saada myös tarinapajan osallistujia inspiroineen Painajaisista paksu peite -teoksen taitelijan näkemys pelin sisällöstä, joten ennen painajaisten luomista järjestettiin suunnittelupalaveri taiteilija Suvi Solkion kanssa. Palaverin päätehtäväksi muodostui löytää alkuperäisestä teoksesta ne painajaiset, jotka parhaiten sopivat peliin. Painajaisten tuli olla riittävän erilaisia, mutta samalla pelitoiminnallisuuden pitäisi pysyä riittävän samanlaisena kokemusten välillä.

Tiukan painajaisseulan jälkeen toteutukseen valittiin evakot, vaarallinen vuori, suuret lankakerät, labyrintti sekä aihe ”peilistä katsoo joku muu”. Painajaisten seulomisen jälkeen hahmoteltiin alustava toteutus valittuihin painajaisiin. Lisäksi päätettiin pelin ikäraja, joka pelitiimin suureksi riemuksi nostettiin riittävän korkealle, joten painajaiskokemuksista voitiin suunnitella pelottavampia.

Tapaamisen jälkeen pelitiimi piti oman sisäisen kehityspalaverinsa, jossa jokaista painajaista käsiteltiin kuten pelin kenttiä, ja jokaiselle suunniteltiin oma graafinen ulkoasunsa, toiminnallinen toteutus sekä alustavat pelimekaniikat.

Lankakerien muuttaminen painajaiseksi aiheutti pelitiimille eniten työtä. Tiimin pääsuunnittelija kuitenkin pelasti päivän näyttämällä pätkän Disneyn Leijonakuninkaan gnu-lauman rynnistyksestä ja sanomalla: “Tehdään tämä mutta lankakerillä!” Kenttäsuunnittelu oli valmis, mutta keskustelu sisällön yksityiskohdista jatkui. Kun pelitiimi huomasi keskustelleensa suurten lankakerien syvimmästä olemuksesta viimeiset 3 tuntia, katsottiin parhaaksi siirtyä varsinaiseen toteutukseen.

Lankakerien "rynnistys"

Ennen varsinaista toteutusta suunnitelman sisältö muutettiin yksityiskohtaisiksi työtehtäviksi, jotka jaettiin pelitiimin kesken. Käytännössä tässä vaiheessa luotiin työlista, joka sisälsi jokaiseen painajaiseen liittyvän 3D-mallin, pelilogiikan, valikkoelementin sekä muut tarpeelliset toimenpiteet. Listan työtehtävien valmistuttua käsissä olisi valmis peli.


Graafinen toteutus

Painajaispeitto-pelin graafinen toteutus oli tiimin 3D-artisteille erittäin miellyttävä kokemus, sillä yleensä hyötypelejä luotaessa toteutetaan yksityiskohtainen kopio oikeasta ympäristöstä, koneesta tai toiminnosta. Nyt 3D-artisteille kuitenkin annettiin kenttäsuunnitteluun vapaat kädet. Ainoana ehtona oli, että luodun ympäristön on noudatettava painajaisen teemaa.

Graafinen toteutus on eräänlaista palapeliä. Se aloitetaan yksittäisestä palasesta, jonka ympärille virtuaalista maailmaa rakennetaan, kunnes kokonaisuus on valmis. Kun 3D-artisti alkoi toteuttamaan evakot-painajaista, ensimmäinen asia, joka toteutettiin, oli keskellä tyhjyyttä kulkeva yksinäinen tie. Tien ympärille luotiin riittävän laaja ympäristö, jotta pelaajan näkökenttä täyttyisi pelimaailman näkymästä. Tämän jälkeen toteutettiin ympäristön käytössä olevat valaistusominaisuudet, kuten yksittäiset valonlähteet sekä taivaankappaleiden tarjoama valaistus. Ympäristö viimeisteltiin lisäämällä tunnelmaan sopivat säätekijät eli lumisade ja sumu.

Ympäristön jälkeen alettiin toteuttamaan muita tarvittavia graafisia elementtejä. Tie tarvitsi evakkoja, joten ensimmäiseksi luotiin yksinkertaiset 3D-mallit miehistä, naisista ja lapsista. Vanhojen kuva-arkistokuvien pohjalta 3D-hahmoille suunniteltiin vaatetus ja muu varustus, joka oli sopiva toisen maailmansodan aikaiseille evakoille.   

Keskusteluissa taitelijan kanssa oli jäänyt mieleen painajaisen yksityiskohta, jossa vanhoihin sodanaikaisiin valokuviin oli piirretty ristinmerkki niiden henkilöiden päälle, jotka eivät olleet evakkoreissusta selviytyneet. Evakot suunniteltiin kasvonpiirteiltään geneerisiksi hahmoiksi, joiden kasvoihin oli polttomerkitty ristinmerkki. Tumma ristinmerkki ei kuitenkaan valmiiksi tummassa valaistuksessa erottunut riittävän hyvin, joten ristinmerkkiin lisättiin hohde evakkojen saapuessa pelaajan läheisyyteen.

Graafinen toteutus oli nyt saatu valmiiksi yksittäisessä kentässä, mutta 3D-artistien työ ei ollut vielä valmiina. Jotta kokemus saataisiin uskottaviksi, evakoille oli vielä luotava animaatiot liikettä varten. Käytännössä tämä vaatii aiemmin luotujen 3D-mallien raajojen liikuttamista ja tallentamista animaatiomalliksi, jonka perusteella evakot liikkuvat. Animaation avulla evakoille luotiin laahustava masentunut kävelytyyli, jolla ne kulkevat pitkin autiota maalaistietä.

Painajaispeiton ”möröt” yhteistanssissa.

Sama kaava toistui jokaisessa pelin painajaisessa. Painajaisia varten luotiin 3D-ympäristö, joka täytettiin sopivilla 3D-malleilla. Tämän jälkeen lisättiin muut tarvittavat elementit, ja lopputulos viimeisteltiin animaatioilla, mikäli niitä tarvittiin.

3D-artistien työ ei lopu kenttien ja animaatioiden valmistuttua, vaan toteutuksen edetessä ilmenee aina tarvetta uusille 3D-malleille, animaatioille ja muille yksityiskohdille. Valaistus vaatii yleensä kokonaisuuden rakentuessa lisää työtä, ja ympäristön toimivuus saattaa vaatia visuaalisten efektien tai uusien sääominaisuuksien lisäämistä. Lopullisen pelikokemuksen onnistuminen vaatii erityisesti kehitystyön loppuvaiheessa 3D-artistien ja ohjelmoijien osalta saumatonta yhteistyötä.  


Pelimekaniikan toteutus   
 
Peliohjelmointi on tiimityötä, mutta varsinkin kehityksen alkuvaiheessa 3D-artistit ja pelin ohjelmoijat tekevät työtään itsenäisesti. Samalla kun 3D-artistit toteuttavat peliympäristöjä ja mallintavat pelimaailman 3D-malleja, peliohjelmoijat toteuttavat pelin toiminnallisuutta. Alkuvaiheessa kentän graafisia elementtejä ei ole vielä saatavilla, joten toiminnallisuuden ohjelmointi toteutetaan usein yksinkertaisilla objekteilla, kuten palloilla ja kuutioilla, jotka grafiikan valmistuessa korvataan varsinaisilla 3D-malleilla.

Pelin ulkoasun kannalta graafikoiden osuus on merkittävä, mutta kokonaisvaltaisen pelikokemuksen toteutus lepää vahvasti peliohjelmoijien harteilla. Jokainen pelissä oleva elementti lankakerien fysiikasta käyttöliittymän nappien toimintaan saakka on ohjelmoitava peliin. Työmäärän puolesta peliohjelmoijat saavatkin vastuulleen enemmän yksittäisiä työtehtäviä kuin 3D-artistit.

Painajaispeitossa pelin luomiseen käytettiin Epic Gamesin tuottamaa Unreal-pelimoottoria. Pelimekaniikat toteutettiin sekä Unreal-pelimoottorin sisäisellä ikonipohjaisella Blueprint-järjestelmällä sekä perinteisellä C-kielipohjaisella ohjelmoinnilla. Kun luotiin pelimekaniikkaa evakot-painajaiseen, ohjelmoijilla oli tiedossa, että evakoiden tulee liikkua tiettyyn suuntaan kentän tietä pitkin. Ohjelmoijat loivat aluksi mallin, jonka perusteella ennalta määritelty määrä evakoita ilmestyy valittuun kohtaan tietä. Tämän jälkeen evakoille oli määriteltävä liikkumissuunta, nopeus sekä lopullinen määränpää.

Kun evakot kohtasivat pelaajan, heille oli toteutettava käyttäytymismalli sille, mitä tapahtuu tässä vaiheessa. Evakot ohjelmoitiin väistämään pelaajaa, mutta samalla kiinnittämään “katseensa” pelaajahahmoon. Lisäksi evakkojen kasvoissa oleva ristinmerkki laitettiin hehkumaan, kun evakot saapuisivat tietylle etäisyydelle pelaajasta. 3D-artistit huolehtivat tämänkin efektin graafisista edellytyksistä, mutta ohjelmoijat toteuttivat peliin varsinaiset toiminnallisuudet.

Lankakerä-painajaiseen vaadittiin järjestelmä, jonka avulla lankakerät saadaan vyörymään pelaajaa kohti. Ensimmäinen valinta mekaniikan luomisessa oli se, luodaanko valmiit animaatiomallit, joiden avulla voidaan tarkasti suunnitella lankakerien reitit, vai luotetaanko ennemmin pelifysiikkaan ja luodaan joka kerralla muuttuva kokemus. Testien perusteella fysiikkapohjainen ratkaisu koettiin parhaaksi, joten lankakeriä varten luotiin fysiikkaan pohjautuva malli, jonka perusteella lankakerien vauhti kiihtyy mäen kaltevuuden ja pallon painon mukaan. Koska pelaajaa haluttiin myös suojella päälle pyöriviltä lankakeriltä, pelaajan ympärille luotiin kiilamainen näkymätön suojakenttä, joka esti lankakerien päälle pyörimisen.

Peilipainajaista varten puolestaan vaadittiin pelimekaniikka, joka toistaa pelaajan oikeasti toteuttamat liikkeet peilin kautta. Kun pelaaja kääntää päätään, myös peilissä näkyvä naispuolinen pelihahmo kääntää peilissä päätään. Peliin luotiin lisäksi katseen suuntaan perustuva trikkeri, jonka perusteella seuraavat tapahtumat peilissä aktivoituvat, kun pelaaja vilkaisee taakseen. Pelimekaniikan perimmäinen tarkoitus oli saada pelaaja ymmärtämään, että katsominen pois peilistä siirtää pelin tapahtumia eteenpäin.

Peilipainajaisen toteutus perustui kahteen identtiseen peilikuvahuoneeseen.

Kun ohjelmoijat alkoivat luomaan pelimekaniikkaa labyrinttipainajaiseen, tuli varsin nopeasti selväksi, että onnistuneen pelikokemuksen saavuttaminen vaati suuria muutoksia verrattuna muiden kenttien pelimekaniikkaan. Testien perusteella päädyttiin siihen ratkaisuun, että labyrinttiä ei saada luontevasti sovitettua osaksi lopullista kokemusta.

Alkuperäisen suunnitelman mukaan toteutettavia painajaisia oli viisi, joten suunnittelutiimi palasi painajaispeiton painajaisten pariin ja valitsi paremmin nykyiseen pelimekaniikkaan soveltuvan kokemuksen. Pitkällisen seulonnan jälkeen toteutukseen valittiin painajainen nimeltä ”pohjaton kuilu”. Tämä vaati sekä ohjelmoijilta että 3D-artisteilta paluuta suunnittelupöydän ääreen ja uuden graafisen toteutuksen ja pelimekaniikan toteuttamista.

Kun luodaan virtuaalitodellisuuskokemusta, tällä hetkellä yksi suurimmista ongelmista on simulaatiopahoinvointi, jonka saa aikaan pelikuvan liikkuminen. Pohjaton kuilu päätettiin toteuttaa veteen sijoittuvana painajaisena, jossa pelaaja uppoaa syvemmälle ja syvemmälle veden syövereihin. Ohjelmoijien kannalta suurin haaste pelimekaniikan ohjelmoinnissa oli löytää sopiva vajoamisnopeus, jotta pelaaja tuntisi uppoavansa vedessä, mutta ei kärsisi liikkumisen aiheuttamasta pahoinvoinnista.


Grafiikka ja ohjelmointi kohtaavat äänet

Kun sekä ohjelmoijat että 3D-artistit ovat päässeet työssään riittävän pitkälle, grafiikka ja ohjelmointikoodi yhdistyvät. Tässä vaiheessa kehitystiimi pääsee ensimmäistä kertaa näkemään, miltä kokonaisvaltainen pelikokemus tuntuu. Tässä työvaiheessa vaaditaan hyvää yhteistyötä tiimin sisällä, sillä kokemusten optimoimiseksi tarvitaan muutoksia sekä pelin graafisiin elementteihin että ohjelmalliseen toteutukseen. Kun kokemus alkaa olemaan yhtenäinen ja toimiva, mukaan liitetään ympäristöjen äänisuunnittelu.

Musiikilla ja äänillä on erittäin suuri osa oikeanlaisen tunnelman rakentamisessa, joten Painajaispeiton tapauksessa äänisuunnitteluun kiinnitettiin erityisen paljon huomiota. Kenttiin pyrittiin luomaan musiikit tai taustaäänet, jotka korostivat muutoksia pelikokemuksen tunnelmassa. Lankakerissä tämä tarkoitti jatkuvasti nousevaa ääntä, joka voimistui lankakerien määrän kasvaessa. Evakoissa puolestaan luotettiin hylättyä tunnelmaa korostaviin luonnonääniin, kuten myös vuorenhuipun myrskyistä ja tuulista säätä kuvastavassa painajaisessa.

Pohjaton kuilu pyrkii herättämään pelaajassa uppoamisen ja valon katoamisen aiheuttamaa ahdistusta, joten äänisuunnittelu oli tässä kentässä erityisen tärkeää. Peliin luotiin äänimaailma, joka korosti uppoamisen tunnetta. Lisäksi pelaajan ympärille luotiin äänielementti, jonka tehtävänä oli luoda tunnelma siitä, että ympärillä liikkui jotain isoa ja mahdollisesti vihamielistä. Kokemuksen loppuvaiheessa kaikki valo on kadonnut, joten oikean lopputunnelman saavuttaminen perustuu täysin pelaajan kuulemaan äänimaailmaan. Oikeanlaisella äänisuunnittelulla yhdistettynä toimivaan grafiikkaan ja ohjelmointiin painajaiskokemukset saatiin viimeisteltyä lopullista pelikokokemusta varten.

Pohjaton kuilu lepää vahvasti äänisuunnittelun varassa.

Testiä, testiä ja vielä kerran testiä sekä pelin julkaiseminen

Pelin testaaminen on prosessi, joka on käynnissä koko kehityskaaren ajan. Se alkaa tiimin sisäisellä testauksella, jota tehdään ensimmäisistä tuotantokuvista ja koodikokeiluista lähtien. Kun jokin pelin mekaniikka saadaan toimimaan, sen toimintaa testataan yleensä joko muiden ohjelmoijien tai graafikoiden kesken. Tavoitteena on optimaalinen pelikokemus, joten pelitoteutusta halutaan testata niin paljon kuin vain on mahdollista.

Kun pelikokemus alkaa olemaan hieman valmiimpi, mukaan liitetään yleensä muutamia pelitiimin ulkopuolisia testaajia, joilta halutaan palautetta erilaisista peliin liittyvistä asioista. Käytettävyys on tällä listalla varsin korkealla, sillä kehitystyöhön osallistuneet pelitiimin jäsenet saattavat hyvin usein olla sokeita oman toteutuksensa ongelmille. Painajaispeiton tapauksessa ensimmäiset ulkopuoliset testaajat olivat suunnitteluun ja toteutukseen osallistuneita museon henkilöitä.

Kun pelikokemus on viritelty varsin lähelle lopullista versiota, järjestetään pelitesti niin sanotuille loppuasiakkaille. Pelitestaajat laitetaan pelaamaan koko painajaiskokemus läpi, ja testin aikana pelinkehittäjät seuraavat mahdollisia toteutuksessa ilmeneviä ongelmia. Lisäksi testipelaajat täyttävät peliin liittyvän kyselyn, jonka avulla pyritään löytämään mahdollisia kehityskohteita sekä muita ongelmakohtia. Tämän palautteen jälkeen tiimi palaa vielä kerran peliprojektin pariin ja toteuttaa peliin tarvittavat muutokset ja korjaukset.

Kun pelitiimi, taitelija ja museon edustajat ovat tyytyväisiä lopulliseen tuotteeseen, seuraa kehitystyön viimeinen vaihe eli peliprojektin julkaiseminen. Pelin näkyvyyden kannalta on tärkeää löytää juuri oikea tapa julkaista peliprojekti niin, että se on helposti saatavilla. Julkaisu vaatii pelin sisäisten elementtien optimointia sekä varsinaisen julkaisupaketin luomista.

Käytännössä tämä pelipaketti on helposti jaettavassa muodossa oleva pelikokonaisuus, joka toimii itsenäisesti sillä tietokoneella, johon peli asennetaan. Mikäli peli julkaistaan jakeluun keskittyvissä alustoissa kuten Steamissa tai Google Play -kaupassa, tarvitaan lisätyötä julkaisun kuvailuun sekä esikatselukuvien ja videoiden luomiseen. Tämän jälkeen vaaditaan vielä julkaisijan hyväksyntä, minkä jälkeen kehittäjät voivat julkaista pelin ja jäädä jännityksellä odottamaan yleisön reaktiota pelikokemuksesta.

Painajaispeitolla julkaisu on vielä edessä, ja museoon koettavaksi ja yleisölle ladattavaksi se saadaan ensi vuoden puolella.

***

Matka alkuperäisen idean muuttumisesta valmiiksi peliksi on vaatinut paljon suunnittelua, jatkuvaa yhteydenpitoa museon ja kehittäjien välillä sekä paljon kokeilua ja kehitystyötä. Alkuperäinen suunnitelma on muuttunut ja kehittynyt matkan varrella, mutta jo nyt voimme sanoa, että lopputuloksena on saatu toteutettua pelikokemus, joka herättää pelaajissa vaihtelevia tunnekokemuksia ja johon kehitystiimi on kokonaisuudessaan tyytyväinen. Idea on muuttunut peliksi.


Kyösti Koskela
Kirjoittaja on Tarinat peliin -hankkeen pelituottaja ja Kajaanin ammattikorkeakoulun hyötypelikehitystiimin vetäjä.


Kirjoitus on osa Tarinat peliin -hankkeen blogisarjaa.

Ei kommentteja:

Lähetä kommentti