Unreal Engine

от Уикипедия, свободната енциклопедия
Направо към навигацията Направо към търсенето
Unreal Engine
Unreal Engine logo and wordmark.png
Информация
Разработчик Epic Games
Последна версия Unreal Engine 4.15, 15 февруари 2017
Език на интерфейса английски, корейски, китайски, японски
Вид софтуер игрови двигател
Уебсайт unrealengine.com
Unreal Engine в Общомедия

Unreal Engine e игрови двигател, разработен от Epic Games. За пръв път е демонстриран през 1998 година в играта Unreal. Въпреки че е разработен предимно за шутъри от първо лице, той е използван успешно в редица игри от различни жанрове като стелт, MMORPG и RPG. Софтуерният код на Unreal Engine е написан на езика C++, което му осигурява висока степен на портативност. Днес се използва от много разработчици на игри.

Текущата версия е Unreal Engine 4, предназначена за технологията DirectX 11 и 12 на Майкрософт(за Microsoft Windows, Xbox One и Windows RT); OpenGL (за OS X, Linux, PlayStation 4, iOS, Android, Ouya и Windows XP); и JavaScript/WebGL (за уеб браузъри, поддържащи HTML5[1][2]).

Версии[редактиране | редактиране на кода]

Unreal Engine 1[редактиране | редактиране на кода]

Unreal Engine 1
Информация
Последна версия Unreal Tournament build 436 / ноември 2000
Програмен език C++, UnrealScript, Assembly
Платформа Microsoft Windows, Linux, Mac OS и OS X, Dreamcast, PlayStation 2
Unreal Engine 1 в Общомедия

С дебюта си през 1998 година с играта Unreal, първото поколение Unreal Engine интегрира рендъринг, откриване на сблъсъци, изкуствен интелект, видимост и полезрение, работа в мрежата, скриптиране, и управление на файлова система в един цялостен двигател. Unreal Engine 1 предоставя напреднал софтуерен растеризатор и хардуерно-ускорен рендъринг използвайки Glide API, специално разработен за 3dfx графични процесори. По-късно е добавена поддръжка за OpenGL и Direct3D. Значителни части от играта са имплементирани чрез вградения скриптов език, наречен UnrealScript. Epic използват двигателя за Unreal и Unreal Tournament. С излизането на Unreal Tournament се отбелязва голям напредък в мрежовата производителност и поддръжката на Direct3D и OpenGL.

Двигателят става популярен благодарение на модулната си архитектура и вградения скриптов език, който улеснява модифицирането. Tactical Ops е игра, започнала като мод за Unreal Tournament и превърнала се в самостоятелно заглавие след цялостна модификация.

По време на интервю със списание Maximum PC, създателят на Epic Games – Тим Суийни заявява, че от самото начало двигателят е проектиран така, че да бъде лесно разширяван и подобряван за бъдещи игри.[3]

Unreal Engine 2[редактиране | редактиране на кода]

Killing Floor е разработена на базата на Unreal Engine 2.
Unreal Engine 2
Информация
Последна версия Unreal Engine 2.5 build 3369 / ноември 2005
Програмен език C++, UnrealScript
Платформа Microsoft Windows, Linux, OS X, Xbox, PlayStation 2, GameCube
Unreal Engine 2 в Общомедия

Втората версия прави своя дебют през 2002 година в „Армията на Америка“ – безплатна мултиплеър шутър игра, създадена и спонсорирана от американската армия. В тази версия основния код и съответстващия игрови двигател са напълно пренаписани. Освен това, тя включва и UnrealEd 2, което присъства и в предишна версия на игровия двигател, скоро след което е последван от UnrealEd 3, заедно с Karma physics EDK. Този физичен двигател осъществява рагдол физиката (процедурна анимация, използвана за пресъздаване на определени статични анимации) в Unreal Tournament 2003 и Unreal Championship. Други елементи на двигателя също са надградени, като например добавянето на съпорт за GameCube и Xbox.

