Jimmy's Lost His Marbles post mortem
Viikossa tehdyn pelin toteuttamisen vaikeuksista, iloista, peloista ja painajaisista kertova artikkeli.
5.6.2006 julkaistun artikkelin on kirjoittanut kumikana.
- HYVÄT HERKUT, ELI MIKÄ ONNISTUI
- Peli valmistui
- Se valmistui aikataulussa
- Siitä tuli ihan pelattava peli
- Graafinen toteutus
- Time login käyttö
- EI NIIN HYVÄT HERKUT, ELI MIKÄ EPÄONNISTUI
- Kenttäpohjainen pelattavuus
- Liian monimutkainen graafinen tyyli
- Liian vähän aikaa käytetty käyttöliittymään
- Ei ääniä eikä musaa
- LOPPUTULOS
Nykypäivänä, kun pelien kehitysajat ja tekoprosessi vastaavat suomalaista elinkautisvankeutta ja lopputulos on yhtä omaperäinen kuin Hollywood-remake, on ilo huomata, että jotkut valitsevat vaihtoehtoisen reitin. Joukko yliopistolusmuja päätti käyttää opiskeluaikansa tehokkaasti, ja luennoilla nukkumisen sijaan he tekivät yhden lukukauden aikana 50 kokeilullista peliä. Ajatuksena oli kapinoida nykyistä pelikehitysjärjestelmää vastaan, joka sortaa omaperäisiä pelejä. Makasiinien polttamisen sijaan valittiin tämän kapinan keinoiksi mahdollisimman monen uuden peli-idean kokeileminen (50) hyvin lyhyessä ajassa (yksi lukukausi). Tämä pelinkehitysanarkia ristittiin Experimental Gameplay-projektiksi.
Vaikka projekti kuulostaakin lähinnä kuittailulta pelinkehittäjille ympäri maailmaa, saivat nämä pelialan punkkarit aikaiseksi joitain äärimmäisen pelattavia pelejä. Toisin kuin musikaaliset vastineensa, nämä punkpelit avautuvat myös niille, jotka eivät imppaa bensaa. Vaikka kyseessä olikin eräänlainen anarkia, oli näillä nuorilla kapinallisilla kolme sääntöä:
1. Peli täytyy tehdä viikossa
2. Pelin tekee vain yksi henkilö
3. Peli pohjautuu yhteiseen teemaan (painovoima, evoluutio, miimikot...)
Lokakuun 2005 lopussa nämä anarkistit levittivät sanomaansa kirjoittamalla artikkelin Gamasutraan. "How to Prototype a Game in Under 7 Days" löytyy edelleen Gamasutran arkistoista ja ehdottomasti lukemisen arvoinen [http://www.gamasutra.com/features/20051026/gabler_01.shtml]. Sen avulla allekirjoittanutkin sai tietää projektin olemassaolosta.
Puoli vuotta propagandalle alistumisen jälkeen päätin kokeilla voiko konservatiivinen, puoli vuosikymmentä yhtä peliä kehittänyt pelintekijä muuttaa vanhat tapansa ja tehdä kokeilullisen pelin viikossa. Ja niin Jimmy's Lost His Marblesin idea syntyi. Alkuperäinen ideani oli yhdistää fysiikat match-3 -peliin. Idean köyhyys kiukustutti sisäisen pessimistini Pertin. Pertti esittikin kiperiä kysymyksiä idean riittävästä omaperäisyydestä ja pelin pelattavuudesta samalla kyseenalaistaen myös kykyni saada peli valmiiksi viikossa. Hän saikin minut melkein ylipuhuttua luopumaan koko projektista. Onneksi tajusin, että koko homman jujuhan oli tehdä prototyyppi pelistä, ja sen avulla selvittää nämä epävarmat asiat, kuten olisiko peliä hauska pelata ja pystyisikö sen tekemään viikossa. Joten punkkeja mukaillen asetin aikarajaksi viikon. Lupasin itselleni, että en jatka kehitystä viikon jälkeen, oli tilanne mikä tahansa. Tiukka aikaraja antoi paljon vapautta kokeilla, koska pahin asia, mitä voisi käydä, olisi se, että olisin hukannut viikon elämästäni. Siihen olisin pystynyt Buffy The Vampire Slayer -maratonillakin.
Kynäilin pelin C++:lla ja hyödynsin härskisti omaa pelimoottoriani Cengiä sen toteuttamisessa. Ceng nopeutti alkuun pääsemistä, mutta uskon, että pelin olisi pystynyt tekemään viikossa ilman bugista pelimoottorin irvikuvaakin. Grafiikka-API:na käytin SDL:ää ja fysiikkamalli pohjautuu Markus Ilmolan Fysiikkaa peliohjelmoijille -artikkeleihin [http://www.suomipelit.com/index.php?c=naytaartikkeli&id=64&s=1]. Grafiikat raapustin Photoshopissa. Saadakseni selville, miten paljon pelin kehittämiseen meni aikaa, ja miten paljon tuhlasin aikaa Buffyn fanifoorumeilla, käytin yksinkertaista logia, johon merkitsin kaikki tekemiseni ja tarpeeni. Yhteensä aikaa pelin tekoon meni 28 tuntia, hajautettuna kolmelle päivälle. Kokonaiskehitysaika oli 38 tuntia, josta 10 tuntia kului "tauoilla" ja 28 tuntia pelinkehityksessä.
HYVÄT HERKUT, ELI MIKÄ ONNISTUI #
Peli valmistui #
Vaikka tämä kohta vaikuttaa lapsellisen itsestään selvältä asialta, ei ole mitenkään mahdollista, että pystyn alleviivaamaan liikaa sitä kuinka onnellinen olen siitä, että peli valmistui. Joskus vuosia sitten luin aloittelijoille tarkoitetusta oppaasta, että on paljon parempi tehdä yksinkertainen peli valmiiksi kuin hyllyttää iso projekti. Täyttä paskaa, ajattelin, ja jatkoin MMORPG:eeni koodaamista. Nyt tiedän varmuudella, että koolla ei ole väliä. Pelin valmiiksi saaminen on aina mieltä ja muitakin paikkoja hivelevä kokemus.
Toisin kuin helposti kuvittelisi, pelin koodaamisen lopettaminen ei ole mikään helppo operaatio. Konservatiivisena pitkien kehitysaikojen pelintekijänä mieltäni kutkutti mahdollisuus lisätä peliin hienoja, elite-pisteitä tuovia ominaisuuksia. Aamusuihkussa kerkesin jo suunnitella kenttäeditoria, jota käyttäjät voisivat käyttää, alkuvalikoita joista kenttiä voitaisiin valita, pelin toteuttamista 3D:nä dynaamisilla valoilla ja varjoilla, massiivista moninpelimoodia, jossa pelaajat voisivat kehittää omia hahmojaan, kommunikoida muiden pelaajien kanssa, suorittaa tehtäviä ja kerätä erilaisia marmorikuulia. Suihkusta päästyäni Pertti oli laskenut, että näihin ominaisuuksiin tarvittaisiin niin paljon koodia, että niiden valmiiksi saaminen viikossa tarkoittaisi sitä, että minun pitäisi pystyä kirjoittamaan 10 000 merkkiä minuutissa. Testasin netissä kirjoitusnopeuteni, ja päätin luopua moninpelimoodista.
Pertti myös ystävällisesti muistutti, että itse pelin pelattavuuden kannalta nämä kaikki haaveilemani ominaisuudet olivat täysin turhia, ja että hän oli sujauttanut aamukahviini myrkkyä, joka tappaisi minut viikon kulutta. Vastamyrkkyä saisin kuulemma vain valmista peliä vastaan. Ilman tätä viikon deadlineä tekisin vieläkin pelin alkuvalikoita, eikä pelin toiminnallisuutta olisi vielä edes suunniteltu. Suosittelen lämpimästi viikon kehitysaikaa ja itsensä myrkyttämistä. Niillä saa kummasti puhtia ja oppii priorisoimaan ominaisuuksia.
Se valmistui aikataulussa #
Pelin valmistuminen aikataulussa tuskin tuli kenellekään lukijalle yllätyksenä, koska jos se ei olisi valmistunut ajoissa, olisin kuollut Pertin myrkkyyn enkä olisi kyennyt kirjoittamaan tätä tekstiä. Ellen sitten ole muuttunut zombiksi ja kirjoitan tätä mätänevillä sormillani. Hmmm….
Minulle pelin valmistuminen aikataulussa tuli täytenä yllätyksenä. Itse asiassa se valmistui jopa päiviä ennen deadlineään. Järkytys oli niin suuri, että olin kuolla sydänkohtaukseen. Tämä on ensimmäinen niistä ohjelmistoprojekteista, joiden kehityksessä olen ollut mukana, joka on valmistunut ennen deadlineä. Pelkästään se asia, että peli olisi valmistunut aikarajan sisällä, olisi riittänyt minun olemassaoloni turvaamiseksi, mutta että useita päiviä ennen aikojaan. Ennenkuulumatonta.
Alkuperäisessä tavoitteissani sillä, että tuleeko pelistä pelattava, ei ollut niin suurta merkitystä kuin sillä, että peli valmistuu viikossa. Syy siihen, että projekti onnistui valmistumaan aikataulussa, oli siinä, että leikkasin siitä kaikki turhat ominaisuudet pois. Ja ne ominaisuudet, jotka koodasin, toteutin nopeimmalla ja rumimmalla mahdollisella tavalla. Jos koodi toimi, se riitti minulle. Myöskään botuliinipohjaisen hermomyrkyn vaikutusta pelin valmistumiseen aikataulussa ei pidä vähätellä.
Siitä tuli ihan pelattava peli #
Vaikka päätavoitteeni oli selviytyä hengissä, halusin myös haistattaa paskat Pertille ja todistaa, että ideani toimii pelinä. Pelistä tulikin yllättävän pelattava. Tämä oli yksi niistä kysymyksistä, minkä tähden tein prototyypin. Vaikka peli olisi ollut täysi paska, olisin silti pitänyt projektia onnistuneena, koska se vastaisi myös silloin kysymykseen siitä, toimisiko ideani pelinä.
Pesunkestävänä pessimistinä Pertti oli jo ostanut hautakiveni, johon hän oli kaiverruttanut tekstin: "pelinkehittäjä, joka ei saanut yhtään pelattavaa peliä valmiiksi". Valitettavasti nyt Pertti joutuu keksimään hautakivelle uuden kohteen. Suosittelin Second Brainiä.
Graafinen toteutus #
Syy siihen, minkä tähden en pitkään aikaan halunnut koskea tikullakaan prototyyppaamiseen, oli se, että prototyypit olivat aina rumia kuin Itäeurooppalainen strategiapeli. Tosin vanhana Nethackin pelaajana tiedän, että ulkoasulla ei ole suurta merkitystä. Valitettavasti perusprotojen pelaaminen muistuttaa minua aina siitä, miksi pelaan Nethackkiä enkä Adomia: pelaaminen on äärimmäisen hankalaa ja epäloogista, ohjeita ei ole tai ne ovat hyvin minimalistiset ja bugien määrä saa Temple of Doomin ötökkätunnelin näyttämään Raid-kodilta.
Yksi asia, jonka pelialan liimanhaistelijat osoittivat, oli se, että prototyyppien ei tarvitse olla rumia ja epäkäytännöllisiä. Lyhyessä ajassa on mahdollista tehdä esteettisesti miellyttäviä ja helposti sisäistettäviä prototyyppejä. Olen tyytyväinen Marblesin lopulliseen ulkoasuun, ottaen huomioon sen, että grafiikka on ohjelmoijan tekemää.
Time login käyttö #
Luin time logeista Steve Pavlinan kotisivuilta http://www.experimentalgameplay.com/. Otin time login käyttöön, koska pelkäsin, että kulutan viikon irkkaamalla #sunnydale –kanavalla, enkä saa peliä valmiiksi määräajassa. Epäonnistumisen sattuessa, halusin tietää mihin olin aikani kuluttanut, koska sillä tavalla voisin oppia virheistäni ja hätätapauksessa anella lisäaikaa Pertiltä, "pakollisten" menojen suuruuden verukkeella.
Time login käyttö on hyvin yksinkertaista, sitä vaan kirjoittaa kaikki tekemisensä ja kellonajat ylös. Paperille merkitään kaikki tekemiset, niin koodaamiset, graffojen luonnostelut, vessassa käynnit kuin Buffyn ASCII-kuvien selailut. Jälkikäteen näistä tiedoista sain selville mm. oman työtehokkuuteni ja sen, että pelkästään sulkemalla mIrciin olisin saanut useita tunteja lisää kehitysaikaa.
Tietojen keräämisen lisäksi time login käytöllä oli myös psykoloogisia vaikutuksia. Se pisti työskentelemään ahkerammin, koska tiesi, että ”pomo” valvoo. Ei kehdannut kuluttaa kahta tuntia netissä surffailuun, koska tiesi, että siitä jää pysyvä merkintä tilastoihin. Suosittelen lukemaan Steve Pavlinan artikkelin ja kokeilemaan time login käyttöä.
EI NIIN HYVÄT HERKUT, ELI MIKÄ EPÄONNISTUI #
Kenttäpohjainen pelattavuus #
Vaikka kentät saivat prototyypin tuntumaan enemmän peliltä kuin leikkikalulta, aiheutti kenttäpohjainen pelattavuus suuria ongelmia. Näin vahvasti kenttäpohjaisissa peleissä pelattavuus määräytyy suoraan sen mukaan, miten hyviä ne kentät ovat. Toisekseen hyvien kenttien tekeminen vie aikaa, ja tällaisessa projektissa aikataulusta lipsuminen on tappavaa. Sain kyhättyä peliin yhteensä seitsemän kenttää, ja ne ovat läpäistävissä hyvin äkäisesti. Itse kenttien tekemiseen käytin sitä paitsi liian vähän aikaa. Peliä tehdessäni luulin, että kenttien tekeminen veisi ihan mielettömästi kehitysaikaa, mutta lopussa selvisi, että ne söivät vain 14 % kehitysajasta. Käytin Buffyn quotejen lukemiseenkin enemmän aikaa.
Liian monimutkainen graafinen tyyli #
Olen äärimmäisen tyytyväinen pelin graafiseen toteutukseen, mutta valitsin graafiseksi suunnaksi liian paljon aikaa vievän tyylin. Grafiikoiden rustaaminen söi suurimman möhkäleen käytetystä kehitysajasta: yli 50 %. Seuraavalla kerralla yritän valita graafisen tyylin, jonka toteuttaminen vie huomattavasti vähemmän aikaa, mutta lopputulos on tyylikkäämpi. Darwinia, katselen juuri screenshottejasi.
Liian vähän aikaa käytetty käyttöliittymään #
Pelin käyttöliittymä olisi kaivannut ehostusta monilla osa-aluilla. Ensinnäkin se voisi toimia jouhevammin. Koodi pohjautuu suorakulmioihin, ja valittavat objektit ovat ympyröitä. Helposti voisi kuvitella, että olisi päivänselvä asia käyttää ympyrämallia, mutta koska neliöiden toteuttaminen oli nopeampaa (koodi oli jo valmiina), päädyin käyttämään neliöitä. Tämä aiheuttaa ongelmia kun hiirellä yritetään valita palloja. Joskus pallo, jonka päällä hiiren kursori oli, ei tullutkaan valituksi klikkaamalla, vaan peli valitsikin sen päällä olevan pallon. Lisäksi käyttöliittymä olisi voinut olla eläväisempi, ja antaa parempaa palautetta käyttäjälle. Valintaa indikoiva ympyrä pallon ympärillä on liian haalea, eikä sitä meinaa aina erottaa. Käyttöliittymä tuntuu myös ikävän staattiselta.
Ei ääniä eikä musaa #
Suurimmat yksittäiset puuttuvat ominaisuudet pelissä ovat äänet ja musiikit. Ne olisivat lisänneet peliin tuntumaa ja tunnelmaa. Syy äänien puuttumiseen oli se, etten uskaltanut laittaa Teoston suojaamaa kappaletta peliin, enkä löytänyt sopivaa public domain-kappaletta. Musiikkien puuttuminen karisti myös intoni lisätä peliin ääniefektit.
LOPPUTULOS #
Viikossa tehdyksi peliksi Marbles saa minut äärimmäisen tyytyväiseksi. Se onnistui yli odotusteni, ja todistin Pertille, että hän oli väärässä monissa asioissa. Ehdottomasti paras hyöty projektista oli se, että tiedän nyt, että pystyn tekemään prototyypin pelistä viikossa. Tulevaisuudessa pystyn tekemään typeristä peli-ideoistani prototyyppejä ja toteamaan käytännössä toimiiko peli vai ei. Se on jotain, mistä olen erittäin tyytyväinen, koska nyt voin vapaammin keksiä entistä typerämpiä peli-ideoita, sillä niiden testaamiseen käytännössä menee maksimissaan viikko. Tästä alkaa typerien peli-ideoideni invaasio, jota Perttikään ei pysty pysäyttämään. Viva La Revolution of Silly Game Ideas.
P.S. Itse pelin voi ladata täältä: http://www.suomipelit.com/index.php?c=pe...






