Matemaattisen taivaanrannan maalarit

Artikkeli on alun perin julkaistu Skrollin numerossa 2018.1.

Fractalus

Rescue on Fractalus! oli varhainen fraktaalien innoittama tietokonepeli. Vuosikymmeniä myöhemmin maisemanluonti kohinalla inspiroi modernin imitaation.

Teksti: Janne Sirén
Kuvat: Janne Sirén, Sakari Leppä, Luke Arnold

Jotkin pelit ovat rakkautta ensisilmäyksellä. Itselleni Ultimat, Epyxin Gamesit, Sierran Questit, mitä näitä nyt on. Rescue on Fractalus! (1984) ei ollut. Kun törmäsin peliin ensimmäisen kerran, se oli jo muutaman vuoden vanha. Bongasin sen varmaan alelaarista. Ehkäpä Lucasfilm kannessa oli lupaus jostain suuresta. Todennäköisesti viikkorahat vain olivat lopussa ja se oli halpa.

Vuosi oli noin 1987 ja alusta Commodore 64 – siis suosittu, mutta ei lähellekään se paras Rescue on Fractalus! -versio. Pelin kuusneloskäännöstä pidetään yleisesti vähän epäonnistuneena, erityisesti hitaampana kuin kilpailevaa Atarin kasibittiversiota. Kansikuvan dramaattisesti juokseva lentäjä, räjähtelevä toiminta ja tyylikäs ohjaamo eivät nekään suoranaisesti loistaneet bittimuodossaan.

Rescue on Fractalus! ei kuitenkaan unohtunut. Eikä pelkästään siksi, että se oli pelottavin peli heti Friday the 13th (1985) jälkeen – oli muutakin.

Fraktaaliajan kasvatti

”KHAAAAAN!” – siinä repliikki, josta elokuva Star Trek II: Khanin viha (The Wrath of Khan, 1982) varmasti parhaiten muistetaan. Ehkä elokuva kuitenkin ansaitsisi tulla muistetuksi Genesis-aallostaan – erikoistorpedon laukaisun aikaansaamasta ketjureaktiosta, joka maankaltaistaa kuolleen planeetan. Pariminuuttisen kohtauksen puolivälissä tulimerestä nousee jyrkkiä vuoria.

Genesis-aalto, vaikkakin nykymittapuulla karu tehoste, oli aikansa tietokonegrafiikalta saavutus. Se oli ensimmäinen kokonaan tietokoneella luotu kohtaus täyspitkässä elokuvassa. Samoihin aikoihin George Lucas heilutteli vielä pienoismalleja kameran edessä Jedin paluussa (1983). Lucasilla oli tosin näppinsä myös Genesis-tehosteessa – sen toteutti Lucasin perustama Industrial Light & Magic.

Genesis-vuoret olivat fraktaalivuoria. Fraktaali – tai murtomuoto – on matemaattinen joukko, joka on itsesimilaarinen eli näyttää samanlaiselta tai -kaltaiselta suurennoksesta riippumatta. Kun fraktaalin visualisaatiosta suurentaa mitä tahansa aluetta, siitä löytyy rajattomasti uusia yksityiskohtia, jotka ovat samanlaisia tai samankaltaisia kuin sama joukko muilla mittakaavoilla. Esimerkiksi Julian joukko on kuuluisa fraktaali.

Myös luonnonmaisemien kuten vuoristojen fraktaaliominaisuuksia on tutkittu. Benoit Mandelbrot esitti ensimmäisten joukossa maanmuotojen mallintamista fraktaaleilla. Monet luonnossa esiintyvät ilmiöt ovatkin jossain määrin itsesimilaarisia, maisematkin, ainakin pienessä mittakaavassa. Laajempiin maisemiin vaikuttavat useat erilaiset mekanismit mannerlaatoista veteen, joten niiden mallintaminen edellyttäisi vähintäänkin monien fraktaalien käyttöä.

Fraktaalit hämärsivät geometrisen ja taiteellisen rajaa. Niillä pystyttiin luomaan proseduraalisesti näennäistä satunnaisuutta, jossa oli ihmissilmän odottamaa rytmiä. Tietokonealgoritmilla pystyi viimein visualisoimaan rajattomasti laajenevia, mutta samalla uskottavasti vaihtelevia keinotekoisia luonnonmaisemia – ilman käsityötä. Aikana, jolloin tavanomainen 3D-graafinen vuoristo oli pari symmetristä pyramidia vierekkäin, fraktaalimaisema oli mullistus.

Rescue on Fractaluksen (1984, vas.) etumatka uskottavasti kumpuilevien vuorijonojen tuottamisessa oli suuri. MicroProsen hittisimulaattori Gunship (1986, oik.) keinotekoisen näköisine vektoripyramideineen edusti aikakauden tavanomaista tasoa. Kuvat Commodore 64 -versioista.