Unreal Engine2.5, ъпдейт на оригиналната версия на UE2, подобрява представянето си и добавя транспортна физика, редактор за частици за UnrealEd, а също така и 64-битов съпорт за Unreal Tournament 2004. Специално издание на UE2.5, наречен UE2X, е използван за Unreal Championship 2: The Liandri Conflict за оригиналната Xbox платформа. То съдържа оптимизации специфични за тази конзола. UE2X e създадена през март 2004 като билд 2227. През март 2011 е обявено, че UE2.5 е съвместима с Nintendo 3DS.[4]

Unreal Engine 3[редактиране | редактиране на кода]

Unreal Engine 3
Информация
Последна версия Unreal Engine 3 build 12791.2424394 / февруари 2015
Програмен език C++, C#, UnrealScript, GLSL, Cg, HLSL
Платформа Microsoft Windows, Linux, OS X, Xbox 360, Xbox One, PlayStation 3, PlayStation 4, Wii U, Android, iOS, Windows RT, and PlayStation Vita, Adobe Flash Player, HTML5
Unreal Engine 3 в Общомедия

Първи скрийншотове на третата версия са презентирани през 2004 година[5], като към този момент този енджин вече е разработван от 18 месеца[6]. За ралика от втората версия, която все още поддържа пренос със фиксирани функции, третата версия използва пълните възможности на изцяло програмиран шейдър хардуер. Всички изчисления за светлината вече се правят на вертекс, а не на пиксел. От гледна точка на рендъринга, UE3 вече предоставя поддръжка за гама високо-динамичен диапазонов рендърър. В UE3 са отчетени очакванията че съдържанието ще бъде както с висока, така и с ниска резолюция, а също така и присъствието на нормални карти за рънтайм. Основна разлика с предишните поколения двигатели е, че съдържанието на играта е моделирано директно. (Тъй като нормалното картиране е операция „на пиксел“и почти цялото динамично осветяване в UE1 и UE2 се е калкулирало „на вертекс“ посредством шединг техниката на Гуро).

Третото поколение на двигателя е проектирано за DirectX(версии 9 – 11 за Windows, Windows RT и Xbox360) както и за системи използващи OpenGL, включително OS X, iOS Android, Stage3D за Adobe Flash Player 11 и javascript за HTML браузъри[7]. Първоначално, UE3 поддържа само Windows, Xbox и PlayStation, докато поддръжката на Android и iOS е добавена през 2010. OS X съпорт е добавен през 2011. Неговият рендърър поддържа много напреднали технологии като HDRR, осветяване „на пиксел“ и динамични сенки. Също така се надграждат наличните инструменти от предишни версии. През Октомври 2011, двигателят започва да поддържа Adobe Flash Player 11 през Stage3D хардуерно акселерирани API-та. Epic използват тази версия на двигателя за разработването на своите игри. Агресивното лицензиране за тази итерация получава широка подкрепа от много известни лицензанти. Epic обявяват, че UE 3 работи на Windows 8 и Windows RT. Първата конзолна игра, използваща UE 3 е Gears of War, докато първата компютърна игра е RoboBlitz.

Освен в гейминг индустрията, UE3 е припознат и в много проекти от други сфери. Например:

  • Популярното детско ТВ шоу LazyTown използва UE3 по време на снимки за да генерира виртуален сет за интеграция в реално време със заснемане на герой и кукли, които играят пред зелен екран[8].
  • През март 2012, ФБР лицензира УЕ3 за да го използва в симулатор с тренировъчни цели[9].
  • Анимационния софтуер „Muvizu Play“, пуснат през 2013, също използва UE3.

Unreal Development Kit[редактиране | редактиране на кода]

The Ball, базирана на UDK.

Въпреки че UE3 е доста отворено за разработчици възможността да се публикуват и продават игри, за направата на които е използван UE3, са ограничени само до лицензиантите на двигателя. През ноември 2009 Epic издава безпалтна версия на UE3 SDK, наречена Unreal Development Kit(UDK). Според условията за ползване, разработчиците на игри могат да продават своите игри, плащайки на Epic цената от 99 долара, както и 25 процента от приходи, свързани с UDK (ако приходите надвишават 50 000 долара) за всички базирани на UDK игри или комерсиални апликации[10].

