29.12.2016 Views

Raapaisu ohjelmointiin

Raapaisuohjelmointiin, Opettajan pedagogiset opinnot, 2016

Raapaisuohjelmointiin, Opettajan pedagogiset opinnot, 2016

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Näkökulma:<br />

Polku peli<strong>ohjelmointiin</strong><br />

Peliohjelmointi vaatii innostusta, kiinnostusta<br />

peleihin ja motivaatiota. Mutta myös<br />

kovaa työtä ja pitkäjänteistä ohjelmoinnin<br />

opettelua.<br />

Useille nuorille sanotaan, että heidän<br />

pitäisi tehdä pelejä, koska he pelaavat niin<br />

paljon. Tämä on kuitenkin hieman väärä<br />

oletus. Pelinohjelmoijan pitää pelata ainakin<br />

jonkin verran ymmärtääkseen, mitä<br />

pelaajat haluavat, mutta se ei kuitenkaan<br />

tarkoita, että pelintekijän pitäisi olla loistava<br />

pelaaja.<br />

Ohjelmoimaan oppii parhaiten ohjelmoimalla<br />

- paljon, monipuolisesti ja erilaisilla<br />

ohjelmointikielillä. Ohjelmoimisessa<br />

on useita erilaisia koulukuntia. Osan mielestä<br />

on paras oppia yksi ohjelmointikieli<br />

hyvin ja mennä sen kanssa mahdollisimman<br />

pitkälle. Toiset taas kannattavat<br />

sitä, että opetellaan useita kieliä ja perehdytään<br />

syvemmin asioihin tarpeen ja vastaan<br />

tulevien projektien mukana. Omasta<br />

mielestäni kumpikaan tapa ei ole väärä,<br />

eri ihmisille sopivat erilaiset tyylit ohjelmoinnin<br />

opiskeluun.<br />

Oma polkuni peliohjelmoijaksi alkoi toiminnan<br />

kautta, suoraan pelejä ohjelmoimalla.<br />

Ensimmäiset oikeat peliprojektini<br />

toteutin käyttäen pelimoottoria. Se on tekemistä<br />

helpottava ja nopeuttava työkalu,<br />

joka toteuttaa automaattisesti jokaiselle<br />

peliprojektille yhteisiä elementtejä. Jokaisen<br />

peliprojektiin ei kannata kirjoittaa<br />

ohjelmakoodia, joka huolehtii pelitaiteen<br />

piirtämisen näytölle tai äänien soittamisesta<br />

kaiuttimien kautta, vaan peliprojekteille<br />

yhteiset toiminnallisuudet on<br />

järkevin tuottaa pelimoottorin kautta.<br />

Pelimoottori voi olla täysin ohjelmoijan<br />

omaa tuotantoa tai kaupallinen versio.<br />

Saatavilla on myös paljon avoimen lähdekoodin<br />

pelimoottoreita.<br />

Vuosia sitten aloittaessani peliohjelmointia<br />

saatavilla ei ollut työkaluja ja tietoa<br />

niin paljon kuin nykyisin. Olen miettinyt<br />

usein, olisiko omalle oppimispolulleni<br />

ollut tämän hetken työkaluista ja menetelmistä<br />

apua. Olen aivan varma, että<br />

asiat olisivat sujuneet helpommin. Mutta<br />

kysymykseksi jää, olisinko päässyt pidemmälle?<br />

Olen työnikin puolesta hahmotellut<br />

polkua peliohjelmoinnin oppimiseen<br />

jo alakouluikäisestä alkaen. Polku on<br />

punainen lanka, jota seuraamalla saattaa<br />

päästä maaliin. Matkalla on kuiluja,<br />

karikkoja ja kivikkoja, hienoja hetkiä ja<br />

oivalluksia, uutta tietoa ja teknologiaa.<br />

Kaikkea sitä tarvitaan opittaessa pelintekemisen<br />

taitoa.<br />

Pelien tekeminen on motivoivaa, haasteellista<br />

ja jännittävää. Haasteet kasvavat<br />

osaamisen myötä ja on tärkeää, että<br />

kuilu osaamisen ja haasteiden välillä ei<br />

kasva liian isoksi. Liian vaikeiden tehtävien<br />

muurista eivät vie läpi edes hyvä<br />

innostus, kiinnostus ja motivaatio. Miten<br />

osaamisen kuilun välille on mahdollista<br />

rakentaa silta ja murtaa pelon muuri<br />

pelimekaaniikan avulla?<br />

