Peliä, lopultakin

Pääsin vasta tämän vuoden toukokuussa Atlantan E3-messuilla näkemään kunnolla Black & Whiten. Ehdin jo moneen kertaan kohottaa käteni ilmaan tuskastuneena ja kysellä, missä koko peli oikein oli. Minulle vastailtiin aina hieman huvittuneesti, kuin kiukuttelevaa lasta tyynnytellen.

E3-messuja edeltäneet ympärivuorokautiset koodaussessiot olivat kuitenkin tuottaneet jotain, jota minäkin saatoin arvostaa. Kyseessä oli tosin vain testiversio, mutta monet tärkeimmistä osista olivat jo nähtävissä. Maastot, heimot, loitsut ja hirviöt alkoivat elävöityä. Pikkuiset kyläläiset haahuilivat rautalankamaaseudulla kyntäen, kalastellen ja puita hakaten. Pyyhkäisy hiirellä sai tulipalloloitsun vyörymään maaston yli samalla kun Godzillan kokoinen ogre talloi avuttomia kyläläisiä ja napsi heitä suuhunsa kuin maapähkinöitä. Ihmettelin, mistä tämä kaikki oikein oli tullut.

Palatessamme Atlantasta pyysin vanhempaa ohjelmoijaamme Jonty Barnesia valaisemaan asiaa. Lionhead joutui tietenkin aloittamaan tyhjästä ilman mitään tiedostoja, ohjelmia tai grafiikkaa. Niinpä ensimmäinen tehtävä oli projektin rakennesuunnitelman tekeminen. Sellaiset asiat kuin ohjelmien ja tiedostojen luokkarakenne, nimeämistavat ja kartan tallennusmuoto oli kaikki päätettävä etukäteen. Näiden esivalmistelujen jälkeen tuolloin vain nelihenkinen ohjelmointiryhmä saattoi aloittaa kirjastojen ja työkalujen tekemisen.

Kirjastot ovat niitä tärkeitä pikkutiedostoja, jotka kätkevät pelin pinnanalaisen koneiston puhtaalta pelikoodilta. Esimerkkinä voisi käyttää näytönhallintarutiineja, jotka ohjailevat näytön tapahtumia. Työkalut ovat apuohjelmia, jotka koostavat sekalaisen joukon grafiikkatiedostoja pelirungon ymmärtämään muotoon. Tähän sopii esimerkiksi animaatioruutujen järjestämiseen käytettävä sprite-editori. Jontyn ensimmäinen tehtävä oli ryhtyä ohjelmoimaan editoria, joka annettaisiin myöhemmin nuoremmalle ohjelmoijalle Paul Nettletonille hiottavaksi.

Järjestelmäspesialistimme Tim Rance ryhtyi suunnittelemaan verkkorutiineja. Moninpelinä Black & White piti saada toimimaan lähiverkoissa ja internetissä. Vaikka peli näyttääkin etenevän sulavasti, se on itse asiassa jaettu yksittäisiin pelivuoroihin. Ihanteellisinta on saada vuorojen määrä sekunnissa vastaamaan animaatiokuvien määrää sekunnissa.

Mark Webleyn työmaana oli olentojen tekoäly. Sellaiset asiat kuin mihin olento on menossa ja onko sillä nälkä olivat yksinkertaisia, mutta esimerkiksi "opittujen" kokemusten muistaminen oli hankalampaa. Kaikki tekoälyn "tilat" kirjautuvat Excel-taulukkoon, jota lukevan rutiinin Mark ohjelmoi osaksi pelidataa. Taulukoiden etu on siinä, että peliä testattaessa myös ohjelmoinnista mitään ymmärtämättömät pystyvät niiden avulla helposti muuttelemaan pelin tasapainoa. Avaamalla taulukon ja muuttamalla paria lukuarvoa he saavat heti vaikka kaksinkertaistettua olennon voimat.

Sillä välin Jonty siirtyi työstämään liikemallia, joka määräisi, miten liike maastossa tapahtuu (ei sen läpi eikä ali!), minkä verran nopeus kasvaa alamäessä ja minkä verran se hidastuu ylämäessä. Hän kehitteli myös navigointiohjelman, tekoälyrutiinin, joka ohjaa kyläläisen tai olennon pisteestä A pisteeseen B mahdollisimman luonnollista ja nopeaa reittiä.

Navigointirutiini on aina pelin pahin ongelmakohta, mutta kun siitä oli selvitty, saattoi Peter alkaa puhaltaa elämää pieniin kyläläisiin. Pian ne jo pystyivät kalastamaan, kaatamaan puita, kyntämään ja jopa menemään naimisiin ja saamaan lapsia. Näihin tehtäviin tarvittavan tekoälyn määrä on tietenkin pelottavan suuri.

