Unity (játékmotor)

Egység
Típusú játékmotor , integrált fejlesztői környezet , konstruktor , keretrendszer
Fejlesztő Unity Technologies
Beírva C++ (futásidejű), C#
Operációs rendszer Microsoft Windows , macOS , Linux , Android és iOS
Interfész nyelvek angol
Első kiadás 2005. június 8
Hardver platform PC
PlayStation 4
PlayStation 5
Xbox One
Xbox Series X
Apple TV
legújabb verzió
béta verzió
Állapot aktív
Engedély szabadalmazott
Weboldal unity.com
 Médiafájlok a Wikimedia Commons oldalon

A Unity ( az unity angol fordításban   -  "unity", ejtsd: "unity") egy többplatformos fejlesztői környezet számítógépes játékokhoz [3] , amelyet az amerikai Unity Technologies cég fejlesztett ki . A Unity lehetővé teszi olyan alkalmazások létrehozását, amelyek több mint 25 különböző platformon futnak, beleértve a személyi számítógépeket , játékkonzolokat , mobileszközöket , internetes alkalmazásokat és egyebeket [4] . A Unity megjelenésére 2005 -ben került sor, azóta folyamatos a fejlődés.

A Unity fő előnyei a vizuális fejlesztői környezet jelenléte , a platformok közötti támogatás és a moduláris komponensrendszer. A hátrányok közé tartozik a nehézségek megjelenése a többkomponensű áramkörökkel végzett munka során és a külső könyvtárak csatlakoztatásakor .

Játékok, alkalmazások, matematikai modellek vizualizációinak ezrei íródnak a Unity-re, amelyek számos platformot és műfajt lefednek. Ugyanakkor a Unityt nagy fejlesztők és független stúdiók is használják .

Jellemzők

A Unity szerkesztő egyszerű Drag&Drop felülettel, valamint könnyen konfigurálható KALI pluginok telepítésével rendelkezik, amely különféle ablakokból áll, így közvetlenül a szerkesztőben tud hibakeresni a játékot . A motor a C# [5] -et használja a szkriptek írásához . A Boo ( Python dialektus , eltávolítva az 5-ös verzióban) és a UnityScript néven ismert JavaScript -módosítás (a 2017.1-es verzióban elavult) szintén támogatott volt. A fizikai számításokat az NVIDIA PhysX fizikai motorja a 3D fizikához és a Box2D a 2D fizikához [6] végzi . Grafikus API - DirectX (jelenleg DX 11 , DX 12 támogatott )

A Unity projekt jelenetekre ( szintekre ) van felosztva – külön fájlokra, amelyek a játékvilágukat tartalmazzák saját tárgykészlettel, forgatókönyvekkel és beállításokkal. A jelenetek tartalmazhatnak objektumokat (modelleket) és üres játékobjektumokat is – olyan objektumokat, amelyekhez nem tartozik modell ("bábu") [7] . Az objektumok viszont olyan összetevőket tartalmaznak, amelyekkel a szkriptek kölcsönhatásba lépnek. Az objektumoknak is van neve (Unity-ben két vagy több azonos nevű objektum megengedett egy jelenetben), lehet egy címke (címke) és egy réteg, amelyen meg kell jeleníteni. Tehát a színpadon lévő bármely objektumnak rendelkeznie kell egy Transform komponenssel - ez tárolja az objektum helyének, forgásának és méretének koordinátáit mindhárom tengely mentén.

A Unity támogatja a merev test- és ruhafizikát, valamint a Ragdoll (rongybaba) típusú fizikát is.

A szerkesztőnek van objektum öröklődési rendszere; a gyermekobjektumok megismétlik a szülőobjektum pozíciójában, elforgatásában és léptékében bekövetkezett összes változást.

A szerkesztőben lévő szkriptek külön komponensként vannak az objektumokhoz csatolva.

Textúra Unity-be importálásakor generálhat alfa-channel , mip-levels , normal-map , light-map , reflexiós térképet, de textúrát nem csatolhatunk közvetlenül a modellhez - egy anyag jön létre, amelyhez árnyékoló lesz hozzárendelve , majd az anyagot a modellhez csatoljuk. A Unity szerkesztő támogatja a shaderek írását és szerkesztését. A Unity szerkesztő rendelkezik animáció készítésére alkalmas komponenssel, de az animáció előre elkészíthető 3D szerkesztőben is, és a modellel együtt importálható, majd fájlokra bontható.