През 2010 УДК добавя поддръжка за създаване iOS игри и апликации. Пакетът на UDK за iOS[11] включва:

  • Пълният сорс и съдържание за Epic Citadel, а също така и допълнителна демо карта на замък.
  • Съпорт за основните UE3 десктоп фийчъри, като това включва Unreal Editor и неговия напълно интегриран пакет от инструменти (Unreal Kismet, Unreal Cascade and Unreal Matinee).
  • Подобрени рендъринг системи, включващи Unreal Lightmass global illumination, поддържана от Unreal Swarm distributed computing.
  • Функционалност за пренос на съдържанието.
  • Подобрено осветяване и работа със сенки (например осветяване „на пиксел“ и сенки в реално време)
  • Подобрени възможности на конзолата.
  • Пълна визуално скриптираща функционалност на Unreal Kismet, което позволява на разработчиците да създават игри, без да е нужно да модифицират програмния код.
  • UDK Remote позволява на iOS устройства да служат като безжични контролери с пълна функционалност за тестване на игри на компютър.

От септември 2011 iOS, OS X и Windows поддържат всички игри, създадени с UDK.

Ъпдейти

През живота на UE3 значителните обновения са:

  • Epic Games съобщават по време на Game Developers Conference (Конференция за разработчици на игри) 2009 някои подобрения направени по Unreal Engine 3. Те включват:
    • Unreal Lightmass: Предоставя високо-качествено статично осветление със следваща генерация ефекти като меки сенки
    • Способността да се добавят фрактурни елементи на статични мешове, за да се симулира околна среда, възможна за унищожение
    • Меки динамики на телата
    • Симулации на големи тълпи
  • Декември 2009, Epic демонстрират UE3, която върви на трета генерация iPod Touch. Казват, че ще поддържат iPhone 3GS и незнайна мобилна платформа, която е възможно да бъде webOS през CES 2010. Разкрито е да бъде нещо на платформата Tegra на Nvidia.
  • Март 2010, Steamworks е вграден във софтуера и е предлаган на хората закупили лиценз.
  • Юни 2010, Марк Ревин по време на Electronic Entertainment Expo 2010, показва тек демо на играта Gears of War 2 във стереоскопично 3D вървейки на Xbox 360 благодарение на TriOviz for Games Technology. 
  • Октомври 2010 TriOviz for Games Technology бе официално интегрирана в UE3. Това позволява минали и идващи игри лесно да бъдат конвертирани в стереоскопично 3D.
  • От Март 2011 Unreal 3 Engine поддържа DirectX 11. 
  • Юли 2011, Geometrics обявяват, че тяхната глобална система за осветление Enlighten вече е интегрирана в UE3 и достъпна за хората с лиценз[12].
  • Октомври 2011, Epic Games обявяват, че версия на енджина ще бъде съвместима с Adobe Flash Player.
  • Май 2012, добавя се поддръжка на RealD 3D стереоскопична технология.
  • Март 2013, Mozilla и Epic Games демонстрират UE3, който върви на браузър, използващ HTML5 и JavaScript.

Unreal Engine 4[редактиране | редактиране на кода]

