SlideShare a Scribd company logo
1 of 18
KAUNO TECHNOLOGIJOS UNIVERSITETAS
INFORMATIKOS FAKULTETAS
DARBAS SU UNITY VARIKLIUKU, JO GALIMYBĖS
Darbas Grupėje
Darbą atliko:
Martynas Diedonis,
Simonas Penkinas,
Tomas Kučinskas,
Martynas Mitka,
Liudas Butkus
KAUNAS, 2015
Terabaitai
2
Turinys
1. Įvadas.................................................................................................................................3
2. Vartotojo sąsaja (Martynas Mitka) ................................................................................4
 Vartotojo supažindinimas su programa .........................................................................4
 Minimalistinė, švari aplinka...........................................................................................5
 Tinkamai ir trumpai pavadinti funkciniai mygtukai ......................................................5
 Funkcijų / informacijos grupavimas ..............................................................................6
 Valdymas turi būti intuityvus.........................................................................................6
 Programa turi būti lengvai pasiekiama...........................................................................7
 Pasiruošti vartotojų klaidoms.........................................................................................7
 Sekti vartotojų apsiliepimus...........................................................................................8
3. Integruotos sistemos (Simonas Penkinas) .....................................................................9
 Fizika..............................................................................................................................9
 Audio............................................................................................................................10
4. Palaikomos platformos (Martynas Diedonis) .............................................................11
 Mono kūrimo platforma...............................................................................................11
 Grafikos, fizikos...........................................................................................................11
 Nuo platformos priklausanti kompiliacija(Platform dependent compilation) .............11
 Šešėliuoklės(Shader)....................................................................................................11
5. Programavimas įvairiomis kalbomis (Liudas Butkus).................................................12
6. Efektai (Tomas K učinskas) .........................................................................................13
 Medžiagos ....................................................................................................................13
 Šešėliuoklės..................................................................................................................13
 Tekstūros......................................................................................................................13
7. Greitis ir stabilumas (Tomas Kučinskas) ....................................................................14
8. Išvados .............................................................................................................................15
Terabaitai
3
1. Įvadas
Mes esame komanda „Terabaitai“. Esame žmonės, kurie yra susipažinę su Unity varikliuku, jo
aplinka ir tirme patirties dirbant šios technologijos aplinkoje.
Unity tai rinkoje įsitvirtinęs varikliukas, daugiausiai naudojamas žaidimų prototipams,
telefoninių žaidimų kūrimui, tačiau retai sutinkamas aukščiausio lygio kompiuteriniuose žaidimuose.
Ši technologija populiari savo įrankų intuityvumu ir greitu programų kūrimu.
Norėtume apžvelgi ir identifikuoti mums svarbiausias varikliuko savybes, kurios, mūsų
manymu, padarė Unity technologiją populiaria.
1 pav. Žaidimo prototipas
Terabaitai
4
2. Vartotojo sąsaja (Martynas Mitka )
Žaidimo kūrimo platformos pamatinis tikslas visada turėtų išlikti vienodas - supaprastinti ir
pagreitinti kūrėjų darbą, bei užtikrinti gerą galutinio produkto veikimą. Dėl šios priežasties platformų
kūrėjai nenorėdami prarasti konkurencingumo su kiekviena versija stengiasi optimizuoti savo
produktus, pridėti papildomų funkcijų, bei žinoma tuo pačiu metu stengtis, kad visa tai vartotojui būtų
pateiktą patogiai ir aiškiai. Nors dažniausia viešai išafišuojami pirmieji punktai susiję su platformos
galimybėmis, tačiau būtent pastarasis(vartotojo sąsajos) aspektas lemia platformos sėkmę. Kad ir
kokia puiki platforma bebūtų, niekas ja nesinaudos, jei tai daryti bus ypatingai sudėtinga. Šioje srityje
labai sėkmingai dirba Unity komanda, su tokio pačio pavadinimo nemokama žaidimų kūrimų
platforma. Vienas pagrindinių šios platformos pranašumu prieš kitas yra būtent sugebėjimas tinkamai
pateikti produktą ir įrankius visiems suprantamu būdu ir taip supaprastinti kūrėjų darbą.
Dažnai gera vartotoja sąsaja tampa tada, kai ne tik puikiai išpildoma viena ar kita
rekomendacija, o tada, kai visa programa veikia dinamiškai, jos valdymas natūraliai įsilieją į darbą,
tampa nepastebimas ir ji pati nesukelia papildomu sunkumų vartotojui. Šis tikslas gali būti
pasiekiamas protingai įgyvendinat viešojoje erdvėje jau labai aiškiai suformuotus patrauklios
vartotojo sąsajos, angliškai -„user interface“ (vėliau tiesiog UI) principus, pagal kuriuos ir nagrinėsiu
Unity UI sistemą. Stengsiuosi panagrinėti kiekvieną aspektą atskirai ir savo pastebėjimais įvertinti ar
šių principų laikomasi, galbūt Unity komanda sugalvojo dar profesionalesnių būtų juos realizuoti.
Taigi štai šie principai, kuriais vadovaujantis pagal viešojoje erdvėje prieinamus šaltinius galima
sukurti puikią UI sistemą:
 Vartotojo supažindinimas su programa
2 pav. Mokomoji medžiaga
Šioje srityje Unity komanda atrodo bene stipriausia, neminint to, kad šį platformą turi
milžinišką bendruomene, kuri noriai dalinasi savo patirtimi, jos kokybiška mokymo sistemą leidžia
Terabaitai
5
labai patogiai ir greitai susipažinti su žaidimo platforma. Pradedantiesiems skirta ypač daug dėmesio,
jiems sukurta ištisa mokymo programa video formatu youtube svetainėje, kurioje pradedantysis yra
supažindinamas su pagrindinėmis funkcijomis, palaipsniui einama prie sudėtingesnių dalykų.
Lygiagrečiai yra pateikiami baziniai modeliai, su kuriais Unity leidžia lengvai ir nemokamai
eksperimentuoti vartotojams ir taip praktiniu būdu greičiau ir giliau įsisavinti informaciją. Norintiems
gilintis į labiau specifinius dalykus yra pateikiamos nuorodos į šaltinius kuriuose jie gali gauti daugiau
žinių. Vartotojas nuo pat pradžių neišsigąsta galybės aplink esančių įrankių, nes visada žino kur gali
gauti papildomos informacijos. Vartotojo apmokymo srityje Unity kartelę iškėlusi tikrai aukštai, tokią
gerą apmokymų sistemą pateikti sugeba tik vienetiniai produktai, todėl tai yra didelė UI sistemos
pasisekimo priežastis
 Minimalistinė, švari aplinka
Kiekvienas darbo langas turi būti lengvai skaitomas ir neapkrautas papildomomis dėtelėmis,
kurios smarkiai vargina ir blaško vartotoją. Todėl patartina visuose languose išlaikyti minimalistinį
stilių. Kadangi Unity UI sistemoje esama didelis kiekis skirtingų pasirenkamųjų funkcijų, visiško
minimalizmo tikėtis negalima. Tačiau nepasakyčiau, kad principas liko neišpildytas visai. Atsisakyta
papildomų ornamentinių detalių, įrankių bei papildomų langų kombinacijas galima susidėlioti
visiškai rankiniu būdu, pagal kiekvieno poreikius. Tai suteikia vartotojui galimybę susikurti būtent
jam patogią aplinka, neapkraunant ekrano dėmesnį blaškančiais langais. Sveikintina ir tai, jog spalvų
gama pagrindinėje temoje susideda iš kontrastingu ir blankesnių atspalvių, kas platformai ir suteikia
lengvumo jausmą ir iš dalies kompensuoja tą triukšmą, kurį mūsų akims suteikia nemažas kiekis
mygtukų.
3 pav. Darbinė aplinka
 Tinkamai ir trumpai pavadinti funkciniai mygtukai
Vartotojo sąsajoje nemaža dalis informacijos perduodama ne tik vaizdais, bet ir tekstu. Todėl
būtina atsižvelgti, kad kiekvienas mygtukas būtų pavadintas prasmingai ir visiems suprantamai.
Kadangi dauguma komandų šioje platformoje yra gan standartiškos, tai kūrėjams nereikėjo ilgai
kvaršinti sau galvos, o jei ir reikėjo tai jų darbas nenuėjo veltui. Dažnas vartotojas mestelėjęs akį į
mygtuką iškart supranta kokia jo paskirtis, o jei ir iškylą klausimų, tai visada galima pritraukus savo
Terabaitai
6
pelytės žymekli prie mygtuko ir išvysti platesnį paaiškinimą su pavyzdžiais. Taigi Unity
pasinaudodama standartinių kitų platformų pavydžių puikiai pritaikė šį principą savo platformoje.
 Funkcijų / informacijos grupavimas