Matemaattinen grafiikkademo

Samana vuonna, kun Star Trek II ilmestyi teattereihin, George Lucas perusti Lucasfilm Games -pelistudion elokuvayhtiönsä alaisuuteen. Monet muistavatkin peli-Lucasfilmin kehittämät ja julkaisemat graafiset seikkailupelit, kuten Maniac Mansion (1987) ja The Secret of Monkey Island (1990). Lucasfilm Games tunnettaisiin myöhemmin nimellä LucasArts, ja se julkaisi videopelejä aina vuoteen 2013 asti.

1980-luvun alussa Lucasfilm Games kehitteli kuitenkin lähinnä toimintapelejä Atarin pelikoneille. Atarin oli määrä toimia pelien julkaisijana. Rescue on Fractalus! oli yksi näistä varhaisista peleistä, toinen kahdesta ensimmäisestä. Peli sai alkunsa, kun pari Lucasfilm Gamesin ensimmäistä työntekijää, David Fox ja Loren Carpenter, jakoivat työhuoneen. Pian he muodostivat pelitiimin.

Carpenter oli ollut kehittämässä Genesis-aaltoa Star Trekiin ja oli fraktaalien asiantuntija. Hän oli esitellyt Vol Libre -fraktaalivideotaan SIGGRAPH-konferenssissa jo vuonna 1980 ja diamond-square-algoritmia 1982. Yhdessä Steve Jobsin ja Edwin Catmullin kanssa Carpenter perustaisi Lucasfilmistä irronneen Pixar-animaatiostudion vuosikymmenen loppupuoliskolla. Vuonna 1983 Carpenter oli kuitenkin piskuisessa Lucasfilm Gamesissa. Yhteisessä työhuoneessaan Fox ja Carpenter päätyivät pohdiskelemaan, voisiko fraktaaleja käyttää mikrotietokoneella.

Rescue on Fractalus! sai alkunsa tästä ideasta ja runkonsa Carpenterin Atari 800:lle kehittämästä fraktaalivuoria piirtävästä grafiikkarutiinista. Peli rakennettiin tämän ympärille. Tässä vaiheessa projektiin liittyi vielä kolmas tekijä, Charlie Kellner. Lisäksi pelidivisioonan johtaja Peter Langston ja animaattori Gary Winnick osallistuivat. Yhtiön toisen pelin Ballblazerin (1984) kehittäjä David Levine ja myös itse George Lucas auttelivat kulisseissa. Tiimit olivat silloin pieniä ja pelin tekeminen vähemmän muodollista, kuten lukuisista sisäpiirivitseistä voi päätellä.

Pelin tapahtumat esimerkiksi sijoittuivat Tepdi Vad Neroleil Rahcre -tähtijärjestelmään, joka sisältää päätekijöiden nimet väärinpäin. Nimikkoplaneetta Fractalus sai puolestaan nimensä fraktaaleista (engl. fractals). Pelin työnimi tosin oli Behind Jaggi Lines!, sekin viittaus grafiikkaan. Pelissä esiintyviä graafisia viivoja ei tuon ajan teknisten rajoitusten vuoksi voitu pehmentää antialiasing-tekniikalla, joten viivat olivat rosoisia (engl. jagged) – nämä jaggiet olivat tietokonegraafikon vihollisia. Näin Jaggi jäi elämään pelissä esiintyvän vihollislajin J’hagga Ri Kachatki lyhennyksenä.

Rescue on Fractalus! suorastaan huokuukin alkuperäänsä grafiikkademona. Pelin tarina sijoitettiin planeetalle, jolla on voimakas kaasuilmakehä, mikä selittää pelissä vallitsevan heikon näkyvyyden. 8-bittisten tietokoneiden tehot eivät riittäneet piirtämään fraktaalivuoristoa kovin kauaksi. Onneksi peli sattui sijoittumaan heikon näkyvyyden planeetalle…

Jaggista varoitellaan ohjevihkosen lopulla. Vieressä pelin tekijät ja lucasfilmläiset näyttelevät lentäjiä: Charlie, Loren, David Levine, Peter, Noah Falstein sekä Gary. Projektipäällikkö David Fox juoksee kansikuvassa kypärä päässään.

Pelastuspartio Ethercorp

Rescue on Fractaluksessa pelataan fiktiiviseen avaruussotaan osallistuvaa Ethercorp-pilottia, joka lentää pelastustehtäviä kiertoradalla olevalta emoalukselta alla olevalle vuoristoiselle planeetalle. Jaggit ovat asettuneet planeetalle puolustustaisteluun, ripotellen sinne tykkitorneja ja lentäviä lautasia, jotka ovat pudottaneet pelaajan lentäjätovereita. Pelaajan tulee löytää pudonneet lentäjät Valkyrie-hävittäjällään, laskeutua ja tuoda heidät takaisin emoalukselle.

