Ville-Mangusti

Villejä sovelluksia Unityn avulla

Kun nimi "Unity" mainitaan ohjelmistojen maailmassa, tulee sen aiemmin kuulleille yleensä ensimmäisenä mieleen videopelit ja niiden kehitys. Tämä ei suinkaan ole väärä mielleyhtymä, mutta ei myöskään täydellisen kattava. Unity on 3D-kehitysympäristö pelien lisäksi sovelluksille, ja se tukee myös 2D-kehitystä monin eri työkaluin. Se taipuu Unity Technologiesin omien sanojensa mukaan käyttöön muun muassa autovalmistajien keskuudessa ja muussa teollisuudessa, elokuvien ja animaatioiden teossa sekä esimerkiksi arkkitehtuurin ja rakennuksen aloilla1. Tämä ei toki tarkoita sitä, että ohjelmiston käyttömahdollisuudet rajoittuisivat edellä mainittuihin.

Unity onkin minulla (ja siten meillä Luotone Oy:llä) käytössä prototyyppityökaluna, ja tarvittaessa jopa varsinaisten tuotteiden pohjustana. Unityn vahvuuksia meidän käytössämme ovat muun muassa sovellusten nopea kehitys, kiitos helposti lähestyttävän käyttöliittymän (kuva 1) ja C#-kielen, sekä sen soveltuvuus eri alustoille rinnakkain koodaamiseen. Monessakin tapauksessa voimme siis kehittää esimerkiksi Windowsille, Androidille ja iOS:lle sovellusta yhtäaikaisesti, ja varsinaiset erot tulevat eteen vasta, kun projektista ollaan jo luomassa joko suoritettavia tai asennettavia tiedostoja tai hyvin käyttöjärjestelmäspesifejä toimintoja ohjelmoitaessa. Kätevää on myös se, että Unityn laajennettavuus ja monipuoliset sisäänrakennetut ominaisuudet mahdollistavat radikaalitkin muutokset nopealla aikataululla, vaikkapa aivoriihen aikana ilmi tulleiden tarpeiden vaatimat uudet toiminnot. Esimerkiksi tavallinen 2D-sovellus voitaisiin suoraan muuttaa käsittelemään myös 3D-grafiikkaa lähes sormia napsauttamalla Unityssä, kun taas muissa kehitysympäristöissä tämä ei yleensä olisi yhtä yksinkertainen operaatio.

Unityn käyttöliittymä perusasetuksilla

Kuva1. Unityn käyttöliittymä perusasetuksilla (klikkaamalla kuvaa voit avata sen täysikokoisena)

Olen itse käyttänyt Unityä vuodesta 2015 lähtien, ensin AMK-opinnoissani ja tämän jälkeen työssäni. Näiden lisäksi osallistun vuosittain erilaisiin game jam -tapahtumiin, joissa pienryhmissä yritetään tietyn aikaikkunan puitteissa keksiä ja kehittää uusi peli. Usein pelijamit ovat viikonlopun yli kestäviä tapahtumia, joissa nukkuminen jää yleensä vähemmälle, mutta on sitäkin hauskempaa koodata, säveltää tai tehdä grafiikkaa hyvin vapaamuotoisesti, ja vielä mukavassa porukassa. Pelijameista yritän aina tuoda mukanani tietynlaiset ”avoimet aivot", joiden kanssa jatkaa tai aloittaa varsinaisia työprojekteja. Tätä kautta pystyn katselemaan koodia uudelta kantilta ja ratkaisemaan aiempia ongelmakohtia tai mahdollisesti parantamaan jo tekemiäni ratkaisuja. Välillä tämä luovuus saattaa ilmentyä myös ASCII-merkein muodostetuttuna taiteena, joka voi löytää tiensä skriptitiedostojen kommentteihin…

Unityn käyttö on tuonut meille Luotone Oy:llä useita eri onnistumisia ja elämyksiäkin mielenkiintoisisten kokeilujen äärellä. Julkisesti näkyvin Unity-onnistumisemme lienee Safire SMS-etäkäyttö -sovellus, joka on saatavilla sekä Android- että iOS-laitteille. Asiakkaamme SF-Lämmitin Oy tarvitsi uuden version omasta, lämmittimien SMS-ohjaukseen tehdystä, sovelluksestaan osana kansainvälistymisprosessiaan, ja halusi sen myös toimivan iOS-laitteilla. Google Play -sovelluskaupan muuttuneiden ehtojen takia ei kuitenkaan nykyistä sovellusta voitu päivittää sellaisenaan, vaan lopulta päädyimme ratkaisuun, jossa koko sovelluksesta koostettiin uusi versio Unityn avulla (katso kuva 2). Kehitystyö sujui mallikkaasti ja jo prototyyppivaiheesta lähtien suorituskyvyn optimointi oli tärkeä osa prosessia. Tämä osoittautui kannattavaksi, sillä Unityn omien käyttöliittymänrakennustyökalujen ollessa vielä suhteellisen vaativia tietyissä tilanteissa2, etenkin vanhemmille mobiililaitteille, on nykyisen sovellusversion suorituskyky hyvä.

Täysin ongelmatonta Unityn käyttö prototyyppityökaluna ei kuitenkaan täysin ole. Esimerkiksi jo aiemmin mainitut suorituskykyasiat täytyy ottaa huomioon etenkin mobiilisovelluksissa sekä paljon 3D-grafiikkaa sisältävissä sovelluksissa. Unity kuitenkin pitää sisällään suorituskykyä tarkkailevan työkalun ja muita apuvälineitä muun muassa grafiikkaan ja sen optimointiin. Lisäksi Unityn taustaprosessit eivät ole kaikille laitteille niitä kevyimpiä, mutta näitäkin voi osittain keventää esimerkiksi poistamalla fysiikkamallinnuksen käytöstä jos sitä ei tarvita. Tuli myös opittua, että Unityn betaversiot kannattaa jättää omiin pienimuotoisiin testeihin. Joka tapauksessa tähän asti on selvitty kaikista pulmista eteenpäin kekseliäisyydellä sekä kokeiluilla. Ja toki varmuuskopioilla, neuroottisilla varmuuskopioilla.

Safire-sovelluksen yksi näkymistä Unityssä

Kuva 2. Safire-sovelluksen yksi näkymistä Unityssä (klikkaamalla kuvaa voit avata sen täysikokoisena)

Tähän mennessä olemme enimmäkseen käyttäneet Unityn 2D-toiminnallisuuksia, mutta meillä Luotone Oy:llä riittää rahkeita ja intoa myös muunlaiseen sovelluskehitykseen. Esimerkiksi omasta mielestäni AR- ja VR-prototyypit ovat sekä kiinnostava että täysin potentiaalinen lisä repertuaariimme, oli sitten kyse apusovelluksesta kuten simulaatiosta tai vaikkapa jostain viihteeseenkin liittyvästä.

Ja tähän loppuun tervehdys muille koodareille (etenkin Unityn kanssa työskenteleville): Ota chillisti ja koodaa villisti!

Lähteet

1 https://unity.com/ (viitattu 26.7.2019)

2 https://create.unity3d.com/Unity-UI-optimization-tips (viitattu 26.7.2019)

Ville Kentala

View posts by Ville Kentala
Software Engineer. Crawling through both dungeons and code.
Scroll to top