Peliohjelmointia Kumpulassa kesällä 2011

Tietojenkäsittelytieteen laitoksella toimintaansa aloitteleva Linkki-klubi järjesti kaksi peliohjelmointileiriä kesä- ja heinäkuun vaihteessa. Ensimmäinen leiri (27.6.-1.7.) oli suunnattu 10-12-vuotiaille ja toinen leiri (4.-8.7.) 13-16-vuotiaille. Leirien aikana osallistujat tutustuivat tietokonepelien ohjelmointiin.

Toisin kuin usein kuulee, tietokonepelien pelaaminen ei ole puhdasta ajanhukkaa. Esimerkiksi LUMA-sanomat on nostanut tietokonepelejä esiin niiden luomien oppimismahdollisuuksien takia. Uutisissa ovat olleet muun muassa Minecraft ja Fate of the World -pelit. Minecraftia on tutkittu avoimena oppimisympäristönä sen pelimaailman vapauden takia – pelissä voi tutkia, rakentaa ja toimia melko rajoittamattomasti, minkä lisäksi pelimaailma mahdollistaa yhteistoiminnan muiden pelaajien kanssa. Fate of the World taas tutustuttaa pelaajia ilmastonmuutokseen ja antaa mahdollisuuden kokeilla erilaisia skenaarioita energianlähteiden käyttöön liittyen. Osa tietokonepeleistä perustuu joukkueiden ja ryhmien toimintaan, ja harjoittaa sitä kautta tärkeitä ryhmädynamiikkaan liittyviä taitoja. Tietokonepelien hyödyt on huomattu myös yritysmaailmassa. Esimerkiksi IBM on erittäin kiinnostunut online-roolipeleissä käytetyistä johtamiskäytänteistä ja johtajuuden kehittämisestä eri maailmankolkkiin hajautetuissa työyhteisöissä (1).

Pelaamisessa ja ohjelmoinnissa on isoja eroja. Pelaaja näkee usein vain pelin kehittäjien viimeisimmän tuotoksen, joka on käynyt läpi jopa satojen päivien kehitysprosessin. Suurimpia hittipelejä on kehittämässä kymmeniä ihmisiä samaan aikaan. Heistä jokainen luo peliin uutta toiminnallisuutta ja sisältöä – peliä kehittävässä tiimissä jokaiselle tekijälle on oma paikkansa. Pelien luominen, kuten ohjelmointikin, vaatii paljon harjoittelua ja ideoiden testaamista ja läpikäyntiä. Hyvänä esimerkkinä harjoittelun tärkeydestä voi käyttää John Carmackin antamaa vastausta kun anonyymi Internet-käyttäjä kysyi apua pelien tekemisessä kehittymiseen: “When he was young, John Romero made a game for every letter of the alphabet. That was wise.” (2).

Ohjelmoinnissa on useita ulottuvuuksia. Puhtaan ohjelmointikielen syntaksin tuottamisen lisäksi ohjelmoidessa suunnitellaan ohjelmien loogista rakennetta, pohditaan pelimaailmassa esiintyvien esineiden syy-seuraus-suhteita, ideoidaan toiminnallisuutta ja yleistetään opittua tietoa yksittäisiä tapauksia yleisempiin tapauksiin. Esimerkkien yleistäminen muihin ongelmiin ei ole helppoa tietojenkäsittelytieteen laitoksen opiskelijoillekaan. Olikin erityisen mahtavaa nähdä miten peliohjelmointileirin osallistujat punnersivat eteenpäin uudessa ympäristössä.

Pelien luomisessa vaaditaan ohjelmoinnin lisäksi sisältöä, esimerkiksi pelin tavoite, grafiikka ja musiikki. Leirin lähtökohtana oli se, että jokaisella on oma osa-alue jossa he loistavat sekä osa-alueita joissa he voivat kehittyä. Oleellista oppimisessa ja kehittymisessä on tarjottu tuki, tsemppaus ja usko. Nuoret tekevät huikeita asioita kun heihin uskotaan ja heitä tuetaan heidän matkassa eteenpäin – annetaan heille aikaa ja kuunnellaan heitä.

Kesäleirin ohjelmointikieleksi oli valittu python, jolle on olemassa pelien tekemistä helpottava pygame-kirjasto. Pygame tarjoaa valmiita välineitä hiiren ja näppäimistön tapahtumien käsittelyyn, ruudulle piirtämiseen tarvittaviin perustoimintoihin ja äänten soittamiseen. Leirille ei vaadittu aiempaa ohjelmointikokemusta, tietokoneen käynnistystaito riitti alkuun pääsemiseen. Ohjaajat huomasivat nopeasti, että leiriläisten tietokoneen peruskäyttötaidot olivat erinomaisella tasolla.

Osallistujat toivat omaa lahjakkuuttaan esiin eri osa-alueilla. Osa panosti enemmän grafiikkaan, toinen ideoihin sekä toiminnallisuuteen ja kolmas toteutuksen yksityiskohtiin. Oli huikeaa nähdä miten eräs osallistuja keksi käyttää pelissä oman sukulaisensa säveltämää musiikkia – toinen taas skannasi käsin piirtämänsä kuvan pelin taustakuvaksi.

Yhtenä leirin salaisista teemoista oli matematiikka ja sen käyttäminen. Pelimaailmoja luodessa tutustuttiin ja syvennyttiin muun muassa koordinaatistoon ja erilaisiin laskuoperaatioihin. Jokainen osallistuja teki huomaamattaan kaksiulotteisessa koordinaatistossa tapahtuvia siirtymiä. Ohjelmointi ja pelien tekeminen mahdollistaa kokeilevan matematiikan. Esimerkiksi pinnan päälle pääseminen vaatii sen, että osataan laskea pinnan ja hahmon törmäyskohta. Mahtavia tilanteita leirille loivat sekä tarkoitetut että tarkoittamattomat pohdintaa herättävät “oho”-tilanteet: “Miten se pelihahmo nyt tuonne pääsi?”.