A Unity 3D támogatja a Level Of Detail (röv. LOD) rendszert, melynek lényege, hogy a lejátszótól távol eső, rendkívül részletgazdag modelleket kevésbé részletesek váltják fel, és fordítva, valamint az Occlusion selejtező rendszer, melynek lényege, hogy a kamera látóterében nem lévő objektumok, geometria és ütközések nem jelennek meg, ami csökkenti a központi processzor terhelését és lehetővé teszi a projekt optimalizálását. A projekt összeállításakor egy futtatható (.exe) játékfájl jön létre ( Windows esetén ), és egy külön mappában - a játékadatok (beleértve az összes játékszintet és a dinamikusan kapcsolódó könyvtárakat).

A motor számos népszerű formátumot támogat. A modellek, hangok, textúrák, anyagok, szkriptek .unitypackage formátumba csomagolhatók, és átvihetők más fejlesztőknek, vagy feltölthetők ingyenes hozzáférésre. Ugyanezt a formátumot használják a belső Unity Asset Store-ban, ahol a fejlesztők ingyen és pénzért megoszthatják a játékok létrehozásához szükséges különféle elemeket. A Unity Asset Store használatához Unity fejlesztői fiókkal kell rendelkeznie.

Az UNet (egy könyvtár a többjátékos Unity játékokban való megvalósításához) a 2018.4-es verzió óta eltávolítva; multiplayerhez nincs kész megoldás. Használhatja a felhasználóbarát verziókezelési módszert is. Például Tortoise SVN, Git vagy Source Gear .

A Unity tartalmazza a Unity Asset Servert, a Unity alapú együttműködési fejlesztőeszközt, amely egy olyan kiegészítő, amely verziókezelést és számos más szerveroldali megoldást ad hozzá.

Előnyök és hátrányok

A játékmotorok általában sok olyan funkciót biztosítanak, amelyek lehetővé teszik, hogy különféle játékokban használják őket, beleértve a fizikai szimulációt, a normál térképeket, a dinamikus árnyékokat és egyebeket. Sok játékmotorral ellentétben a Unitynek két fő előnye van: a vizuális fejlesztőkörnyezet jelenléte és a platformok közötti támogatás [8] . Az első tényező nem csak a vizuális modellező eszközöket foglalja magában, hanem egy integrált környezetet , az összeállítási láncot is, amelynek célja a fejlesztők termelékenységének javítása, különösen a prototípus-készítés és a tesztelés szakaszaiban. A többplatformos támogatás keretében nem csak a telepítési helyek (telepítés személyi számítógépre, mobileszközre, konzolra stb.) biztosítottak, hanem a fejlesztői eszközök elérhetősége is (az integrált környezet Windows és Mac OS alatt is használható) [4] .

A harmadik előny a Unity moduláris komponensrendszere, amelyet játékobjektumok megalkotására használnak, ha az utóbbiak funkcionális elemek kombinálható csomagjai. Az öröklési mechanizmusokkal ellentétben az Unity objektumai funkcióblokkok kombinálásával jönnek létre , nem pedig az öröklődési fa csomópontjaiba helyezve őket. Ez a megközelítés megkönnyíti a prototípusok létrehozását, ami fontos a játékfejlesztésben [9] .