Unreal Engine 4
Информация
Последна версия Unreal Engine 4.10 / 11 ноември 2015
Програмен език C++, C#, GLSL, Cg, HLSL (без UnrealScript)
Платформа Microsoft Windows, Linux, OS X, Xbox One, PlayStation 4, HTML5, iOS, Android
Unreal Engine 4 в Общомедия
Интерактивна интериорна визуализация на базата на Unreal Engine 4. Създадена от UE4Arch.com
  • На 17 август 2005, Марк Рейн, вицепрезидентът на Epic Games разкрива, че Unreal Engine 4 е била в разработка още от 2003. До средата на 2008 разработката била изцяло правена от Тим Суийни, създателя на Epic Games. Целта на енджина са осмата генерация конзоли и настолни компютри.
  • През февруари 2012, Марк Рейн казва: „Хората ще са шокирани, когато по-късно тази година видят Unreal Engine 4“. 
  • Едно от основните свойства на UE4 е осветление в реално време, което заместило предварително заредено осветление. Обаче, това свойство бе заменено с подобно, но по-евтино от страна на компютърна сила преди пускането на продукта на всички платформи, включващи и настолните компютри. Главната причина за това била загрижеността за работата на енджина на следващата генерация конзоли. UE4 също добавя нови неща за разработчиците, за да намали времето нужно за итерация, и позволява обновление на С++ код, докато енджина работи. Новата „Blueprint“ визуална система за правене на скриптове позволява бързо разработване на игрова логика без използването на С++ и включва live дебъгване. Резултатите са намалено време за итерация и по-малко разделение между технически художници, дизайнери и програмисти.
  • На 19 март 2014, по време на Game Developers Conference, Epic Games пускат UE4 и всичките и инструменти и пълен С++ сорс код, за абонаментен модел. Всеки може да се получи енджина за 19$ на месец, плюс 5% от печалбата от всеки комерсиален продукт създаден със енджина. Тим Суийни казва, че новият бизнес модел показва промяната в индустрията. Epic Games обикновено давали енджина на големи отбори от девелапъри, за цени около милиони долари, но с еволюцията на индустрията им се наложи да премислят цялата си бизнес стратегия и начина, по който правят енджина достъпен за девелапъри. Според сайта на Unreal Engine, абониралите се могат да се откажат от абонамента си по всяко време и да го подновят по всяко време. Те ще имат възможността да запазят пълен достъп до инструментите на UE4, но няма да получат достъп до бъдещи издания на Unreal Engine 4.
  • На 3 септември, Epic Games пускат Unreal Engine Marketplace, позволявайки на абониралите се за енджина да купуват и продават това създадено от други абонирали се. Освен всичкия безплатно пуснат материал, marketplace-а идва с разнообразие от различни околни среди, герои, звуци материали, анимации и готов С++ код, заедно с безплатни примери и уроци.
  • На 3 септември, Epic Games пускат UE4 безплатно за училища и университети, включвайки и лични копия за ученици, записани по програми за разработка на видео игри, компютърни науки, симулации и програми за визуализиране. Освен това, учениците имат право да запазят своя неограничен достъп до всяка версия на енджина, която са ползвали по време на курсовата си работа, което им дава опцията да превърнат учебния си проект в продукт, който може да се продава наистина.
  • На 19 февруари 2015, Epic започват Unreal Dev Grants, 5 милионен фонд, който има за цел да даде финансова подкрепа за иновативни проекти построени с Unreal Engine 4. Наградите са от 5000$ до 50 000$, без никакви допълнителни изисквания от страна на Epic, тоест разработчиците имат пълната свобода и пълно право върху своя продукт.
  • От 2 март, Unreal Engine 4 е достъпна да всички безплатно и всички бъдещи обновления ще бъдат също безплатни. Epic ще върнат парите на хората купили енджина след 31 януари 2015. Освен това, всеки който някога се е бил абонирал за енджина получава 30$ купон за Marketplace-а. Ако проектите са пуснати за продажба, разработчиците трябва да платят 5% от цялата печалба след първите 3000$.
  • През 2015, Armature Studio съобщава, че ще портва играта Bloodstained: Ritual of the Night на PS Vita и Wii U. Това означава, че и енджина ще бъде портнат на тези платформи (още не са поддържани от Epic Games). Armature ще направят целия си код достъпен до всички лицензирани Wii U и PS Vita разработчици след като играта е готова.

Направете нещо нереално[редактиране | редактиране на кода]

В надпреварата „Направете нещо нереално“ (от англ. „Make Something Unreal“) амбициозни разработчици на игри създават модификации в редица категории, измежду които нива, персонажи, превозни средства, оръжия, типове игра и други. Печалбите са търговски лицензи за Unreal Engine, хардуер и парични награди за над $500,000, което прави общия награден фонд над 1 милион долара. Към 2015 година са проведени четири издания на конкурса (2004, 2008, 2012, 2013). Участниците се оценяват в четири предварителни фази преди финала.

Награди[редактиране | редактиране на кода]

Unreal Engine 3 и 4 печелят множество награди и признания, измежду които:

  • Най-добър игрови двигател (2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012, 2013, 2014)
  • Най-добра графична технология за Xbox 360 (2005)
  • Най-добра графична технология за Xbox One и PlayStation 4 (2012)

