Unity (motor de joc)

Unitate
Tip de motor de joc , mediu de dezvoltare integrat , constructor , cadru
Dezvoltator Unity Technologies
Scris in C++ (Runtime), C#
Sistem de operare Microsoft Windows , macOS , Linux , Android și iOS
Limbi de interfață Engleză
Prima editie 8 iunie 2005
Platformă hardware PC
PlayStation 4
PlayStation 5
Xbox One
Xbox Series X
Apple TV
ultima versiune
versiune beta
Stat activ
Licență proprietate
Site-ul web unity.com
 Fișiere media la Wikimedia Commons

Unity ( unity în traducere din  engleză  -  „unity”, pronunțat ca „unity”) este un mediu de dezvoltare multiplatformă pentru jocuri pe calculator [3] , dezvoltat de compania americană Unity Technologies . Unity vă permite să creați aplicații care rulează pe mai mult de 25 de platforme diferite, inclusiv computere personale , console de jocuri , dispozitive mobile , aplicații de Internet și altele [4] . Lansarea Unity a avut loc în 2005 și de atunci a existat o dezvoltare constantă.

Principalele avantaje ale Unity sunt prezența unui mediu de dezvoltare vizuală , suport multi-platformă și un sistem modular de componente. Dezavantajele includ apariția dificultăților la lucrul cu circuite multicomponente și dificultăți la conectarea bibliotecilor externe .

Mii de jocuri, aplicații, vizualizări ale modelelor matematice sunt scrise pe Unity, care acoperă multe platforme și genuri. În același timp, Unity este folosit atât de dezvoltatorii mari, cât și de studiourile independente .

Caracteristici

Editorul Unity are o interfață simplă Drag&Drop , precum și instalarea pluginurilor KALI, care este ușor de configurat, constând din diverse ferestre, astfel încât să puteți depana jocul chiar în editor . Motorul folosește C# [5] pentru a scrie scripturi . Boo ( dialectul Python , eliminat în versiunea 5) și o modificare JavaScript cunoscută sub numele de UnityScript (învechit în versiunea 2017.1) au fost , de asemenea, acceptate anterior . Calculele fizice sunt efectuate de motorul de fizică PhysX al NVIDIA pentru fizica 3D și Box2D pentru fizica 2D [6] . Graphics API - DirectX ( acceptat în prezent DX 11 , DX 12 )

Proiectul din Unity este împărțit în scene ( nivele ) - fișiere separate care conțin lumile lor de joc cu propriul set de obiecte, scenarii și setări. Scenele pot conține atât, de fapt, obiecte (modele), cât și obiecte de joc goale - obiecte care nu au model („manichin”) [7] . Obiectele, la rândul lor, conțin seturi de componente cu care scripturile interacționează. Obiectele au și un nume (în Unity, două sau mai multe obiecte cu aceleași nume sunt permise într-o scenă), poate exista o etichetă (etichetă) și un layer pe care ar trebui să fie afișată. Deci, orice obiect de pe scenă trebuie să aibă o componentă Transform - aceasta stochează coordonatele locației, rotației și dimensiunii obiectului de-a lungul tuturor celor trei axe.

Unity acceptă, de asemenea, fizica corpului rigid și pânză, precum și fizica de tip Ragdoll (păpușă de cârpă).

Editorul are un sistem de moștenire a obiectelor; obiectele copil vor repeta toate modificările de poziție, rotație și scară ale obiectului părinte.

Scripturile din editor sunt atașate obiectelor ca componente separate.

Când importați o textură în Unity, puteți genera canal alfa , niveluri mip , hartă normală , hartă luminoasă , hartă de reflexie, dar nu puteți atașa o textură direct la model - va fi creat un material, la care se va crea un shader . va fi atribuit , iar apoi materialul va fi atașat modelului. Editorul Unity acceptă scrierea și editarea shaderelor. Editorul Unity are o componentă pentru crearea animației, dar animația poate fi, de asemenea, pre-creată într-un editor 3D și importată împreună cu modelul, apoi împărțită în fișiere.