Bet kokiam žmogui visą informacija įsisavinti daug lengviau, kai ji suskirstoma į tam tikras
grupes, dažniausia pagal panašią ypatybę ar logine seką. Todėl, kad vartotojo sąsaja būtų efektyvi
svarbu visas platformos funkcijas suskirstyti į tam tikrus
blokus, kad vartotojui būtų kuo paprasčiau orientuotis ir
naviguoti platformos viduje tarp skirtingų savo prasme
funkcijų. Unity šioje srityje įgyvendino gan inovatorišką
idėją ne tik visą informaciją tvarkingai ir pagal gan
aiškias logines prasmes sugrupuoti blokais, langais, bet
ir kurti atskirus tokių blogų modulius, kurie gali būti
prijungti pasirinktinai pagal kūrėjo norus. Tai sutaupo
daug laiko, kai kuriamos standartinės žaidimų scenos,
nes pasirinkus visą modulį iš platformos patogioje vietoje
atkeliami visi potencialiai vartotojui reikalingi įrankiai.
Tarkim, kai dirbama su scenos fonu, galima vienu metu
pasirinkti tekstūrą, ją apdoroti su vietoje esančiais
įrankiais, pakeisti tekstūros atspalvį, matomumą. Žodžių
visi potencialiai reikalingi įrankiai yra pateikiami viename funkcijų bloke, ir vartotojui nereikia
ieškoti kiekvieno įrankio atskirai. Tai užtikrina patogų vartotojo darbą ir prideda didelį pliusą šiai
žaidimų platformai.
 Valdymas turi būti intuityvus
Vartotojui daug patogiau dirbti su programa kuri yra panaši į kitas, jau egzistuojančias
programas. Būtent dėl to dauguma šių laikų vartotojų sąsajos sistemų iš pirmo žvilgsnio yra
tarpusavyje labai panašios. Ne išimtis ir Unity UI sistema, kuri turi standartinio („Tab“) stiliaus
įrankių juostą. Naudotojui intuityviai bus aišku, kaip išsaugoti ar atsidaryti failą. Unity taip pat
neblogai išvystė ir „drag and drop“ sistemą. Pradedant nuo tiesioginio modelio įkelimo į žaidimo
kurimo scena, modelių transformacijų atlikimo iki darbo langų kilnojimo iš vienos pozicijos į kitą.
4 pav. Komponentų grupavimas
Terabaitai
7
 Programa turi būti lengvai pasiekiama
Gan paprasta, bet svarbi detalė. Neatkreipus į tai dėmesio, galima gan skaudžiai nudegti. Kiek
vartotojų kantybės galėtų atimti, tai jog kiekvieną kartą naudojantis programą reikėtų paspausti
dešimt skirtingų mygtukų. Mes mėgstame paprastuma ir greituma, nors tai gal ir teužimtų kelias
papildomas sekundes. Unity ėmesi gan gudrios strategijos šioje dalyje, tačiau naudojantis programa
vis tiek pastebėtume šiek tiek nesklandumu šioje sirtyje. Pagrinde norint patekti į norimą projektą
užtenka spustelti kelis kartus ir tu jau norimame žaidimi projekte, visas papildomos parinktys, jei
tokių reikia jau galima rasti ieškant rankiniu būdu. Tačiau, kai atsiranda platformos atnaujinimai ar
skelbiama reklaminio pobudžio informacija ši procedura gali šiek tiek suerzinti, nes atsiranda keli
papildomi langai.
 Pasiruošti vartotojų klaidoms
Kartais visiems, o dažniausia naujokams pasitaiko atveju, kai netyčia ar iš nežinojimo
pradanginame duomenis ar failus su kuriais dirbame. Tokios klaidoms išvengti kuriamos papildomos
apsaugos sistemos. Viena paprasčiausiu, tai papildomas langas kuris aiškiai paklausia ar tikrai norime
atlikti vienokius ar kitokius pakeitimus. Kas ypatinga Unity žaidimų platformoje, tai jog šie
apribojimai apgalvoti labai gerai, išvengta daug vartotojo loginių klaidų, yra būdas viska perstatyti į
„default“ reikšmes. Pavyzdžiui, jei vartotojas dirba su vieno tipo modeliais sistema neleis pritaikyti
kito tipo savybių. Dar vienas didesnių pliusų, tai jog yra galimybė automatiškai saugoti projektus
virtualiame projekte, taigi sumažėja duomenų praradimo rizika. Tačiau, kad ir kokie apribojimai
galioje šioje platformoje, tai jokiu būdu nevaržo kūrėjo laisvės, tiesiog palengvina komunikavimą su
platforma.
5 pav. Valdymo įrankiai
Terabaitai
8
 Sekti vartotojų apsiliepimus
Svarbi tobulėjimo dalis yra pastovus trūkumų ieškojimas ir šalinimas. Tam
pasitelkiami testuotojai, tačiau naudingiausi atsiliepimai būna ir pačių vartotojų.
Būtent dėl šios priežasties Unity turi gerą klientų aptarnavimo ir atsiliepimų
rinkimų sistemą, kuri glaudžiai susėjusi su žaidimo kūrimo platforma. Kiekvienas
gali patogiai ir greit parašyti savo apsiliepimas, klaidų pastebėjimus ar
nusiskendimus, kad platforma galėtų būti toliau tobulinama. Abipusė nauda
visada gerai, todėl toks Unity strategijos kūrimas yra pagirtinas.
6 pav. Pagalbinis meniu
Terabaitai
9
3. Integruotos sistemos (Simonas Penkinas)
 Fizika
Norint suteikti žaidimui didesnį realumo jausmą, objektas žaidime turi tinkamai įsibegėti, turi
būti veikiamas susidūrimų, žemės traukos ir kitų jėgų. Programoje „Unity“ esantys fizikos varikliukai
suteikia komponentus, kurie sukuria fizinę imitaciją. Įrašius kelis parametrus, sukuriamas pasyvus
objektas, kuris elgiasi realistiškai – yra veikiamas susidūrimų ir kritimų, bet pats objektas
spontaniškai nejuda. Redaguojant objekto parametrus, galima objektui suteikti dinamiką, panašią į
automobilio arba net judančios šluostės.
„Unity“ egzistuoja du fizikos varikliukai. Vienas yra trijų dimensijų fizikai, o kitas – dviejų.
Pagrindinė idėja yra ta pati, tik jie įgyvendinami su skirtingom detalėm. Pavyzdžiui, „Unity“ yra
įtaisytas Rigidbody (standusis komponentas) ir Rigidbody 2D.
Rigidbody(angl. standusis komponentas) yra pagrindinė detalė, kuri suteikia fizinį
funkcionavimą objektui. Sukurtas standusis objektas iš karto paklus gravitacjos jėgai. Jeigu yra vienas
ar daugiau Collider (susidūrimo komponentų) tada standusis objektas bus veikiamas susidūrimų.
7 pav. Fizikinė objekto reprezentacija
Rigidbody yra judinamas dviejų dimensijų fizikos varikliuko. Tai yra daroma veikiant objektą
kokia nors jėga, kuri verčia patį objektą pasisukti ar pakeisti poziciją. Rigidbody turi savybę, kuri
leidžia objektui pereiti į „miego“ būseną, kai jis juda mažesniu nei nustatytu minimaliu linijiniu ar
sukamuoju greičiu. Tada varikliukas supras, kad objektas nejuda. Kitą kartą objektas pajudės, kai jį
paveiks susidūrimas ar jėga. „Miego“ būsenoje esančiam objektui bus skirta mažiau procesoriaus
darbo iki tol, kol objektas bus „pažadintas“.
Collider (angl. susidūrimo komponentai) nusako objekto formą dėl fizinio susidūrimo tikslų.
Žaidime šis komponentas nebūtinai turi būti tos pačios formos kaip ir pats objektas. Net atvirkščiai –
suapvalinimas yra efektyvesnis žaidimo metu.
Paprasčiausi ir mažiausiai procesoriaus darbo reikalaujantys, Collider komponentai vadinami
primityviaisiais. Trijose dimensijose jie yra: Box (dėžės), Sphere (sferos), Capsule (kapsulės).
Dviejose dimensijose yra naudojami: Box 2D ir Circle (apskritimo). Į objektą galima jų įdėti neribotą
skaičių, norint sukurti sudėtinius susidūrimo komponentus. Kruopščiai dėliojant Collider galima gan
gerai sukurti objekto formą ir neapkrauti procesoriaus darbo. Tačiau, norint gauti dar didesnį tikslumą
galima objektui suteikti Mesh Colliders (tinklelinius susidūrimo objektus) trijose dimensijose, o
Terabaitai
10
dviejose dimensijose – Polygon Collider 2D. Šie Collider komponentai apkraus procesorių žymiai
didesniu darbu.
Galima sujungti du Rigidbody objektus naudojant Joint (jungtį). Jų yra 2 rūšys: Hinge (ašinis)
leidžia objektams suktis aplink jungtį, o Spring išlaiko objektus atskirais bet leidžia tarp jų sukurti
nedidelį, slankiojantį atstumą. Jiems galima nustatyti jėgos ribą, kurią viršijus, jungtis trūks, arba
galima priversti objektus suktis aplink jungtį.
 Audio
