История игровых движков №5 — Unreal Engine

Егор

unreal-engine-4-logo-large.png

Unreal Engine — один из самых популярных и старых игровых движков, ставший известным благодаря возможности создания на нем сцен, схожих по качеству с кинематографическими. Он работает на большинстве современных игровых платформ — это консоли последнего поколения, ПК, устройства на iOS и Android, а так же macOS, Linux и html5. К тому же заявлена поддержка и недавно вышедшей новой портативной консоли — Nintendo Switch. Такая кроссплатформенность возможна благодаря поддержке всех современных стандартов как рендеринга (API DirectX, OpenGL, а так же на устройствах iOS — PowerVR), так и воспроизведения звука (OpenAl, EAX, DirectSound3D). Как и другие движки, UE комплектуется собственным редактором — UnrealEd, однако по удобству тот заметно проигрывает Unity3D и заточен скорее под создание профессиональных, а не любительских игр и анимаций.

Unreal Engine 1

Первая версия движка вышла почти 20 лет назад — в 1998 году, и уже тогда оказалась универсальнее топового движка того времени — id Tech 3: она включала в себя графический движок, физический движок, искусственный интеллект, управление файловой и сетевой системами и готовую среду разработки игр — UnrealEd. Движок работал на macOS, Windows, PlayStation 2 и Xbox, причем сетевая составляющая была кроссплатформенной — игроки с Windows могли играть на одних серверах с игроками на macOS.

Главной особенностью Unreal Engine было то, что это был первый векторный движок: то есть движок, работающий с графами сцены. Граф сцены представляет собой структуру (набор узлов в виде дерева или графа), которая содержит логическое и, зачастую, пространственное представление графической сцены. Например, в игре может быть определена логическая связь между объектами «человек» и «машина». Последняя, в свою очередь, может быть связана с объектом «гараж», и так далее — таким образом выстраивается сеть взаимосвязанных объектов, что сильно упрощает как написание игры, так и взаимодействие объектов в самой игре.

Остальные особенности:

  • Технология варпинга (warp) — возможность при прорисовке заменять изображение одной поверхности проекцией изображения на другую, ей параллельную поверхность. Несмотря на то, что ряд объектов мог беспрепятственно переходить через варп-зоны (например, пущенная игроком ракета), присутствовало большое число ограничений на работу таких зон. Данная технология выглядела в игре как порталы (через которые можно было стрелять и проходить, но они не пропускали звуки).

  • Скайбокс (Skybox) — проецирование на поверхности отрисовки с другой точки (которая обычно помещалась в небольшую «коробку» с наложенной текстурой неба, отсюда и название Skybox). Таким образом, отображение не лицевой грани полигонов, а обратной, с заранее наложенной текстурой «неба» на объект.  В движке широко использовался приём масштабирования текстур таким способом, что приводило к реалистичным видам окружающей среды — к примеру, неба в игре Unreal. Так же движок позволял использовать мультитекстурирование, позволявшее (при правильной расстановке источников света и ориентации относительно пререндеренных текстур) добиться эффекта трёхмерности поверхностей, хотя до появления движков с поддержкой истинной тесселяции еще оставалось почти 10 лет (первый движок с ее поддержкой, CryEngine 2, вышел в 2007 году).

  • Движок стал одним из первых, в котором появился эффект гало вокруг источников света, которые плавно затухали, будучи перекрыты краями стен по мере движения игрока.

  • Лава и некоторые текстуры луж, в которые падали капли, сделаны динамическими благодаря использованию не шейдеров, как в поздних играх, а процедурных текстур.


В 1999 году вышло крупное обновление — Unreal Engine 1.5. Движок обзавелся лицевой анимации для персонажей, максимальное разрешение текстур было увеличено до 1024x1024, введена расширяемая система частиц и технология S3TC (S3 Texture Compression — метод сжатия текстур DirectX с потерями). Также была интегрирована вторая версия редактора UnrealEd. Пожалуй, самой красивой игрой на Unreal Engine 1.5 была игр-демонстрация возможностей движка — Unreal Tournament:

1_1-1.jpg

Первая версия движка больше не доступна для лицензирования, однако исходный код, необходимый для сборки собственных исполняемых файлов, существует в свободном доступе, но не для коммерческого использования — они распространяются по лицензии «Unreal Retail» — то есть только для персонального использования. Всего на UE 1 вышло больше двух десятков игр, среди них — всем известные Unreal Tournament, Deus Ex и Duke Nukem Forever.

Unreal Engine 2

