Vierailijablogaus: 200 riviä koodia puolessa tunnissa

Kokemuksia pelipajan pitämisestä Lielahden kirjastossa Tampereella 17. ja 19.11.2015

Pelipaja-juliste. Pelipajassa suunnitellaan ja koodataan omaa pelihahamoa käyttäen apuna kirjastosta löytyviä materiaaleja.

Olin kehitellyt pelipajan ajatusta opiskellessani Tampereen yliopistossa informaatiotieteen ja interaktiivisen median ohjelmassa, kirjastotoimen opintokokonaisuudessa. Kevään 2015 aikana mm. Facebookin opetusteknologiat-ryhmässä käytiin runsaasti keskustelua siitä miten ja minkä aineiden yhteydessä ohjelmointia voisi ja pitäisi opettaa peruskoulussa kun se oli nyt saatu juuri sisällytettyä peruskoulun opetussuunnitelmiin. Olin itse aikuisopiskelijana opetellut ohjelmointia yksinkertaisen peliaihion tekemisen kautta.  Informaatiotieteen ja interaktiivisen median perusopintojaksolla innostuin sitten juuri Elämyksellinen media ja pelit-jaksosta ja mieleeni palautui olio-ohjelmoinnin opettelun mieluisat alkuajat Flash/Action Script-ympäristössä ja toisaalta myös aiemmat työni tuotekehityksen parissa, jossa myös tehtiin paljon töitä pelisuunnittelun näkökulmasta.

Voisiko lähikirjasto toimia paikkana, jossa kokeilla ja opetella ohjelmoinnin alkeita ohjatusti, kirjaston koneilla ja käyttää vielä pelin/ohjelman suunnittelussa lähteenä kirjaston "sisältöjä"? Ideaan pelipajasta liittyi alusta alkaen se, että kirjastossa pelin- ja koodin tekemiseen voisi sukeltaa mutkan kautta, kirjaston fantasia-, scifi- ja sarjakuvahyllyjen, maailmankirjallisuuden klassikoiden sekä kaukolainan kautta hankittujen pelisuunnittelukirjojen siivittämänä.

Tarjosin kolmen kerran pelitekemisen ”minikurssia” Lielahden kirjastolle Tampereella, koska se oli uusi mukavaksi osoittautunut lähikirjasto Tampereen länsipuolella, jossa itsekin asustelin. Olin käynyt kirjastossa aiemmin kirjaston Tietotorilla ja huomaisin silloin samalla, että kirjastossa pyöritettiin myös peliperjantaiksi kutsuttua tapahtumaa, jossa nuoret saattoivat omaehtoisesti käyttää kirjaston pelitilaa sekä myös Tietotorin koneita pelaamiseen. Peliperjantai kuulemma veti paikalla nuoria, n.10-vuotiaita lapsia, enimmäkseen poikia mutta myös tyttöjä oli nähty joukossa, jotka pelasivat kirjaston koneilla erilaisia verkkopelejä suhteellisen säännöllisesti ja aktiivisesti.

Kurssisuunnitteluvaiheen aikana (n.1/2 vuotta) päädyimme kirjaston henkilökunnan kanssa lopulta siihen, että pitäisimme pelipajan kaksiosaisena, eka kerralla tehtäisiin pelihahmoja ja toisella kerralla pyrittiin tekemään hahmojen pohjalta pienimuotoista pelin prototyyppiä, eli koodaamaan joitain hahmojen toimintoja näkyväksi Kodu-ympäristössä. 

Ensimmäinen kokoontumiskerta 17.11 klo 15–17 keskittyi pelien tarinankerrontaan, käsikirjoitukseen ja erityisesi omien  hahmojen tekemiseen

Teoreettista osuutta kevennettiin tehtävillä, joissa käytettiin lähtökohtana mm. edellä kuvattuja kirjoja, jotka kirjaston henkilökunta oli asetellut Tietotorin luokkaan.  Loppujen lopuksi päädyimme sitten ensimmäisellä kerralla esim. muuan luonnontieteellisen lasten kuvakirjan/ hakuteoksen parissa miettimään peli-ideaa, jossa Pallokala on pelin päähenkilö, pelihahmo, joka etenee tasohyppelypelissä tasolta toiselle. Pohdimme hahmon tehtävää pelissä ja pelin logiikkaa näin: Mitä esteitä Pallokala kohtaa uidessaan virtaa pitkin joen rantaan?  Kuinka monta kertaa pallokala voi törmätä vedessä kelluviin esteisiin että pääsee vastarannalle eikä joudu takaisin alkuun vaan voi siirtyä seuraavalle pelin tasolle

Kirjoja esillä pöydän päällä.

Pelipajan toisella kokoontumiskerralla 19.11. klo 15–17 keskityttiin koodamiseen

