Tästä alkoi Rovion menestys – näin Angry Birds saatiin lentoon

SK:n arkistoista: Vihaiset linnut oli yrityksen 52. peli. Jos se ei menestyisi, seuraavaa peliä ei ehkä enää tehtäisi.

Angry Birds
Teksti
Elina Järvinen
Julkaistu yli kolme vuotta sitten

 Japanilainen Sega haluaa ostaa peliyhtiö Rovion. Se teki Roviosta ostotarjouksen maanantaina 17. huhtikuuta 2023, ja varmistusta kaupalle odotetaan heinäkuuhun mennessä. Roviossa työskentelee edelleen Tuomo Lehtinen. Hän on mies, joka koodasi ensimmäistä Angry Birds -peliä marraskuisena yönä 2009. Yritys oli päättänyt tehdä vielä yhden satsauksen, tämän pelin, joka toimisi pelkästään iPhone-älypuhelimissa. Siitä oli kiinni koko firman tulevaisuus. Suomen Kuvalehden juttu on julkaistu ensimmäisen kerran numerossa 25/2013.

Tuomo Lehtinen istui yhä toimistossa. Annankatu 31, Helsinki. Toinen kerros.

Ikkunoista kuulsivat katuvalot, taivas oli pimeä. Aurinko oli laskenut jo iltapäivällä, ja nyt oli puoliyö. Marraskuun viimeinen perjantai 2009.

Lehtinen tuijotti tietokoneen ruutua, joka oli täynnä lyhyitä tekstirivejä. Yksittäisiä englanninkielisiä sanoja, paljon välimerkkejä ja numeroita.

Teksti oli C++-nimistä ohjelmointikieltä. Ja nämä rivit niitä oli kymmeniätuhansia  muodostivat pelin, jota yrityksessä oli tehty yli puoli vuotta.

Pelin piti olla valmis seuraavana päivänä, jotta se ehtisi joulumarkkinoille. Joulun vapaina sitä voisi sitten ladata internetistä ja pelata älypuhelimella.

Lehtinen viilasi yksityiskohtaa. Häntä vaivasi se, miten pelin “kamera” liikkui, miten pelinäkymä ruudulla vaihtui.

Hänen mielestään se ei tapahtunut tarpeeksi sulavasti.

Lehtinen muokkasi tekstirivejä, muutti arvoja ja testasi muutoksia. Työkaveri, tuottaja Raine Mäki, patisti häntä jo lopettamaan. Peli pitäisi saada eteenpäin.

Lopulta oikea tuntuma löytyi. Sen huomasi, kun pelasi. Kun kiristi ritsan ja ampui, kamera lähti perään juuri sopivasti viiveellä.

Lehtinen oli tyytyväinen, vaikka viikko oli ollut raskas. Peli oli nyt valmis.

Lehtinen sulki pöytäkoneen ja läppärin, käveli yöbussille. Kaupunki oli musta, lumesta ei ollut tietoakaan.

 

Kaikilla on nykyään tietokone. Jos ei toimiston pöydällä tai taskussa, niin ainakin kotona. Televisiossa, CD-soittimessa, DVD-soittimessa, mikroaaltouunissa, pyykinpesukoneessa, astianpesukoneessa, jopa digitaalisessa lämpömittarissa. Nämä kaikki toimivat pienen tietokoneen avulla.

Suurempien tietokoneiden avulla toimivat pankkiautomaatit, hissit, autot ja lentokoneet.

Sitä on vaikea käsittää. Etenkin, jos muistaa, että pohjimmiltaan tietokone on hyvin yksinkertainen laite. Vähän tyhmä jopa. Se ei osaa mitään, ellei sille selkeästi ja yksityiskohtaisesti kerrota, mitä sen pitää tehdä. Mutta kun se saa ohjeet, se muistaa ne ja noudattaa niitä tarkasti ja nopeasti.