Fractalus-planeetalla on paitsi heikko näkyvyys, myös lentäjien lentopukuja sulattava happoinen ilmakehä. Planeetan yhdeksän minuutin pyörimisnopeus tarkoittaa myös vauhdikkaita vuorokaudenajan vaihteluita myöhemmillä tasoilla, jotka sijoittuvat planeetan päiväntasaajalle. Tehtävällä on siis kiire.

Peli alkaa automaattisella laskeutumisella planeetan ilmakehään. Tämän jälkeen seurataan tutkan signaalia lentäjiä etsien ja vihollisaseita väistellen. Takaisin voi ampua antimateriakuplatorpedolla. Alun perin tosin ei voinut, David Fox kun oli rauhaa rakastava hippi. Foxin kertoman mukaan George Lucas vaati lisäämään ampumisen testattuaan peliä.

Kun oma lentäjä löytyy, viereen laskeudutaan. Tämän jälkeen lentäjä alkaa juoksemaan kohti alusta ja lopulta koputtaa oveen. Ensin rauhallisesti, sitten kiihtyvällä tahdilla suojapuvun sulaessa planeetan ilmakehässä. Lentäjä tulee päästää sisään oikealla hetkellä ja palata sitten jatkamaan pelastustehtävää. Tähän liittyi myös pelin pelkokerroin: joskus lentäjä paljastuikin Jaggiksi, joka hakkaa tuulilasin rikki ja tuhoaa aluksen. Myös tämä oli George Lucasin idea.

Tarinan mukaan eräs pahaa aavistamaton viisivuotias oli juossut ulos kotoaan kesken pelin, eikä suostunut palaamaan yksin sisään, koska tietokoneessa oli hirviö. Itse olin tuplasti vanhempi ja lähes yhtä järkyttynyt ensimmäisellä kerralla. Jokainen laskeutuminen jännitti sen jälkeen. Itse ”hirviö” oli lähinnä koominen, mutta yllätys mojova. Myöhemmin oppi kyttäämään pään väriä…

Fraktaalien lisäksi Lucasfilmin elokuvatausta näkyi efekteissä. Äänisuunnittelu näytteli pelissä olennaista osaa, mikä oli tuolloin harvinaisempaa. Vain kuuntelemalla pystyi päättelemään oikean hetken päästää lentäjä sisään. Äänet lisäsivät myös kauhua – jos erehdyit päästämään Jaggin sisään, kuulit sen ennen kuin näit.

Pelin räjähdyksetkin olivat erikoisia. Ne matkivat silmän iiriksen sulkeutumista kirkkaiden välähdysten jälkeen, jolloin kaikki vähän pimenee. Charlie Kellner oli animaattori Mike Jittlovin suuri fani. Jittlovilla oli tapana käyttää tätä kikkaa stop motion -filmeissään.

Monien painajaisten aiheuttaja: pelastettava lentäjä paljastuikin Jaggi-vihulaiseksi. Ellet toimi nopeasti, Jaggi hakkaa tuulilasin rikki nyrkeillään. Kuva Atari-versiosta.

Kasibittisten taidonnäyte

Lucasfilmin Atari-yhteistyösopimuksen mukaisesti Rescue on Fractalus! kehitettiin Atari 800 -kotitietokoneella, julkaistavaksi moduulilla sille ja Atari 5200 -pelikoneelle vuonna 1984. Kohdealustalla oli näin ollen 1,79 megahertsin 8-bittinen prosessori (yksi syy C64-version hitauteen oli sen 1 megahertsin prosessori). Peli julkaistiinkin Atari 5200:lle jotakuinkin ajallaan. Sitten Atari myytiin hankalan miehen maineessa olleelle liikemies Jack Tramielille ja yhteistyö kariutui.

Lucasfilm oli kuitenkin jo ehtinyt lähettää pelin moduuliversion kopiosuojaamattomilla levykkeillä Atarille tarkistettavaksi. Vaikka levykkeistä oli luvattu pitää huolta, Rescue on Fractalus! levisi pian piraattipurkkien kautta ympäri maan – vuotta ennen varsinaista julkaisua. Atarin tietokoneversio oli näin ollen kaupallisesti menetetty tapaus, mikä saattaa selittää käännösalustojen runsasta määrää.

Kuriositeettina vuonna 2004 löydettiin prototyyppi myös Atari 7800 -pelikoneversiosta. Vuonna 1984 julkaistavaksi tarkoitetussa 7800:ssa oli MARIA-niminen grafiikkasuoritin, joka muistutti kolikkopelirautaa sadalla spritellään. Siinä oli myös ikäisekseen laaja 256 värin väripaletti. Atari 7800:n Rescue on Fractalus! onkin alkuperäisversioista kaunein.