Žaidimas negali būti be garso, nesvarbu, ar tai fono muzika ar garso effektai. „Unity“ audio
sistema yra lankti ir galinga. Ji gali atkurti daugelį standartinių audio formatų ir gali atkurti garsus
3D erdvėje tokius kaip aidas. „Unity“ taip pat gali įrašyti garsus. „Unity“ taip pat leidžia naudoti
trečios šalies įskiepius.
8 pav. Garso sistema
Norint skleisti iš objekto garsą, reikia prie objekto sukurti Audio Source (garso šaltinį). Tuomet
jo skleidžiami garsai yra įrašomi Audio Listener (garso imtuvo), kuris yra pritvirtintas prie kito
objekto. Tarp jų susidariusį atstumą gali panaudoti kuriant Doplerio efekto simuliaciją sustiprintam
realumo jausmui.
Terabaitai
11
4. Palaikomos platformos (Martynas Diedonis)
Platformų sąrašas: iOS Android, Windows Phone, BlackBerry, Windows, Windows Store
Apps, Mac OS X, Linux, PS 3, Xbox 360, Wii U, PS 4, Xbox One, Tizen, SamsungTV, PS
Vita, Gear VR, Oculus Rift, WebGL.
 Mono kūrimo platforma
Mono yra laisvai naudojama kūrimo platforma, kuri leidžia kurti cross-platform programas C#
kalba. Ji buvo sukurta .NET Framework pagrindu. Mono sudaro C# kompiliatorius, Mono Runtime,
ji implementuoja Common Language Infrastructure(CLI), pagrindines klasių bibliotekas(Base Class
Library), Mono Class Library tai sudaro Gtk+, zip failų, LDAP, OpenGL ir daug kitų klasių.
Mono yra labai populiarus, rasi be galo daug pamokų, knygų, tinklapių. Taip pat an Mono
kūrimo platforma automatiškai skirsto atmintį, paskirsto darbą per kelis procesorius.
 Grafikos, fizikos
Unity palaikančios grafikos aplikacijų programavimo sąsajos(API): OpenGL, OpenGL,
WebGL, Metal ir DirectX ir kiekviena iš jų yra skirta tam tikroms platformoms.
OpenGL yra pagrinde naudojama MacOS X ir kituose iOS prietaisuose, taip pat gali būti
naudojamas ir Linux, Windows platformoms, mobiliesiems prietaisams.
WebGL yra skirtas tinklapiams skirtų žaidimų kūrimui, kuris pašalina reikalavimą turėti Flash
ir Unity web player.
Metal yra naujas Apple grafinis API, tinkantis iOS prietaisams.
DirectX yra Microsoft kurtas grafinis API, kuris tinka Windows, Windows Phone ir Xbox.
Unity pastiki tik vieninteliu įrankiu, kuriant fizikas žaidimuose Nvidia PhysX, kuris palaiko
visas anksčiau išvardintas platformas.
 Nuo platformos priklausanti kompiliacija(Platform dependent compilation)
Unity variklis turi labai naudingą funkciją, kuri leidžia tam tikras kodo dalis leisti kompiliuoti
tik tam tikroms platformoms. Ši komanda gali veikti visose Unity palaikomose platformose. Dažnai
iškylantis klausimas yra: Ar parašytas „Platform dependent compilation“ kodas yra matomas kitose
platformose? Ne, bet priklauso nuo programavimo kalbos ar klasės egzistuos. Unityscript sukurią
tuščia klasę, o C# ne.
 Šešėliuoklės(Shader)
Unity taip pat sugeba sukūrtus šešėliuokles naudoti kitose platformose, kur šešėliuoklės kalba
visiškai skiriasi. Yra 2 populiariausios šešėliuoklių kalbos: HLSL ir GLSL. HLSL yra pagrinde
naudojama su Direct3D, Xbox 360 ir Playstation 3. GLSL yra naudojama mobiliuosiuose
įrenginuose(OpenGL ES 2.0), Mac OS X(OpenGL) ir WebGL. Unity variklyje pagrinde yra
naudojama HLSL kalba, Unity sugeba konvertuoti HLSL į GLSL. Seniau šis būdas buvo labai
neoptimizuotas, bet buvo sukurti kompiliatoriai, kurie optimizuodavo konvertuotą GLSL kodą.
Terabaitai
12
5. Programavimas įvairiomis kalbomis (Liudas Butkus)
Norint panaduoti visas Unity variklio
galimybes būtina mokėti programuoti viena iš
palaikomų programavimo kalbų: C#, UnityScript
arba Boo.
Pagal populiarumą jos išsidėsčiusios štai
taip. Net 80,4% Unity vartotojų naudoja C#,
18,9% vartotojų naudoja UnityScript ir 0,44%
vartotojų naudoja Boo.
C# tai C kalbų grupės kalba plačiai
naudojama visame pasaulyje, todėl ji ir yra pati
populiariausia.
UnityScript tai JavaScript atmaina
pritaikyta darbui su Unity, JavaScript taipogi yra
labai populiari programavimo kalba naudojama
internetinių puslapių kūrime, bet mano nuomone, kadangi Unity nenaudoja bendros JavaScript
kalbos, o naudoja jos atmainą UnityScript, tai ir jos populiarumas nėra labai didelis.
Boo tai programavimo kalba apie kuria jūs tikriausiai nieko nesate girdėję, tai atsispindi ir jos
populiarumo procente. Ji sintaksiškai yra panaši į geriau žinomą Python programavimo kalbą.
Dėl mažo Boo kalbos populiarumo Unity komanda nustojo kurti jai skirtą mokomąją medžiagą.
Taigi kurią programavimo kalbą pasirinkti? Jeigu jau esate programavę C kalbų grupės kalba
(C, C++,etc.) tai C# bus jums artimiausia. Jeigu esate susidūrę su puslapių kūrimu ir JavaScript
kodais, tai manau nebus sunku idėjus šiek tiek laiko išmokti UnityScript niaunsus. Na o jeigu
mėgstate iššūkius ir norite išmokti dar vieną programavimo kalbą tai mokykitės Boo.
Betkokiu atvėju jums bus prieinamos visos Unity variklio galimybės.
9 pav. Programavimo kalbų populiarumas
Terabaitai
13
6. Efektai (Tomas Kučinskas)
Unity varikliukas atvaizduoja objektus jiems priskirdamas medžiagas(Material),
šešėliuokles(Shaders) ir tekstūras. Šios trys sąvokos yra glaudžiai susijusios.
10 pav. Scena naudojanti efektus
 Medžiagos
tai yra objektai, kurie nurodo varikliukui, kaip objektas turėtų būti
piešiamas. Jame sudėtos modeliui priklausančios tekstūros, spalvos ir kiti
parametrai. Šių parinkčių skaičius priklauso nuo medžiagos šešėliuoklės.
 Šešėliuoklės
tai mažos programos, kurios apdirba smulkius grafikos elementųs
pritaikydamos matematinius algoritmus. Šie kodai gali keisti modelio taškų
padėtį, ekrano pikselių spalvą, modelio primityvų(trikampių) padėtį, pragerinti
modelio detalumą ir t.t.
 Tekstūros
