perjantai 13. toukokuuta 2016

Kulissien takana: Prototyypin kehitysaskeleet

Projektimme tarkoituksena oli pelillistää työelämää ja etenkin ohjelmistokehitykseen liittyviä työtehtäviä. Osana projektiamme toteutimme prototyypin pelistä, joka integroituisi osaksi työpäivää, innostaisi ja motivoisi työntekijöitä, lisäisi tavoitteellisuutta ja tervettä kilpailuhenkeä työtehtävissä, parantaisi työyhteisön henkeä ja täten yleisesti parantaisi työhyvinvointia ja kenties samalla tehokkuuttakin.

Pelimekaniikat

Prototyypin kehitys alkoi miettimällä millaiset pelimekaniikat sopisivat peliimme ja projektin tavoitteisiin. Pelin pitäisi integroitua työpäivään, innostaa työntekijöitä, mutta ei viedä merkittävästi työaikaa. Pidimme pelimekaniikkoihin liittyen koko ryhmän voimin useammankin aivoriihen, joiden tuloksena päädyimme pelimekaniikoiden suhteen seuraavanlaiseen kokonaisuuteen:

Hahmo

Työntekijällä on pelissämme hahmo, jonka voi kustomoida oman näköisekseen. Tehdyistä työtunneista ja suoritetuista työtehtävistä pelaaja saa toimintapisteitä, joilla hän kykenee liikkumaan pelimaailmassa sekä suorittamaan pelissä erilaisia toimintoja. Samalla pelaajalle kertyy kokemuspisteitä, joilla hän voi kehittää hahmoaan ja hahmon taitoja.

Pelimaailma

Pelimaailma koostuu yhdestä isosta kartasta, joka on jaettu pienempiin alueisiin. Nämä pienemmät alueet koostuvat reiteistä, joita pitkin pelaaja voi kerryttämillään toimintapisteillä liikkua. Matkan varrella pelaaja voi törmätä erilaisiin tapahtumiin, kuten löytää jonkin esineen tai törmätä viholliseen, joka täytyy voittaa ennen matkan jatkumista. Tapahtumiin voidaan liittää erilaisia minipelejä.

Yhteistyö

Pelimaailmassa olisi myös erilaisia yhteystyöelementtejä. Pelaaja pystyisi esimerkiksi liikkumaan pienemmällä määrällä toimintapisteitä, jos hänellä on työkaveri seurassaan. Lisäksi jotkin pelin tapahtumat vaativat useamman pelaajan osallistumisen.
Muuta
Lisäksi kaavailimme monia muita mahdollisia pelimekaanikoita. Näihin kuuluivat mm. kauppa, josta pelaaja voisi pelin sisäisellä virtuaalivaluutalla ostaa esineitä, jonkinlainen “uhkapeli” elementti ja kenties jonkinlaisen aktiivisuusrannekkeen tai hyvinvointikyselyn integroiminen peliin.

Teknologiat

Pelimekaaniikoiden lisäksi prototyypin kehitykseen liittyi käytettävien teknologioiden miettiminen. Heti alkuun päätimme tehdä pelistä selainpohjaisen. Selainpohjaisena peliä voi pelata millä tahansa selaimella tai mobiililla ilman että käyttöjön tarvitsee asennelle mitään ylimääräistä. Pidimme tapaamisen, jossa pohdimme eri teknologiavaihtoehtoja. Kovin paljoa kokemusta selainapplikaatioiden kehityksestä kellään meistä ei ollut. Ehdotuksia ja vaihtoehtoja löytyi useita. Etenkin Otson ehdottama ja hänen aimmallakin kurssilla käyttämänsä, verrattain uusi framework nimeltä Meteor vaikutti lupaavalta ja lyhyen tutkimustyön jälkeen siihen myös päädyimme. Meteorin ominaisuuksiin kuuluu integroitu Mongo-tietokanta, Reaktiiviset muuttujat ja paketinhallinta, josta löytyy kattava määrä kirjastoja. Niin palvelimella kuin asiakkaan laitteella suoritetaan samaa javascript-koodia, jolloin applikaatiosta saa helposti tehtyä erittäin responsiivisen. Esimerkiksi tietokantakyselyt simuloidaan jo asiakkaan laitteella, eikä vastausta tarvitse odotella palvelimelta, vaan asiakas saa vastauksen antamaansa syötteeseen välittömästi.
Versionhallinnan osalta päädyimme Bitbuckettiin hostattuun Git-repositorioon. Bitbucket, toisin kuin esimerkiksi Github, tarjosi ilmaisen ja yksityisen versionhallinnan ja hyvät tiimityöskentelyominaisuudet.