Unity 3D acceptă sistemul Level Of Detail (abreviar LOD), a cărui esență este că, la distanță mare de jucător, modelele foarte detaliate sunt înlocuite cu altele mai puțin detaliate și invers, precum și sistemul de sacrificare Occlusion, a cărui esență este că obiectele, geometria și coliziunile care nu se află în câmpul vizual al camerei nu sunt redate, ceea ce reduce sarcina pe procesorul central și vă permite să optimizați proiectul. La compilarea unui proiect, se creează un fișier de joc executabil (.exe) (pentru Windows ) și într-un folder separat - datele jocului (inclusiv toate nivelurile de joc și bibliotecile legate dinamic).

Motorul acceptă multe formate populare. Modelele, sunete, texturi, materiale, scripturi pot fi împachetate în format .unitypackage și transferate altor dezvoltatori sau încărcate pentru acces gratuit. Același format este folosit în magazinul intern Unity Asset, unde dezvoltatorii pot partaja diverse elemente necesare pentru a crea jocuri gratuit și pentru bani. Pentru a utiliza Unity Asset Store, trebuie să aveți un cont de dezvoltator Unity.

UNet (o bibliotecă pentru implementarea jocurilor multiplayer în jocurile Unity) a fost eliminată începând cu versiunea 2018.4; nu există o soluție ieșită din cutie pentru multiplayer. De asemenea, puteți utiliza metoda ușor de utilizat de control al versiunilor. De exemplu, Tortoise SVN, Git sau Source Gear .

Unity include Unity Asset Server, un instrument de dezvoltare colaborativă bazat pe Unity, care este un supliment care adaugă controlul versiunilor și o serie de alte soluții pe partea de server.

Avantaje și dezavantaje

De obicei, un motor de joc oferă o mulțime de funcționalități care le permit să fie utilizate în diferite jocuri, care includ simulare fizică, hărți normale, umbre dinamice și multe altele. Spre deosebire de multe motoare de joc, Unity are două avantaje principale: prezența unui mediu de dezvoltare vizuală și suport multiplatform [8] . Primul factor include nu numai instrumentele de modelare vizuală, ci și un mediu integrat , lanțul de asamblare , care are ca scop îmbunătățirea productivității dezvoltatorilor, în special, etapele de prototipare și testare. În cadrul suportului multiplatformă, sunt furnizate nu numai site-uri de implementare (instalare pe un computer personal, pe un dispozitiv mobil, consolă etc.), ci și disponibilitatea instrumentelor de dezvoltare (mediul integrat poate fi utilizat sub Windows și Mac OS) [4] .

Al treilea avantaj este sistemul de componente modulare al Unity, care este folosit pentru a construi obiecte de joc atunci când acestea din urmă sunt pachete combinabile de elemente funcționale. Spre deosebire de mecanismele de moștenire , obiectele din Unity sunt create prin combinarea blocurilor funcționale , în loc să fie plasate în nodurile unui arbore de moștenire. Această abordare facilitează crearea de prototipuri, ceea ce este important în dezvoltarea jocului [9] .