On ollut mielenkiintoista huomata miten kasvatustieteestä tunnettua Piaget’n teoriaa lapsen kehityksestä voi soveltaa osittain myös ohjelmointitaidon kehitykseen. Piaget’n teoria olettaa että lapsen sosiaalinen, henkinen ja fyysinen kehitys etenee samaa tahtia, eikä lapsi voi olla yksittäisellä alueella huomattavasti muita alueita edellä. Formaalisten operaatioiden vaiheessa, joka oletettavasti ajoittuu suunnileen ikävuosille 11-12, opitaan abstraktiin symbolit sisältävään ajatteluun. Ohjelmoinnissa käytetään huomattavasti muuttujia eli symboleja, jotka tallentavat tietoa ohjelman tilan (esimerkiksi pelin etenemisen), ylläpitämiseen ja mallintamiseen. Nuorempien osallistujien leirillä ohjaajat neuvoivat osallistujia huomattavasti enemmän, ja osa tekijöistä haki selkeästi tukea esimerkeistä ja teki peliä mallia käyttäen. Oli huikeaa huomata että nuorimmillekin osallistujille (9v) muuttujien käyttö oli kutakuinkin sujuvaa harjoittelun jälkeen. Huomasimme uudelleen ja uudelleen että ohjelmointi on hyvä väline ongelmanratkaisutaidon ja abstraktin ajattelun harjoittamiseen – kun motivaatio tekemiseen tulee tekijältä.

Nuorempien leirin viimeisenä päivänä järjestettiin pelien esittelytilaisuus, jossa oli paikalla paljon sekä leiriläisten vanhempia että tietojenkäsittelytieteen henkilökuntaa. Tilaisuuteen osallistui hieman yli 50 henkilöä, ja jokainen pelileiriläinen sai ansaitsemansa aikansa parrasvaloissa sekä raikuvat aplodit. Leiri päätettiin perjantai-iltapäivällä rauhoittumishetkeen, jonka aikana osallistujat saivat myös diplomit peliohjelmointileirille osallistumisesta. Vanhempien leirillä perjantai päätettiin kevyemmin leiriporukan yhteisellä demotilaisuudella, jota ennen oltiin käyty kiinalaisessa syömässä.

Kahden viikon aikana tapahtui huikeita asioita, ja odotamme jo innolla ensi kesää! Linkki ja Tietojenkäsittelytieteen laitos järjestävät myös tulevana lukuvuotena lukion opettajille suunnatun peliohjelmointiin tutustuttavan täydennyskurssin, jonka tavoitteena on mahdollistaa peliohjelmointikurssin järjestäminen lukiossa. Lisätietoja leiristä syksymmällä LUMA:n sivuilta (3).

Ohjaajina leirillä toimivat: Emilia Hjelm, Antti Laaksonen, Pekka Mikkola ja Arto Vihavainen.

Teksti: Arto Vihavainen

Kuvat: Thomas Vikberg

(1) http://domino.watson.ibm.com/comm/www_innovate.nsf/pages/world.gio.gaming.html

(2) http://twitter.com/#!/ID_AA_Carmack/statuses/80755403104854016

(3) http://www.luma.fi

Luotu

27.07.2011 - 16:43

Carat-tutkimusryhmä on julkaissut uuden datasetin puhelimien energiankulutuksesta

 

 

Carat-tutkimusryhmä Helsingin yliopistosta julkaisee uuden datasetin, joka on osa mobiililaitteiden energiankulutukseen keskittyvää tutkimusta(http://carat.cs.helsinki.fi/). Datasetti on alunperin esitelty ryhmän julkaisussa "Energy Modeling of System Settings: A Crowdsourced Approach"  IEEE PerCom’15 -konferenssissa Yhdysvalloissa. Artikkeli voitti konferenssin parhaan julkaisun palkinnon.

Eemil Lagerspetz was awarded a grant by the Jorma Ollila fund of Nokia Foundation on November 24, 2015

 

 
 
Eemil Lagerspetz was awarded a grant by the Jorma Ollila fund of Nokia Foundation on November 24, 2015. Congratulations!
 
The fund was launched in year 2014 to support post doctoral research career development. 
The title of Eemil’s post doctoral research is “Mind The Gap: Combining Trajectory Datasets for a Holistic Picture of Human Mobility” and the research will be carried out at the Hong Kong University of Science and Technology (HKUST) in 2016.
 

Collaborative Networking (CoNe) group researchers got the best paper award at 2nd ACM Conference on Information-Centric Networking (ICN 2015)

 

Collaborative Networking (CoNe) group researchers got the best paper award at 2nd ACM Conference on Information-Centric Networking (ICN 2015), one of the most prestigious venues for ICN research. The article entitled Pro-Diluvian: Understanding Scoped-Flooding for Content Discovery in ICN is lead by Liang Wang - a recent PhD graduate from CoNe research group, and is the outcome of collaboration with Suzan Bayhan and Jussi Kangasharju from UH, Jörg Ott from Aalto University, Arjuna Sathiaseelan and Jon Crowcroft from Cambridge University.

Tsinghua Workshop - Strengthen Collaboration with Top Universities in China

 

Together with research teams in Tsinghua University and Hong Kong University of Science and Technology (HKUST), Professor Sasu Tarkoma, Prof. Yong Li, and Prof. Pan Hui organized a successful workshop on mobile big data and networking (url:http://fi.ee.tsinghua.edu.cn/2015workshop/) in September 2015.