Unity

**Unity** on integreeritud loomevahend 3D-videomängude või muusuguse interaktiivse sisu, näiteks arhitektuurivisualisatsioonide või animatsioonide loomiseks. Unity arenduskeskkond jookseb operatsioonisüsteemidel Microsoft Windows ja Mac OS X ning temaga saab luua mänge Windowsile, Macile, Xbox 360-le, Playstation 3-le, Wiile, iPadile, iPhone'ile ja Androidi platvormile. Sellega saab luua brauserimänge, mis kasutavad Unity veebipleieri tarkvaramoodulit. Neid toetavad Mac ja Windows, aga mitte Linux.

Unity koosneb redigeerimisprogrammist sisu loomiseks ja disainimiseks ning mängumootorist lõpptoote käivitamiseks. Unity meenutab programme Director, Blender (selle mängumootor), Virtools, Torque Game Builder ja Gamestudio, mis kasutavad samuti keskse loomismeetodina integreeritud graafilist keskkonda primaarse loomismeetodina.

Unity võitis Wall Street Journali 2010. aasta tehnoloogia innovatsiooni auhinna tarkvara kategoorias. 2009. aastal valis Gamasutra Unity Technologies aasta viie parima mänge tootva ettevõtte hulka Unity. Unity sai 2006. aasta Apple'i disainiauhinna – teise koha graafika kategoorias Mac OS X-il.

## Põhiomadused
* Integreeritud arenduskeskkond hierarhiliste, visuaalmonteerimisega, detailiseeritud omaduste inspektoritega ja otse mängu eelvaatega.
* Juurutamine mitmele platvormile:
# Microsoft Windowsi või Mac OS X-i täitmisprogrammile
# Veebis (Unity Web Playeri tarkvaramooduliga brauserites: Internet Explorer, Firefox, Safari, Mozilla Firefox, Netscape, Opera, Google Chrome ja Camino) Windowsil ja Mac OS X-ll.
# Mac OS X Dashboard vidinatele
# Nintendo Wiile (nõuab lisalitsentsi)
# iPhone'i/iPadi tarvikule (nõuab lisalitsentsi)
# Google Androidile (nõuab lisalitsentsi)
# Microsoft Xbox 360-le (nõuab lisalitsentsi)
# Sony Playstation 3-le (nõuab lisalitsentsi)
* Unitysse laaditud varad imporditakse automaatselt ja taasimporditakse, kui see vara uuendatakse. Unity toetab integreerimist programmidega: 3ds Max, Maya, Softimage, Blender, Modo, ZBrush, Cinema 4D, Cheetah3D, Photoshop ja Allegorithmic Substance.
* Graafikamootor kasutab Direct3D-d (Windows), OpenGL-i (Mac, Windows), OpenGL ES (iOS, Android) ning suletud API-sid (Wii).
* Unity toetab järgmisi graafika visualiseerimise meetodeid: *[[:en:Bump_mapping|bump mapping]], [[:en:Reflection_mapping|reflection mapping]], [[:en:Parallax_mapping|parallax mapping]], [[:en:Screen_space_ambient_occlusion|Screen Space Ambient Occlusion]]*, dünaamilised varjud (*[[:en:Shadow_mapping|shadow maps]]*), tekstuurile renderlus ja täisekraan järeltöötlus efektid.
* ShaderLab keel varjutajate kasutamiseks. 
* Sisseehitatud tugi Nvidia PhysX füüsikamootorile.
* Mängu programmeerimine Mono kaudu. Mono on vabavara rakendus .NET Frameworkist. Programmeerijad saavad kasutada UnityScript, C# või Boo programmeerimiskeelt.
* The Unity Asset Server
* Audiosüsteem ehitatud FMOD raamatukogule. Ogg Vorbis pakitud heli on toetatud.
* Video taasesitus kasutab Theora koodeksit.
* The Unity Asset Store – programmisisene varamu tuhandete Unity-valmis varadega: mudelitega, karakteritega, koodi, heli jne.

## Litsentsimine

