Unity (spelmotor)

Enhet
Sorts spelmotor , integrerad utvecklingsmiljö , konstruktör , ramverk
Utvecklaren Unity Technologies
Skrivet i C++ (körtid), C#
Operativ system Microsoft Windows , macOS , Linux , Android och iOS
Gränssnittsspråk engelsk
Första upplagan 8 juni 2005
Hårdvaruplattform PC
PlayStation 4
PlayStation 5
Xbox One
Xbox Series X
Apple TV
senaste versionen
betaversion
stat aktiva
Licens Proprietär
Hemsida unity.com
 Mediafiler på Wikimedia Commons

Unity ( unity i översättning från  engelska  -  "unity", uttalas som "unity") är en plattformsoberoende utvecklingsmiljö för datorspel [3] , utvecklad av det amerikanska företaget Unity Technologies . Unity låter dig skapa applikationer som körs på mer än 25 olika plattformar, inklusive persondatorer , spelkonsoler , mobila enheter , internetapplikationer och andra [4] . Releasen av Unity skedde 2005 och sedan dess har det skett en konstant utveckling.

De främsta fördelarna med Unity är närvaron av en visuell utvecklingsmiljö , plattformsoberoende stöd och ett modulärt system av komponenter. Nackdelarna inkluderar uppkomsten av svårigheter vid arbete med flerkomponentkretsar och svårigheter vid anslutning av externa bibliotek .

Tusentals spel, applikationer, visualiseringar av matematiska modeller är skrivna på Unity, som täcker många plattformar och genrer. Samtidigt används Unity av både stora utvecklare och oberoende studior .

Funktioner

Unity-redigeraren har ett enkelt Drag&Drop -gränssnitt, samt installation av KALI-plugins, som är lätt att konfigurera, bestående av olika fönster, så att du kan felsöka spelet direkt i editorn . Motorn använder C# [5] för att skriva skript . Boo ( Python- dialekt , borttagen i version 5) och en JavaScript -modifiering känd som UnityScript (fasad i version 2017.1) stöddes också tidigare . Fysikberäkningar utförs av NVIDIAs PhysX -fysikmotor för 3D-fysik och Box2D för 2D-fysik [6] . Graphics API - DirectX (för närvarande stöds DX 11 , DX 12 )

Projektet i Unity är uppdelat i scener ( nivåer ) - separata filer som innehåller deras spelvärldar med sina egna objekt, scenarier och inställningar. Scener kan innehålla både objekt (modeller) och tomma spelobjekt - objekt som inte har en modell ("dummy") [7] . Objekt innehåller i sin tur uppsättningar av komponenter som skript interagerar med. Objekt har också ett namn (i Unity är två eller flera objekt med samma namn tillåtna i en scen), det kan finnas en tagg (etikett) och ett lager som den ska visas på. Så, alla objekt på scenen måste ha en Transform-komponent - den lagrar koordinaterna för objektets placering, rotation och storlek längs alla tre axlarna.

Unity stöder också stel kropps- och tygfysik, såväl som fysik av Ragdoll (trasdocka).

Redaktören har ett objektsarvssystem; underordnade objekt kommer att upprepa alla ändringar i det överordnade objektets position, rotation och skala.

Skript i editorn är kopplade till objekt som separata komponenter.

När du importerar en textur till Unity kan du generera alfakanal , mip-nivåer , normalkarta , ljuskarta , reflektionskarta, men du kan inte fästa en textur direkt till modellen - ett material kommer att skapas till vilket en skuggning kommer att tilldelas , och sedan kommer materialet att bifogas modellen. Unity-redigeraren stöder skrivning och redigering av shaders. Unity-redigeraren har en komponent för att skapa animationer, men animering kan också förskapas i en 3D-redigerare och importeras tillsammans med modellen och sedan delas upp i filer.

