Haastattelu: Road to Vostokin kehittäjä kertoo pelinsä porttaamisesta Godot:lle
Testailin hieman vastikään Unitystä Godot:lle portatun Road to Vostokin demoa ja olin todella vaikuttunut sen teknisestä toteutuksesta ja tunnelmasta. Halusin tietää porttauksesta ja pelistä enemmän, joten pyysin soolodeviä, Antti Leinosta, avaamaan prosessiin liittyviä muuttujia. Keskustelimme pelimoottoreista, tunnelman luonnista ja mitä suomalaiseen hardcore-selviytymiskokemukseen kuuluu.
SuomiGameHUB: Nimestä ja ehkä vähän settinginkin puolesta Road to Vostokista tulee S.T.A.L.K.E.R.-pelit mieleen ja realistinen ammuskelu vie ajatukset Operation Flashpointeihin. Huomaan, että nimenomaan realismiin on haluttu panostaa. Mistä ajatus tähän peliin lähti ja mistä olet ottanut vaikutteita siihen?
Antti Leinonen: Koko projektin ja peli-idean inspiraatio kumpuaa aika pitkälti omasta lapsuudenkaupungista Haminasta, joka sijaitsee Kaakkois-Suomessa, melko lähellä Suomen ja Venäjän rajaa. Silloin nuoruudessa tämän alueen läpi kulki tie nimeltä VT7, joka johti lännestä itään, ja tästä tulee myös pelin nimi ”Tie itään” eli Road to Vostok.
Tämä ”Kaakonkulma” Suomessa on melko otollinen paikka selviytymispelille, koska siellä sijaitsee sotahistoriallisesti aika uniikkeja kohteita kuten Salpalinjaa, korsuja ja hylättyjä rintamamiestaloja. Tähän alueeseen kun sitoo vielä omat kokemukset Puolustusvoimista, niin varusmiehenä kuin upseerina, ja kaikkea mitä on harjoitellut tuolla rajaseudulla, niin saadaan tämä kokonaisvisio peliä varten.
Vaikutteita toki tulee myös muista peleistä, kuten S.T.A.L.K.E.R.-sarjasta ja hieman mystisestä Zone-ideologiasta. DayZ, Project Zomboid, Escape from Tarkov ovat myös pelejä, joissa on paljon hyviä elementtejä, mitkä haluan myös tuoda tähän projektiin.
SGH: Unityn syksyisen asennusmaksuepisodin jälkeen varmaan monilla kehittäjillä on ollut mielessä, että pitäisikö siirtyä Godot:n käyttöön, mutta päässä voi olla kysymyksiä Godot:n rajoituksista ja mahdollisuuksista. Oliko sinulla välittömästi ajatus siitä, että sen Unityn korvaajan täytyy olla Godot, vai oliko se vaikea päätös? Entä onko se vastannut odotuksia, eli tuntuuko että olet saanut tehtyä sillä kaiken vaatimallasi laadulla?
Antti: Pelimoottorit ovat sinäänsä vain työkaluja, joita kehittäjät käyttävät. Hyvä pelimoottori ei tee huonosta kehittäjästä taitavaa, eikä huono pelimoottori tee taitavasta kehittäjästä huonoa. Pelimoottorin valinnassa olennaista on se, mitä natiiveja työkaluja se tarjoaa, ja kuinka helppo sitä on kustoimoida juuri tietyn projektin tarpeisiin. Toki tietyillä pelimoottoreilla on omat rajoituksensa, mutta harva kehittäjä vain tyytyy näihin natiiviominaisuuksiin, vaan pelimoottoria lähetään räätälöimään oman projektin tarpeisiin sitä mukaan kun projekti etenee.
Godot ei suoranaisesti ole Unity korvaaja, eikä sen tarvitse sitä olla, mutta se tarjoaa avoimen lähdekoodin alustan, joka tuo tiettyä turvallisuutta, mitä itse arvostan kehittäjänä nykypäivänä todella paljon kaupallisiin pelimoottoreihin verrattuna.
Itse päätös tämän porttauksen osalta oli kieltämättä vähän haastava, koska siinä on paljon pelissä, ja kyseessä ei ole mikään yhden yön temppu. Vajaa taustatutkimus moottorista ja sen rajoituksista voi helposti johtaa tiettyyn umpikujaan ja epäonnistuneeseen porttaukseen, mikä sitten taas johtaa aikataulullisiin ja myös taloudellisiin haasteisiin.
Onneksi omalta osalta tämä porttaus meni kuitenkin juuri niin kuin suunnittelin ja taustatutkimus minkä tein tämän avoimen lähdekoodin moottorin osalta oli selkeästi riittävä. Moottori on vastannut odotuksia ja itsellä on riittänyt hyvin taidot paikata niitä moottorin ongelmia, jotka ovat haastellisia tämän tyyliselle projektille.
SGH: Ymmärrän mitä tarkoitat. Olen nähnyt aika paljon sitä, että pienempiä pelejä tehdään suoraan esimerkiksi Unreal Enginen blueprint-systeemillä ja tarvetta moottorin mukauttamiselle ei edes synny. Tällaisessa isommassa pelissä voin kuitenkin hyvin nähdä sen, kuinka moottori toimii vain etumatkana kehitykseen. Minua kiinnostaisi, että mitkä asiat ovat Road to Vostokissa vaatineet erityisen paljon räätälöintiä, mitä tällaisten yleiskäyttöisempien moottoreiden valmistajat eivät ole priorisoineet.
Antti: Ainakin voin mainita että engine-kehityksen osalta 3D-peleissä on huomattavasti suurempi kynnys verratuna 2D-peleihin koska yhden syvyysakselin lisääminen renderöintiin muuttaa lähes kaiken optimoinnin näkökulmasta.
Näissä 3D-moottoreissa yksi olennainen kysymys on ns. render loopin aika, eli kauanko millisekunteina moottorilla menee käsitellä koko pelikamerassa näkyvä sisältö, ennen kuin seuraava kuva voidaan pirtää. Tämä prosessi pitää sisällään aika monta eri vaihetta, mitkä pitää teknisesti ymmärtää (ainakin pintapuolisesti), jotta saa käsityksen siitä kuinka tehokkaasti moottori pystyy perus-3D-grafiikkaa näytölle piirtämään. Tämä sitten määrittää sen, kuinka paljon artistilla tai kehittäjällä on ”renderöintibudjettia” tehdä kaikkia pelinkehityksen hienouksia tämän perus render loopin päälle, tai kuinka paljon optimointityötä on edessä omaan peli-ideaan nähden.
Voin todeta, että kaupallisilla pelimoottoreilla on aika hyvin hallussa tämän perus-render-loopin optimointi ja engine tekee automaattisesti paljon asioita, mistä kehittäjän ei tarvitse murehtia lainkaan, eli toisin sanoen kaupalliset pelimoottorit ovat melko aloittelijaystävällisiä. Sitten taas open-source moottoreilla joutuu tällä hetkellä tekemään vielä aika paljon custom-ominaisuuksia ja ymmärtämään näitä renderöinnin solmukohtia, jotta pääsee optimoinnissa samalle tasolle, kun sitä automatiikkaa ei ole niin paljon käytössä vielä.
SGH: Olen ymmärtänyt, että suorituskyky on sinulle tärkeää. Huomasin sen myös pelissä, että performace-moodissa vanhemmallakin näytönohjaimella päästiin 60 fps:ään. Onko jotain nokkelia paikkoja, missä suorituskykyä saadaan tällaisessa pelissä buustattua näille budjettikoneille, vai pyöriikö kaikki enemmän asioiden piilottamisen ja mappien resoluutioiden koon ympärillä?
Antti: Optimointitekniikat riippuvat täysin peli-ideasta ja pelikarttojen koostumuksesta. Usein avainasemassa on profiloida renderöintiä, minkä avulla pystyy katsomaan hierarkisesti mihin renderöinnin millisekuntteja oikeasti kuluu. Hyvä kehittäjä osaa sitten priorisoida optimointia sinne missä sitä tarvitaan eniten.
Tyypillisesti raskain asia moderneissa 3D-peleissä on luontoelementit, kuten puut ja ruoho, sekä materiaalien sisältämien shadereiden monimutkaisuus (eng. shader complexity). Jossain kartoissa voi olla että pelkät puut syövät yli 50% koko renderöintibudjetista. Tällöin kannattaa keskittyä nimenomaan puuassettien optimointiin, eikä säästellä joidenkin yksittäisten proppien geometriaa, mikä ei tuota mitään merkittävää hyötyä suorituskyvyn kannalta.
Yhtä oikeaa vastausta ei tähän ole, vaan kyseessä on täysin projektispesifi ongelma, ja ainut tapa päättää oikeita optimointitekniikoita on ymmärtää missä optimointitarve oikeasti on.
SGH: Nyt kun mainitsit nuo assetit, niin kuinka suuren osan olet tehnyt niistä itse? Jo ensimmäisessä demossakin oli valtava määrä aseita, rakennuksia, luontoa ja niistä taloistakin oli saatu hyvin uniikin näköisiä teksturoinneilla. Tuntuu hurjalta, että yhdellä kehittäjällä olisi tunteja päivässä tehdä kaikki tämä.
Antti: Varmaan noin 90% on tehty itse. Muutamia luontoassetteja ja asemalleja on kauppapaikoilta ostettu, mutta muutoin kaikki on omaa tuotantoa tai ulkoistettu alihankkijoiden kautta.
Mikäli yrittää tehdä jossain määrin uniikkia Suomiteemaista peliä ja ylläpitää visuaalisesti yhtenäistä ilmettä, niin ei oikeastaan ole hirveämmin vaihtoehtoja kuin tehdä itse, tai sitten pitää hyväksyä että pelistä voi tulla hieman ”tilkkutäkki”, jos on assetteja sieltä täältä.
SGH: Pelisuunnittelun kannalta tällaiset hardcore-pelit ovat hyvin kiinnostava genre, koska niiden pitää opettaa pelaajille niin paljon asioita, jotka eivät ole tyypillisiä muissa peleissä. Miten olet itse vastannut tähän haasteeseen, että saadaan peliin ankara selviytymisfiilis ilman että pelistä tulee turhauttavan rankaiseva?
Antti: Pelisuunnitelun kannalta on ehkä keskeistä ymmärtää, että ollaanko suunnittelemassa peliä isoille massoille (eng. mass market appeal), vai jollekin tietylle kohderyhmälle. Tämä projekti on nimenomaan kohdistettu pelaajille ja henkilöille, ketkä tykkäävät hardcore-selviytymismekaniikoista, ja eivät halua ”kädestä pitämistä” kaikkien ominaisuuksien osalta.
Omasta mielestä on täysin hyväksyttävää, että peli on välillä turhauttava ja ankara. Nykypäivänä on ehkä opittu mobiilipuolelta liikaa, että avustetaan, autetaan ja helpotetaan, jotta pelin yleinen saavutettavuus paranee. PC-puolella on vielä onneksi näitä asiakas- ja pelaajaryhmiä, joita tämä ei kiinnosta, ja se on nimenomaan minne tämän projektin pelisuunnittelua ohjataan.
Mitä tulee näihin hardcore-pelimekaniikkoihin, niin yleensä ainut looginen tapa simuloida esim. kuolemanpelkoa videopeleissä on täysi progression menettäminen (esim. DayZ). Tämän tyylissä peleissä, jotka sisältävät permadeath elementtejä, tämä ankaruus on itse asiassa juuri se jutun juoni. Ilman progression menettämisen pelkoa peli voi muuttua helposti ”juostaan ja ammutaan”-räiskintäpeliksi.
Toki kaikessa pelisuunnittelussa on aina omat tasapainotusmurheensa. Tässäkin pelissä on ns. rauhallinen alue nimeltä Area 05 ja sitten on permadeath alue nimeltä Vostok. Itsellä on tavoitteena, että annetaan enemmin pelaajalle paljon karttoja ja alueita, joista hän voi itse muodostaa oman turhautumisriskinsä, eli mitään pakkoa näille permadeath alueille ei muodostu, vaan kyseessä on täysin pelaajalähtöinen valinta.
SGH: Totta! Oikeanlainen turhauttava voi olla todella koukuttavaa. Tuo tuntemusten simulointi on todella kiinnostava aihe, kun pelaajan tuntemusten ja pelihahmon tuntemusten välillä on niin suuri epäjatkumo. Pelaaja haluaa nälkää tuntiessaan syödä jotain, mutta ei pysty tuntemaan hahmon nälkää, joten se on pakko havainnollistaa esimerkiksi numerolla. Onko sinulla tullut tämän projektin aikana vastaan kohtia, joissa jonkin tuntemuksen simulointi on aiheuttanut erityisiä haasteita tai olisi kenties vienyt gameplayta nimenomaan väärällä tavalla turhauttavaan suuntaan?
Antti: Rehellisesti sanottuna vielä näitä juttuja ei olla edes paljon päästy testailemaan, koska pääpaino tuotannon alkuvaiheessa on ollut perusmekaniikkojen rakentamisessa. Pelisuunnitteluun päästään syventymään yleensä vasta siinä vaiheessa, kun alkaa hahmottumaan ns. game loop ja pääsee näkemään / pelitestaamaan sitä peli-ideaa ensimmäistä kertaa. Tätä ennen on hieman haastavaa yrittää tehdä johtopäätelmiä, kun kyseessä on jatkuvasti kehittyvä alusta.
Tämän projektin osalta nämä kysymykset tulevat ajankohtaisesti Public Demo 2 jälkeen, jonka kautta pääsee ensimmäistä kertaa kokemaan sitä alustaa ja peli-ideaa jonka ympärille pelin koukuttavuus on tarkoitus rakentaa.
Se mitä tulee immersion rikkomiseen tai pelisuunnitelun haasteisiin, niin yleensä paras tapa hioa näitä yksinkertaisesti pelitestata ja ottaa ulkopuolista palautetta, koska kehittäjä on yleensä aika sokea omille tuotoksille. Tässä toki on tasapainottelua sen suhteen, että liikaa ei myöskään voi kumarella sinne ja tänne palautteen osalta, vaan alkuperäinen visio pitää pystyä säilyttämään.
SGH: Suomessa on tullu viime vuosina paljon kauhupelejä, jotka vaativat tietynlaisen valaistuksen ollakseen vaikuttavia. Myös Road to Vostokissa yöt ovat todella klaustrofobisia ja jopa pelottavia, mutta tämän lisäksi peli luo mahtavaa tunnelmaa monilla muillakin päivänajoilla ja sääoloilla. Tunnelmassa valaistus on todella tärkeä tekijä, mutta sen tekemisestä ei puhuta kovin paljoa. Mikä on ollut sinun prosessi valaistuksen valmistamiseen, jotta olet saanut sen toimimaan näin tehokkaasti?
Antti: Itseasiassa valaistus on vielä aika lapsen kengissä tämän projektin osalta, mutta mukava kuulla silti, että se nyt näin varhaisessa vaiheessa jo herättää positiivisia mielipiteitä.
Valaistuksen suunnitelussa ehkä olennaisinta on tunnelman ja visuaalisen vaihtuvuuden luominen. Jos miettii Suomea valaistuksen suhteen, niin meillä on aika radikaalisti poikkeavia valaistusolosuhteita, kun ottaa huomioon erityispiirteet, mitä pohjoismaihin ja esimerkiksi talveen liittyy.
Valaistuksen tekemisessä on paljon manuaalista värisovittelua ja ns. parametrikikkailua, jotta eri ympäristöelementit saadaan yhdistettyä visuaalisesti hyvin. En koe olevani erityisen taitava kehittäjä valaistuksen suhteen, mutta ymmärrän ne perusperiaatteet, mitä realistiseen valaistukseen kuuluu. Monesti myös peleissä monet valaistustemput on täysin kulisseja, jotta pelin renderöinnin suorituskykyä saadaan ylläpidettyä.
Sanoisin että valaistuksen tehokkuus koostuu lähinnä hyvistä taivaskartoista, varjojen kontrastieroista, sekä näiden kaikkien värisävyjen yhteensovittamisesta. Näiden värisävyjen osalta muuttujana on yleensä auringon valon sävy, ambient-valon sävy ja pelikarttaa ympäröivän kevyen usvan / sumun sävy. Mikäli nämä kolme elementtiä saa keskenään näyttämään hyvältä, niin silloin ollaan jo hyvässä lähtöasetelmassa.
SGH: Kun laitoin demon pyörimään, niin tykkäsin kovasti siitä hiljaisesta luonnosta. Sitten kun selasin asetuksia, niin huomasin, että siellä oli vaihtoehtoinen musiikki mukana. En varsinaisesti ollut kaivannut musiikkia, mutta kun laitoin sen päälle, niin sillä oli välitön ”Vau!”-efekti. Se vain toimi. Onko musiikki myös sinun kynästä? Oliko sinulla joku suunnitelma tai ohjenuora, että millaista musiikin pitää olla ja mitä se ei saa olla?
Antti: Itsellä ei ole mitään lahjoja tai kykyjä audiopuolella, joten suurin osa näistä jutuista on ulkoistettu alihankkijalle, jolla on oikea koulutus, osaaminen ja intohimo audiosuunnittelua kohtaan.
Musiikin osalta itsellä on kyllä melko tarkka korva siinä, mitä se ei ainakaan saa olla, koska oikean tunnelman luominen on tavallaan oma vastuualueni, ja olen ainut henkilö, kenellä on loppupeleissä se visio, miltä peli pitää audiovisuaalisesti tuntua. Ambient-musiikissa tärkeä elementti on painottaa peli-idean horisontaalista vaikeusastetta, eli mitä lähemmäs raja-aluetta menee, sitä synkemmäksi musiikki muuttuu ja päinvastoin.
Sitten taas OST-biiseissä tavoitteena on löytää enemmänkin brändättävyyttä ja elementtejä, jotka ovat mieleenpainuvia juuri tähän projektiin liittyen. Tämän takia OST-biiseihin on yritetty tuoda esimerkiksi tiettyjä radioelementtejä ja epävireisiä ”distorted” kohtia tarkoituksella, jotka eivät ole tyypillisiä muiden pelien OST-kappaleille.
SGH: Tahdotko sitten lopuksi vielä valottaa jotain Road to Vostokin tulevaisuudesta?
Antti: Julkisesti ei voi valittettavasti vielä mainita muuta kuin:
Public Demo 2 Q1 / 2024 (Game loop)
Public Demo 2 Q2 / 2024 (Game loop improvements)
Ja tämän jälkeen alkaa projektin ”Phase 2”, joka loogisesti vie kohti ensimmäistä kaupallista versiota.
Sen voin kuitenkin sanoa, että tästä on tarkoitus rakentaa todella laaja kokonaisuus, joka ei pelkästään rajoitu yhden pelituotteen sisälle. Road to Vostok on suunniteltu itselle uran mittaiseksi sitoutumiseksi.
♞
Lataa Road to Vorstokin pelattava demo Steamista:
https://store.steampowered.com/app/1963610/Road_to_Vostok/