Loading AI tools
ігровий рушій З Вікіпедії, вільної енциклопедії
Unreal Engine — ігровий рушій, який розробляється та підтримується компанією Epic Games.
![]() | |
Тип | Ігровий рушій |
---|---|
Розробник | Epic Games, Inc. |
Стабільний випуск | 5.4 (23 квітня 2024 ) |
Платформа | ПК Mac GameCube Xbox Xbox 360 Xbox One Nintendo GameCube Nintendo Switch Wii Wii U PlayStation 2 PlayStation 3 PlayStation 4 PlayStation Portable PlayStation Vita iOS Android[1] |
Операційна система | Microsoft Windows Linux |
Мова програмування | |
Ліцензія | Proprietary, UDK вільна для некомерційного використання[3][4] |
Вебсайт | www.unrealengine.com |
Перша гра, створена на цьому рушії — Unreal, з'явилася в 1998 році. Відтоді різні версії цього ігрового рушія використали у більш ніж сотні ігор, серед яких: Deus Ex, Lineage II, Thief: Deadly Shadows, Postal 2, серія ігор Brothers in Arms, серія ігор Splinter Cell, Tom Clancy's Rainbow Six, а також у відомих ігрових серіях Unreal та Unreal Tournament від самої Epic Games. Пристосований насамперед для шутерів від першої особи, рушій використовувався і для створення ігор інших жанрів.
Написаний мовою програмування C++, рушій дає змогу створювати ігри для більшості операційних систем і платформ таких як Microsoft Windows, Linux, Mac OS і Mac OS X, і консолей: Xbox, Xbox 360, PlayStation 2, PlayStation Portable, PlayStation 3, Wii, Dreamcast і Nintendo GameCube. У грудні 2009 Марк Рейн продемонстрував як працює рушій Unreal Engine 3 на iPod Touch і iPhone 3GS[5]. А у березні 2010 робота рушія була продемонстрована на комунікаторі Palm Pre, що базується на мобільній платформі webOS[6].
Для спрощення портування, рушій використовує модульну систему залежних компонентів: підтримує різні системи рендерингу (Direct3D, OpenGL, Pixomatic; раніше підтримувалися Glide API, S3 Metal, PowerVR SGL), відтворення звуку (EAX, OpenAL, DirectSound3D, раніше підтримувалася A3D), засоби голосового відтворення тексту, розпізнавання мовлення (тільки для Xbox 360, PlayStation 3, Nintendo Wii та Microsoft Windows[7][8], також планувалося для Linux і Mac)[9], модулі для роботи з мережею й підтримання різних пристроїв вводу.
Для багатокористувацького режиму гри підтримуються технології Windows Live, Xbox Live і GameSpy, що дає можливість під'єднати до 64 гравців (клієнтів) одночасно[10]. Попри те, що офіційно засоби розробки не містять у собі підтримки великої кількості клієнтів на одному сервері, рушій використовувався для створення MMORPG-ігор.
Усі елементи ігрового рушія представлені у вигляді об'єктів, що мають набір характеристик і клас, який визначає доступні функції. Так само, будь-який клас є «дочірнім» класом об'єкта. Серед основних класів і об'єктів можна виділити такі:
Для роботи з простими та, як правило, нерухомими елементами ігрового простору (наприклад, стіни) використовується бінарна розбивка простору — увесь простір ділиться на «заповнене» й «порожнє». У «порожній» частині простору розташовуються всі об'єкти, а також лише в ній може перебувати «точка спостереження» під час рендерингу сцени. Можливість повного або часткового поміщення об'єктів у «заповнену» частину простору не виключається, однак може призвести до неправильної обробки таких об'єктів (наприклад, розрахунки фізичної взаємодії) або некоректного рендеру у випадку поміщення туди «точки спостереження» (наприклад, ефект «залу дзеркал»). Усі пішаки, що потрапляють у «заповнену» частину простору, відразу «гинуть».
Поверхня (surface) є основним елементом бінарного дерева простору. Ці елементи створюються на грані перетину між «заповненою» й «порожньою» частинами простору. Група елементів бінарного дерева простору називається нодом (node, укр. вузол). Цей термін, як правило, вживається в контексті node count — кількість нодів на екрані або в ігровому просторі взагалі. Кількість нодів, одночасно видимих на екрані, впливає на продуктивність під час промальовування сцени. Якщо якийсь нод не потрапляє на екран або повністю перекривається іншими нодами, він не обраховується — це допомагає підвищити продуктивність, особливо в замкнених просторах. Розбивка всього простору на групи нодів називається зонуванням[11]. Для цього іноді використовуються портали[12] — невидимі поверхні, які служать для того щоби вручну розділити великий нод на два менші[13][14]. Крім порталів використовуються антипортали[15], які обмежують зони рендерингу.
Опис «заповнених» і «порожніх» частин простору виконується завдяки набору замкнених тривимірних об'єктів, складених із непересічних поверхонь — брашів (brush, укр. пе́нзель). Цей принцип побудови простору називається конструктивною суцільною геометрією. Геометрія може бути «адитивною» (увесь простір початково «порожній») і «попередньо прорахованою» (початково заповнений матерією простір, пререндерених, англ. Pre-rendered[en]). Браші діляться на три типи:
Дебютувавши в 1998 році зі грою Unreal, Unreal Engine 1 сполучав в одному рушієві графічний рушій, фізичний рушій, штучний інтелект, керування файловою і мережевою системами та готове середовище розробки для ігор UnrealEd. З огляду на рівень продуктивності більшості комп'ютерів того часу, розробники дещо спростили деякі елементи рушія: систему виявлення зіткнень, мережевий код, код контролера для гравця[17].
Деякі технології рушія Unreal Engine були революційно новими, наприклад використання Dynamic scene graph (DSG). Ця технологія надавала змогу працювати низці ефектів для накладення на поверхні:
Особливо добре в рушія вийшли неперевершені гало навколо джерел світла, які плавно (а не миттєво) загасали, бувши перекритими краями стін у міру руху гравця; лава й деякі текстури калюж води, у які падали краплі (що виглядають надзвичайно живими й динамічними завдяки використанню процедурних текстур); і фотореалістичне небо. Загалом, гра мала своєрідну графіку, що відрізняє її від інших ігор (тому, що «епоха подібності» ігор одна на одну почалася після її появи).
Спочатку рушій був випущений із підтриманням для двох платформ: IBM PC та Macintosh. Завдяки модульній системі рушія була заявлена можливість портування рушія на приставки «нового покоління» того часу й пізніше був успішно використаний на таких платформах як GameCube, PlayStation 2 і Xbox. Також підтримувалася незалежність мережевого коду від платформи клієнта, тобто користувачі Mac OS могли грати в багатокористувацькому режимі Unreal з користувачами Microsoft Windows.
У грі Wheel Of Time рушій Unreal 1 був удосконалений додаванням деталізації текстур при наближенні до них, що забрало один із недоліків графіки — низькодетальні «замилені» поверхні (тому, що гра розроблялася в розрахунку на прискорювачі 3Dfx, що мають усього 4 MB текстурної пам'яті, і часто використовувався метод масштабування, описаний вище).
У 1999 році вийшла покращена версія рушія Unreal, призначена для тогочасних комп'ютерів і консолей Dreamcast і PlayStation 2. Були внесені значні доповнення — підтримання лицьової анімації, максимальна роздільна здатність текстур збільшена до 1024x1024, розширювана система «часток», технологія S3TC. Також була інтегрована друга версія редактора UnrealEd. Ця версія рушія використовується в онлайн-шутері Unreal Tournament, і в аркаді Гаррі Поттер і Філософський камінь.
Через кілька років група незалежних розробників UTPG звернулася до Epic Games за доступом до вихідних кодів виконуваних файлів Unreal Tournament, щоби продовжити підтримування гри. Epic Games прийняли пропозицію і якийсь час команда розробників випускала неофіційні патчі для гри[19].
Друга версія Unreal Engine побачила світ у 2002 році з появою Unreal Tournament 2003. У ній були практично повністю переписані ядро й механізм рендерингу, а також інтегрована нова версія редактора UnrealEd 3. Крім цього, рушій використовував фізичну підсистему Karma[20]. Інші частини рушія були також поліпшені або змінені для кращої сумісності з PlayStation 2, GameCube і Xbox.
З'явилися такі технології:
У зв'язку з переходом на 16-бітну графіку й використання технології Karma, використання варп-зон стало ускладнено.
У цій версії був вкотре покращено та оптимізовано графічний рушій — з'явилась підтримка Direct3D 9, OpenGL 2 і Pixomatic (остання система рендерингу слугує для комп'ютерів зі слабкою відеокартою, але потужним центральним процесором). Додана підтримка 64-бітних операційних систем Windows NT і GNU/Linux. Найбільша можлива роздільна здатність текстур досягла розміру в 4096x4096 пікселів, додана повноцінна підтримка юнікоду (16-біт), що дало змогу створювати повністю локалізовані ігри на азійських мовах. У пізніших версіях впроваджений SpeedTree. З'явилася можливість відтворення відео у форматі DivX і Bink. Крім того, була покращена оптимізація рушія, що дозволило досягти більшої продуктивності на тих же обчислювальних ресурсах.
Ця версія рушія була застосована в комп'ютерній грі Unreal Tournament 2004.
Спеціальна версія рушія для консолі Xbox. Окрім оптимізації коду, мала нові візуальні ефекти, такі як depth of field (з англ. — глибина зору), динамічна гамма-корекція, bloom і різні варіації blur. Формат текстур був змінений для реалістичнішого відображення тіней у високій якості, доданий Memory Tracking, підтримка голосового чату, сервісу Xbox Live, а також функція поділу екрана[22].
Був використаний в Unreal Championship і Unreal Championship 2.
Unreal Engine 2 Runtime є спеціальною версією рушія Unreal Engine 2.0 з обмеженою ліцензією. Користувач може завантажити дистрибутив windows-версії рушія з офіційного сайту (для інших операційних систем необхідно придбати ліцензію). У комплекті поставляється редактор карт UnrealEd, утиліта ucc, а також тестовий рівень і невеликий набір моделей і текстур, що демонструють можливості технології «Unreal». Рушій безкоштовний для некомерційних проєктів, а також для використання в освітніх цілях (таких як створення 3D-презентацій). Для використання в комерційних цілях потрібно придбати ліцензію[23][24]. Завантажити безкоштовну версію, іменовану на офіційному сайті як «демо» можна тут.
UE3 був розроблений з урахуванням персональних комп'ютерів, що використовують сучасні системи рендерингу (DirectX 9/10 і OpenGL 2/3, а з березня 2011 року було додано підтримку DirectX 11), і консолей наступного покоління (PlayStation 3 і Xbox 360). У зв'язку із широким розповсюдженням багатопроцесорних систем рушій використовує два паралельні головні потоки — основний потік (що відповідає переважно за ігровий процес) і потік рендерингу. Крім двох головних потоків можуть бути створені другорядні, які виконують разові задачі[25]. З'явилася підтримка багатопоточного динамічного завантаження даних (streaming), наприклад, завантаження «локації» безпосередньо при переміщенню по ній з метою економії ресурсів.
Оновлений графічний рушій підтримує більшість сучасних технологій, включаючи HDR, освітлення кожного пікселя, динамічні тіні, shader model 4, геометричні шейдери. Сам графічний конвеєр був переведений під керування шейдерів. Від фізичної підсистеми Karma відмовилися на користь іншої за назвою PhysX від компанії AGEIA. Пізніше AGEIA випустила набір додаткових бібліотек до гри, що дозволяють залучити всі можливості фізичної системи (такі як ефект «рідини» або тканини). За анімацію облич персонажів відповідає механізм FaceFX. Оновлена версія EAX до 5-ї[26]. Додана підтримка SpeedTree для генерації дерев. Наголос був зроблений на additive-геометрію, однак від підтримки від'ємної геометрії не відмовилися. Недоліком від'ємної геометрії в першу чергу є набагато триваліші розрахунки освітлення[27]. Представлений новий редактор UnrealEd, переписаний з використанням wxWidgets.
У цій версії було додано фільтр постобробки Ambient occlusion, що покращує тіні та освітлення. Було збільшено число оброблюваних персонажів у кадрі. Перероблена на новому рівні технологія динамічної водної поверхні, фізика м'яких тіл і руйноване оточення також значно поліпшені.
У березні 2010 року був опублікований анонс нових можливостей рушія, які будуть представлені на Game Developers Conference 2010. Одним з основних нововведень є нова система розрахунків освітлення Unreal Lightmass, що використовує глобальне освітлення без втрат функцій, які були реалізовані в старіших системах освітлення. Поліпшена робота з багатопроцесорними системами — розподіл завдань між декількома потоками за допомогою Unreal Swarm, а також прискорення компіляції коду C++ і обробка Unreal Script за рахунок Unreal Build Tool (останнє збільшення продуктивності торкнеться тільки розробників або творців аматорських модифікацій). Доданий власний засіб розповсюдження користувацького контенту — Unreal Content Browser. Буде докладніше розказано про Unreal Master Control Program — новий майстер-сервер, для оновлення клієнтів і ведення глобальної статистики, який уже використовується в Gears of War 2. У зв'язку з нововведеннями Epic Games China планує продемонструвати використання рушія для масових багатокористувацьких онлайн ігор[28].
18 серпня 2005 року віцепрезидент Epic Games Марк Рейн повідомив, що Unreal Engine 4 вже два роки як перебуває в розробці і його цільовими платформами є персональні комп'ютери й консолі 4-го покоління, а єдиною людиною, що працювала над рушієм, є Тім Свіні. Сам же Свіні на GDC 2006 оголосив, що розробка четвертого Unreal Engine не почнеться раніше 2008 року, оскільки UE3 буде актуальний аж до 2010 року.
9 жовтня 2008 року на TGS група розробників Square Enix повідомила, що вони «бачили наступний Unreal Engine (Unreal Engine 4)» і «не можуть дочекатися можливості попрацювати з ним»[29]. Раніше Square Enix випустила The Last Remnant і «не зустрічалася із проблемами при роботі з Unreal Engine 3».
19 березня 2014 Epic Games представила[30] рушій Unreal Engine 4, примітний повною доступністю сирцевих текстів для сторонніх розробників. Код рушія розміщений на GitHub для передплатників сервісу Epic Games[31]. При цьому кардинально змінена бізнес модель розповсюдження рушія — за 19 доларів на місяць надається повний доступ до всіх компонентів продукту, включаючи середовище Unreal Editor, приклади контенту, шаблони готових ігор та повні сирцеві тексти рушія, написаного на мові C++. Рушій доступний для платформ Windows, Mac OS X, Apple iOS і Android. Також офіційно заявлено про нативну підтримки десктоп-дистрибутивів Linux і Steam OS.
Код рушія може використовуватися в будь-яких комерційних проєктах, але з розробників даних проєктів здійснюється відрахування у розмірі 5% від доходу, отриманого від продажу гри користувачам. Збір відрахувань з доходів від продажу робить рушій Unreal Engine 4 цікавим рішенням не тільки для великих ігрових проєктів, але і для невеликих стартапів і авторів безкоштовних ігор.
Можна відзначити також спільну з проєктом Mozilla ініціативу[32] зі створення HTML5-варіанту рушія Unreal Engine 4, що дозволяє створювати 3D-ігри, що запускаються всередині браузера без використання зовнішніх плаґінів (C/C++ код гри і рушія за допомогою компілятора Emscripten перетвориться в JavaScript з розширеннями статичної типізації Asm.js, для виводу графіки використовується WebGL).
У травні 2020 року з оновленою версією 4.25 Unreal Engine почав підтримувати створення відеоігор для гральних консолей дев'ятого покоління, Xbox Series X та PlayStation 5. Окрім того, було оновлено трасування променів, затінення предметів та звуковий рушій, систему Niagar VFX виведено з бета-тестування[33].
13 травня 2020 року Epic Games розкрила перші відомості про створення нової версії рушія, продемонструвавши нові можливості Unreal Engine у демовідео під назвою «Lumen in the Land of Nanite» (укр. Люмен у Землях Наніту), створеному на консолі дев'ятого покоління PlayStation 5[34]. Поліпшення найбільше торкнулися анімації, звуку, технічної та графічної складової рушія тощо[35]. Було також представлено дві нові технології: Наніт і Люмен[36]. Рання версія рушія запланована до випуску на початку 2021 року, а повноцінний випуск має відбутися пізніше того ж року[37]. Новий рушій підтримуватиме Microsoft Windows, macOS, iOS та Android, а також не лише восьме, а й дев'яте покоління ігрових консолей, яке розпочнеться з випуском PlayStation 5 та Xbox Series X[38].
Деякі компанії-розробники воліють використовувати технології «Unreal» як основу для розробки власного рушія. Наприклад, Unreal Engine 2 був спеціально дороблений для гри Thief: Deadly Shadows і отримав внутрішнє ім'я «Flesh Engine».
Відома компанія-розробник Irrational Games однією з перших впровадила у свій Vengeance Engine (заснований на Unreal Engine 2.5) технологію реалістичного освітлення HDR, а також фізичний рушій Havok 2.0 і інші функції, які нині широко використовуються в ігрових технологіях. Цей рушій був використаний в Tribes: Vengeance і SWAT 4.
Гра BioShock від Irrational Games спочатку також використовувала Vengeance Engine, але потім розробники частково замінили його на актуальніший Unreal Engine 3. Модифікована версія стала називатися Vengeance Engine 2.[39]
Ubisoft використовують для своїх проєктів рушії YETI engine і LEAD engine. Примітно, що обидві технології засновано на Unreal Engine 2.5 і застосовуються компанією в іграх нового покоління, а також використовуються на консолях Xbox 360 і PlayStation 3.
Наприкінці 1999 року Epic Games опублікувала частину початкового коду виконуваних файлів Unreal Tournament, що допомогло на початкових етапах проєкту Openut з портування рушія й гри на Linux. Через деякий час роботу над проєктом перехопила компанія з розробки відеоігор Loki Games, а підтримка Openut була припинена[40]. Linux-версія Unreal Tournament була випущена в продаж Loki Games.
У цей час, перша версія рушія більше не доступна для ліцензування, однак початковий код, необхідний для створення власних виконуваних файлів, існує у вільному доступі. Варто відзначити, що вони поширюються за «Unreal Retail» ліцензією — тобто тільки для персонального використання[41]. Крім того, у 2004 році був опублікований початковий код гри Rune[42].
Друга версія як і раніше доступна для ліцензування. Epic Games пропонують її для створення ігор на «діючі» персональні комп'ютери або ігорові консолі шостого покоління за суму $350 000 і більше (залежить від кількості підтримуваних платформ)[43].
Для некомерційних проєктів, що не стосуються відеоігор, доступна «закрита» версія Unreal Engine 2 Runtime. Розробка ігор на цій версії рушія суворо заборонена (попри те що конкретного визначення «ігор» у ліцензії немає) через те що «основний дохід Epic Games отримує від створення ігор, і якщо ви прагнете зробити свою гру — зробіть її як модифікацію до існуючого продукту»[44].
Для бюджетних проєктів доступно також ліцензування Unreal Engine 2 Runtime за порівняно низькою ціною (від $8 000). Вартість ліцензії залежить від кількості розробників (числа «робочих місць»). Разом з ліцензуванням хоча б одного «робочого місця» доступне замовлення заголовних файлів другої версії рушія за ціною $5 000[45].
Ціна ліцензування версій 3.0 і старше не публікується, однак згадується що є вибір з різних варіантів ліцензій, у тому числі й для не ігрових продуктів[43].
Попри те, що рушій розроблений для створення відеоігор, його адаптують і для інших цілей — конструкторські, дизайнерські, тренувальні програми та інше.
5 листопада 2009 року був випущений пакет Unreal Development Kit, безкоштовна версія Unreal Engine 3 для некомерційного використання з можливістю купівлі дешевої комерційної ліцензії[46]. Якщо написання ігор на Unreal Engine 2 Runtime було суворо заборонене, то написання ігор з використанням UDK припустиме, однак заборонене на його базі створення продуктів, «які можуть або будуть конкурувати з UDK, а також проміжним ПЗ (middleware) або ПЗ для розробки ігор (game development software) створеним Epic Games»[47].
Більшість відеоігор на Unreal Engine виконані в жанрі 3D-шутера або бойовика, однак серед випущених продуктів є ігри іншого жанру: аркади, рольові ігри, файтинги й різного роду симулятори. Крім того, рушій адаптується для обробки тривимірної графіки в кінематографі й освітніх цілях.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.