Unity (pelimoottori)

**Unity** on Unity Technologiesin kehittämä monialustainen pelimoottori, jolla voidaan kehittää kaksi- ja kolmiulotteisia videopelejä useille alustoille. Pelimoottorista on saatavilla ilmaisen Unityn lisäksi maksullinen Unity Pro.

Kehitysalustaan voi ladata Asset Storesta ilmaisia ja maksullisia lisäosia, malleja, tekstuureja, skriptejä, animaatioita ja ääniä.

Unity Technologies siirtyi käyttämään julkaisuajankohdan mukaista versiointia Unity 5.6 -version jälkeen, jonka jälkeen julkaistava versio oli Unity 2017.

## Ohjelmointi Unityssa
Unityn pelilogiikka ohjelmoidaan C#:lla, joka on ainoa Unity-moottorin tukema ohjelmointikieli. Aiemmissa Unity-versioissa tuettiin myös Boo- ja UnityScript-kieliä, mutta Boo:n tuki lopetettiin Unity 5 -versiossa ja UnityScriptiin liittyvät kääntäjät poistettiin Unity 2018.1 -versiosta alkaen.

C#-ohjelmakoodi käännetään Microsoft .NET-yhteensopiviksi kokoelmiksi (*assemblies*), jotka käyttävät Unityn tarjoamaa Unity Scripting API-ohjelmointirajapintaa pelilogiikan, käyttöliittymän ja pelimaailman käyttäytymisen toteuttamiseen.

Unity-moottorin ydin (*runtime*) sekä natiivit liitännäiset (*native plugins*) on toteutettu C++-ohjelmointikielellä."

## Unityn tukemat alustat

*Unity 2021 LTS* tukee virallisesti seuraavia alustoja: 
* Tietokoneiden käyttöjärjestelmät: Windows, OS X, Linux/SteamOS;
* Mobiililaitteiden käyttöjärjestelmät: Android (Android TV), iOS, tvOS;
* Pelikonsolit: PlayStation (PlayStation 4, PlayStation 5), Xbox (Xbox One, Xbox Series X ja Series S), Nintendo Switch, Stadia;
* Virtuaalisen/laajennetun todellisuuden alustat: Oculus Rift, HTC Vive, PlayStation VR, Gear VR, ArCore, ARKit

Selainpeleihin tarkoitettu lisäosa on merkitty vanhentuneeksi NPAPI-rajapinnan tuen poistuttua verkkoselaimista. Uudempi ratkaisu käyttää standardia WebGL-toteutusta.

## Unity 5 (2015)
Unity 5 on versio Unitysta, joka julkaistiin 3. maaliskuuta 2015. Unity 5 sisältää paljon parannuksia ja uusia ominaisuuksia, kuten fysiikkaperusteisen renderöinnin, uudistetun PhysX-fysiikkamoottorin, tosiaikaisen globaalin valaistuksen, Unity Cloud -pilvipalvelun ja sisäisen audiomikserin. Pelien ulkonäköä pystyi myös muokkaamaan vähemmän geneeriseksi versiossa 5.4 esitellyillä elokuvamaisilla kuvaefekteillä (*Cinematic Image Effects*). Versiossa 5.6 muutoksina tulivat uudet valaistus- ja partikkeliefektit, paranneltu suorituskyky sekä natiivi tuki Nintendo Switchille, Facebook Gameroomille, Google Daydreamille ja Vulkan-rajapinnalle. Uutena ominaisuutena tuli 4K-videotoistin, joka kykeni toistamaan 360 asteen videoita virtuaalitodellisuuslaseja varten. 

Unityn helppoa saavutettavuutta alettiin kritisoida, koska Steamin jakelualustalla julkaistiin paljon nopeasti tehtyjä kokemattomien kehittäjien pelejä. Toimitusjohtaja John Riccitiello sanoi haastattelussa uskovansa tämän olevan sivuvaikutus Unityn menestyksestä demokratisoida pelinkehitystä: "Jos minä saisin päättää, näkisin mielelläni yli 50 miljoonaa ihmistä käyttämässä Unitya -- joskin en usko, että saavutamme tätä kovinkaan pian. Haluaisin nähdä lukiolaisten ja yliopisto-opiskelijoiden käyttävän sitä, myös muidenkin kuin teollisuuden edustajien. Minusta on surullista, kuinka suurin osa ihmisistä on teknologian kuluttajia eikä tekijöitä. Maailma on parempi paikka, kun ihmiset tietävät kuinka luoda, eikä vain kuluttaa, ja sitä me yritämme edistää."

