Vuonna 2004 julkaistu .kkrieger on yksi pelihistorian suurimpia teknisiä saavutuksia, vaikka moni ei ymmärrettävästi ole koko pelistä edes kuullut. Se ei koskaan saanut kaupallista julkaisua, eikä sitä kehittänyt John Carmack tai kukaan muu pelialan suuri guru.

Ehei, .kkriegerin kehityksestä vastasi saksalainen .theprodukkt, joka oli demoskenessä hyvinkin tunnetun Farbrausch-groupin alajaos. .kkrieger keräsi aikanaan kohtalaisen paljon huomiota puhtaasti sen ansiosta, että se on ihan kunnollinen kolmiuloitteinen, Windows-koneilla pyöritettävä FPS-peli, joka vie tilaa 95 kiloa.

Vuoden 2025 perspektiivistä on jopa tavallaan vaikea yrittää mitenkään järkevästi välittää lukijalle sitä, miten naurettavan pieni datamäärä 95 kiloa on. Vähänkään suurempien pelien koot liikkuvat gigoissa, pienimmätkin indie-pelit vievät yleensä satoja megoja tilaa, puhelintenkin räpsimät kuvat ovat useiden megojen kokoisia ja niin edelleen.

Lue myös: Metal Gear Solid Delta: Snake Eater sai julkaisussa esiintyneitä ongelmia korjaavan päivityksen

Mutta yritetään: tämä teksti vie Wordin .doc-formaattiin tallennettuna 17 kiloa tilaa, eli viidenneksen pelin koosta. Alla oleva kuva .kkriegeristä taas on 280 kiloa suuri – eli kolme kertaa suurempi, kuin koko peli. Nyt joku todennäköisesti ihan aiheellisesti ihmettelee, että miten hitossa tämä on mahdollista tietotekniikan, tai edes fysiikan lakien alaisuudessa.

Se lopullinen vastaus kysymykseen on tietenkin, että Farbrauschin tyypit ovat tehneet diilin paholaisen kanssa ja operoivat nyt sellaisella olemisen tasolla, jota me tavalliset kuolevaiset emme voi edes ymmärtää. Mutta oikea vastaus on ”hyödyntämällä proseduraalisia algoritmeja”.

Lue myös: Hollow Knight: Silksong muuttuu helpommaksi

Proseduraaliset algoritmit ovat nousseet muidenkin kuin meidän tietojenkäsittelytieiteiden opiskelijoiden tietoisuuteen viimeisten vuosien aikana, kun useat pelit ovat hyödyntäneet niitä vaikka pelikerrasta toiseen vaihtuvien pelimaailmojen luomisessa. Rankasti yksinkertaistaen homma toimii näin: sen sijaan, että joku tekisi kenttäeditorin kanssa kokonaisen kentän tai pelimaailman ja sitten tallentaisi sen valmiina palikkana, proseduraaliset algoritmit tekevät sen heidän puolestaan. Algoritmit muodostavat maailman ja sijoittelevat sinne esineitä matemaattisten kaavojen avulla, usein satunnaisuutta hyödyntäen – jolloin sama algoritmi voi tuottaa miltei loputtomasti variaatioita – mutta yhtä hyvin myös deterministisesti: jos algoritmille antaa syötteen X, se tuottaa aina lopputuloksen Y.

Vaikka proseduraalisuutta hyödynnetäänkin usein juuri kenttien tai vaikka hieman erilaisten asevarianttien generoimiseksi, ei ole mitään syytä, miksi algoritmit pitäisi rajata vain kenttien luomiseen. Pohditaan vaikka 3D-peleissä käytettyjä tekstuureita, 2D-kuvia, jotka sitten kääritään 3D-objektien ympärille. Kuten kaikki muutkin 2D-kuvat, myös nämä tekstuurit koostuvat lopulta matriiseista, jotka kertovat, minkä värinen pikseli kuhunkin kenttään pistetään. Ja kun jokaiseen matriisin kenttään on näin sijoitettu oikea pikseli, kuva on valmis. Piirto-ohjelmat vain tarjoavat artisteille helpon ja ihmisen käyttöön sopivan rajapinnan, jolla määrittää kenttien sisältöä, eli piirtää. Farbrauschin tyypit tekivät saman algoritmeilla.

Lue myös: Lähteet: Sony korvaa PlayStation 5 -mallin huonommalla versiolla tässä kuussa

Sen sijaan, että 95 kiloon olisi yritetty tunkea valmiita 2D-tekstuureita tai vaikka musiikkia ja ääniä, peli sisältää algoritmit, joille annetaan syöte ja joka sitten luo pelin käynnistyksen yhteydessä joka kerta samanlaiset tekstuurit ja äänet. Vertailun vuoksi kehittäjät ovat todenneet, että jos peli olisi sisältänyt tekstuurit, 3D-mallit, äänet ja muut käytetyt tiedostot lopullisessa muodossaan, peli olisi vienyt noin 200 megaa tilaa, eli noin 21 kertaa enemmän kuin nyt.

Ratkaisu on nerokas, mutta samalla myös hieman rajoittunut. Kuvia tai videota katselemalla huomaa nopeasti, että peli näyttää ja kuulostaa jopa vuoden 2004 julkaisuksi sangen karulta. Tekstuurit eivät ole kovin tarkkoja ja äänet voisivat olla peräisin jostain 70-luvun kolikkopelistä. Tämä ei toki tarkoita, että peli itse olisi mikään tekninen paske. Taustalla pyörivä moottori on vuoden 2004 peliksi jopa hämmentävän kehittynyt, sillä siitä löytyy esimerkiksi tosiaikainen valaistus ja valonlähteiden heittämät dynaamiset varjot. Todella kova saavutus pienen harrastelijaporukan peliksi, kun samana vuonna ilmestynyt Doom 3 käytti samaa ominaisuutta suurimpana myyntiargumenttinaan!

Mutta ei .kkrieger toki pelinä ole mikään Doom 3:n kilpailija. Siitä riittää pelattavaa vain 10 minuutiksi, vihollisten tekoäly on hyvin yksinkertainen ja vaikka peliin on saatu kunnioitettava määrä erilaisia aseita, nekin kaikki toimivat mekaanisesti hyvin samalla tavalla ampumalla vaihtelevalla vauhdilla palluroita, jotka sitten tekevät aseesta riippuen enemmän tai vähemmän vahinkoa.

Lue myös: Crysis pisti 17 vuotta sitten PC-pelaajat itkemään

Tämä ei varmasti tullut Farbrauschin tyypeillekään yllätyksenä, sillä .kkriegerin ei ollut tarkoituskaan olla valmis peli. Se oli maistiainen, joka kehitettiin demopartyjen kilpailua varten esittelemään tiimin algoritmeja – generatiivisia ja pakkaukseen käytettäviä. Ideana oli, että tämän jälkeen niitä hyödyntäen kehitettäisiin sitten täysimittainen peli, jonka ei välttämättä tarvitsisi enää olla aivan yhtä pieni kuin partymaistiaisen.

Harmillisesti homma kuitenkin jäi vain aikomusten ja ideoiden tasolle. Jostain syystä projekti ei koskaan valmistunut, tai edes edennyt merkittävästi. Vuonna 2012 projekti sitten kuopattiin lopullisesti, joskin kivana temppuna Farbraush julkaisi kaiken pelin käyttämän lähdekoodin vapaaseen käyttöön. Lopullista peliä emme siis koskaan saaneet, mutta jos joku haluaa ottaa homman haltuun ja jatkaa .kkriegerin kehittämistä… no, nokka kohti GitHubia ja koodaamaan!

YouTube video

Miikka Lehtonen