yra paveiksliukai, siunčiami į šešėliuoklę. Šie objektai gali nuspalvoti
objektą nemonotonišku užpildu, nurodyti ypatingas modelio
vietas(švytinčios, atspindžios vietos) arba gali būti panaudoti
netradiciniais būdais.
Unity varikliukas turi standartinių efektų biblioteką. Joje galima
rasti nuo paprastų efektų, skirtų modeliams atvaizduoti iki ekrano
efektų. Neradęs tinkamo efekto, programos kūrėjas gali parašyti savo
efektą. Šiam tikslui pasiekti naudojama speciali programavimo kalba
„ShaderLab“. Pragramuotojas gali rašyti viršūnių, pikselių,
geometrijos, paviršiaus ir skaičiavimų šešėliuokes.
11 pav. Darbas su medžiagomis
12 pav. Kailio šešėliuoklė
13 pav. Vizualinis darbas su šešėliuklėmis
Terabaitai
14
7. Greitis ir stabilumas (Tomas Kučinskas)
Unity varikliuko pasižymi ypatingu
stabilumu. Programos veikimo metu rasti
klaidingi moduliai yra automatiškai išjungiami,
neegzistuojantys resursai nenaudojami, o pati
programa veikia toliau. Mūsų komandos
patirtis taip pat liudija apie varikliuko
atsparumą klaidoms ir nenumatytiems
atvejams.
Daugelio žaidimų kūrėjų nuomone,
Unity varikliukas nepasižymi spartumu.
Ypatingas nepasitenkinimas yra išreiškiamas
telefoninių žaidimų kūrėjų. Dažniausiai
problemos kyla naudojant 3D grafikos
komponentus. Vis dėl to technologijos kūrėjai pripažįsta spartos problemas ankstesnėse versijose ir
išleidžiant naują versiją, didelis dėmesys yra skiriamas programos veikimo greičio spartinimui. Taip
pat Unity 3D kūrėjai pastebi, kad programuotojai naudoja blogas programavimo praktikas todėl
varikliuko dokumentacijoje galima rasti naudingų patarimų kaip pagreitinti programos spartą.
14 pav. Unity greičio raidos palyginimas
Terabaitai
15
8. Išvados
Unity technologija nuolat tobulėja. Patrauklus varikliukas kasmet pritraukia vis daugiau
žaidimų kūrėjų. Stabilumą ir solidumą užtikrina užtikrina geriausios žaidimų industrijos
technologijos. Be abejo galima teigti, kad Unity3D varikliukas dar ilgai bus tobulinamas ir
palaikomas įvairių platformų.
Terabaitai
16
Šaltiniai
http://www.ambysoft.com/essays/userInterfaceDesign.html
http://usabilitypost.com/2009/04/15/8-characteristics-of-successful-user-interfaces/
http://blogs.unity3d.com/2014/09/03/documentation-unity-scripting-languages-and-you/
http://docs.unity3d.com/Manual/Shaders.html
http://docs.unity3d.com/Manual/ShadersOverview.html
http://answers.unity3d.com/questions/920984/bad-performance-on-certain-android-devices.html
http://forum.unity3d.com/threads/very-poor-performance-on-android-after-upgrading-to-unity-
5.306572/
http://docs.unity3d.com/Manual/MobileOptimizationPracticalGuide.html
http://docs.unity3d.com/Manual/OptimizingGraphicsPerformance.html
Terabaitai
17
Iliustracijų sąrašas
1 pav. Žaidimo prototipas ..........................................................................................................3
2 pav. Mokomoji medžiaga........................................................................................................4
3 pav. Darbinė aplinka ...............................................................................................................5
4 pav. Komponentų grupavimas ................................................................................................6
5 pav. Valdymo įrankiai.............................................................................................................7
6 pav. Pagalbinis meniu .............................................................................................................8
7 pav. Fizikinė objekto reprezentacija .......................................................................................9
8 pav. Garso sistema ................................................................................................................10
9 pav. Programavimo kalbų populiarumas ..............................................................................12
10 pav. Scena naudojanti efektus.............................................................................................13
11 pav. Darbas su medžiagomis...............................................................................................13
12 pav. Kailio šešėliuoklė ........................................................................................................13
13 pav. Vizualinis darbas su šešėliuklėmis..............................................................................13
14 pav. Unity greičio raidos palyginimas ................................................................................14
Terabaitai
18
Terminai
Aplinka, 3, 5
Audio Listener, 10
Audio Source, 10
Boo, 12
C#, 11, 12
Collider, 9
DirectX, 11
GLSL, 11
HLSL, 11
Medžiagos, 13
Metal, 11
OpenGL, 11
Rigidbody, 9, 10
Šešėliuoklės, 11, 13
Technologija, 3, 15
Tekstūros, 13
Unity, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15
UnityScript, 12
Varikliukas, 3, 9, 13, 14, 15
WebGL, 11

More Related Content

Similar to Terabaitai referatas

World Usability Day 2011
World Usability Day 2011World Usability Day 2011
World Usability Day 2011Idea Code
 
5 būdai dalintis verslo analitikos įžvalgomis
5 būdai dalintis verslo analitikos įžvalgomis5 būdai dalintis verslo analitikos įžvalgomis
5 būdai dalintis verslo analitikos įžvalgomisDay Q
 
P. Litvinas. OpenGeo Suite - atvira platforma jūsų sprendimams. GIS - paprast...
P. Litvinas. OpenGeo Suite - atvira platforma jūsų sprendimams. GIS - paprast...P. Litvinas. OpenGeo Suite - atvira platforma jūsų sprendimams. GIS - paprast...
P. Litvinas. OpenGeo Suite - atvira platforma jūsų sprendimams. GIS - paprast...opengislt
 
Daina GUDONIENĖ, Danguolė RUTKAUSKIENĖ. Masinių atvirų internetinių kursų tei...
Daina GUDONIENĖ, Danguolė RUTKAUSKIENĖ. Masinių atvirų internetinių kursų tei...Daina GUDONIENĖ, Danguolė RUTKAUSKIENĖ. Masinių atvirų internetinių kursų tei...
Daina GUDONIENĖ, Danguolė RUTKAUSKIENĖ. Masinių atvirų internetinių kursų tei...Lietuvos kompiuterininkų sąjunga
 
Biz miz o1 m8_u8.1_r1_lt
Biz miz o1 m8_u8.1_r1_ltBiz miz o1 m8_u8.1_r1_lt
Biz miz o1 m8_u8.1_r1_ltSiiviPahapill
 

Similar to Terabaitai referatas (6)

World Usability Day 2011
World Usability Day 2011World Usability Day 2011
World Usability Day 2011
 
PI_11paskaita
PI_11paskaitaPI_11paskaita
PI_11paskaita
 
5 būdai dalintis verslo analitikos įžvalgomis
5 būdai dalintis verslo analitikos įžvalgomis5 būdai dalintis verslo analitikos įžvalgomis
5 būdai dalintis verslo analitikos įžvalgomis
 
P. Litvinas. OpenGeo Suite - atvira platforma jūsų sprendimams. GIS - paprast...
P. Litvinas. OpenGeo Suite - atvira platforma jūsų sprendimams. GIS - paprast...P. Litvinas. OpenGeo Suite - atvira platforma jūsų sprendimams. GIS - paprast...
P. Litvinas. OpenGeo Suite - atvira platforma jūsų sprendimams. GIS - paprast...
 
Daina GUDONIENĖ, Danguolė RUTKAUSKIENĖ. Masinių atvirų internetinių kursų tei...
Daina GUDONIENĖ, Danguolė RUTKAUSKIENĖ. Masinių atvirų internetinių kursų tei...Daina GUDONIENĖ, Danguolė RUTKAUSKIENĖ. Masinių atvirų internetinių kursų tei...
Daina GUDONIENĖ, Danguolė RUTKAUSKIENĖ. Masinių atvirų internetinių kursų tei...
 
Biz miz o1 m8_u8.1_r1_lt
Biz miz o1 m8_u8.1_r1_ltBiz miz o1 m8_u8.1_r1_lt
Biz miz o1 m8_u8.1_r1_lt
 

More from Liudas Butkus

Datum - Secure and Monetize Your Digital Life
Datum - Secure and Monetize Your Digital LifeDatum - Secure and Monetize Your Digital Life
Datum - Secure and Monetize Your Digital LifeLiudas Butkus
 
Efektai / Greitis ir stabilumas
Efektai / Greitis ir stabilumasEfektai / Greitis ir stabilumas
Efektai / Greitis ir stabilumasLiudas Butkus
 
Unity Scriptingas įvairiomis kalbomis
Unity Scriptingas įvairiomis kalbomisUnity Scriptingas įvairiomis kalbomis
Unity Scriptingas įvairiomis kalbomisLiudas Butkus
 
Unity integruotos-sistemos
Unity integruotos-sistemosUnity integruotos-sistemos
Unity integruotos-sistemosLiudas Butkus
 
Pilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijoje
Pilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijojePilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijoje
Pilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijojeLiudas Butkus
 