Atari 7800 meinasi myös jäädä Jack Tramielin jalkoihin, päästen markkinoille vasta paria vuotta aiottua myöhemmin. Valitettavasti 7800:n Rescue on Fractalus! -prototyypille ei käynyt yhtä hyvin, vaan se jäi keskeneräisenä pöytälaatikkoon. Prototyypistä puuttuu muun muassa ampuminen, laskeutuminen, lentäjien pelastaminen ja useat mittarit.

Monet muut alustat – Commodore 64, ZX Spectrum, Apple II, Amstrad CPC ja Tandy Color Computer 3 – saivat kuitenkin vaihtelevan tasoiset käännöksensä pelistä. Pelille löydettiin uudet jakelijat, jotka tosin edellyttivät moduulien sijaan levykejulkaisua. Julkaisu viivästyi vuodella, koska peliin piti muun muassa lisätä latausanimaatio. Levykeversion muistivaatimukseksi asetettiin 48 kilotavua.

Vallankumouksellisuudestaan huolimatta Rescue on Fractalus! ei täysin päässyt irti taustastaan tekniikkademona. Se oli potentiaaliaan suppeampi. 1980-luvun vektoripeliskene olisi ollut hyvin erilainen, jos fraktaalimoottorin ympärille olisikin rakennettu vaikkapa MicroProsen massiivinen ja realistinen lentosimulaattori – sisäpiirivitseillä kuorrutetun avaruuskuurupiilon sijaan.

Ajan vektorigraafiset megapelit junnasivatkin vielä vuosia epärealistisen laakeiden peltojen ja symmetristen pyramidivuorten tasolla. Silti, Rescue on Fractalus! piirsi itsensä historiankirjoihin rosoisin ja pysyvin kirjaimin. Kun fraktaalimaastoista puhutaan, heti Mandelbrotin jälkeen muistetaan aina Carpenter, Khanin viha ja Rescue on Fractalus!

Lucasfilmin jakeluyhteistyö Epyxin ja Activisionin kanssa tuotti vielä pari muutakin 3D-toimintapeliä. Vuonna 1985 valmistuneet Koronis Rift ja The Eidolon jatkojalostivat Rescue on Fractaluksen fraktaalitekniikkaa, vaikka eivät varsinaisia jatko-osia olleetkaan.

Alkuperäisen Rescue on Fractaluksen julkaisi Amerikassa Games-urheilupeleistään tunnettu Epyx, ja Euroopassa julkaisijana toimi Activision. Vasemmalla yhdistetty Commodore 64 / Atari -levykepainos (pelistä oli myös pelkkä Atari-versio). Oikealla C64:n kasettiversio.

Toinen tuleminen

Commodore 64:ni vaihtui pian Rescue on Fractaluksen jälkeen 16-bittiseen Amigaan. Pelistä ei tehty 16-bittisiä käännöksiä, joten fraktaalit jäivät. Seuraavat vuodet katselimme lentelypeleissä täytettyjä vektoripyramideja kumpuilevien vuorijonojen sijaan. 16-bittiseltä aikakaudella muistan fraktaaligrafiikan lähinnä Vista Pron kaltaisista maisemangenerointiohjelmista ja iänikuisisista PD-levykkeiden Mandelbrot-demoista. Fraktaalit olivat edelleen demo.

Tulevina vuosikymmeninä proseduraalinen maisemantuottaminen loikkisi kuitenkin harppauksin eteenpäin, kiitos muun muassa pintakuvioinnin. Eräs toinen SIGGRAPHissa 1980-luvulla vaikuttanut tietelijä oli Ken Perlin. Perlinin artikkeli An image synthesizer vuodelta 1985 kuvaili Perlin-kohinan käsitteen (Perlin noise), jolla luodaan luonnollisen näköisiä kuvioita tietokonegraafisille pinnoille. Perlin voitti työstään myöhemmin jopa Oscarin.

Erilaisia kohinageneraattoreita on kehitelty sittemmin useita muitakin, ja ne ovat suosittuja välineitä proseduraalisessa maisemantuotannossa. Fraktaali- tai kohina-algoritmeilla lasketulla korkeuskartalla (heightmap) pääsee pitkälle, kuten Rescue on Fractalus! osoitti. Toki monimutkaisimmat maisemat ovat yhdistelmiä useista eri tekniikoista – luolat ja kielekkeet edellyttävät muita tekniikoita, koska niihin pelkkä korkeuskartta ei riitä.