Jotta ohjeita voisi antaa, täytyy ymmärtää koneen logiikkaa ja osata sen kieltä. Täytyy siis osata koodata, paremmin sanottuna ohjelmoida.

Helsingin yliopiston tohtoriopiskelija Antti Laaksonen väittää, että perusasiat oppii muutamassa viikossa. Jos haluaa ammattilaiseksi, on opiskeltava viisi vuotta.

Laaksonen istuu Tietojenkäsittelytieteen laitoksella, salissa C221. Salin takaseinää vasten nojaa rivi kehystettyjä valokuvia. Niiden joukosta tunnistaa ainakin Linus Torvaldsin ja Steve Jobsin. Alan suuruuksia, siis. Rivissä on yksi nainenkin. Hän on amerikkalainen Grace Hopper, laivaston korkea-arvoinen upseeri ja Cobol-ohjelmointikielen kehittäjä.

Ohjelmointikieliä on jo satoja. Nykyään yleisimpiä ovat sellaiset kuin Java, C ja C++.

Antti Laaksonen kirjoittaa tekstieditoriinsa kuitenkin Pythonia, hieman helpommin ymmärrettävää ohjelmointikieltä. Hän on asentanut Windows-käyttöjärjestelmäänsä “Python-ympäristön”. Se käy muutamalla klikkauksella, ja ohjeet löytyvät netistä, muun muassa Ohjelmointiputka-nimiseltä sivustolta. Laaksonen on perustanut sivuston kymmenen vuotta sitten aloittelijoita ja harrastajia varten.

Pythonissa, kuten muissakin ohjelmointikielissä, on vain vähän sanoja. Ja kaiken lisäksi sanat ovat helppoja: if, print, else, for… Mutta kielen soveltaminen, logiikka, on vaikeaa. Virheitäkään ei saisi tulla, sillä tietokone ei kysele vaan tekee kaiken, mekaanisesti. Pienikin virhe, “bugi”, voi johtaa täysin arvaamattomaan lopputulokseen.

Usein taitavat ohjelmoijat ovat matemaattisesti lahjakkaita.

Laaksonen kirjoittaa pienen ohjelman, esimerkin vuoksi.

Hänellä on lista suomen kielen sanoista. Hän on kopioinut sen Kotimaisten kielten keskuksen sivuilta.

Laaksonen haluaa etsiä listasta kaikki palindromit, sanat, jotka voi lukea kummin päin tahansa.

Paperin ja kynän kanssa työ voisi olla hidasta, sillä listassa on yli 90 000 sanaa.

Laaksonen naputtaa koodin:

sanat = open(“suomi.txt”).readlines()

kaikki = 0

palindromit = 0

for sana in sanat:

sana = sana.strip()

kaikki += 1

if sana == sana[::-1]:

print sana

palindromit += 1

print “Sanoja”, kaikki

print “Palindromeja”, palindromit

Sitten hän antaa käskyn “suorita ohjelma”. Kone tekee työn sekunnin murto-osissa.

Se lukee kaikki suomi.txt-tiedoston sanat. Se luo kaksi muuttujaa - ”kaikki” ja “palindromit” - jotka laskevat palindromien lukumäärän ja kaikkien sanojen

lukumäärän. Se käy läpi jokaisen sanan erikseen ja tarkistaa, onko kyseessä palindromi. Se etsii palindromit [::-1]-merkinnän avulla, sillä merkintä kääntää sanan kirjaimet toisinpäin.

if sana == sana[::-1]

Jos sana on yhtä kuin sana toisinpäin, palindromi on löytynyt. Laskurin luku kasvaa yhdellä, ja sana tulostuu näytölle. print sana

Lopuksi se näyttää lukumäärät.

Sanoja on 91 591, palindromeja 39.

Akka. Imaami. Syöppöys.

 

Tuomo Lehtinen oli tullut peliyritykseen töihin alkuvuonna 2005. Hän oli senior programmer, vanhempi ohjelmoija.