Unity 3D stöder Level Of Detail (förkortning LOD)-systemet, vars essens är att på långt avstånd från spelaren ersätts mycket detaljerade modeller av mindre detaljerade, och vice versa, såväl som ocklusionsutslagningssystemet, kärnan i detta är att objekt, geometri och kollisioner som inte är i kamerans synfält inte renderas, vilket minskar belastningen på den centrala processorn och gör att du kan optimera projektet. När ett projekt kompileras skapas en körbar (.exe) spelfil (för Windows ), och i en separat mapp - speldata (inklusive alla spelnivåer och dynamiskt länkade bibliotek).

Motorn stöder många populära format. Modeller, ljud, texturer, material, skript kan packas i .unitypackage-format och överföras till andra utvecklare, eller laddas upp för fri tillgång. Samma format används i den interna Unity Asset Store, där utvecklare kan dela olika element som behövs för att skapa spel gratis och för pengar. För att använda Unity Asset Store måste du ha ett Unity-utvecklarkonto.

UNet (ett bibliotek för att implementera multiplayer i Unity-spel) har tagits bort sedan version 2018.4; det finns ingen färdig lösning för multiplayer. Du kan också använda den användarvänliga metoden för versionskontroll. Till exempel Tortoise SVN, Git eller Source Gear .

Unity inkluderar Unity Asset Server, ett utvecklingsverktyg baserat på Unity som är ett tillägg som lägger till versionskontroll och ett antal andra lösningar på serversidan.

Fördelar och nackdelar

Vanligtvis ger en spelmotor en hel del funktionalitet som gör att de kan användas i olika spel, som inkluderar fysiksimulering, normala kartor, dynamiska skuggor och mer. Till skillnad från många spelmotorer har Unity två huvudsakliga fördelar: närvaron av en visuell utvecklingsmiljö och plattformsoberoende stöd [8] . Den första faktorn inkluderar inte bara visuella modelleringsverktyg utan också en integrerad miljö , monteringskedjan , som syftar till att förbättra utvecklarnas produktivitet, i synnerhet stadierna av prototypframställning och testning. Under plattformsoberoende stöd tillhandahålls inte bara distributionsplatser (installation på en persondator, på en mobil enhet, konsol, etc.), utan också tillgängligheten av utvecklingsverktyg (den integrerade miljön kan användas under Windows och Mac OS) [4] .

Den tredje fördelen är Unitys modulära komponentsystem, som används för att konstruera spelobjekt när de senare är kombinerbara paket av funktionella element. Till skillnad från arvsmekanismer skapas objekt i Unity genom att kombinera funktionsblock , snarare än att placeras i noder i ett arvsträd. Detta tillvägagångssätt underlättar skapandet av prototyper, vilket är viktigt vid spelutveckling [9] .