Korkeuskarttojen ja kohinan parissa puuhasteli myös australialainen ohjelmistokehittäjä Luke Arnold vuonna 2007. Kehittäessään omaa pelimoottoria harrastuspohjalta Arnold kokeili verkosta löytämäänsä korkeuskarttaa, mutta ei ollut tyytyväinen. Hän alkoi tutustumaan proseduraaliseen laskentaan käyttäen kohinaa ja päätti yrittää tuottaa korkeuskartan itse.

”Ensimmäinen maasto, jonka tuotin, oli hyvin rosoinen ja kohinainen. Se muistutti Rescue on Fractaluksen vuoria, joten päädyin tekemään pelimoottorin prototyypistäni Fractaluksen näköisen”, kertoisi Arnold sattumuksesta vuosikymmentä myöhemmin Skrollille.

Kolme vuotta kokeilun jälkeen, vuonna 2010, lsdwa.com-sivustolle ilmestyi Fractalus 0.5.0 alpha.

Fractalus-remaken uuden 0.8-version on tarkoitus ilmestyä tämän lehden julkaisun aikoihin. [Fractalus 0.8 julkaistiin 25.3.2018.]

Fractalus

Fractalus 0.5.0 alpha oli Luke Arnoldin itsekseen kehittämä, epävirallinen ja maksuton uudelleentulkinta Rescue on Fractaluksesta – tai sellaisen runko. Se perustui omaan OpenGL-pelimoottoriinsa. Seuraavan viiden vuoden aikana Arnold julkaisi muutaman isohkon päivityksen, versiot 0.6 ja 0.7, jotka lisäsivät runkoon useita puuttuvia ominaisuuksia. Hiljalleen Fractaluksesta kuoriutui oikea peli. Vuoteen 2015 mennessä se sisälsi jo pääasiat alkuperäisestä joskin maassa juoksevat lentäjät ja viholliset puuttuvat. Pelastettaessa lentäjän tilalla on pelkkä symboli.

Kesällä 2017 projekti aktivoitui taas, nyt ilmoituksella siirtymisestä suositun Unity-pelimoottorin käyttöön. Unity-pohjainen Fractalus 0.8 oli työn alla. Arnold perustelee blogissaan, että ”se vähäinen aika mikä projektille oli käytettävissä, kului sekä pelin että pelimoottorin toteuttamisessa – ja yllättäen pelimoottorin kehittäminen olikin varsin aikaa vievää…”

Olin itse ihastellut Arnoldin kädenjälkeä jo vuosien ajan ja pelannut Fractalusta enemmän kuin Rescue on Fractalusta aikanaan. Kun projekti täytti vuosikymmenen, oli korkea aika ottaa Etherwave-yhteys Australiaan ja kysyä millainen henkilö viettää kymmenen vuotta Fractaluksella?

”Moi! Olen Luke, Perthistä, Länsi-Australiasta”, esittäytyy erittäin ystävällinen Arnold englanniksi ja kertoo jatkaneensa projektia, koska haluaa saada aikaiseksi valmiin pelin soolokehittäjänä. ”Kun aloitin protoilemaan vuonna 2007, pelinkehitys tapahtui tavanomaisesti suurissa tiimeissä. Tämä poikkesi 1980-luvusta, jolloin jotkut pelit kehitti yksi ihminen”, hän jatkaa ja pohtii, olisiko tämä edelleen mahdollista. ”Toistaiseksi on ollut, mutta paljon se vaatii aikaa ja vaivaa.”

”Innostuin tietokoneista jo hyvin nuorena, joten vuonna 1986 isäni alkoi opettamaan minulle ohjelmointia Commodore 64:llä. Vuonna 1990 siirryin DOS-pohjaisiin PC-koneisiin ja jatkoin ohjelmoinnin opiskelua, oppien useita kieliä matkan varrella. Vietettyäni enemmän aikaa tietokoneiden ja ohjelmoinnin parissa, ja aloitettuani työt alalla, opin paljon ohjelmakoodin optimoinnista ja grafiikan parissa työskentelystä. Niinpä aloin kehittämään omaa OpenGL/SDL-pelimoottoriani luodakseni puitteet omille peliprototyypeilleni.”

”Pelasin myös monia erilaisia pelejä Commodore 64:llä, Nintendo Entertainment Systemillä ja PC:llä. Monet niistä muistuttivat tyylillisesti toisiaan, oli sivuttais- ja pystyvierityksiä, tasoloikkia, jne. Nautin niistäkin, mutta se mikä todella teki vaikutuksen, oli Rescue on Fractaluksen täysi 3D-vuoristo yksityiskohtineen. Pidin muistakin 3D-peleistä, kuten Mercenary, Elite, Driller ja toinen Lucasfilmin peli, The Eidolon. Tietokoneen kyky tuottaa reaaliajassa kuvaa 3D-perspektiivissä oli uskomatonta”, jatkaa Arnold.