Yritys teki niin sanottuja javapelejä, kännyköissä pelattavia pelejä, jotka toteutettiin Java-ohjelmointikielellä. Pelit olivat sotaisia ja synkkiä. War Diary, Darkest Fear.

Yritys oli myös alihankkija. Se teki pelejä ja tutkimusta muillekin yrityksille. Työntekijöitä oli 45, ja se oli suomalaiselle peliyhtiölle paljon.

Mutta pian yritykselle kävi niin kuin monelle muullekin Suomessa: se menetti alihankinnat aasialaisille kilpailijoilleen. Seurasi yt-neuvotteluja. Vakituinen henkilökunta kutistui yhdeksään.

Vuonna 2009 elettiin kriittisiä hetkiä. Kassa alkoi olla tyhjä. Yritys päätti tehdä vielä ison satsauksen: oman pelin, joka toimisi pelkästään iPhone-älypuhelimissa. Ensimmäiset iPhonet olivat tulleet markkinoille kaksi vuotta aikaisemmin Yhdysvalloissa. Suomessa puhelinta oli myyty vasta vuosi.

Tämä olisi yrityksen 52. peli. Jos se ei menestyisi, seuraavaa peliä ei ehkä enää tehtäisi.

Kesäkuussa 2009 Tuomo Lehtinen alkoi koodata peliä, “protoilla”. Hahmot olivat valmiina. Pelisuunnittelija Jaakko Iisalo oli esitellyt aiemmin keväällä luonnoksen linnasta ja rymistelevästä lintujoukosta. Linnuissa oli jotain humoristista. Ajateltiin, että niissä voisi olla potentiaalia.

Lehtinen hahmotteli ruudulle aluksi ympyröitä ja pani ne törmäilemään toisiinsa. Hän käytti niin sanottua fysiikkamoottoria, valmiiksi ohjelmoitua isoa laskinta, joka osaa jäljitellä fysiikan lainalaisuuksia. Kuten sitä, miten kivi putoaa aidan päältä.

Tätä ominaisuutta pidettiin tärkeänä. Yrityksen johto oli tutkinut markkinoita ja todennut, että juuri fysiikkapohjaisille peleille oli kysyntää.

Pikku hiljaa ympyröistä muotoutui linnamainen rakennelma, joka sortui osumasta. Muotoutui ritsa, jolla rakennelmaa saattoi ampua. Ja muotoutuivat hahmot, jotka kyyhöttivät rakennelman suojissa.

Peli edistyi hyvin, ja siihen vaikutti yksi olennainen seikka. Lehtinen, Jaakko Iisalo ja teknologiaohjelmoija Miika Virtanen olivat ottaneet käyttöön toisenkin ohjelmointikielen: Lua-nimisen skriptikielen. Se oli nopeampi ja joustavampi kuin C++.

Lua-kieltä ei tarvinnut “kääntää” joka kerta, kun koodiin tehtiin muutoksia. Tietokone osasi tulkita muutokset itse, ja niiden vaikutukset näki heti ruudulta.

Tämän ansiosta koodaria  eli Lehtistä  ei tarvittu jokaisen yksityiskohdan hiomiseen. Jaakko Iisalo saattoi itsekin muokata peliä. Hän saattoi säätää esimerkiksi puupalikan koostumusta: sen kestävyyttä, kimmoisuutta, kitkaa tai tiheyttä. Ääntä, kun siihen törmää. Säleitä, kun se hajoaa.

Pelin kehittäminen, “iterointi”, oli sujuvaa.

Ehkä liiankin sujuvaa. Usein kävi niin, että Lehtinen muokkasi koodia, siirtyi testaamaan sitä ja huomasi vartin päästä, että oli unohtunut pelaamaan.

 

Väitetään, että ensimmäisen tietokoneohjelman teki englantilainen Ada Lovelace, runoilija lordi Byronin tytär.