6 Ways to Make People Open Your Emails
6 Ways to Make People Open Your Emails6 Ways to Make People Open Your Emails
6 Ways to Make People Open Your EmailsLiudas Butkus
 
Animatics Create and Deliver Inexpensive Visual Marketing Messages
Animatics Create and Deliver Inexpensive Visual Marketing MessagesAnimatics Create and Deliver Inexpensive Visual Marketing Messages
Animatics Create and Deliver Inexpensive Visual Marketing MessagesLiudas Butkus
 
4 Steps to Success for Video Marketing Virgins
4 Steps to Success for Video Marketing Virgins4 Steps to Success for Video Marketing Virgins
4 Steps to Success for Video Marketing VirginsLiudas Butkus
 
How To Effectively Use Facebook As A Marketing Tool
How To Effectively Use Facebook As A Marketing ToolHow To Effectively Use Facebook As A Marketing Tool
How To Effectively Use Facebook As A Marketing ToolLiudas Butkus
 
10 Steps To Success In Social Media Marketing For Your Business
10 Steps To Success In Social Media Marketing For Your Business10 Steps To Success In Social Media Marketing For Your Business
10 Steps To Success In Social Media Marketing For Your BusinessLiudas Butkus
 
Social Media Marketing Confusing You? Help Is Here!
Social Media Marketing Confusing You? Help Is Here!Social Media Marketing Confusing You? Help Is Here!
Social Media Marketing Confusing You? Help Is Here!Liudas Butkus
 
Business Insurance for Natural Disasters
Business Insurance for Natural DisastersBusiness Insurance for Natural Disasters
Business Insurance for Natural DisastersLiudas Butkus
 
Why Google Scares People
Why Google Scares PeopleWhy Google Scares People
Why Google Scares PeopleLiudas Butkus
 
Business Writing - Choosing the Right Words
Business Writing - Choosing the Right WordsBusiness Writing - Choosing the Right Words
Business Writing - Choosing the Right WordsLiudas Butkus
 
RFID Wristbands And Social Media Check-Ins - 3 New Trends
RFID Wristbands And Social Media Check-Ins - 3 New TrendsRFID Wristbands And Social Media Check-Ins - 3 New Trends
RFID Wristbands And Social Media Check-Ins - 3 New TrendsLiudas Butkus
 
A Brief History of Modern Board Gaming
A Brief History of Modern Board GamingA Brief History of Modern Board Gaming
A Brief History of Modern Board GamingLiudas Butkus
 

More from Liudas Butkus (17)

Datum - Secure and Monetize Your Digital Life
Datum - Secure and Monetize Your Digital LifeDatum - Secure and Monetize Your Digital Life
Datum - Secure and Monetize Your Digital Life
 
Prezentacija
Prezentacija Prezentacija
Prezentacija
 
Efektai / Greitis ir stabilumas
Efektai / Greitis ir stabilumasEfektai / Greitis ir stabilumas
Efektai / Greitis ir stabilumas
 
Unity Scriptingas įvairiomis kalbomis
Unity Scriptingas įvairiomis kalbomisUnity Scriptingas įvairiomis kalbomis
Unity Scriptingas įvairiomis kalbomis
 
Unity integruotos-sistemos
Unity integruotos-sistemosUnity integruotos-sistemos
Unity integruotos-sistemos
 
Pilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijoje
Pilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijojePilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijoje
Pilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijoje
 
6 Ways to Make People Open Your Emails
6 Ways to Make People Open Your Emails6 Ways to Make People Open Your Emails
6 Ways to Make People Open Your Emails
 
Animatics Create and Deliver Inexpensive Visual Marketing Messages
Animatics Create and Deliver Inexpensive Visual Marketing MessagesAnimatics Create and Deliver Inexpensive Visual Marketing Messages
Animatics Create and Deliver Inexpensive Visual Marketing Messages
 
4 Steps to Success for Video Marketing Virgins
4 Steps to Success for Video Marketing Virgins4 Steps to Success for Video Marketing Virgins
4 Steps to Success for Video Marketing Virgins
 
How To Effectively Use Facebook As A Marketing Tool
How To Effectively Use Facebook As A Marketing ToolHow To Effectively Use Facebook As A Marketing Tool
How To Effectively Use Facebook As A Marketing Tool
 
10 Steps To Success In Social Media Marketing For Your Business
10 Steps To Success In Social Media Marketing For Your Business10 Steps To Success In Social Media Marketing For Your Business
10 Steps To Success In Social Media Marketing For Your Business
 
Social Media Marketing Confusing You? Help Is Here!
Social Media Marketing Confusing You? Help Is Here!Social Media Marketing Confusing You? Help Is Here!
Social Media Marketing Confusing You? Help Is Here!
 
Business Insurance for Natural Disasters
Business Insurance for Natural DisastersBusiness Insurance for Natural Disasters
Business Insurance for Natural Disasters
 
Why Google Scares People
Why Google Scares PeopleWhy Google Scares People
Why Google Scares People
 
Business Writing - Choosing the Right Words
Business Writing - Choosing the Right WordsBusiness Writing - Choosing the Right Words
Business Writing - Choosing the Right Words
 
RFID Wristbands And Social Media Check-Ins - 3 New Trends
RFID Wristbands And Social Media Check-Ins - 3 New TrendsRFID Wristbands And Social Media Check-Ins - 3 New Trends
RFID Wristbands And Social Media Check-Ins - 3 New Trends
 
A Brief History of Modern Board Gaming
A Brief History of Modern Board GamingA Brief History of Modern Board Gaming
A Brief History of Modern Board Gaming
 