Tarina on tuttu minulle ja monelle saman ikäpolven harrastajalle. Arnoldin muistot alkuperäisestä Rescue on Fractaluksesta eivät suoranaisesti yllätä nekään: ”Kuten uskoakseni useimmilla, yksi vahvimmista muistoistani on ensimmäinen kerta, kun avaruusolento loikkaa aluksen ikkunaan. Se todellakin pelotti lapsena, ja epäröin alkuun pelaamisen jatkamista. Toisaalta pelin hidas vauhti jäi mieleen miinuksena. Arvelen sen olleen vain Commodore 64 -version syytä, sillä vuosia myöhemmin kokeilemani Atari 5200 -versio oli nopeampi.”

Fractalus-planeetan vuorokausirytmi on kiivas. Lyhyt päivä lopussa ja lentäjät kyydissä, aika palata emoalukselle… Vanhempaa, omaa pelimoottoriaan käyttävää Fractalus 0.7:ää (kuvassa) voi pelata myös ilman ohjaamografiikkaa.

Tekniikkademo 2.0

Luke Arnold tiesi, että useista muista vanhoista peleistä oli tehty uusia remake-versioita. Kun kohinalla tuotettu korkeuskartta pelimoottorin raakileessa päätyi muistuttamaan Fractalusta, hän tarkasti tilanteen: ”Etsin Rescue on Fractalus! -remakea, mutta en löytänyt. Päädyin sitten tekemään pelimoottorini prototyypistä sellaisen.”

Kuten Rescue on Fractalus!, Fractalus-remake sai siis alkunsa grafiikkademosta. Rescue on Fractaluksen keskiössä oli kuitenkin proseduraalisesti luotu fraktaalivuoristo, Fractaluksessa näin ei ainakaan vielä ole. Arnold kertoo: ”Haluaisin toteuttaa fraktaaleilla tuotetun maaston, mutta toistaiseksi Fractalus käyttää staattista maastoa, jonka olen luonut erikseen. Haluaisin, että peli luo maaston samalla algoritmilla, kuin alkuperäinen, tai sen muunnelmalla, mutta täytyy vielä selvittää, miten alkuperäinen on toteutettu.”

”Kun alun perin protoilin asiaa, en tiennyt paljoakaan satunnaisesta maiseman luomisesta. Loin korkeuskartan GIMPin Create-valikosta löytyvällä Flatland-skriptillä. Fractalus käyttää edelleen tätä karttaa. En ole varma Flatlandin algoritmista, mutta sisäisesti se käyttää Solid Noise -toimintoa, jonka tuotos matalimmalla tarkkuustasolla muistuttaa Perlin-kohinaa. Olen sittemmin ohjelmoinut erillisiä kokeiluja myös Perlin-kohinalla.”

Toistaiseksi Fractalus käyttää siis esiluotua maastoa, mutta Arnold alkoo tehdä maisemasta dynaamisen: ”Kun Loren Carpenter teki alkuperäisen Rescue on Fractaluksen maisemanluonnin, se on tietysti perustunut hänen fraktaalitutkimukseensa. Sitten kun alan lisäämään ajonaikaista maisemanluontia Fractalukseen, aion kokeilla diamond-square-algoritmia, Perlin-kohinaa ja muita. Arvelen, että Rescue on Fractalus! saattaa käyttää diamond-square-algoritmia. Odotukseni on, että se näyttää muita enemmän alkuperäisen pelin kaltaiselta.”

Arnoldin motivaatiot ovatkin samankaltaisia kuin monilla harrasteprojekteilla. ”Minulle hauskinta on ollut 3D-peleissä käytettyjen teknologioiden ja tekniikkojen oppiminen, sekä pelisuunnittelun oppiminen tutkimalla Rescue on Fractalusta ja muita pelejä. Olen oppinut paljon 3D-renderöinnistä, 3D-mallinnuksesta, peli-, ääni- ja graafisesta suunnittelusta sekä ohjelmoinnista.” Tässä lienee samalla vastaus siihen, miksi harrasteprojekti on kestänyt niinkin pitkään. Matka on tärkeämpi kuin päämäärä. Toki teknologiavalinnoillakin on ollut seurauksensa.

”Tuli myös opittua, että pelimoottorin suunnittelu muuttuu nopeasti kovin monimutkaiseksi ja vaatii enemmän aikaa ja vaivaa, kuin minulla on. Olin kehittänyt oman pelimoottorini protoillakseni uusia ideoita, ja tämä toimikin yksinkertaisille ominaisuuksille, joilla pääsin alkuun. Jatkaessani Fractaluksen kehittämistä ymmärsin kuitenkin tarvitsevani kehittyneempiä asioita ja lopulta käytin enemmän aikaa pelimoottorin parissa, kuin itse pelin. Olin tässä vaiheessa jo leikkinyt Unityllä ja huomasin, että siellähän ne tarvitsemani ominaisuudet olisivat valmiina.”