Som nackdelar ges begränsningen av den visuella editorn när man arbetar med flerkomponentsdiagram, när visuellt arbete är svårt i komplexa scener. Den andra nackdelen är bristen på Unity-stöd för länkar till externa bibliotek , som programmerare måste konfigurera sig för att arbeta med, och detta gör också lagarbete svårt. En annan nackdel är förknippad med användningen av instansmallar ( engelska  prefabs ). Å ena sidan erbjuder detta Unity-koncept ett flexibelt tillvägagångssätt för visuell redigering av objekt, men å andra sidan är det svårt att redigera sådana mallar [9] . Dessutom har WebGL- versionen av motorn, på grund av detaljerna i dess arkitektur (översätta kod från C# till C++ och vidare till JavaScript), ett antal olösta problem med prestanda, minnesförbrukning och prestanda på mobila enheter [10] [11 ] .

Spel på Unity

Hundratals spel, applikationer och simuleringar skrivs på Unity [12] , Unity används både av stora utvecklare (till exempel Blizzard [13] ) och i skapandet av indiespel . Datorspel på Unity täcker många plattformar och genrer, typiska exempel på dessa är [14] :

Historik

Den första versionen av Unity dök upp 2005 när spelmotorn tillkännagavs vid Worldwide Developers Conference . Ursprungligen var Unity uteslutande avsedd för Mac-datorer, och i augusti släpptes en uppdatering för att låta den fungera under Windows. Följande versioner lade gradvis till nya plattformar och distributioner: plattformsoberoende webbspelare 2006, iPhone 2008, Android 2010 och vidare på Xbox- och Playstation-spelkonsolerna [4] .

Det är möjligt att skapa applikationer att köra i webbläsare med hjälp av en speciell plug-in Unity (Unity Web Player) , samt att använda implementeringen av WebGL-teknik. Tidigare fanns det experimentellt stöd för implementering av projekt inom Adobe Flash Player -modulen [15] , men senare tog Unitys utvecklingsteam det svåra beslutet att överge detta [16] .

I december 2009 utsågs Unity av Gamasutra till en av de viktigaste spelarna på spelbolagsmarknaden [17] .

Licenser

Gratisversionen av Unity har vissa begränsningar, men det är möjligt för den att distribuera spel, förutsatt att den årliga inkomsten från spelet inte överstiger 100 000 $ [18] .

Licens typ Bolagets inkomst per år Välkomstskärm Flerspelarfunktioner Inbyggd molnlagring Mörkt tema Resultatrapporter Premium Support Tillgång till källkod Pris (i dollar )
Personlig Upp till $ 100 000 "Made With Unity" och valfri anpassad animering 20 CCU Standard Ja Inte Inte Inte Är gratis
Plus Upp till $ 200 000 Anpassad animation och/eller "Made With Unity" 50 CCU Prioritet Ja Ja Inte Inte 399 per år eller 40 per månad
Proffs Inte begränsad Anpassad animation och/eller "Made With Unity" 200 CCU Samtidig Ja Ja Ja Inte 1800 per år eller 150 per månad
Företag Inte begränsad Anpassad animation och/eller "Made With Unity" Anpassad multiplayer Dedikerade resurser Ja Ja Ja Ja 200 $ per månad

Anteckningar

  1. https://unity3d.com/get-unity/download/archive
  2. Unity 2022.1 beta är nu tillgänglig  (engelska) - 2021.
  3. Hawking, 2016 , sid. 16.
  4. 1 2 3 Hawking, 2016 , sid. 22.
  5. Unity Technologies. Unity-Manual : Unity-arkitektur  . docs.unity3d.com . Hämtad 13 maj 2022. Arkiverad från originalet 13 maj 2022.
  6. Unity Technologies. Unity - Manual: Physics  (engelska) . docs.unity3d.com . Hämtad 13 maj 2022. Arkiverad från originalet 13 maj 2022.
  7. Unity Technologies. Unity - Manual : Scener  . docs.unity3d.com . Hämtad 13 maj 2022. Arkiverad från originalet 18 april 2022.
  8. Hawking, 2016 , sid. 21.
  9. 1 2 Hawking, 2016 , sid. 23.
  10. Minnesöverväganden vid inriktning på WebGL . Hämtad 24 augusti 2018. Arkiverad från originalet 24 augusti 2018.
  11. Verge3D kontra Unity WebGL - Pipeline och prestanda . Hämtad 24 augusti 2018. Arkiverad från originalet 24 augusti 2018.
  12. Hawking, 2016 , sid. 24-26.
  13. Även Hearthstone körs på Unity — och det är därför det redan finns på iPad . Hämtad 29 september 2017. Arkiverad från originalet 5 november 2017.
  14. Hawking, 2016 , sid. 25-.
  15. Dean Takahashi. Unity Technologies utvecklare kommer att kunna publicera 3D-spel via Adobe Flash  . VentureBeat (21 december 2011). Hämtad 11 mars 2012. Arkiverad från originalet 9 juni 2012.
  16. David Helgason. Solnedgångsblixt  . _ Enhetsbloggen (23 april 2013). Datum för åtkomst: 9 december 2014. Arkiverad från originalet den 29 november 2014.
  17. Christian Nutt. Gamasutras bästa från 2009: Topp 5  spelföretag . Gamasutra. - "Unity har blivit en stor aktör på marknaden från och med 2009, och det kommer mer." Hämtad 11 mars 2012. Arkiverad från originalet 9 juni 2012.
  18. Unity Software License Agreement 4.x. Tillträdesdatum: 6 mars 2014. Arkiverad från originalet 7 mars 2014.

Litteratur

Länkar