Ominaisuudet ja priorisointi

Ennen varsinaista kehitystyön aloittamista täytyi meidän vielä päättää prototyyppiin mukaan otettavat ominaisuudet ja niiden priorisointi. Oli kuitenkin selvää ettei kaikkea suunnittelemaamme keretä toteuttamaan. Pidimme yhden tapaamisen myös prototyypin ominaisuuksista ja päädyimme karsittuun listaan, jossa oli ne muutamat ominaisuudet, jotka ehdottomasti halusimme prototyyppiin mukaan ja yleisölle siteltäviksi. Näihin tärkeimpinä lukeutuivat esimerkiksi yksinkertainen käyttöliittymä, pieni pelikartta, pelihahmon liikuttelu ja jokin yhteistyöelementti.

Kehitys

Käytännössä itse kehitystyön aloitin itsekseni, sillä tehtävän jakaminen pienempiin osiin oli tässävaiheessa vielä hankalaa. Kuitenkin pian prototyypin pohja alkoi löytää muotoaan ja kun koodia oli kasassa jonkin verran, prototyyppiä voitiin alkaa työstämään jo useamman henkilön voimin. Pidimme ensimmäisen kaksipäiväisen prototyypin kehityssessiomme Pe 8.4. - La 9.4. Koko ryhmämme ei päässyt paikalle, mutta prototyyppiä työstettiin kuitenkin kolmen hengen voimin. Otso ja minä keskityimme pelimme koodipuoleen ja Mikko työsti grafiikoita. Vielä perjantaina ei näkyvää kehitystä juurikaan tapahtunut, sillä aikaa kului paljon uuden teknologian ja tiimissä kehityksen opetteluun. Sen sijaan Lauantaina kehitystyö alkoi jo sujumaan ja saimme peliimme useita ominaisuuksia valmiiksi. Tässä vaiheessa valmiina oli mm. Pelihahmo ja sen liikkuminen kartan pisteissä, toimintapisteet, yksinkertainen layout ja yksi esimerkkiminipeli. Pelin kartta ja hahmot olivat kuvattuna tietokantaan. Lisäksi meillä oli Mikon tekemä alustava versio isommasta “maailmankartasta”.
Session jälkeen meillä oli jo selkeä kuva työskentelytavoista ja prototyyppiin työstettävistä ominaisuuksista sekä niiden tärkeysjärjestyksestä ja näin kehitystyötä voitiin jatkaa itsenäisesti. Seuraavaan prototyypin kehityssessioomme mennessä prototyyppimme olikin taas askelta lähempänä valmista. Matkaa oli kuitenkin vielä paljon jäljellä.
Toisen pidemmän kehityssessiomme pidimme Pe 15.4 - La 16.4. Tällöin paikalle pääsi myös Helinä ja Jesper. Otso ja minä jatkoimme koodaamista Helinän ja Mikon työskennellessä grafiikoiden parissa. Saimme hyvän vauhdin päälle ja uusia ominaisuuksia valmistui kuin liukuhihnalta. Lauantain päätteeksi prototyypissämme oli valmiina kartta yksityiskohtineen, esineen löytäminen, hahmoanimaatiot, toinen pelaaja ja paljon uutta grafiikkaa.

Grafiikat

Grafiikat muodostavat suuren osan pelistä ja sen viehätyksestä. Käytimme prototyypissämme pitkään placeholder -grafiikoita, joita emme tietenkään halunneet valmiiseen prototyyppiin jättää. Lopullisen prototyyppimme visuaalisen ilmeen loivat graafikkomme Helinä ja Mikko - saimmekin korvattua kaiken placeholder -grafiikan omilla tuotoksillamme ja uskommekin visuaalisuuden olevan yksi tuotteemme houkuttelevista tekijöistä.

Viimeistely

Kovasta panoksestamme huolimatta huomasimme Grand Finalen lähestyessä prototyyppimme olevan huomattavan puutteellinen. Jouduimme vielä suorittamaan osaamisemme uudelleenallokointia - jättäydyin itse pois jo osittain harjoittelemastani esityksestä ja keskityin Grand Finalea edeltävän viikon ajan prototyypin loppuun saattamiseen. Töitä tehtiin vielä viimeisenä iltana pikkutunneille asti. Vaikka tapahtuma-aamuna hieman väsyttikin, oli palkitsevaa nähdä prototyyppimme kaikkine toivomimme ominaisuuksineen toimivan moitteetta. Erityisen hienoa oli nähdä peliin kehittämämme yhteystyöelementin toiminta käytännössä.

Miika Piiroinen,
Gamifying Guavas

Ei kommentteja :

Lähetä kommentti