Ca dezavantaje, limitarea editorului vizual este dată când se lucrează cu diagrame cu mai multe componente, când munca vizuală este dificilă în scene complexe. Al doilea dezavantaj este lipsa suportului Unity pentru legăturile către biblioteci externe , cu care programatorii trebuie să se configureze pentru a lucra și acest lucru îngreunează și munca în echipă. Un alt dezavantaj este asociat cu utilizarea șabloanelor de instanță ( prefabricate în engleză  ). Pe de o parte, acest concept Unity oferă o abordare flexibilă a editării vizuale a obiectelor, dar pe de altă parte, editarea unor astfel de șabloane este dificilă [9] . De asemenea, versiunea WebGL a motorului, datorită specificului arhitecturii sale (traducerea codului din C# în C++ și mai departe în JavaScript), are o serie de probleme nerezolvate cu performanța, consumul de memorie și performanța pe dispozitivele mobile [10] [11 ]. ] .

Jocuri pe Unity

Sute de jocuri, aplicații și simulări sunt scrise pe Unity [12] , Unity este folosit atât de mari dezvoltatori (de exemplu, Blizzard [13] ), cât și în crearea de jocuri indie . Jocurile pe computer de pe Unity acoperă multe platforme și genuri, dintre care exemple tipice sunt [14] :

Istorie

Prima versiune a Unity a apărut în 2005, când motorul de joc a fost anunțat la Conferința Mondială a Dezvoltatorilor . Inițial, Unity a fost destinat exclusiv computerelor Mac, iar în august a fost lansată o actualizare pentru a-i permite să funcționeze sub Windows. Următoarele versiuni au adăugat treptat noi platforme și implementări: player web multiplatform în 2006, iPhone în 2008, Android în 2010 și mai departe pe consolele de jocuri Xbox și Playstation [4] .

Este posibil să se creeze aplicații pentru a rula în browsere folosind un plug-in special Unity (Unity Web Player) , precum și folosind implementarea tehnologiei WebGL. Anterior, a existat suport experimental pentru implementarea proiectelor în cadrul modulului Adobe Flash Player [15] , dar ulterior echipa de dezvoltare Unity a luat decizia dificilă de a abandona acest lucru [16] .

În decembrie 2009, Unity a fost numit de Gamasutra drept unul dintre cei mai importanți jucători de pe piața companiilor de jocuri [17] .

Licențe

Versiunea gratuită a Unity are unele limitări, dar este posibil ca acesta să distribuie jocuri, cu condiția ca venitul anual din joc să nu depășească 100.000 USD [18] .

Tipul licenței Venitul companiei pe an Ecran de bun venit Caracteristici multiplayer Construiți în stocare în cloud Tema întunecată Rapoarte de performanță Asistență premium Acces la codul sursă Preț (în dolari )
Personal Până la 100.000 USD „Made With Unity” și animație personalizată opțională 20 de CCU Standard da Nu Nu Nu Este gratuit
La care se adauga Până la 200.000 USD Animație personalizată și/sau „Made With Unity” 50 de CCU Prioritate da da Nu Nu 399 pe an sau 40 lunar
Pro Nu este limitat Animație personalizată și/sau „Made With Unity” 200 CCU-uri Simultan da da da Nu 1800 pe an sau 150 lunar
Afacere Nu este limitat Animație personalizată și/sau „Made With Unity” Multiplayer personalizat Resurse dedicate da da da da 200$ pe lună

Note

  1. https://unity3d.com/get-unity/download/archive
  2. Unity 2022.1 beta este acum disponibil  (engleză) - 2021.
  3. Hawking, 2016 , p. 16.
  4. 1 2 3 Hawking, 2016 , p. 22.
  5. Unity Technologies. Unity - Manual : Arhitectura Unity  . docs.unity3d.com . Preluat la 13 mai 2022. Arhivat din original la 13 mai 2022.
  6. Unity Technologies. Unity - Manual: Fizică  (engleză) . docs.unity3d.com . Preluat la 13 mai 2022. Arhivat din original la 13 mai 2022.
  7. Unity Technologies. Unity - Manual : Scene  . docs.unity3d.com . Preluat la 13 mai 2022. Arhivat din original la 18 aprilie 2022.
  8. Hawking, 2016 , p. 21.
  9. 1 2 Hawking, 2016 , p. 23.
  10. Considerații de memorie atunci când vizați WebGL . Preluat la 24 august 2018. Arhivat din original la 24 august 2018.
  11. Verge3D versus Unity WebGL - Pipeline and Performance . Preluat la 24 august 2018. Arhivat din original la 24 august 2018.
  12. Hawking, 2016 , p. 24-26.
  13. Chiar și Hearthstone rulează pe Unity — și de aceea este deja pe iPad . Consultat la 29 septembrie 2017. Arhivat din original la 5 noiembrie 2017.
  14. Hawking, 2016 , p. 25-.
  15. Dean Takahashi. Dezvoltatorii Unity Technologies vor putea publica jocuri 3D prin Adobe Flash  . VentureBeat (21 decembrie 2011). Consultat la 11 martie 2012. Arhivat din original pe 9 iunie 2012.
  16. David Helgason. Blițul apusului  . Blogul Unității (23 aprilie 2013). Data accesului: 9 decembrie 2014. Arhivat din original pe 29 noiembrie 2014.
  17. Christian Nutt. Gamasutra's Best Of 2009: Top 5  companii de jocuri . Gamasutra. - „Unity a devenit un jucător important pe piață începând cu 2009 și urmează mai multe.” Consultat la 11 martie 2012. Arhivat din original pe 9 iunie 2012.
  18. Acord de licență software Unity 4.x. Data accesului: 6 martie 2014. Arhivat din original pe 7 martie 2014.

Literatură

Link -uri