Põhilitsentse on kaks: Unity ja Unity Pro; Pro versiooni eest tuleb maksta ja tavaline versioon on tasuta. Tasuta versioonis puuduvad tekstuurile renderlus, *[[:en:Hidden-surface_determination#Occlusion_culling|occlusion culling]]*, globaalne valgustus, järeltöötlusefektid ning võimalus töötada meeskonnaga interneti kaudu. Tasuta versiooniga kaasneb produktides vesimärk.

## Mängu mootor
Mängu mootor on süsteem, mis on kavandatud videomängude loomiseks ja arendamiseks. Konsoolidel ja personaalarbutitel töötama kavandatud mängu mootoreid on väga palju. See sisaldab tavaliselt renderdusmootorit 2D- või 3D-graafikaks, füüsikamootorit või kokkupõrke avastajat, heli, skriptimist, animatsioone, tehisintellekti, võrgundust, streamingut, mälu haldamist, threadingut, lokaliseerimise toetust ja stseeni graafikut (Stseeni graafik on andmestruktuur, mida kasutavad vektoripõhised graafikatöötlusrakendused ja tänapäeva arvutimängud).

### Riistvara üldistus
Enamasti on 3D-mootorid või renderdussüsteemid mängu mootorites ehitatud graafika API-le (API on arvuti operatsioonisüsteemiga või rakendusprogrammiga määratud reeglistik, mille alusel rakendusprogramm kasutab operatsioonisüsteemi või teise rakendusprogrammi teenuseid), näiteks Direct3D või OpenGL, mis annavad tarkvaralise üldistuse graafikakaardist (GPU). DirectX-i teised alamprogrammid nagu Simple DirectMEdia Layer(SDL), ja OpenAL on ka kasutusel mängudes, kuna nad pakuvad riistvara-iseseisvat ligipääsu ülejäänud arvutiriistvarale nagu näiteks sisendseadmetele (hiir, klaviatuur ja juhtkang), võrgukaardile ja helikaardile. Enne riistvara-kiirendatud 3D-graafikat kasutati tarkvara renderdeid.

## Unity puudused
### DirectX 11

Unity mängumootoril puudus DirectX 11 tugi, kuigi DirectX 11 on mängutööstuses paljutõotav tehnoloogia. Unity arendajad on teatanud, et sellega juba tegeletakse. Alates versioonist Unity4 on DirectX 11 tugi olemas.

### PlayStation Vita

Unity mängumootoril puudub tugi varsti müüki tulevale PlayStation Vita konsoolile, samal ajal kui konkureeriv Unreal Engine 3 on juba teatanud, et on vastava toe arendanud.

### Tehisintellekti rakendused

Unity mootoril puudub hetkel igasugune tehisintellekti implementeerimise tugi mängukeskkondades. Unity 11 Keynote konverentsil teatati, et rajaleidmine (*pathfinding*) ja rahvamasside simulatsioon (*crowd simulation*) implementeeritakse järgmises ehk Unity 3.5 versioonis. Samuti on saadaval lai valik tehisintellekti võimalusi lisav kolmanda osapoole tarkvara, näiteks RAIN – AI Engine'i mootor.

### Hävitatavad keskkonnad

Unity ei toeta seni mängus olevate 3D-objektide lõhkumist ehk hävitatavaid keskkondi mängumaailmas. Vaatamata sellele, et Unity toetab peaaegu kõiki Nvidia PhysX-i omadusi, puudub tugi APEX Destructioni tarkvarale. See on osa PhysX-i tarkvarast, mis määrab algoritmilised reeglid 3D-objektide lõhkumiseks mängija tegutsemise tagajärgede tõttu.

Unity mootor sisaldab siiski kooditeeki, mis võimaldab kasutajatel muuta kõigi mängu objektide kuju. Selle API abil on kolmandatel osapooltel võimalik luua kohandatud programme, mis lubavad objektide hävitamist ja lõhkumist, sellist võimalust pakub näiteks Piecemaker – Mesh Desctruction Asseti tarkvarapakett.

## Viited

## Välislingid
* (Unity Ametlik lehekülg)
* Unity Foorum (ametlik Unity kommuun)
* Unity Insider (saksa Unity kommuun)
* design3, Unity 
* What is a Game Engine?
* DirectX website
* http://www.webopedia.com/DidYouKnow/Hardware_Software/2005/directx.asp
* http://www.webopedia.com/TERM/A/API.html
* Unity Mängud