Вторая версия Unreal Engine увидела свет в 2002 году с появлением Unreal Tournament 2003. В ней были практически полностью переписаны ядро и механизм рендеринга, а также интегрирована третья версия редактора UnrealEd. Физический движок теперь от сторонних издателей — Karma. Он поддерживает физику тряпичной куклы: обработку действия на тело не как на один объект, а как на скелет с привязкой к нему частей тела. У каждого сустава персонажа появились ограничители вращения, эти ограничители бывают двух видов: шарнирные и линейные. Линейные могут вращаться только вокруг одной оси, а шарнирные по всем трём.

Основные особенности движка:

  • Жидкая поверхность (fluid surface) — плоский объект, состоящий из большого числа полигонов, имитирующий поверхность жидкости. Такой объект можно поместить на границу с объёмом воды и он будет искажаться под действием проходящих через него объектов (например, ныряющего игрока).
  • Поддержка VoIP — возможность переговоров через микрофон с другими игроками во время игры.

  • Распознавание речи — перевод голоса в текст и обработка как команды (например, возможность отдавать ботам команды голосом). Эта технология использовала Microsoft Speech API и поэтому поддерживалась только в 32-битной версии Windows.

  • Транспортные средства — неподвижные (стационарные оборонительные установки), составленные из нескольких объектов (Karma vehicle), с использованием скелетной структуры и транспортные средства, прикрепляемые к другим транспортным средствам (например, пулемёт на башне танка). Некоторые транспортные средства могут действовать без «пилота», управляемые собственным искусственным интеллектом.

  • EAX 3.0 — движок трёхмерного звука, разработанный Creative Labs.

  • Отказ от варп-зон из-за перехода на движок Karma и 32-битной графики.

Unreal Engine 2.5

Как и версия 1.5, 2.5 нацелена в основном на оптимизацию движка под новые API — появилась поддержка DirectX 9, OpenGL 2 и Pixomatic (специальная версия рендера, умеющая рендерить изображения в основном силами процессора, то есть она подходила для компьютеров с мощным процессором и слабой видеокартой). Так же добавлена поддержка 64-битных операционных систем Windows (NT 4 и в дальнейшем XP) и Linux. Наибольшее возможное разрешение текстур поднято до 4096x4096 пикселов, добавлена полноценная поддержка юникода (16-бит), что позволило создавать полностью локализованные игры на азиатских языках (до этого часть фраз приходилось оставлять на английском).

Самой красивой игрой на UE 2.5 можно назвать Killing Floor — игра вышла в 2009 году, уже после выхода UE 3:

gorefast.jpg

Unreal Engine 2X и Runtime

Это специальные версии движка — в первом случае для Xbox: были введены новые визуальные эффекты, такие как depth of field (глубина зрения), динамическая гамма-коррекция, bloom и различные вариации blur. Формат текстур был изменён для более реалистичного отображения теней в высоком разрешении, добавлена поддержка голосового чата, сервиса Xbox Live, а также функция разделения экрана. Был использован только в Unreal Championship 2. Во втором случае — урезанная бесплатная для некоммерческого использования версия движка, имевшая лишь базовый набор моделей и текстур. Полная же версия была платной — за лицензию на одну игру Epic Games просили от 350000 долларов.

Unreal Engine 3

Новая версия была сделана с упором на многоядерные процессоры — как в ПК, так и в новых (в то время) консолях PlayStation 3 и Xbox 360: теперь движок использует два параллельных потока данных — основной поток (отвечающий преимущественно за игровой процесс) и поток рендеринга. Кроме двух главных потоков могут быть вызваны второстепенные, которые выполняют разовые задачи. Так же движок обзавелся поддержкой API DirectX 10 и OpenGL 3 (от Pixomatic отказались как из-за его старости, так и из-за того, что даже самые мощные процессоры перестали справляться с графическими задачами). Появилась поддержка множества других платформ — начиная с Wii, iOS и Android и заканчивая такой экзотикой, как Windows RT.

Основные особенности нового движка:

  • Поддержка HDR, попиксельного освещения, динамических теней, Pixel Shader 4.0, геометрических шейдеров. Сам графический конвейер был переведён под управление шейдеров.
  • Физический движок сменился на PhysX, что позволило сделать эффекты тккани и улучшить эффекты жидкости. Однако аппаратное ускорение поддерживается только на Windows, поэтому эффекты на других платформах были урезаны.
  • За анимацию лиц персонажей отвечает интегрированный анимационный движок FaceFX, позволивший улучшить детальность прорисовки и реалистичность мимики.
  • Добавлена поддержка технологии SpeedTree, позволившая значительно снизить нагрузку на систему при отрисовке растительности (деревьев и травы).