Lovelace oli matemaattinen erikoislahjakkuus. Vuonna 1843 hän julkaisi käännöksen eräästä ranskankielisestä artikkelista, joka käsitteli “analyyttistä konetta”. Lovelace oli lisännyt käännökseen omia huomioitaan, muun muassa ajatuksen siitä, miten kone voisi laskea niin sanottuja Bernoullin lukuja. Tämä toimintaohje, algoritmi, oli niin perusteellinen, että se on nimetty varhaisimmaksi tietokoneohjelmaksi.

Tosin Lovelacen ohjelmaa ei koskaan testattu, sillä “analyyttista konetta” ei lopulta tehty.

Elektronisia tietokoneita alettiin rakentaa vasta 1940-luvulla. Niiden ohjelmat kirjoitettiin konekielisinä käskyinä, bitteinä, eli käytännössä ykkösten ja nollien jonoina. Työ oli vaivalloista ja hidasta. Virheitä tuli paljon.

Ratkaiseva käänne tapahtui 1950-luvun puolivälissä, kun yhdysvaltalainen John Backus kehitti ensimmäisen varsinaisen ohjelmointikielen, Fortranin. Nyt ohjelmia ei enää tarvinnut laatia hankalalla konekielellä, vaan komentoja saatettiin antaa “lauseina”.

n = 0

DO i = 1, 100

n = n + i

END DO

WRITE (*,*) n

Lauseet piti edelleen muuttaa konekieliseen muotoon, mutta työn teki “kääntäjä”, tietokoneohjelma sekin. Itse tietokoneen ymmärrys ei siis ollut kasvanut, eikä se ole kasvanut vieläkään. Monimutkaisimmatkin ohjelmat pilkkoutuvat lopulta ykkösten ja nollien sarjoiksi. Vain niitä tietokoneen ydin, suoritin, osaa toteuttaa.

1970-luvulla ohjelmointi joutui vaikeaan kriisiin. Henkilökohtaisia tietokoneita ei vielä ollut, mutta isot keskustietokoneet suorittivat yhä vaativampia tehtäviä. Ohjelmat kasvoivat hallitsemattoman suuriksi, kymmenientuhansien rivien kokonaisuuksiksi. Kun tällaisessa ohjelmassa havaittiin virhe, sen alkuperää oli lähes mahdoton jäljittää.

Tämä johtui oikeastaan yhdestä komennosta, hyppykäskystä. Sen avulla kone saattoi “hypätä” suorittamaan tehtävää mistä tahansa ohjelman osasta. Syntyi käsite spagettikoodi. Se kuvasi ohjelmien hahmottomuutta.

Ongelmaan löytyi ratkaisu, mutta koko ohjelmoinnin ajattelutapaa piti muuttaa. Ohjelmia alettiin rakentaa erillisistä osista, lohkoista. Siirryttiin rakenteiseen ohjelmointiin, ja myöhemmin 1990-luvulla olio-ohjelmointiin. Tehtiin ikään kuin pieniä koneita, ja niistä kasattiin yhä monimutkaisempia koneita. Tähän ajatukseen perustuvat ohjelmointikielet C++ ja Java.

Kuten arvata saattaa, ohjelmat eivät ole viime vuosina pienentyneet. Android-käyttöjärjestelmän lähdekoodissa eli ohjelmassa on yli kymmenen miljoonaa riviä. Sillä toimii pienen lompakon kokoinen tietokone, älypuhelin.

 

Tuomo Lehtinen oli pelannut aina.

Kotiin oli tullut ensimmäinen tietokone vuonna 1993. Lehtinen kävi silloin yläastetta Seppolan koulussa Jämsässä.

Kone oli Pohjanmaan Mikron valmistama PC. Sen kylkeen ostettiin peli, suosittu amerikkalainen Civilization. Se oli jotain ennenkuulumatonta.

Lehtinen istui koneella, rakensi imperiumiaan ja taisteli muita vastaan.

Lukioikäisenä hän koodasi kaverinsa kanssa oman pelin. Se oli ihan myyntiin tarkoitettu autopeli. Mikrobitti-lehti valitsi sen jopa kuukauden peliksi.