Fractaluksen porttaaminen Unitylle vapauttaisi pelimoottorin ylläpitämisen taakasta ja saisin keskittyä itse peliin. Tämä onkin sujunut hyvin, joskin kesti hetken oppia Unityn niksit – asiat helpottuivat huomattavasti, kun maltoin käydä lävitse muutamia heidän opetusprojektejaan. Jahka opin miten Unity haluaa asiat esitettävän, oman pelimoottorini konseptien siirtäminen sinne oli varsin suoraviivaista.”

Tavoitteena on, että Unity-pohjainen Fractalus 0.8 vastaa ominaisuuksiltaan omaa pelimoottoriaan käyttävää Fractalus 0.7:aa. Tämä työ oli haastatteluhetkellä melkein valmis. Pääsin pelaamaan Fractalus 0.8:n kehitysversiota alkuvuodesta, ja Arnold kaavailee 0.8:n julkaisua suunnilleen tämän Skrollin ilmestymishetken tienoille. [Fractalus 0.8 julkaistiin 25.3.2018.]

Luke Arnold aikoo viedä Fractalus-remakensa maaliin Unity-pelimoottoria käyttäen. Kuvassa versio 0.8 valmistumassa. Uusi Unity-pohjainen versio onkin huomattavasti viimeistellympi kuin aikaisemmat julkaisut.

Fractaluksen tulevaisuus

Kysyin Lukelta, tuleeko Fractaluksesta versiota 1.0 tai 2.0? ”Tavoitteeni on, että 1.0 sisältää kaikki alkuperäisen pelin ominaisuudet, joten kyllä, 1.0 on tulossa. Minulla on joitakin ideoita pelin laajentamiselle tämän jälkeen, ja monet ovat lähettäneet minulle ehdotuksiaan, mutta en tiedä vielä mitä tapahtuu 1.0:n jälkeen, jos mitään. Minulla on useita muitakin projekteja, joita työstän ajasta aikaan, liittyen ammattiini. Joitakin hyöty- ja joitakin peliprojekteja, jotka eivät ole vielä julkisia. Haluaisin kehittää myös niitä, mutta ensiksi haluan saada Fractaluksen valmiiksi.”

Arnold ei esimerkiksi ole poissulkenut ajoittain toivottua keinotodellisuutta: ”Unity mahdollistaa tämän, joskin pelimaailman nykyinen piirtämistapa aiheuttaa muutamia haasteita. Minulla olisi kyllä Oculus Rift DK1 testaamiseen.”

Entäpä ne juoksevat lentäjät ja Jaggit? ”Nykyinen symboli perustuu alkuperäisen pelin lentäjäsymboliin ja pitää paikkaa, kunnes saan toteutettua lentäjän ja avaruusolennon grafiikat. Aion toteuttaa molemmat 3D-malleina ja opettelen parhaillaan mallinnusta Blenderillä. Tällä tahdillani veikkaan, että lentäjä tulee versioon 0.9 ja avaruusolento versioon 1.0.”

Skrollin YouTube: Fractalus remake (2018) vs. Rescue on Fractalus! (1984).

Mielestäni Arnold on joka tapauksessa jo onnistunut. Fractaluksen foorumilla ja some-kanavissa on ansaitusti ihastuneita kommentteja. Toisin kuin alkuperäinen Rescue on Fractalus, myös minulle Fractalus oli rakkautta ensisilmäyksellä. Uusi versio on huikean tunnelmallinen. Siitä toki myös alkuperäinen ansaitsee kiitoksensa, osa tunnelmasta on sen historiassa. Alkuperäisen Rescue on Fractaluksen tärkein saavutus silti on siinä, miten sen käyttämä tekniikka on sittemmin viitoittanut tietä lukuisille muillekin 3D-peleille. Pyramideja löytyy enää Egyptistä.

Lucasfilmin peliosasto lopetti pelituotannon vuonna 2013 Disneyn ostettua yhtiön edellisenä vuonna. 150 työntekijää sai potkut. Yhtiön kerrottiin jatkavan alle kymmenen hengen tiimillä pelilisensointia. Historian oikkuna Lucasfilmin peliosasto onkin siis nykyisin suunnilleen samankokoinen kuin se oli vuonna 1984. Se on muun muassa Rovion Angry Birds Star Wars II -lisenssin takana, mutta on sittemmin ryhtynyt lisensoimaan myös yhtiön varsinaisia peliomistuksia, esimerkkeinä Grim Fandango Remastered ja Day of the Tentacle Remastered.

