Unreal Engine | |
---|---|
Тип | игровой движок |
Разработчик | Epic Games |
Ключевой программист | Тим Суини |
Дата выхода | 1996 год |
Аппаратные платформы |
PC Xbox Xbox 360 Xbox One Xbox Series X/S GameCube Wii Wii U Nintendo Switch Dreamcast PlayStation 2 PlayStation 3 PlayStation 4 PlayStation 5 PlayStation Portable PlayStation Vita |
Поддерживаемые ОС | macOS, Microsoft Windows, Linux, iOS, Android[1] |
Написан на языке | C++[2] |
Лицензия | коммерческая |
Последняя версия | 5.4 (23 апреля 2024) |
Первая игра на движке | Unreal (1998) |
официальный сайт | |
Медиафайлы на Викискладе |
Unreal Engine — игровой движок, разрабатываемый и поддерживаемый компанией Epic Games. Первой игрой на этом движке был шутер от первого лица Unreal, выпущенный в 1998 году. Хотя движок первоначально был предназначен для разработки шутеров от первого лица, его последующие версии успешно применялись в играх самых различных жанров, в том числе стелс-играх, файтингах, массовых многопользовательских ролевых онлайн-играх и многих других (см. также список).
В прошлом движок распространялся на условиях оплаты ежемесячной подписки; с 2015 года Unreal Engine бесплатен, но разработчики использующих его приложений обязаны перечислять 5% роялти от общемирового дохода с некоторыми условиями[3].
Написанный на языке C++, движок позволяет создавать игры для большинства операционных систем и платформ: Microsoft Windows, Linux, Mac OS (Mac OS X); консолей Xbox, Xbox 360, Xbox One, PlayStation 2, PlayStation 3, PlayStation 4, PlayStation 5, PSP, PlayStation Vita, Wii, Wii U, Dreamcast, GameCube и др., а также на различных портативных устройствах, например, устройствах Apple (iPad, iPhone), управляемых системой iOS и прочих. (Впервые работа с iOS была представлена в 2009 году[4], в 2010 году продемонстрирована работа движка на устройстве с системой webOS[5]).
Для упрощения портирования движок использует модульную систему зависимых компонентов; поддерживает различные системы отрисовки (Direct3D/DirectX, OpenGL, Pixomatic; в ранних версиях: Glide, S3 Metal, PowerVR SGL), воспроизведения звука (EAX, OpenAL, DirectSound; ранее: A3D), средства голосового воспроизведения текста, распознавание речи[6][7][8], модули для работы с сетью и поддержки различных устройств ввода.
Для игры по сети поддерживаются технологии Windows Live, Xbox Live, GameSpy и прочие, включая до 64 игроков (клиентов) одновременно. Таким образом, движок адаптировали и для применения в играх жанра MMORPG (один из примеров: Lineage II).
Все элементы игрового движка представлены в виде объектов, имеющих набор характеристик, и класса, который определяет доступные характеристики. В свою очередь, любой класс является «дочерним» классом object. Среди основных классов и объектов можно выделить следующие:
Для работы с простыми и, как правило, неподвижными элементами игрового пространства (например, стены) используется двоичное разбиение пространства — всё пространство делится на «заполненное» и «пустое». В «пустой» части пространства располагаются все объекты, а также только в ней может находиться «точка наблюдения» при отрисовке сцены. Возможность полного или частичного помещения объектов в «заполненную» часть пространства не исключается, однако может привести к неправильной обработке таких объектов (например, расчёт физического взаимодействия) или неправильной отрисовки в случае помещения туда «точки наблюдения» (например, эффект «зала зеркал»). Все пешки, попадающие в «заполненную» часть пространства, сразу «погибают».
Поверхность (surface) является основным элементом двоичного дерева пространства. Эти элементы создаются на грани пересечения между «заполненной» и «пустой» частями пространства. Группа элементов двоичного дерева пространства называется нодом (node, рус. узел). Этот термин, как правило, употребляется в контексте node count — количество нодов на экране или в игровом пространстве вообще. Количество нодов, одновременно видимых на экране, влияет на производительность при прорисовке сцены. Если какой-то нод не попадает на экран или перекрывается целиком другими нодами, он не обсчитывается — это служит для повышения производительности, особенно в закрытых пространствах. Разбиение всего пространства на группы нодов называется зонированием[9].
Для этого иногда используются порталы[10] — невидимые поверхности, которые служат для того, чтобы вручную разделить крупный нод на два меньших (в версии движка Unreal Engine 3 ввели поддержку аддитивной геометрии, что позволило отказаться от зонирования). Кроме порталов, используются антипорталы[11].
Описание «заполненных» и «пустых» частей пространства выполняется с помощью набора замкнутых трёхмерных объектов, составленных из непересекающихся поверхностей — брашей (brush, рус. кисть). Этот принцип построения пространства называется конструктивной сплошной геометрией. Геометрия может быть «аддитивной» (всё пространство изначально «пустое») и «вычитательной» (изначально заполненное материей пространство).
Браши делятся на три типа:
Движок комплектуется инструментарием (SDK), в том числе и редактором уровней UnrealEd.
в 1998 году Unreal Engine 1 был одним из первых игровых движков подобной универсальности; он совмещал в себе графический движок, физический движок, искусственный интеллект, управление файловой и сетевой системами и готовую среду разработки для игр — UnrealEd. Учитывая уровень производительности большинства компьютеров того времени, разработчики несколько упростили некоторые элементы движка: систему обнаружения столкновений, сетевой код, код контроллера для игрока[13].
Некоторые технологии движка Unreal Engine были революционно новыми для того времени: например использование динамического графа сцены. Эта технология позволяла добавить ряд эффектов для наложения на поверхности:
Движок стал одним из первых, в котором появился эффект гало вокруг источников света, которые плавно затухали, будучи перекрыты краями стен по мере движения игрока; лава и некоторые текстуры луж воды, в которые падали капли, сделаны динамическими благодаря использованию не шейдеров, как в поздних играх, а процедурных текстур; и фотореалистичное анимированное небо.
Первоначально движок был выпущен с поддержкой двух платформ: Windows и Macintosh. Благодаря модульной системе движка была заявлена возможность портирования движка на приставки «нового поколения» того времени и позже был успешно использован на таких платформах как GameCube, PlayStation 2 и Xbox. Также поддерживалась независимость сетевого кода от платформы клиента — пользователи Mac OS могли играть в многопользовательском режиме Unreal с пользователями Windows.
В 1999 году вышла улучшенная версия движка Unreal, предназначенная для современных (на то время) компьютеров и консолей Dreamcast и PlayStation 2, часто называемая Unreal Engine 1.5[15][16][17][18][19]. Были внесены значительные дополнения в числе которых: поддержка лицевой анимации для персонажей; максимальное разрешение текстур увеличено до 1024×1024, расширяемая система «частиц», технология S3TC. Также была интегрирована вторая версия редактора UnrealEd.
Эта версия движка используется в многопользовательском шутере Unreal Tournament[19], и в приключенческих играх Harry Potter and the Philosopher’s Stone и Brother Bear.
Через несколько лет группа независимых разработчиков UTPG обратилась к Epic Games за доступом к исходным кодам исполняемых файлов Unreal Tournament, чтобы продолжить поддержку игры. Epic Games приняли предложение и некоторое время команда разработчиков выпускала неофициальные патчи для игры[20].
Вторая версия Unreal Engine увидела свет в 2002 году с появлением Unreal Tournament 2003, America’s Army: Operations и Unreal Championship. В ней были практически полностью переписаны ядро и механизм рендеринга, а также интегрирована новая (третья) версия редактора UnrealEd. Помимо этого, в него была интегрирована физическая подсистема Karma, поддерживающая физику тряпичной куклы и другие новшества, что позволили добиться более реалистичного поведения персонажей и взаимодействия с окружающим миром. Другие части движка были также улучшены или изменены для лучшей совместимости с PlayStation 2, GameCube и Xbox.
Появились следующие технологии:
В этой версии был в очередной раз улучшен и оптимизирован графический движок — появилась поддержка Direct3D 9, OpenGL 2 и Pixomatic (последняя система рендеринга служит для компьютеров со слабой видеокартой, но мощным центральным процессором). Добавлена поддержка 64-битных операционных систем Windows NT и GNU/Linux. Наибольшее возможное разрешение текстур поднято до 4096×4096 пикселей, добавлена полноценная поддержка юникода (16-бит), что позволило создавать полностью локализованные игры на азиатских языках.
Кроме того, сам движок был значительно оптимизирован, что позволило добиться большей производительности при тех же системных требованиях. Появилась возможность воспроизведения видео в формате DivX и Bink. В более поздних версиях внедрена система визуализации деревьев SpeedTree.
Эта версия движка была применена в таких компьютерных играх, как Unreal Tournament 2004, Pariah, Killing Floor и многих других.
Unreal Engine 2 Runtime является специальной версией движка Unreal Engine 2.0 (основанной на билде 2226) с ограниченной лицензией. Позднее движок был заменён на UDK — удешевлённую версию движка Unreal Engine 3.
Пользователь мог загрузить дистрибутив Windows-версии движка с официального сайта (для других операционных систем необходимо было приобрести лицензию). В комплекте поставлялся редактор карт UnrealEd, утилита ucc, а также тестовый уровень и небольшой набор моделей и текстур, демонстрирующие возможности технологии. Движок бесплатен для некоммерческих проектов, а также для использования в образовательных целях (таких как создание 3D-презентаций).
Для использования в коммерческих целях требовалось приобрести лицензию.
Специальная версия движка для консоли Xbox, основанная на версии 2.0. Помимо оптимизации кода, были введены новые визуальные эффекты, такие как depth of field (глубина зрения), динамическая гамма-коррекция, bloom и различные вариации blur (размытия). Формат текстур был изменён для более реалистичного отображения теней в высоком разрешении, добавлен memory tracking, поддержка голосового чата, сервиса Xbox Live, а также функция разделения экрана
Был использован только в многопользовательском шутере Unreal Championship 2.
Скриншоты Unreal Engine 3 были представлены в июле 2004 года, когда движок находился в разработке уже более 18 месяцев[21]. Версия была разработана с учётом персональных компьютеров, использующих современные системы рендеринга (DirectX 9/10 и OpenGL 2/3), и консолей следующего поколения (PlayStation 3 и Xbox 360). В связи с широким распространением многопроцессорных систем движок использует два параллельных главных потока — основной поток (отвечающий преимущественно за игровой процесс) и поток рендеринга. Кроме двух главных потоков могут быть вызваны второстепенные, которые выполняют разовые задачи[22]. Появилась поддержка многопоточной динамической загрузки данных (streaming), например, загрузка «локации» непосредственно при перемещении по ней в целях экономии ресурсов.
Обновлённый графический движок поддерживает большинство современных технологий, включая HDR, попиксельное освещение, динамические тени, шейдерную модель четвёртой версии, геометрические шейдеры. Сам графический конвейер был переведён под управление шейдеров.
От физической подсистемы Karma отказались, заменив её на PhysX от компании Ageia. Позже Ageia выпустила набор дополнительных библиотек к игре, позволяющих задействовать все возможности физической системы (такие как эффект «жидкости» или ткани).
За анимацию лиц персонажей отвечает интегрированный анимационный движок FaceFX разработки OC3 Entertainment. Обновлена версия EAX до 5-й. Добавлена поддержка технологии SpeedTree для генерации деревьев. Упор был сделан на additive-геометрию, однако от поддержки вычислительной геометрии не отказались. Недостатком вычитательной геометрии в первую очередь является гораздо более длительный расчёт освещения[23].
Представлен новый редактор UnrealEd, переписанный с использованием wxWidgets.
Изначально Unreal Engine 3 поддерживал только платформы Windows, PlayStation 3, и Xbox 360, тогда как iOS (первая демонстрация — Epic Citadel) и Android были добавлены позже в 2010, с первыми играми Infinity Blade на iOS и Dungeon Defenders на Android. На мероприятии Adobe Max в Лос-Анджелесе была продемонстрирована работа движка посредством платформы Adobe Flash 11.
Первыми играми на Unreal Engine 3 были Gears of War для Xbox 360, и RoboBlitz для Windows, вышедшие 7 ноября 2006 года
Несмотря на то, что Unreal Engine 3 был открыт для создания модификаций, возможность продавать игры на базе UE3 предоставлялась только обладателям лицензии на игровой движок.
Однако, в ноябре 2009 года, компания Epic Games выпустила бесплатную версию на базе Unreal Engine 3, получившую название Unreal Development Kit (UDK), которая стала доступной для каждого начинающего разработчика.
В соответствии с пользовательским соглашением (EULA), разработчики игр могут продавать свои игры сделав одноразовую выплату компании Epic Games в сумме $99. В случае если коммерческий продукт на базе UDK наберёт в общей сумме $50 000 прибыли, то разработчик будет вынужден выплачивать 25% роялти компании Epic Games. В декабре 2010 года была выпущена версия UDK поддерживающая создание игр для платформы iOS.
Дальнейшее развитие, неофициальное именуемое в игровых изданиях, а также некоторыми разработчиками игр, как «Unreal Engine 3.5»[24][25][26][27][28][29][30][31][32][33]. Произошла очередная эволюция графической составляющей. Так, помимо прочего, был добавлен фильтр постобработки ambient occlusion, улучшающий тени и освещения. Было увеличено число обрабатываемых персонажей в кадре. Переработана на новом уровне технология динамической водной поверхности, физика мягких тел и разрушаемое окружение также значительно улучшены.
В марте 2010 года был опубликован анонс новых возможностей движка, которые были представлены на Game Developers Conference 2010. Одним из основных нововведений является новая система расчёта освещения Unreal Lightmass, использующая глобальное освещение без потерь функций, которые были реализованы в более старых системах освещения. Улучшена работа с многопроцессорными системами — распределение задач между многопроцессорными системами с помощью Unreal Swarm, а также ускорение компиляции кода C++ и обработка UnrealScript за счёт Unreal Build Tool (последнее увеличение производительности коснётся только разработчиков или создателей любительских модификаций). Добавлено собственное средство распространения пользовательского контента — Unreal Content Browser, появился Unreal Master Control Program — новый мастер-сервер, для обновления клиентов и ведения глобальной статистики, который уже используется в Gears of War 2. В связи с нововведениями Epic Games China планировала продемонстрировать использование движка для массовых многопользовательских онлайн игр[34].
В 2011 году компанией Epic Games был продемонстрирован видеоролик о последних обновлениях, внесённых в движок — Samaritan («Самаритянин»)[35]; из-за очередного большого количества усовершенствований, пресса и игроки стали иногда упоминали его как условный «Unreal Engine 3.9»[36]. В очередном обновлении движок третьего поколения получил поддержку DirectX 11, а также огромное количество сопутствующих технологий.
18 августа 2005 года вице-президент Epic Games Марк Рейн сообщал, что Unreal Engine 4 уже два года как находится в разработке и его целевыми платформами являются персональные компьютеры и консоли 8-го поколения, а единственным человеком, работавшим над движком, является Тим Суини. Сам же Суини на GDC 2006 объявил, что разработка четвёртого Unreal Engine не начнётся раньше 2008 года, поскольку UE3 будет актуален как минимум до 2010 года.
9 октября 2008 года на TGS группа разработчиков Square Enix сообщила, что они «видели следующий Unreal Engine (Unreal Engine 4)» и «не могут дождаться возможности поработать с ним»[37]. Ранее Square Enix выпустила The Last Remnant и «не встречалась с проблемами при работе с Unreal Engine 3».
Презентация технической демонстрации Unreal Engine 4 была проведена на E3 2012 7 июня.
19 марта 2014 года Unreal Engine 4 начал своё свободное распространение для всех желающих с подпиской в 19$ в месяц. Исходные коды также выложены на репозиторий GitHub.
2 марта 2015 года Epic Games сделала заявление об изменении системы распространения: движок стал бесплатным для всех разработчиков, при условии, что прибыль от приложений, созданных на основе движка не превышает $3000 за квартал[38].
Ранее Epic Games объявляла о конкурсе, в ходе которого разработчики могли бы получить 5 миллионов долларов; для этого требуется представить рабочий прототип своей игры.
13 мая 2020 года Epic Games официально анонсировали Unreal Engine 5 и продемонстрировали демо, в разрешении QuadHD с частотой кадров 30 FPS на консоли PlayStation 5. В демо была показана работа новых технологий: Lumen и Nanite. Lumen — новая технология динамического глобального освещения. Nanite — одна из ключевых технологий в основе движка Unreal Engine 5. Она позволяет показывать в кадре столько геометрии, сколько видит глаз, и зависит от разрешения — чем оно больше, тем выше становится детализация[39]. Компания Epic Games 5 апреля 2022 года открыла доступ к игровому движку Unreal Engine 5 для всех разработчиков[40].
22 марта 2023 года Epic Games представила Unreal Engine 5.2 с автоматической генерацией больших и детализированных миров[41].
Начиная с версии движка 5.4, в редакторе доступна работа на русском языке. Переведены основные элементы, описания и часть документации[42][неавторитетный источник].
Некоторые компании-разработчики использовали Unreal Engine в качестве основы собственного движка.
Например, Unreal Engine 2.0 был специально доработан для игр Deus Ex: Invisible War и Thief: Deadly Shadows (2004), получив внутреннее имя Flesh[43][44][45].
Irrational Games создала свой Vengeance Engine, взяв за основу Unreal Engine 2.5, и одной из первых внедрив в движок технологию HDR, а также физический движок Havok 2. Этот движок был использован в Tribes: Vengeance и SWAT 4 (2004)[46][47][48][49] BioShock (2008) и BioShock 2 (2010) также используют развитие движка Vengeance Engine[50][51].
Ubisoft использовала для своих проектов (таких как серия Tom Clancy’s Splinter Cell) движки SCX engine[52] и LEAD engine[53][54], созданные на базе Unreal Engine 2.5.
NetherRealm Studios модифицировала движок Unreal Engine 3, продолжая, до 2020 года, создавать игры серии Mortal Kombat на этом движке[55].
Unreal Engine 1. В конце 1999 года Epic Games опубликовала часть исходных кодов исполняемых файлов Unreal Tournament, что послужило началу работы проекта OpenUT по портированию движка и игры на Linux. Спустя некоторое время работу над OpenUT перехватила Loki Software[56]. Linux-версия Unreal Tournament была выпущена в продажу Loki Games. Первая версия движка больше не доступна для лицензирования, однако исходный код, необходимый для сборки собственных исполняемых файлов, существует в свободном доступе. Они распространяются по «Unreal Retail» лицензии — то есть только для персонального использования[57]. Кроме того, в 2004 году был опубликован исходный код игры Rune[58].
Unreal Engine 2/2.5. Вторая версия долгое время была доступна для лицензирования наряду с третьей. Epic Games предлагала её для создания игр для ПК и приставок шестого поколения за сумму $350000 и больше (зависело от количества поддерживаемых платформ).
Unreal Engine 2 Runtime. Для некоммерческих проектов, не относящихся к видеоиграм, была доступна версия Unreal Engine 2 Runtime. Разработка игр на этой версии движка запрещена (несмотря на то что конкретного определения «игр» в лицензии нет) по причине того, что «основной доход Epic Games получает от создания игр, и если вы хотите сделать свою игру — сделайте её в качестве модификации к существующему продукту». Для бюджетных проектов было доступно лицензирование Unreal Engine 2 Runtime по сравнительно низкой цене (от $8000). Стоимость лицензии зависит от количества разработчиков (числа «рабочих мест»). Вместе с лицензированием хотя бы одного «рабочего места» доступен заказ заголовочных файлов второй версии движка по цене $5000.
Цена лицензирования версий 3.0 и выше не публикуется, однако упоминается что имеется выбор из различных вариантов лицензий, в том числе и для неигровых продуктов. 5 ноября 2009 года был выпущен пакет Unreal Development Kit, бесплатная версия Unreal Engine 3.5 для некоммерческого использования с возможностью покупки дешёвой коммерческой лицензии[59]. Если написание игр на Unreal Engine 2 Runtime было строго запрещено, то написание игр с использованием UDK допустимо, однако запрещено на его базе создание продуктов, «которые могут или будут соперничать с UDK, а также связующим ПО (middleware) или ПО для разработки игр (game development software) созданным Epic Games».
2 марта 2015 года Unreal Engine 4 стал бесплатным. При этом разработчики игр, как и прежде, должны передавать 5% от выручки с продаж игры (п. 5 ч. 10 лицензионного соглашения) компании Epic Games, если ежеквартальная выручка превышает $3000[60].
13 мая 2020 года Epic Games подняли порог выручки бесплатного использования до $1 000 000[61].
24 апреля 2024 года, вместе с выходом новой версии движка 5.4, была изменена ценовая политика для компаний, использующих движок не для разработки игр. Теперь, после преодоления порога выручки в $1 000 000, компаниям необходимо каждый год платить $1850 долларов за одно рабочее место [62][неавторитетный источник].
Игры на движке Unreal Engine выполнены в самых различных жанрах, однако первые проекты создавались, как правило, в жанре шутера или экшена; гибкость технологии позволяет создавать на нём стратегии, квесты, различные симуляторы и пр.
Кроме того, движок может применяться для работы с графикой в кинематографе, например, для создания спецэффектов, и в образовательных целях.
Публикации