Hátrányként a vizuális szerkesztő korlátozását adják meg többkomponensű diagramokkal végzett munka során, amikor a vizuális munka bonyolult jelenetekben nehéz. A második hátrány a külső könyvtárakra mutató hivatkozások Unity támogatásának hiánya , amelyet a programozóknak maguknak kell beállítaniuk, és ez megnehezíti a csapatmunkát. Egy másik hátrány a példánysablonok ( angol  prefabs ) használatához kapcsolódik. Ez az Unity koncepció egyrészt rugalmas megközelítést kínál az objektumok vizuális szerkesztéséhez, másrészt az ilyen sablonok szerkesztése nehézkes [9] . Ezenkívül a motor WebGL - verziójának architektúrájának sajátosságai miatt (a kód fordítása C#-ról C++-ra, majd JavaScriptre) számos megoldatlan probléma van a teljesítménnyel, a memóriafogyasztással és a mobileszközök teljesítményével kapcsolatban [10] [11 ] ] .

Games on Unity

Játékok, alkalmazások és szimulációk százai íródnak a Unity-n [12] , a Unity-t mind a nagy fejlesztők (például a Blizzard [13] ), mind pedig az indie játékok létrehozásában használják . A Unity számítógépes játékai számos platformot és műfajt lefednek, tipikus példák ezekre [14] :

Történelem

A Unity első verziója 2005-ben jelent meg, amikor a Worldwide Developers Conference -en bejelentették a játékmotort . A Unity kezdetben kizárólag Mac számítógépekre készült, augusztusban pedig megjelent egy frissítés, amely lehetővé tette, hogy Windows alatt is működjön. A következő verziók fokozatosan új platformokkal és telepítésekkel egészültek ki: többplatformos weblejátszó 2006-ban, iPhone 2008-ban, Android 2010-ben, és tovább az Xbox és Playstation játékkonzolok [4] .

Lehetőség van böngészőben futtatható alkalmazások létrehozására egy speciális Unity (Unity Web Player) beépülő modul segítségével , valamint a WebGL technológia megvalósításával. Korábban az Adobe Flash Player modulon belüli projektek megvalósításához volt kísérleti támogatás [15] , de később a Unity fejlesztőcsapata meghozta azt a nehéz döntést, hogy felhagy ezzel [16] .

2009 decemberében a Gamasutra a Unity-t a szerencsejáték-társaságok piacának egyik legjelentősebb szereplőjének nevezte [17] .

Licencek

A Unity ingyenes verziójának vannak bizonyos korlátozásai, de lehetőség van játékok terjesztésére, feltéve, hogy a játékból származó éves bevétel nem haladja meg a 100 000 dollárt [18] .

Jogosítvány típus Vállalati bevétel évente Üdvözlő képernyő Többjátékos funkciók Beépített felhőtárhely Sötét téma Teljesítményjelentések Prémium támogatás Hozzáférés a forráskódhoz Ár ( dollárban )
Személyes 100 000 dollárig „Made With Unity” és opcionális egyéni animáció 20 CCU Alapértelmezett Igen Nem Nem Nem Ingyenes
Plusz 200 000 dollárig Egyedi animáció és/vagy „Made With Unity” 50 CCU Kiemelten fontos Igen Igen Nem Nem 399 évente vagy 40 havi
Pro Nincs korlátozva Egyedi animáció és/vagy „Made With Unity” 200 CCU Egyidejű Igen Igen Igen Nem 1800 évente vagy 150 havonta
Vállalkozás Nincs korlátozva Egyedi animáció és/vagy „Made With Unity” Egyedi többjátékos Dedikált források Igen Igen Igen Igen 200 dollár havonta

Jegyzetek

  1. https://unity3d.com/get-unity/download/archive
  2. A Unity 2022.1 béta már elérhető  (angol nyelven) – 2021.
  3. Hawking, 2016 , p. 16.
  4. 1 2 3 Hawking, 2016 , p. 22.
  5. Unity Technologies. Unity - Manual : Unity architektúra  . docs.unity3d.com . Letöltve: 2022. május 13. Az eredetiből archiválva : 2022. május 13.
  6. Unity Technologies. Unity - Kézikönyv: Fizika  (angol) . docs.unity3d.com . Letöltve: 2022. május 13. Az eredetiből archiválva : 2022. május 13.
  7. Unity Technologies. Unity - Manual : Jelenetek  . docs.unity3d.com . Letöltve: 2022. május 13. Az eredetiből archiválva : 2022. április 18..
  8. Hawking, 2016 , p. 21.
  9. 1 2 Hawking, 2016 , p. 23.
  10. Memória szempontok a WebGL megcélzásakor . Letöltve: 2018. augusztus 24. Az eredetiből archiválva : 2018. augusztus 24.
  11. Verge3D versus Unity WebGL - Pipeline and Performance . Letöltve: 2018. augusztus 24. Az eredetiből archiválva : 2018. augusztus 24.
  12. Hawking, 2016 , p. 24-26.
  13. Még a Hearthstone is fut Unityn – és ezért van már iPaden is . Letöltve: 2017. szeptember 29. Az eredetiből archiválva : 2017. november 5..
  14. Hawking, 2016 , p. 25-.
  15. Dean Takahashi. A Unity Technologies fejlesztői 3D-s játékokat tehetnek közzé az Adobe Flash  segítségével . VentureBeat (2011. december 21.). Letöltve: 2012. március 11. Az eredetiből archiválva : 2012. június 9..
  16. David Helgason. Naplemente  vaku . Az Egység Blog (2013. április 23.). Hozzáférés dátuma: 2014. december 9. Az eredetiből archiválva : 2014. november 29.
  17. Christian Nutt. A Gamasutra 2009-es legjobbjai: Az 5 legjobb  játéktársaság . Gamasutra. - "A Unity 2009-től a piac jelentős szereplőjévé vált, és még több lesz." Letöltve: 2012. március 11. Az eredetiből archiválva : 2012. június 9..
  18. Unity szoftver licencszerződés 4.x. Hozzáférés dátuma: 2014. március 6. Az eredetiből archiválva : 2014. március 7.

Irodalom

Linkek