Jämsäläispojat kopioivat sitä levykkeille, “korpuille”, ja lähettivät postimyyntiasiakkaille.

Suomen peliteollisuus oli vaatimatonta  jos sellaista edes oli. Yhdysvalloissa peleistä oli kasvamassa jo suurempi bisnes kuin elokuvista.

Muutaman vuoden kuluttua, elokuussa 2002, iltauutiset kertoivat suuresta suomalaisesta läpimurrosta. Tietokonepeli Max Paynea oli myyty lähes kolme miljoonaa kappaletta. “Tässä on suomalaisen viihteen kenties suurin menestys”, uutisissa sanottiin.

Max Payne oli kolmiulotteinen, mustanpuhuva ammuntapeli. Pelin päähenkilö oli poliisi, jonka perhe oli murhattu. Mies kulki New Yorkin kaduilla ja haki kostoa.

Tuomo Lehtinen opiskeli tietotekniikkaa Teknillisessä korkeakoulussa. Peli teki häneen suuren vaikutuksen. Se näytti komealta, ja siinä oli käytetty erikoistehostetta, jota peleissä ei ollut ennen nähty. Tehoste oli niin sanottu bullet time, jolla pelaaja saattoi hidastaa ajan kulkua.

Max Payne oli ollut valtava hanke. Espoolainen Remedy Entertainment oli kehittänyt sitä neljä vuotta ja käyttänyt siihen 18 miljoonaa markkaa, nykyrahassa noin 3,7 miljoonaa euroa. Max Paynea myytiin cd-levyinä kaupoissa, ja paketti maksoi 300 markkaa.

Peli, jonka Tuomo Lehtinen viimeisteli Annankadun toimistossa seitsemän vuotta myöhemmin, oli hyvin toisenlainen. Sen budjetti oli 100 000 euroa, sitä myytiin alle eurolla internetin sovelluskaupassa ja pelattiin kännykällä. Se oli yksinkertainen, sillä sen koko ei saanut ylittää kymmentä megatavua. Yhdelle cd-levylle mahtuu 700 megatavua.

Mutta tämäkin oli ammuntapeli ja tavoitteli suuria  ihan niin kuin Max Payne.

Pelin päähenkilöitä olivat vihaiset linnut, joiden munat oli viety. Syyllisiä olivat vihreät possut. Linnut turvautuivat ritsaan ja hakivat kostoa.

Peli julkaistiin sovelluskaupassa 11. joulukuuta 2009. Mitään ei tapahtunut. Samana päivänä julkaistiin tuhansia muitakin pelejä.

Mutta vuodenvaihteen jälkeen myyntiluvut alkoivat yllättäen nousta. Helmikuussa peli kohosi Britannian suosituimmaksi mobiilipeliksi, huhtikuussa Yhdysvaltojen ykköseksi. Miljoonan käyttäjän raja rikkoutui.

Se tuntui uskomattomalta.

Mobiilipelien huikein menestyjä oli amerikkalainen Doodle Jump. Sen myyntiluvut liikkuivat neljässä miljoonassa.

Doodle Jumpin luvut ylitettiin, ja yrityksen nälkä kasvoi. Kesäkuussa 2010 johto ilmoitti julkisesti, että pelin tavoite on sata miljoonaa käyttäjää.

Tuomo Lehtinen, Jaakko Iisalo ja Miika Virtanen puistelivat päätään. Järjetöntä. Ei sellaista lukua voi saavuttaa.

 

Ohjelmointi on taas kriisissä.

Niin sanoo Arto Wikla, tietojenkäsittelytieteen lehtori. Hän on opettanut ohjelmointia Helsingin yliopistossa yli kolmekymmentä vuotta. Kun hän aloitti, Tietojenkäsittelyopin laitos oli kohtalaisen tuore yksikkö. Se perustettiin 1960-luvun lopulla, jotta teollisuus saisi varmasti ammattitaitoista työvoimaa. Atk oli yleistynyt Suomessa.