Unity 5 -versiosta on saatavana Debian-johdannaisille jakeluille kehitysversio.

## Unity (2017–)
Unity 2017 sisälsi tosiaikaisen grafiikan renderöintimoottorin, analytiikkaa suorituskyvyn analysointia varten, väriluokituksen ja työkaluja pelimaailman luomista varten. Unity 2017.2 korosti Unity Technologiesin pyrkimyksiä laajentua videopelien ulkopuolelle. Sen mukana tulivat Aikajana (*Timeline*), joka mahdollisti animaatioiden tuonnin hiirellä raahaamalla ja pudottamalla, sekä Cinemachinen, älykkään kamerajärjestelmän peleihin. Unity 2017.2 integroi myös Autodeskin 3DS Max- ja Maya -ohjelmistot Unityyn suoraviivaistaakseen 3D-mallien jakamista pelinkehityksen aikana.

Unityn C#-kielinen lähdekoodi julkaistiin maaliskuussa 2018 "vain viitteellisesti" lisensoituna, mikä kieltää muokkaamisen ja uudelleenkäytön.

## Unity 6
Lokakuussa 2024 julkaistiin Unity 6, jossa mainitaan merkittävää parannusta renderöintikuorman siirtämisessä tietokoneen suorittimelta grafiikkaprosessorille.

## Levinneisyys
Pelimoottoria käyttää noin 1,3 miljoonaa kehittäjää (vuonna 2012).
Pelimoottori on käytetympien joukossa Steam-palvelussa olevissa peleissä.
Unityllä on yli 50% osuus mobiilipelien markkinoista.

Pelimoottorin suosioon sanotaan vaikuttavan sen alustariippumattomuus ja minimaaliset lisensointikustannukset.

Syyskuussa 2023 Unity Technologies aiheutti kohua aikeista muuttaa lisensointia. Yhtiö ilmoitti myöhemmin muuttavansa suunnitelmia aiheesta syntyneen kohun jälkeen.

## Käyttö pelien ulkopuolella
2010-luvun lopulla Unity Technologies käytti pelimoottoriaan siirtyäkseen muille reaaliaikaista 3D-grafiikkaa käyttäville aloille, kuten elokuva- ja autoteollisuuteen. Unity ensin kokeili elokuvien tekemistä *Adamilla*, joka on vankilasta pakenevasta robotista kertova lyhytelokuva. Myöhemmin Unity teki yhteistyötä elokuvantekijä Neill Blokampin kanssa, jonka Oats Studios käytti pelimoottorin työkaluja, kuten tosiaikaista renderöintiä ja Cinemachinea, luodakseen kaksi tietokoneella tuotettua lyhytelokuvaa, *Adam: The Mirror* ja *Adam: The Prophet*. Vuoden 2017 Unite Europe -tapahtumassa Amsterdamissa Unity keskittyi elokuvantekoon Unityn version 2017.1 uudella Cinemachine-työkalulla. Vuonna 2018 Disney Television Animation julkaisi kolme *Baymax Dreams* -nimistä lyhytelokuvaa, jotka oli tehty Unity-pelimoottorilla . Disney myös käytti Unitya luomaan vuoden 2019 *[[Leijonakuningas (vuoden 2019 elokuva)| Leijonakuningas]]*-elokuvan taustat. 

Autovalmistajat käyttävät Unityn teknologiaa luodakseen täysimittaisia malleja uusista ajoneuvoista virtuaalitodellisuudessa, rakentaakseen virtuaalisia kokoonpanolinjoja ja kouluttaakseen työntekijöitä. Alphabet Inc:n DeepMind-yritys käyttää Unitya tekoälyohjelman kouluttamiseen. Muita Unity Technologiesin tavoittelemia käyttökohteita ovat muun muassa arkkitehtuuri, insinöörityö ja rakentaminen.

## Lähteet