Jontyn toinen kinkkinen tehtävä oli toteuttaa eläinlaumojen liikkeet. Black & Whitessa on lampaita, karjaa, sikoja ja taivaita halkovia lintuparvia. Kaikkien eläinten on liikuttava yhdessä luonnollisella tavalla, ei tiukassa armeijamaisessa muodostelmassa eikä satunnaisesti, jolloin ne voisivat jatkuvasti joutua erilleen muusta laumasta. Jonty löysi ratkaisun netistä, josta oli saatavilla Craig Reynoldsin hiljattain pidetyssä SIGGRAPH-konferenssissa esittelemä tutkimus Boidin teoriasta. Samaa teoriaa ovat soveltaneet elokuvien erikoistehosteyhtiöt muun muassa Batmanin paluun lepakkoparvissa.

Ohjelmarutiinien määrän kasvaessa alkoi samalla kehittyä myös lista taiteilijoilta vaadittavasta grafiikasta. Jokainen olento, rakennus, henkilö ja puu oli piirrettävä erikseen. Testiversiossa jotkut kuvat oli toteutettu yksinkertaisina bittikarttakuvina. Spritejen tapaan nämä kaksiulotteiset kuvat voitiin animoida perinteisellä piirroselokuvamenetelmällä piirtämällä liikeradan jokainen asento erilliseksi kuvaksi. Mutta koska ne ovat kaksiulotteisia, tarvitaan lisää kuvia. Jos kävelemiseen tarvitaan kahdeksan animaatioruutua (yksi jokaista eri käsien ja jalkojen asentoa kohden), vaatii kävely kaikkiin suuntiin kolmiulotteisessa pelissä yhteensä vähintään 128 (8x16) eri kuvaa.

Taiteilijat voivat kuitenkin luoda myös kolmiulotteisia objekteja, johon Lionheadin Mark Healey ja Jamie Durrant käyttävät 3D Studio Maxia. Tällöin kaikki rakentuu geometrisistä muodoista (polygoneista), jotka muodostavat "nahan" kolmiulotteisena mallinnetun objektin ulkopinnalle. Yksinkertaisiin objekteihin tarvitaan vähemmän polygoneja, esimerkiksi tavallisessa kuutiossa on vain kuusi neliönmuotoista polygonia. Monimutkaisempiin objekteihin kuten ihmiskasvoihin niitä tarvitaan satoja tai jopa tuhansia.

Taiteilijan käyttämä polygonimäärä riippuu kahdesta seikasta, eli siitä, miten aidon näköisiksi hän haluaa kasvot saada ja siitä, kuinka nopeasti pelin on pystyttävä liikkumaan 3D-ympäristössä. Mitä enemmän muuteltavia polygoneja on, sitä enemmän grafiikkalaskelmat kuormittavat prosessoria (3D-kortit lisäävät tehoa huolehtimalla monista tällaisista rasitteista, jättäen prosessorin vapaaksi muihin tehtäviin).

Kolmiulotteisen objektin piirtäminen on aika monimutkaista, mutta kun rautalankamallinnettu objekti on luotu polygoneilla, sen värittäminen käy melko helposti (jokaiselle polygonille on määritelty väri tai tekstuuri), eikä sen animointi ole vaikeaa. Koska se on luotu kolmiulotteisena, sitä voi katsella automaattisesti mistä tahansa kulmasta.

E3-messujen aikaan Black & White oli suunnilleen kehityksen puolessavälissä. Kirjoitettuna oli jo 143 000 riviä koodia ja grafiikkalistalle oli kertynyt yli 16 000 piirrettävää kuvaa. Tämä työmäärä auttaa ymmärtämään, miksi 15 hengen ohjelmoija- ja taiteilijaryhmällä yhden pelin tekeminen voi kestää kaksi vuotta. Edessä olevan urakan tiivisti hyvin Jonty Barnes, joka sanoi minulle kerran: "Minulle ainoa tapa selvitä työprojektin pituudesta ja laajuudesta on edetä tehtävä kerrallaan. Jos alkaisin miettiä kokonaisuutta, olisin liian kauhuissani pystyäkseni ohjelmoimaan koko peliä!"

Lisää aiheesta

  • Molyneux lähtee

    Otsikko "Molyneux jättää Bullfrogin?" heinäkuussa 1996 ilmestyneessä CTW-lehdessä sai puhelimet soimaan hälytyskellojen tavoin. Toimittajat soittelivat ympäri vuorokauden, koko tilanne oli uskomaton.
    Peter Molyneux on yksi maailman arvostetuimmista pelisuunnittelijoista, joka on luonut…
  • Tamagotchit saapuvat

    Ensimmäinen virallinen työpäiväni Lionheadilla oli kesäkuun yhdeksäntenä 1997. Olin saanut edellisenä päivänä puhelinsoiton Peteriltä, joka oli edelleen vasta toipumassa Dungeon Keeper -urakasta. Hän kuulosti aivan uupuneelta. "Moi, Steve. Olet siis tulossa huomisaamuna puoli…
  • Pilkun paikka

    Sana levisi. Vaikka Lionhead oli hädin tuskin ehtinyt aloittaa toimintansa, tekemisistämme oltiin jo kovasti kiinnostuneita. Ensimmäisen kuukauden aikana luonamme vieraili useita pelisuunnitelmiaan tarjonneita kehitystiimejä, ja sellaiset alan suuryritykset kuin Sega, Eidos, Nintendo, GTI ja…