Terabaitai referatas

  • 1. KAUNO TECHNOLOGIJOS UNIVERSITETAS INFORMATIKOS FAKULTETAS DARBAS SU UNITY VARIKLIUKU, JO GALIMYBĖS Darbas Grupėje Darbą atliko: Martynas Diedonis, Simonas Penkinas, Tomas Kučinskas, Martynas Mitka, Liudas Butkus KAUNAS, 2015
  • 2. Terabaitai 2 Turinys 1. Įvadas.................................................................................................................................3 2. Vartotojo sąsaja (Martynas Mitka) ................................................................................4  Vartotojo supažindinimas su programa .........................................................................4  Minimalistinė, švari aplinka...........................................................................................5  Tinkamai ir trumpai pavadinti funkciniai mygtukai ......................................................5  Funkcijų / informacijos grupavimas ..............................................................................6  Valdymas turi būti intuityvus.........................................................................................6  Programa turi būti lengvai pasiekiama...........................................................................7  Pasiruošti vartotojų klaidoms.........................................................................................7  Sekti vartotojų apsiliepimus...........................................................................................8 3. Integruotos sistemos (Simonas Penkinas) .....................................................................9  Fizika..............................................................................................................................9  Audio............................................................................................................................10 4. Palaikomos platformos (Martynas Diedonis) .............................................................11  Mono kūrimo platforma...............................................................................................11  Grafikos, fizikos...........................................................................................................11  Nuo platformos priklausanti kompiliacija(Platform dependent compilation) .............11  Šešėliuoklės(Shader)....................................................................................................11 5. Programavimas įvairiomis kalbomis (Liudas Butkus).................................................12 6. Efektai (Tomas K učinskas) .........................................................................................13  Medžiagos ....................................................................................................................13  Šešėliuoklės..................................................................................................................13  Tekstūros......................................................................................................................13 7. Greitis ir stabilumas (Tomas Kučinskas) ....................................................................14 8. Išvados .............................................................................................................................15
  • 3. Terabaitai 3 1. Įvadas Mes esame komanda „Terabaitai“. Esame žmonės, kurie yra susipažinę su Unity varikliuku, jo aplinka ir tirme patirties dirbant šios technologijos aplinkoje. Unity tai rinkoje įsitvirtinęs varikliukas, daugiausiai naudojamas žaidimų prototipams, telefoninių žaidimų kūrimui, tačiau retai sutinkamas aukščiausio lygio kompiuteriniuose žaidimuose. Ši technologija populiari savo įrankų intuityvumu ir greitu programų kūrimu. Norėtume apžvelgi ir identifikuoti mums svarbiausias varikliuko savybes, kurios, mūsų manymu, padarė Unity technologiją populiaria. 1 pav. Žaidimo prototipas
  • 4. Terabaitai 4 2. Vartotojo sąsaja (Martynas Mitka ) Žaidimo kūrimo platformos pamatinis tikslas visada turėtų išlikti vienodas - supaprastinti ir pagreitinti kūrėjų darbą, bei užtikrinti gerą galutinio produkto veikimą. Dėl šios priežasties platformų kūrėjai nenorėdami prarasti konkurencingumo su kiekviena versija stengiasi optimizuoti savo produktus, pridėti papildomų funkcijų, bei žinoma tuo pačiu metu stengtis, kad visa tai vartotojui būtų pateiktą patogiai ir aiškiai. Nors dažniausia viešai išafišuojami pirmieji punktai susiję su platformos galimybėmis, tačiau būtent pastarasis(vartotojo sąsajos) aspektas lemia platformos sėkmę. Kad ir kokia puiki platforma bebūtų, niekas ja nesinaudos, jei tai daryti bus ypatingai sudėtinga. Šioje srityje labai sėkmingai dirba Unity komanda, su tokio pačio pavadinimo nemokama žaidimų kūrimų platforma. Vienas pagrindinių šios platformos pranašumu prieš kitas yra būtent sugebėjimas tinkamai pateikti produktą ir įrankius visiems suprantamu būdu ir taip supaprastinti kūrėjų darbą. Dažnai gera vartotoja sąsaja tampa tada, kai ne tik puikiai išpildoma viena ar kita rekomendacija, o tada, kai visa programa veikia dinamiškai, jos valdymas natūraliai įsilieją į darbą, tampa nepastebimas ir ji pati nesukelia papildomu sunkumų vartotojui. Šis tikslas gali būti pasiekiamas protingai įgyvendinat viešojoje erdvėje jau labai aiškiai suformuotus patrauklios vartotojo sąsajos, angliškai -„user interface“ (vėliau tiesiog UI) principus, pagal kuriuos ir nagrinėsiu Unity UI sistemą. Stengsiuosi panagrinėti kiekvieną aspektą atskirai ir savo pastebėjimais įvertinti ar šių principų laikomasi, galbūt Unity komanda sugalvojo dar profesionalesnių būtų juos realizuoti. Taigi štai šie principai, kuriais vadovaujantis pagal viešojoje erdvėje prieinamus šaltinius galima sukurti puikią UI sistemą:  Vartotojo supažindinimas su programa 2 pav. Mokomoji medžiaga Šioje srityje Unity komanda atrodo bene stipriausia, neminint to, kad šį platformą turi milžinišką bendruomene, kuri noriai dalinasi savo patirtimi, jos kokybiška mokymo sistemą leidžia
  • 5. Terabaitai 5 labai patogiai ir greitai susipažinti su žaidimo platforma. Pradedantiesiems skirta ypač daug dėmesio, jiems sukurta ištisa mokymo programa video formatu youtube svetainėje, kurioje pradedantysis yra supažindinamas su pagrindinėmis funkcijomis, palaipsniui einama prie sudėtingesnių dalykų. Lygiagrečiai yra pateikiami baziniai modeliai, su kuriais Unity leidžia lengvai ir nemokamai eksperimentuoti vartotojams ir taip praktiniu būdu greičiau ir giliau įsisavinti informaciją. Norintiems gilintis į labiau specifinius dalykus yra pateikiamos nuorodos į šaltinius kuriuose jie gali gauti daugiau žinių. Vartotojas nuo pat pradžių neišsigąsta galybės aplink esančių įrankių, nes visada žino kur gali gauti papildomos informacijos. Vartotojo apmokymo srityje Unity kartelę iškėlusi tikrai aukštai, tokią gerą apmokymų sistemą pateikti sugeba tik vienetiniai produktai, todėl tai yra didelė UI sistemos pasisekimo priežastis  Minimalistinė, švari aplinka Kiekvienas darbo langas turi būti lengvai skaitomas ir neapkrautas papildomomis dėtelėmis, kurios smarkiai vargina ir blaško vartotoją. Todėl patartina visuose languose išlaikyti minimalistinį stilių. Kadangi Unity UI sistemoje esama didelis kiekis skirtingų pasirenkamųjų funkcijų, visiško minimalizmo tikėtis negalima. Tačiau nepasakyčiau, kad principas liko neišpildytas visai. Atsisakyta papildomų ornamentinių detalių, įrankių bei papildomų langų kombinacijas galima susidėlioti visiškai rankiniu būdu, pagal kiekvieno poreikius. Tai suteikia vartotojui galimybę susikurti būtent jam patogią aplinka, neapkraunant ekrano dėmesnį blaškančiais langais. Sveikintina ir tai, jog spalvų gama pagrindinėje temoje susideda iš kontrastingu ir blankesnių atspalvių, kas platformai ir suteikia lengvumo jausmą ir iš dalies kompensuoja tą triukšmą, kurį mūsų akims suteikia nemažas kiekis mygtukų. 3 pav. Darbinė aplinka  Tinkamai ir trumpai pavadinti funkciniai mygtukai Vartotojo sąsajoje nemaža dalis informacijos perduodama ne tik vaizdais, bet ir tekstu. Todėl būtina atsižvelgti, kad kiekvienas mygtukas būtų pavadintas prasmingai ir visiems suprantamai. Kadangi dauguma komandų šioje platformoje yra gan standartiškos, tai kūrėjams nereikėjo ilgai kvaršinti sau galvos, o jei ir reikėjo tai jų darbas nenuėjo veltui. Dažnas vartotojas mestelėjęs akį į mygtuką iškart supranta kokia jo paskirtis, o jei ir iškylą klausimų, tai visada galima pritraukus savo
  • 6. Terabaitai 6 pelytės žymekli prie mygtuko ir išvysti platesnį paaiškinimą su pavyzdžiais. Taigi Unity pasinaudodama standartinių kitų platformų pavydžių puikiai pritaikė šį principą savo platformoje.  Funkcijų / informacijos grupavimas Bet kokiam žmogui visą informacija įsisavinti daug lengviau, kai ji suskirstoma į tam tikras grupes, dažniausia pagal panašią ypatybę ar logine seką. Todėl, kad vartotojo sąsaja būtų efektyvi svarbu visas platformos funkcijas suskirstyti į tam tikrus blokus, kad vartotojui būtų kuo paprasčiau orientuotis ir naviguoti platformos viduje tarp skirtingų savo prasme funkcijų. Unity šioje srityje įgyvendino gan inovatorišką idėją ne tik visą informaciją tvarkingai ir pagal gan aiškias logines prasmes sugrupuoti blokais, langais, bet ir kurti atskirus tokių blogų modulius, kurie gali būti prijungti pasirinktinai pagal kūrėjo norus. Tai sutaupo daug laiko, kai kuriamos standartinės žaidimų scenos, nes pasirinkus visą modulį iš platformos patogioje vietoje atkeliami visi potencialiai vartotojui reikalingi įrankiai. Tarkim, kai dirbama su scenos fonu, galima vienu metu pasirinkti tekstūrą, ją apdoroti su vietoje esančiais įrankiais, pakeisti tekstūros atspalvį, matomumą. Žodžių visi potencialiai reikalingi įrankiai yra pateikiami viename funkcijų bloke, ir vartotojui nereikia ieškoti kiekvieno įrankio atskirai. Tai užtikrina patogų vartotojo darbą ir prideda didelį pliusą šiai žaidimų platformai.  Valdymas turi būti intuityvus Vartotojui daug patogiau dirbti su programa kuri yra panaši į kitas, jau egzistuojančias programas. Būtent dėl to dauguma šių laikų vartotojų sąsajos sistemų iš pirmo žvilgsnio yra tarpusavyje labai panašios. Ne išimtis ir Unity UI sistema, kuri turi standartinio („Tab“) stiliaus įrankių juostą. Naudotojui intuityviai bus aišku, kaip išsaugoti ar atsidaryti failą. Unity taip pat neblogai išvystė ir „drag and drop“ sistemą. Pradedant nuo tiesioginio modelio įkelimo į žaidimo kurimo scena, modelių transformacijų atlikimo iki darbo langų kilnojimo iš vienos pozicijos į kitą. 4 pav. Komponentų grupavimas
  • 7. Terabaitai 7  Programa turi būti lengvai pasiekiama Gan paprasta, bet svarbi detalė. Neatkreipus į tai dėmesio, galima gan skaudžiai nudegti. Kiek vartotojų kantybės galėtų atimti, tai jog kiekvieną kartą naudojantis programą reikėtų paspausti dešimt skirtingų mygtukų. Mes mėgstame paprastuma ir greituma, nors tai gal ir teužimtų kelias papildomas sekundes. Unity ėmesi gan gudrios strategijos šioje dalyje, tačiau naudojantis programa vis tiek pastebėtume šiek tiek nesklandumu šioje sirtyje. Pagrinde norint patekti į norimą projektą užtenka spustelti kelis kartus ir tu jau norimame žaidimi projekte, visas papildomos parinktys, jei tokių reikia jau galima rasti ieškant rankiniu būdu. Tačiau, kai atsiranda platformos atnaujinimai ar skelbiama reklaminio pobudžio informacija ši procedura gali šiek tiek suerzinti, nes atsiranda keli papildomi langai.  Pasiruošti vartotojų klaidoms Kartais visiems, o dažniausia naujokams pasitaiko atveju, kai netyčia ar iš nežinojimo pradanginame duomenis ar failus su kuriais dirbame. Tokios klaidoms išvengti kuriamos papildomos apsaugos sistemos. Viena paprasčiausiu, tai papildomas langas kuris aiškiai paklausia ar tikrai norime atlikti vienokius ar kitokius pakeitimus. Kas ypatinga Unity žaidimų platformoje, tai jog šie apribojimai apgalvoti labai gerai, išvengta daug vartotojo loginių klaidų, yra būdas viska perstatyti į „default“ reikšmes. Pavyzdžiui, jei vartotojas dirba su vieno tipo modeliais sistema neleis pritaikyti kito tipo savybių. Dar vienas didesnių pliusų, tai jog yra galimybė automatiškai saugoti projektus virtualiame projekte, taigi sumažėja duomenų praradimo rizika. Tačiau, kad ir kokie apribojimai galioje šioje platformoje, tai jokiu būdu nevaržo kūrėjo laisvės, tiesiog palengvina komunikavimą su platforma. 5 pav. Valdymo įrankiai
  • 8. Terabaitai 8  Sekti vartotojų apsiliepimus Svarbi tobulėjimo dalis yra pastovus trūkumų ieškojimas ir šalinimas. Tam pasitelkiami testuotojai, tačiau naudingiausi atsiliepimai būna ir pačių vartotojų. Būtent dėl šios priežasties Unity turi gerą klientų aptarnavimo ir atsiliepimų rinkimų sistemą, kuri glaudžiai susėjusi su žaidimo kūrimo platforma. Kiekvienas gali patogiai ir greit parašyti savo apsiliepimas, klaidų pastebėjimus ar nusiskendimus, kad platforma galėtų būti toliau tobulinama. Abipusė nauda visada gerai, todėl toks Unity strategijos kūrimas yra pagirtinas. 6 pav. Pagalbinis meniu
  • 9. Terabaitai 9 3. Integruotos sistemos (Simonas Penkinas)  Fizika Norint suteikti žaidimui didesnį realumo jausmą, objektas žaidime turi tinkamai įsibegėti, turi būti veikiamas susidūrimų, žemės traukos ir kitų jėgų. Programoje „Unity“ esantys fizikos varikliukai suteikia komponentus, kurie sukuria fizinę imitaciją. Įrašius kelis parametrus, sukuriamas pasyvus objektas, kuris elgiasi realistiškai – yra veikiamas susidūrimų ir kritimų, bet pats objektas spontaniškai nejuda. Redaguojant objekto parametrus, galima objektui suteikti dinamiką, panašią į automobilio arba net judančios šluostės. „Unity“ egzistuoja du fizikos varikliukai. Vienas yra trijų dimensijų fizikai, o kitas – dviejų. Pagrindinė idėja yra ta pati, tik jie įgyvendinami su skirtingom detalėm. Pavyzdžiui, „Unity“ yra įtaisytas Rigidbody (standusis komponentas) ir Rigidbody 2D. Rigidbody(angl. standusis komponentas) yra pagrindinė detalė, kuri suteikia fizinį funkcionavimą objektui. Sukurtas standusis objektas iš karto paklus gravitacjos jėgai. Jeigu yra vienas ar daugiau Collider (susidūrimo komponentų) tada standusis objektas bus veikiamas susidūrimų. 7 pav. Fizikinė objekto reprezentacija Rigidbody yra judinamas dviejų dimensijų fizikos varikliuko. Tai yra daroma veikiant objektą kokia nors jėga, kuri verčia patį objektą pasisukti ar pakeisti poziciją. Rigidbody turi savybę, kuri leidžia objektui pereiti į „miego“ būseną, kai jis juda mažesniu nei nustatytu minimaliu linijiniu ar sukamuoju greičiu. Tada varikliukas supras, kad objektas nejuda. Kitą kartą objektas pajudės, kai jį paveiks susidūrimas ar jėga. „Miego“ būsenoje esančiam objektui bus skirta mažiau procesoriaus darbo iki tol, kol objektas bus „pažadintas“. Collider (angl. susidūrimo komponentai) nusako objekto formą dėl fizinio susidūrimo tikslų. Žaidime šis komponentas nebūtinai turi būti tos pačios formos kaip ir pats objektas. Net atvirkščiai – suapvalinimas yra efektyvesnis žaidimo metu. Paprasčiausi ir mažiausiai procesoriaus darbo reikalaujantys, Collider komponentai vadinami primityviaisiais. Trijose dimensijose jie yra: Box (dėžės), Sphere (sferos), Capsule (kapsulės). Dviejose dimensijose yra naudojami: Box 2D ir Circle (apskritimo). Į objektą galima jų įdėti neribotą skaičių, norint sukurti sudėtinius susidūrimo komponentus. Kruopščiai dėliojant Collider galima gan gerai sukurti objekto formą ir neapkrauti procesoriaus darbo. Tačiau, norint gauti dar didesnį tikslumą galima objektui suteikti Mesh Colliders (tinklelinius susidūrimo objektus) trijose dimensijose, o
  • 10. Terabaitai 10 dviejose dimensijose – Polygon Collider 2D. Šie Collider komponentai apkraus procesorių žymiai didesniu darbu. Galima sujungti du Rigidbody objektus naudojant Joint (jungtį). Jų yra 2 rūšys: Hinge (ašinis) leidžia objektams suktis aplink jungtį, o Spring išlaiko objektus atskirais bet leidžia tarp jų sukurti nedidelį, slankiojantį atstumą. Jiems galima nustatyti jėgos ribą, kurią viršijus, jungtis trūks, arba galima priversti objektus suktis aplink jungtį.  Audio Žaidimas negali būti be garso, nesvarbu, ar tai fono muzika ar garso effektai. „Unity“ audio sistema yra lankti ir galinga. Ji gali atkurti daugelį standartinių audio formatų ir gali atkurti garsus 3D erdvėje tokius kaip aidas. „Unity“ taip pat gali įrašyti garsus. „Unity“ taip pat leidžia naudoti trečios šalies įskiepius. 8 pav. Garso sistema Norint skleisti iš objekto garsą, reikia prie objekto sukurti Audio Source (garso šaltinį). Tuomet jo skleidžiami garsai yra įrašomi Audio Listener (garso imtuvo), kuris yra pritvirtintas prie kito objekto. Tarp jų susidariusį atstumą gali panaudoti kuriant Doplerio efekto simuliaciją sustiprintam realumo jausmui.
  • 11. Terabaitai 11 4. Palaikomos platformos (Martynas Diedonis) Platformų sąrašas: iOS Android, Windows Phone, BlackBerry, Windows, Windows Store Apps, Mac OS X, Linux, PS 3, Xbox 360, Wii U, PS 4, Xbox One, Tizen, SamsungTV, PS Vita, Gear VR, Oculus Rift, WebGL.  Mono kūrimo platforma Mono yra laisvai naudojama kūrimo platforma, kuri leidžia kurti cross-platform programas C# kalba. Ji buvo sukurta .NET Framework pagrindu. Mono sudaro C# kompiliatorius, Mono Runtime, ji implementuoja Common Language Infrastructure(CLI), pagrindines klasių bibliotekas(Base Class Library), Mono Class Library tai sudaro Gtk+, zip failų, LDAP, OpenGL ir daug kitų klasių. Mono yra labai populiarus, rasi be galo daug pamokų, knygų, tinklapių. Taip pat an Mono kūrimo platforma automatiškai skirsto atmintį, paskirsto darbą per kelis procesorius.  Grafikos, fizikos Unity palaikančios grafikos aplikacijų programavimo sąsajos(API): OpenGL, OpenGL, WebGL, Metal ir DirectX ir kiekviena iš jų yra skirta tam tikroms platformoms. OpenGL yra pagrinde naudojama MacOS X ir kituose iOS prietaisuose, taip pat gali būti naudojamas ir Linux, Windows platformoms, mobiliesiems prietaisams. WebGL yra skirtas tinklapiams skirtų žaidimų kūrimui, kuris pašalina reikalavimą turėti Flash ir Unity web player. Metal yra naujas Apple grafinis API, tinkantis iOS prietaisams. DirectX yra Microsoft kurtas grafinis API, kuris tinka Windows, Windows Phone ir Xbox. Unity pastiki tik vieninteliu įrankiu, kuriant fizikas žaidimuose Nvidia PhysX, kuris palaiko visas anksčiau išvardintas platformas.  Nuo platformos priklausanti kompiliacija(Platform dependent compilation) Unity variklis turi labai naudingą funkciją, kuri leidžia tam tikras kodo dalis leisti kompiliuoti tik tam tikroms platformoms. Ši komanda gali veikti visose Unity palaikomose platformose. Dažnai iškylantis klausimas yra: Ar parašytas „Platform dependent compilation“ kodas yra matomas kitose platformose? Ne, bet priklauso nuo programavimo kalbos ar klasės egzistuos. Unityscript sukurią tuščia klasę, o C# ne.  Šešėliuoklės(Shader) Unity taip pat sugeba sukūrtus šešėliuokles naudoti kitose platformose, kur šešėliuoklės kalba visiškai skiriasi. Yra 2 populiariausios šešėliuoklių kalbos: HLSL ir GLSL. HLSL yra pagrinde naudojama su Direct3D, Xbox 360 ir Playstation 3. GLSL yra naudojama mobiliuosiuose įrenginuose(OpenGL ES 2.0), Mac OS X(OpenGL) ir WebGL. Unity variklyje pagrinde yra naudojama HLSL kalba, Unity sugeba konvertuoti HLSL į GLSL. Seniau šis būdas buvo labai neoptimizuotas, bet buvo sukurti kompiliatoriai, kurie optimizuodavo konvertuotą GLSL kodą.
  • 12. Terabaitai 12 5. Programavimas įvairiomis kalbomis (Liudas Butkus) Norint panaduoti visas Unity variklio galimybes būtina mokėti programuoti viena iš palaikomų programavimo kalbų: C#, UnityScript arba Boo. Pagal populiarumą jos išsidėsčiusios štai taip. Net 80,4% Unity vartotojų naudoja C#, 18,9% vartotojų naudoja UnityScript ir 0,44% vartotojų naudoja Boo. C# tai C kalbų grupės kalba plačiai naudojama visame pasaulyje, todėl ji ir yra pati populiariausia. UnityScript tai JavaScript atmaina pritaikyta darbui su Unity, JavaScript taipogi yra labai populiari programavimo kalba naudojama internetinių puslapių kūrime, bet mano nuomone, kadangi Unity nenaudoja bendros JavaScript kalbos, o naudoja jos atmainą UnityScript, tai ir jos populiarumas nėra labai didelis. Boo tai programavimo kalba apie kuria jūs tikriausiai nieko nesate girdėję, tai atsispindi ir jos populiarumo procente. Ji sintaksiškai yra panaši į geriau žinomą Python programavimo kalbą. Dėl mažo Boo kalbos populiarumo Unity komanda nustojo kurti jai skirtą mokomąją medžiagą. Taigi kurią programavimo kalbą pasirinkti? Jeigu jau esate programavę C kalbų grupės kalba (C, C++,etc.) tai C# bus jums artimiausia. Jeigu esate susidūrę su puslapių kūrimu ir JavaScript kodais, tai manau nebus sunku idėjus šiek tiek laiko išmokti UnityScript niaunsus. Na o jeigu mėgstate iššūkius ir norite išmokti dar vieną programavimo kalbą tai mokykitės Boo. Betkokiu atvėju jums bus prieinamos visos Unity variklio galimybės. 9 pav. Programavimo kalbų populiarumas
  • 13. Terabaitai 13 6. Efektai (Tomas Kučinskas) Unity varikliukas atvaizduoja objektus jiems priskirdamas medžiagas(Material), šešėliuokles(Shaders) ir tekstūras. Šios trys sąvokos yra glaudžiai susijusios. 10 pav. Scena naudojanti efektus  Medžiagos tai yra objektai, kurie nurodo varikliukui, kaip objektas turėtų būti piešiamas. Jame sudėtos modeliui priklausančios tekstūros, spalvos ir kiti parametrai. Šių parinkčių skaičius priklauso nuo medžiagos šešėliuoklės.  Šešėliuoklės tai mažos programos, kurios apdirba smulkius grafikos elementųs pritaikydamos matematinius algoritmus. Šie kodai gali keisti modelio taškų padėtį, ekrano pikselių spalvą, modelio primityvų(trikampių) padėtį, pragerinti modelio detalumą ir t.t.  Tekstūros yra paveiksliukai, siunčiami į šešėliuoklę. Šie objektai gali nuspalvoti objektą nemonotonišku užpildu, nurodyti ypatingas modelio vietas(švytinčios, atspindžios vietos) arba gali būti panaudoti netradiciniais būdais. Unity varikliukas turi standartinių efektų biblioteką. Joje galima rasti nuo paprastų efektų, skirtų modeliams atvaizduoti iki ekrano efektų. Neradęs tinkamo efekto, programos kūrėjas gali parašyti savo efektą. Šiam tikslui pasiekti naudojama speciali programavimo kalba „ShaderLab“. Pragramuotojas gali rašyti viršūnių, pikselių, geometrijos, paviršiaus ir skaičiavimų šešėliuokes. 11 pav. Darbas su medžiagomis 12 pav. Kailio šešėliuoklė 13 pav. Vizualinis darbas su šešėliuklėmis
  • 14. Terabaitai 14 7. Greitis ir stabilumas (Tomas Kučinskas) Unity varikliuko pasižymi ypatingu stabilumu. Programos veikimo metu rasti klaidingi moduliai yra automatiškai išjungiami, neegzistuojantys resursai nenaudojami, o pati programa veikia toliau. Mūsų komandos patirtis taip pat liudija apie varikliuko atsparumą klaidoms ir nenumatytiems atvejams. Daugelio žaidimų kūrėjų nuomone, Unity varikliukas nepasižymi spartumu. Ypatingas nepasitenkinimas yra išreiškiamas telefoninių žaidimų kūrėjų. Dažniausiai problemos kyla naudojant 3D grafikos komponentus. Vis dėl to technologijos kūrėjai pripažįsta spartos problemas ankstesnėse versijose ir išleidžiant naują versiją, didelis dėmesys yra skiriamas programos veikimo greičio spartinimui. Taip pat Unity 3D kūrėjai pastebi, kad programuotojai naudoja blogas programavimo praktikas todėl varikliuko dokumentacijoje galima rasti naudingų patarimų kaip pagreitinti programos spartą. 14 pav. Unity greičio raidos palyginimas
  • 15. Terabaitai 15 8. Išvados Unity technologija nuolat tobulėja. Patrauklus varikliukas kasmet pritraukia vis daugiau žaidimų kūrėjų. Stabilumą ir solidumą užtikrina užtikrina geriausios žaidimų industrijos technologijos. Be abejo galima teigti, kad Unity3D varikliukas dar ilgai bus tobulinamas ir palaikomas įvairių platformų.
  • 17. Terabaitai 17 Iliustracijų sąrašas 1 pav. Žaidimo prototipas ..........................................................................................................3 2 pav. Mokomoji medžiaga........................................................................................................4 3 pav. Darbinė aplinka ...............................................................................................................5 4 pav. Komponentų grupavimas ................................................................................................6 5 pav. Valdymo įrankiai.............................................................................................................7 6 pav. Pagalbinis meniu .............................................................................................................8 7 pav. Fizikinė objekto reprezentacija .......................................................................................9 8 pav. Garso sistema ................................................................................................................10 9 pav. Programavimo kalbų populiarumas ..............................................................................12 10 pav. Scena naudojanti efektus.............................................................................................13 11 pav. Darbas su medžiagomis...............................................................................................13 12 pav. Kailio šešėliuoklė ........................................................................................................13 13 pav. Vizualinis darbas su šešėliuklėmis..............................................................................13 14 pav. Unity greičio raidos palyginimas ................................................................................14
  • 18. Terabaitai 18 Terminai Aplinka, 3, 5 Audio Listener, 10 Audio Source, 10 Boo, 12 C#, 11, 12 Collider, 9 DirectX, 11 GLSL, 11 HLSL, 11 Medžiagos, 13 Metal, 11 OpenGL, 11 Rigidbody, 9, 10 Šešėliuoklės, 11, 13 Technologija, 3, 15 Tekstūros, 13 Unity, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 UnityScript, 12 Varikliukas, 3, 9, 13, 14, 15 WebGL, 11