Olimme jo ensimmäisen suunnittelukerran aikana käyttäneet kaksituntisen toisen puoliskon koodauksen harjoitteluun code.org:ista löydetyn Star Wars-pelin muodossa. Myös varsinaisella koodauskerralla käytimme sitten pitkän tovin code.org:ssa julkaistun mainion MineCraft code-tutoriaaliin ratkomiseen (https://code.org/mc). Ylipäänsä voisi sanoa, että juuri Code.org:ista löytyvät” hour of code”- kooditutoriaalit toimivat ainakin meidän kurssillamme loistavasti ja kurssilaiset pääsivät niiden avulla todella nopeasti liikkeelle oman koodin tekemiseen ja etenivät alun jälkeen varsin oma-aloitteisesti harjoituksissa (jolloin opettaja saattoi jo viritellä seuraavaa tehtävää omalla koneella tai kiertää ihmettelemässä oppilaiden hurjaa koodausvauhtia..).

Omaa hahmoa oli tarkoitus alkuperin kehittää eteenpäin Microsoftin Project Spark-ympäristössä. Project Spark vaati kuitenkin toimiakseen Windows 10 minun joten suunnitteluvaiheessa piti hieman muuttaa alkuperäistä suunnitelmaa ja käyttääkin koodauksessa Kodu-ohjelmointiympäristöä, joka siis toimi myös Tietorin Windows 7 koneissa. Loppujen lopuksi kun kahteen tuntiin mahtuu kuitenkin vaan suhteellisen vähän harjoituksia niin saattoi kuitenkin olla jopa hyväkin, että käytössämme oli graafisesti vaatimattomampi mutta nopeammin käyttöönotettava ja silti aitoa olio-ohjelmointia opettava Kodu eikä Project Spark.

Pienen arkadiammuntapelin tekemiseen Kodu tarjosi helpot ja ymmärrettävät ”koodipohjat”, joiden avulla tuli kuitenkin opetettua -ja toivottavasti oppilaiden myös opittua- mitä tarkoittaa ohjelmoinnissa käytettävät ehtolauseet ja miten yksinkertaisten loogisten sääntöjen avulla on mahdollista tehdä yksinkertainen ammuntapelin ohjaus- ja ammuntatoiminnot. Jotain ohjelmoinnin käytännön salojakin tuli Kodun visuaalisessa ohjelmointiympäristössä testattua ja toivottavasti opittuakin. Esimerkiksi koodiblokkeja kannattaa asetella toisensa eteen vaiheittain, testata sitten tulosta, ja edetä sen jälkeen pelin tekemisessä pala palalta.  "Tee koodia pienissä osasissa".

Itselleni tärkeä työpajan lopputulos oli pelkästään se, että onnistuimme mukavalla ryhmällä ja hyvässä hengessä toteuttamaan pajan sen alkuperäisen idean mukaisesti, eli että kirjastosta löytyviä ja lainattavia kirjoja ja niistä löytyviä hahmoja todellakin käytettiin hahmojen suunnittelussa, ja siten voi sanoa, että tutut, fiktiiviset, kirjalliset hahmot ja niiden taustatarinat itseasiassa voivat toimia erittäinkin hyvin keinona ja välineenä oppia myös (digitaalisten) pelien tekemistä ja niiden luonteenomaisuuksia.

Paljon pajan onnistumiseen vaikutti myös suunnitteluvaiheessa pelisuunnittelija-opettaja ystäväni kanssa käyty meilikeskustelu, jossa hän varoitteli oletuksesta, että nuoret pelaisivat jotenkin automaattisesti jotain tietyntyyppisiä pelejä ja, että näitä pelejä käsittelemällä ja valmiiden esimerkkien avulla voisi opettaa pelien tekemistä nuorille. Tässä olisi mahdollisuus mennä sivuraiteelle heti alkutaipaleella!  Nuorten näkemykseen siitä mikä on hyvä peli vaikuttaa kaikkein eniten nuorten itsensä pelaamat pelit. Ja pelattavien pelien kirjo nuorten parissa on laaja: lautapelit, konsolipelit, mobiilipelit... Siksi mieluummin kuin käyttää valmista sapluuna ja joitain tarkkaan mietittyjä esimerkkipelejä ja niiden analyysiä, on hyödyllisempää kysyä ainakin aluksi mitkä ovat oppilaiden suosikkihahmoja ja mitä pelejä he tykkäävät pelata ja pyrkiä sitten mahdollisuuksien mukaan analysoimaan ko. pelejä ja hahmoja ja käymään keskusteluja omista hahmoista niiden pohjalta.

Näin teimme sitten mekin pajassa, vaikkeivat todellakaan kaikki käsitellyt pelit olleet ainakaan allekirjoittaneelle olleet (ennestään) tuttuja. Toisaalta taas pelihahmojen tyypittämisen ja niiden kirjoittamisen sekä peli pelikerronnan opettamiseen ylipäänsä tuo aiemmin mainittu fiktiivinen kirjallisuus ja ”universaalihahmot” tarjosivat hyvän yhteisen keskustelu- ja suunnittelupohjan. Tehtävänantomme oli jotain seuraavan laista: ”valitse hyllyltä yksi kirja, ja kirjasta sinulle mieluinen hahmo  Mikä on henkilön tavoite, este, tehtävä jne. Kirjoita pari lausetta kustakin...”  Hyviä pelin aihioita ja pelisketsejä alkoikin sitten kehittyä mm. seuraavien legendaaristen hahmojen puitteissa: Nalle Puh ja hunajapurkit, Pluto ja Mustakaapu, Tintti ja Milou, Marvelin Avengers, erityisesti Rautamies, Asterix ja roomalaiset sekä jo aiemmin mainittu Pallokala vedessä.

Pekka Ollikainen

Lisätietoja:
Pekka Ollikainen (pekollik@gmail.com)

Anni Aalto (Anni.Aalto@tampere.fi