Други лицензианти[редактиране | редактиране на кода]

Epic Games предоставя безплатни лицензи за Unreal Engine. Някои типове лицензи и техни получатели са:

UnrealScript[редактиране | редактиране на кода]

UnrealScript (съкратено UScript) е скриптовият език на Unreal Engine. Използва се за авторизиране на игровия код и на геймплей събитията преди официалното излизане на Unreal Engine 4. Предназначението на езика е да направи програмирането на игри от високо ниво[13] лесно и просто. Интерпретаторът на UnrealScript е създаден от Тим Суийни.

Подобен на Java, UnrealScript е обектно-ориентиран, но без многократно наследяване, т.е. класовете се наследяват от обикновен Object клас и са дефинирани в отделни файлове, именувани като класа, който описват. Интерфейсите са поддържани само в трета генерация на Unreal Engine, но също и в някои от игрите, програмирани на Unreal Engine 2. Освен, че улеснява процеса по модифицирането на игри, UnrealScript е спомогнал за разрастването на голямо modding общество сред Unreal сериите. 

Синтаксис[редактиране | редактиране на кода]

Коментиране на кода[редактиране | редактиране на кода]

UnrealScript използва два стила за коментиране на кода. Едноредов коментар (започващ с // до края на реда) и многоредов коментар (започващ с /* и завършващ с */).

// Едноредов коментар
class Foo extends Object;

/* Многоредов
   коментар */
var Object Foo;

Типове данни[редактиране | редактиране на кода]

Примитивни типове[редактиране | редактиране на кода]
  • Bool – булев тип, позволяващ стойности true или false (1 или 0)
  • Byte – 8-битов беззнаков целочислен тип данни
  • Enum
  • Float
  • Int – 32-битов знаков целочислен тип данни
  • Name – ограничена версия на символен низ (String), която позволява използването само на следните символи: ([a-zA-Z0-9_\- ]*)
  • String – символен низ, съдържащ Unicode символи, например „А Б В“
Референтни типове[редактиране | редактиране на кода]
  • Class
  • Delegate
  • Interface
  • Object
  • Pointer
Композитни типове[редактиране | редактиране на кода]
  • Array
  • Struct

Функции[редактиране | редактиране на кода]

UnrealScript използва функции, подобни на тези в C/C++/Java. Функциите се декларират с ключовата дума: function, последвана от незадължителен return тип, от име и от параметри на функцията.

Декларирането на функцията може да изглежда по следния начин:

[modifiers] function [modifiers] datatype] name([parameters]) [const]; точка и запетая (;) е нужна само ако функцията няма тяло.

Пример за проста функция в UnrealScript, която събира две числа:

function int Add(int a, int b)
{
    return a + b;
}

„Hello, world“ пример[редактиране | редактиране на кода]

Това е пример за отпечатването на текста „Hello world“, използвайки синтаксиса на UnrealScript:

class HelloWorld extends GameInfo;

event InitGame(string Options, out string Error)
{
    `log("Hello, world!");
}

Когато HelloWorld се инициализира, на конзолата ще се отпечата следният текст:

Hello, world!

Unreal Editor[редактиране | редактиране на кода]

Unreal Editor, или UnrealED, е редактор, използван за създаването на нива в игрите от серията Unreal. Използва се и от други игри, разработени чрез Unreal Engine, като Deus Ex и Lineage II. Всички игри от серията Unreal за персонални компютри, а и много други, които използват двигателя, включват редактора без допълнителна такса. Това удължава живота на игрите. Непрофесионални дизайнери на нива могат да създават собствени такива за игрите, като така се създава неограничено допълнително съдържание.

Външни препратки[редактиране | редактиране на кода]

Източници[редактиране | редактиране на кода]

Криейтив Комънс - Признание - Споделяне на споделеното Лиценз за свободна документация на ГНУ Тази страница частично или изцяло представлява превод на страницата „Unreal Engine“ в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс - Признание - Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година — от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница. Вижте източниците на оригиналната статия, състоянието ѝ при превода и списъка на съавторите.