Miten olisi seuraavaksi Rescue on Fractalus! Remastered?

Luke Arnoldin Fractalus löytyy osoitteesta: lsdwa.com/projects/fractalus. Alkuperäinen Rescue on Fractalus! Internet Archive -verkkokirjastossa: archive.org/search.php?query=Rescue on Fractalus. Lisää yleisemmin fraktaaleista ja maisemakohinasta mm. Skrolleissa 2013.1 (s. 34), 2015.1 (s. 46) ja 2017.1 (s. 72), pdf-versiot: skrolli.fi/numerot.


Fractalus-päivitys: Timantti-neliö-algoritmi

Teksti: Janne Sirén
Kuvat: Luke Arnold, Janne Sirén, Christopher Ewin/Wikimedia Commons

Artikkeli on alun perin julkaistu Skrollin numerossa 2018.3.

Proseduraalista maisemanluontia fraktaaleilla esiintyi muutamissa varhaisissa tietokonepeleissä: Koronis Rift (1985) maalasi sävytettyjä vuorijonoja, The Eidolon (1985) käänsi fraktaalit nurinpäin luolastoksi ja Ace of Aces (1986) koristeli pilvilauttoja. Lucasfilm Gamesin ensimmäinen työntekijä, Peter Langston, kuvaili fraktaaleja ”datan vahvistamiseksi”. Niillä ”pystyi luomaan pienestä määrästä tietoa paljon yksityiskohtia, johdonmukaisesti” – hyödyllistä, kun muistia oli vähän.

Ensimmäinen peleistä oli Rescue on Fractalus! (1984, kuvassa), joka rakentui fraktaaliplaneetan ympärille. Kerroimme pelistä ja sen uustuotetusta faniversiosta Fractalus Skrollissa 2018.1. Uusversion tekijä Luke Arnold käytti GIMP-ohjelman Flatland-skriptiä pelinsä korkeuskartan luontiin. Se muistuttaa pehmeää Perlin-kohinaa (lisää Perlin-kohinasta Skrolli 2015.1, pdf: skrolli.fi/numerot).

Fractalus 0.7 (GIMP Flatland)

Tuleva Fractalus 0.9 -päivitys lähestyy esikuvaansa käyttämällä timantti-neliöalgoritmia (diamond-square algorithm) terävämmän vuoriston luomiseen. Tämä SIGGRAPH 1982 -konferenssissa esitelty fraktaali tunnetaan myös nimellä satunnainen keskipisteen siirto. Yksi sen keksijöistä oli Rescue on Fractaluksen kehittäjä Loren Carpenter. Arnold veikkaa, että alkuperäinen peli käytti tätä algoritmia.

Timantti-neliö-algoritmi täyttää (2n + 1)2 -kokoisen neliötaulukon, joka soveltuu korkeuskartaksi. Tyhjän neliön kulmille annetaan arvot ja sitten toistetaan vuorotellen timantti- ja neliövaiheita. Timanttivaihe tulee ensin: alkuneliön keskipiste saa arvokseen neliön kulmien keskiarvon lisättynä satunnaisluvulla – visualisoituna nuolet kulmista keskipisteeseen muistuttavat timanttia.

Seuraavassa neliövaiheessa alkuneliön sivujen puolivälit otetaan keskipisteiksi. Ne saavat arvoikseen pysty- ja vaakasuoraan ympäröivien neljän täytetyn pisteen keskiarvon lisättynä satunnaisluvulla. Kun keskipiste osuu taulukon laidalle, kuten alussa käy, käytetään vain kolmea pistettä tai vastalaitaa. Näin taulukkoon muodostuu alineliöitä, jotka siirtyvät timanttivaiheisiin ja niin edelleen. Laskenta jatkuu, satunnaisuutta pienentäen, kunnes taulukko on täynnä.

Fractalus 0.9 (timantti-neliö-algoritmi)

Algoritmia on kritisoitu neliöpohjaisuuden aiheuttamista suorista laskoksista kartalla, eikä huippujen piikikkyyskään kovin luonnollista ole. Siitä esiteltiinkin parannettu versio vuoden 1986 SIGGRAPHin jälkeen. Carpenter teki myös iPhone-demon modernista Rescue on Fractaluksesta 2010-luvun vaihteessa, ennen kuin LucasArtsin johto vaihtui ja hanke haudattiin. Mitäköhän algoritmia se käytti?

Artikkelit on julkaistu alunperin Skrolleissa 2018.1 ja 2018.3 – nämä ja muut vuosikerran 2018 lehdet voi tilata Skrolli-kaupasta. Voit myös tilata seuraavan vuosikerran 2019 sekä vanhempia Skrolli-lehtiä samasta paikasta.