Ensimmäiset askeleet peliohjelmoinnissa<br />

voi ottaa jo ennen lukemisen oppimista.<br />

Aikuisen tai vaikkapa opettajan tehtävänä<br />

on auttaa peliohjelmoinnista kiinnostunut<br />

oikeaan paikkaan. Esimerkiksi helppokäyttöinen<br />

studio.code-sivusto (https://<br />

studio.code.org/) tarjoaa tehtäviä, jotka<br />

eivät vaadi lukutaitoa. Ohjelmoinnillista<br />

ajattelua (Computational Thinking) eli<br />

ongelmien ratkaisua ja asioiden pilkkomista<br />

pienempiin ratkaistavissa oleviin<br />

osiin opitaan ohjelmoimalla pelissä oleva<br />

hahmo pääsemään maaliin. Studio.code.<br />

org sisältää <strong>ohjelmointiin</strong> opettavia pelejä,<br />

jotka tasapainottelevat vaikeuden ja motivaation<br />

kanssa. Sivusto tarjoaa helppoja<br />

ja hauskoja tehtäviä, joiden kautta opitaan<br />

ohjelmoinnin peruslogiikkaa. Teemoina<br />

peleissä on lapsille jo tuttuja hahmoja,<br />

kuten Angry Birds, Star Wars ja Frozen.<br />

Studio.code-sivustolta löytyy tehtäviä ikäryhmittäin<br />

ja osaamisen lisääntyessä on<br />

mahdollista valita vaikeampia tehtäviä.<br />

Tarjolla on ilmaisia ja kaupallisia ratkaisuja.<br />

Kaikkien mielestä näperteleminen graafisen<br />

ohjelmointiympäristön kanssa ei<br />

ole oikeaa ohjelmointia. Graafisen ohjelmointiympäristön<br />

kautta on kuitenkin<br />

mahdollista oppia pelintekemisessä tarvittavia<br />

taitoja helposti ja kiinnostavasti.<br />

Jos vaihtoehtona on 600-sivuinen opus,<br />

josta opiskellaan ohjelmointia asia kerrallaan,<br />

vaatii se äärimmäistä kurinalaisuutta<br />

ja on raskas polku aikuisillekin, puhumattakaan<br />

ala- tai yläkouluikäisistä.<br />

Perusoasaamisessa harjaantunut voi<br />

kohtuullisen nopeasti siirtyä myös oikeiden<br />

pelimoottoreiden maailmaan. Esimerkiksi<br />

Unreal on Epicin valmistama ilmainen<br />

pelimoottori (lisenssimaksu vasta<br />

tietyn tulorajan ylityttyä). Unrealin kautta<br />

on tehty menestyneitä suuren mittaluokan<br />

pelejä ja viimevuosina myös pienempien<br />

tiimien pelejä. Yhtenä Unrealin ominaisuutena<br />

on Blueprint-niminen graafinen<br />

ohjelmointiympäristö. Jos vertaa Legon<br />

EV3-ympäristön ohjelmointikoodia<br />

Scratchiin ja Blueprintiin, huomaa niillä<br />

olevan yllättävän paljon yhteistä. Unreal-pelimoottorissa<br />

hahmo täytyy rakentaa<br />

lisäämällä siihen ominaisuuksia<br />

pelimoottorissa, Scratchissä hahmo maalataan<br />

halutun näköiseksi ja liitetään siihen<br />

ominaisuuksia. Ohjelmoinnissa paljon<br />

käytetyt If-, For-, While-lauseet sekä<br />

muuttujat ovat oleellinen osa ympäristöjä.<br />

Looginen ajattelu toimii hyvin samoilla<br />

periaatteilla kaikissa edellämainituissa<br />

ympäristöissä.<br />

Graafisen ohjelmoinnin kautta polku vie<br />

täysiverisen pelimoottorin äärelle, ja sillä<br />

on mahdollista tehdä viimeisen päälle<br />

hiottu, kaunis ja toiminnallinen peli eri<br />

laitteille ja käyttöjärjestelmille. Kannustaisin<br />

opettelemaan ohjelmoinnissa<br />

tarvittavia perustaitoja ja osaamista ennen<br />

syvään päähän hyppäämistä. Hauskoja<br />

opetteluhetkiä!<br />

Linkit:<br />

https://studio.code.org/<br />

https://scratch.mit.edu/<br />

https://www.Arduino.cc<br />

http://www.makeymakey.com/<br />

https://www.unrealengine.com/<br />

what-is-unreal-engine-4<br />

Petri Hannula

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!