Nykyisessä kriisissä on kyse koneista, “raudasta”, kuten koodarit sanovat.

Koneet ovat nimittäin kehittyneet niin paljon, ettei ohjelmointi ole pysynyt perässä.

Pitkään tietokoneissa oli vain yksi suoritin, ydin. Puhuttiin von Neumannin pullonkaulasta - tietokoneen kehittäjän John von Neumannin mukaan. Pullonkaulalla viitattiin siihen, että tietokone suoritti aina vain yhtä komentoa kerrallaan. Se toimi kyllä nopeasti mutta tehtävä kerrallaan.

Nyt koneessa voi olla useita suorittimia ja suorittimissa useita ytimiä. Tietojenkäsittelytieteen laitoksella Kumpulassa on testikone, jossa ytimiä on tuhat.

Ongelma on se, ettei suorittimia osata täysin hyödyntää. Ei tiedetä, miten ohjelmia kannattaisi laatia, jotta ne jakaantuisivat tehokkaasti monen ytimen suoritettaviksi.

Ajattelutapaa pitäisi taas muuttaa, mutta kuka sen tekisi?

“Maailma odottaa ratkaisua tähän”, Arto Wikla sanoo.

Hän muistuttaa opiskelijoitaan toistuvasti siitä, että nyt olisi oivallinen aika tehdä tieteellisiä keksintöjä.

Ratkaisu löytyy kyllä. Ja joka sen keksii, tulee kuuluisaksi.

 

Tuomo Lehtinen istuu neuvotteluhuoneessa. Hänen vieressään on Miika Virtanen, vastapäätä Jaakko Iisalo.

Yritys ei sijaitse enää Annankadulla vaan meren rannalla Keilaniemessä, Nokian ja Neste Oilin naapurissa. Nimi lukee tornitalon seinässä mustilla kirjaimilla: Rovio.

Lehtinen, Virtanen ja Iisalo ovat kiireisiä miehiä. Tapaaminen ei järjestynyt aivan helposti.

Sata miljoonaa käyttäjää. Se oli “villi visio”, jonka yrityksen johto ilmoitti kesällä 2010. Tavoite piti saavuttaa kahden vuoden kuluessa.

“Meni yhdeksän kuukautta, ja me oltiin siinä”, Tuomo Lehtinen sanoo.

“Ja nyt me ollaan missä?” Miika Virtanen kysyy. “Mikä on edellinen virallisesti julkaistu luku?”

Janos Honkonen istuu sivummalla läppärinsä kanssa. Hän on yrityksen tiedottaja, communications coordinator.

“1,7 miljardia on tällä hetkellä kaikkiaan.”

Luku koskee kaikkia kolmen viime vuoden aikana tehtyjä pelejä. Niitä on jo yhdeksän.

Menestyspelistäkin on tehty lukuisia päivityksiä ja versioita. Sitä voi pelata kaikilla mahdollisilla laitteilla ja ilmankin. Lautapeleissä, leikkipuistoissa, huvipuistoissa.

“Me tiedostettiin kyllä pelin potentiaali, mutta ei näin isosta menestyksestä ollut kuultukaan”, Lehtinen sanoo.

Roviossa on nyt 650 työntekijää. Se on edellinen virallisesti julkaistu luku.

Lehtinen ei enää koodaa. Hän on esimiestehtävissä, Vice President Game Development. Niin ovat Virtanen ja Iisalokin.

Töitä on paljon, mutta he istuvat pöydän ääressä tovin, muistelevat pelin vaiheita.

Jokaisen paidassa lentää vihainen lintu, Angry Bird.

 

Juttua varten on haastateltu myös apulaisprofessori Jaakko Lehtistä Aalto-yliopistosta. Hän oli yksi Max Payne -pelin ohjelmoijista.

Juttu on julkaistu ensimmäistä kertaa Suomen Kuvalehden numerossa 25/2013.