Unreal Engine 3.5

Как и в предыдущих версиях х.5, тут была произведена, в основном, оптимизация — движок научился работать с DirectX 11, а так же был добавлен фильтр пост-обработки Ambient occlusion, улучшающий тени и освещения. Было увеличено число обрабатываемых персонажей в кадре. Переработана на новом уровне технология динамической водной поверхности, физика мягких тел и разрушаемое окружение также значительно улучшены.

На движке вышло больше 100 проектов, среди которых линейки Bioshock, Borderlands, Mass Effect, X-com, Mortal Combat, Battlefront и многие другие. Среди мобильных игр стоит отдельно выделить линейку Infinity Blade, до сих пор являющуюся эталоном графики под мобильные платформы:

125954.l.jpg

infinityblade2.jpg

Самой красивой игрой под ПК на UE 3 стоит назвать, пожалуй, Outlast 2 (хотя она еще в разработке):

9a21c68e-440b-4fa6-b309-a8bbc0be2a87.jpg

Увы — для обычных пользователей доступна только бесплатная некоммерческая версия движка, полная версия продается только крупным игровым студиям, цена за лицензию на одну игру неизвестны.

Unreal Engine 4

Это самая новая и постоянно развивающаяся версия движка. Она поддерживает консоли текущего поколения (PlayStation 4 и Xbox One), API DirectX 12, а так же с недавних пор — и Nintendo Switch. Добавили достаточно много нового:

  • Поддержка очков виртуальной реальности SteamVR, HTC Vive и PlayStation 4 Morpheus (для последнего есть поддержка 120 Гц).
  • Новая система рендеринга травы и других объектов на земле вокруг игрока, которые создаются путём получения многочисленных копий одного или нескольких объектов — это сильно снижает нагрузку на видеокарту, при этом практически не портя картину (мало кто заметит, что два камня в нескольких метрах друг от друга одинаковы).
  • Иерархическая система LOD'ов (уровней детализации), которая позволяет рендерить объект на большом расстоянии с худшим качеством и меньшим числом запросов к рендереру.
  • Процедурный генератор растительности, который позволяет генерировать как огромные, так и маленькие области заполненные деревьями, кустами и травой так, как будто бы они здесь реально росли.
  • Возможность воспроизведения и перемотки последних нескольких минут геймплея в сетевых играх. .
  • Новый, фотореалистичный Depth of Field (глубина резкости), который теперь похож на боке, получаемый при съемке на камеру.
  • Отражения для полупрозрачных поверхностей (в том числе и отражения эффектов типа взрывов).
  • Автоматическое создание Convex Collision Meshes (выпуклая геометрия, на основе которой просчитываются физические столкновения).
  • Инструменты для локализации игр (в том числе — перевод фраз на текстурах).
  • Paper2D — встроенный движок для создания спрайтов.
Движок является абсолютно бесплатным для некоммерческого использования, однако если вы хотите создавать на нем игры, то вам придется платить 19 долларов в месяц за лицензию, а так же отчислять 5% от заработка создателям движка — Epic Games. Из-за таких более чем приемлемых условий инди-проектов на UE 4 много, да и крупные студии не отстают — в разработке сейчас находится больше 30 проектов, в том числе Borderlands 3, Tekken 7 и Dead Island 2. Самой красивой из вышедших игр можно назвать Gears of War 4:

3d646f0dbcb02d465358fb510a214c0c.jpg

Будущее движка

Об UE 5 неизвестно ничего, да и это понятно — 4ая версия вышла всего пару лет назад и активно разрабатывается, поэтому ждать крупного релиза ближайшие пару лет не стоит. 
8

Будь в курсе последних новостей из мира гаджетов и технологий

Мы в соцсетях

Комментарии

Лекс Грэй
0
Ребятушки! Я не понял, где ссылки на предыдущие статьи серии? По тегу "движок" выдается только 4 статьи... Где первая?
И вообще с юзабилити у вас на сайте полная беда!
5 марта 2017 в 06:17
#
Егор Морозов
+1764
У меня по тегу "движок" все 5 находятся. Попробуйте в поиск вбить "история игровых движков".
5 марта 2017 в 10:25
#
mystique_man
+1586
Как быстро летит время...я помню как покупал диск с unreal в далеком 98... Вторая купленная игра, первой был starcraft...
17 марта 2017 в 22:10
#