Unreal Engine - этапы развития игрового движка

10Сен

Unreal Engine - этапы развития игрового движка

 

 

Я уже не могу вспомнить, какой был год. Скорей всего 1996.Тогда все играли в только что вышедший Duke Nukem 3D, а у кого тогда компьютера не было, играли в первую Российскую PS Vita “Ну погоди”. Пройдя Duke Nukem 3D вдоль и поперек, я взял диск “200 игр на одном диске” и методом научного тыка, выборочно загружал и смотрел игры. Мне попался файл Unreal pre Alfa.exe. Зачем мне понадобилась столь ранняя версия незнакомой мне игры, я сказать не могу, наверное, предчувствие. Она грузилась настолько долго, что я подумал, что компьютер завис. Когда Alpha всё-таки загрузилась, завис уже я. Передо мной возникло, что-то жутко тормозящее, но нереальной красоты картинка. Первое, что меня поразило, это полное отсутствие распада объектов на пиксели при приближении. Это сейчас я понимаю, что у альфы не было настроек и все было по максимуму. Я ходил по какому-то готическому замку и иногда пролетал какой-то разноцветный шар и освещал мягким светом стены и потолок. Это было настолько сказочно и завораживающе, что от монитора я отойти не мог очень долго. Я был шокирован настолько, что до сих пор, меня никакая графика, так и не удивила.        
Но хватит лирики, перейдем к технологиям:
Полная версия игры Unreal вышла в 1998 году на игровом движке, который так и называется Unreal, разрабатываемый и поддерживаемый компанией Epic Games.
Игру мы рассматривать не будем, просто поверьте, что это был технологический прорыв. Нас более интересует средства разработки, которые шли с движком и попадали в руки простым пользователям. Сам движок совмещал в себе графический движок, физический движок, искусственный интеллект, управление файловой и сетевой системами и готовую среду разработки для игр — UnrealEd, а также SDK. Некоторые эффекты были новинкой для своего времени. Например, частичное или полное отражение. Технология варпинга (warp) — возможность при прорисовке заменять изображение одной поверхности на другую, ей параллельную поверхность, SkyBox. Движок стал одним из первых в котором появился эффект гало вокруг источников света, которые плавно затухали, будучи перекрыты краями стен по мере движения игрока. Лава и некоторые текстуры луж воды, в которые падали капли, сделаны динамическими благодаря использованию не шейдеров, как в поздних играх, а процедурных текстур, а также фотореалистичное анимированное небо.

 

 

В 1999 году Epic Games выпускает Unreal Engine 1.5. Из нововведений можно отметить лицевую анимацию персонажей и увеличения текстур до 1024х1024, улучшена система частиц и обновился UnrealED. Именно на этой версии движка и был создан Unreal Tournament. 
Общественность была в восторге. Стали появляться различные моды, а благодаря SDK, моды очень часто отличались от оригинальной игры.  Только коммерческих проектов на движке Unreal насчитывалось около 100. А некоторые, даже метили на игру года, например deus ex или thief. По UnrealED стали появляться книги, курсы, не говоря уже об уроках в интернете от простых пользователей. И Unreal и Unreal Tournament успешно экспортируются на PlayStation 2 и XBOX в добавок, прихватив с собой еще полсотни хитов на этом движке.

 

 

 

 

В 2002 году выходит Unreal 2. Помимо третьей редакции UnrealED, в ней было, по утверждениям Epic Games, полностью переписаны ядро и механизм рендеринга. Самое главное новшество – это технология Karma. Чтобы понять, что это такое, приведем пример. Допустим, персонаж стоит на лестнице. В него попадает пуля. Произошло событие смерти персонажа. Раньше в играх включалась заранее подготовленная анимация смерти персонажа (максимум 3-6 разновидностей), а теперь персонаж катится кубарем по лестнице, перебирая ступеньки, не по подготовленной анимации, а по физическим законам. Смотрится весьма эффектно, особенно когда персонажи отлетают спиной вперёд к стенке, и после удара, падают лицом на пол и.т.д. В простонародье назвали эту технологию “физика тряпочной куклы”. Также изменения коснулись листвы, поверхность воды стала трехмерной, а не плоскостью с одной текстурой и прочие косметические изменения. Unreal Engine 2.5 подарил нам поддержку DirectX 9, увеличения текстур до 4096х4096 и внедрение SpeedTree.

С выходом XBOX 360 и PlayStation 3, Epic Games нужно было идти в ногу со временем и на сцену вышел Unreal 3. Был обновлен графический движок. Появилась поддержка многопоточной динамической загрузки данных (streaming), например, загрузка «локации» непосредственно при перемещении по ней в целях экономии ресурсов.   
Были добавлены все графические новинки того времени, включая HDR, попиксельное освещение, динамические тени, шейдерная модель четвёртой версии, геометрические шейдеры. От физической подсистемы Karma отказались, заменив её на PhysX от компании AGEIA. Позже AGEIA выпустила набор дополнительных библиотек к игре, позволяющих задействовать все возможности физической системы (такие как эффект «жидкости» или ткани). Позже была добавлена поддержка iOS.  Это был, наверно, самый популярный движок не только от Epic Games, но и вообще в мире.


 

                   

И вот мы подходим ко второму по значимости событию - UDK.( Unreal Development Kit ) первая версия февраль - 2009 год.

С этого момента про Epic Games, все чаще стали говорить - “аттракцион неповторимой щедрости”. Выпуск UDK стал началом новой эры игростроения. Epic Games открыла исходный код Unreal Engine 3, собрала в один пакет весь свой самый лучший инструментарий, сделала полноценную поддержку FBX с анимацией, организовала невиданную до этого тех. поддержку, и на своем сайте постоянно обновляла версии UDK. Вышла новая технология от nvidia и она сразу же попадает в UDK. Наплыв курсов от таких гигантов digital tutors, Lynda,Ead 3D только подстегнула общественность. UDK использовалась во многих сферах и разными пользователями: геймдевелоперами, исследователями, телевизионными студиями, мультипликаторами, художниками, студентами и.т.д. UDK распространялась бесплатно, но если вы хотите сделать на нем коммерческий проект, то условия таковы: в соответствии с пользовательским соглашением (EULA), разработчики игр могут продавать свои игры, сделав одноразовую выплату компании Epic Games в сумме $99. В случае если коммерческий продукт на базе UDK наберёт в общей сумме $50,000 прибыли, то разработчик будет вынужден выплачивать 25 % роялти компании Epic Games. Так из чего-же состоит UDK? Давайте разберем по полочкам.
Основу UDK составляет редактор UnrealEd (тот самый из Unreal 1 и далее с ним, только немного усовершенствованный)

                                

 

 

Большинство действий по созданию игровых уровней будет производиться в нем. Из этого редактора также по мере необходимости будут вызываться дополнительные инструменты:
- Content Browser - что-то вроде проводника в windows, только интегрирован со всеми инструментами. Менее профессиональный аналог был и в старых версиях, но учитывая увеличение количества новых функций, будем считать его новинкой. Чтобы какой-то элемент появился на сцене или в другом разделе редактора, достаточно просто перетащить его мышкой.     
- Kismet - это визуальный редактор игровой логики. В нем можно создавать логические схемы взаимодействия объектов игрового мира друг с другом и с игроком. При помощи связей можно задать какие объекты и как именно будут реагировать на те или иные события игрового мира. Редактор во многих случаях полностью заменяет язык программирования (работает на нодовой системе)
-  Material Editor – это универсальный редактор шейдеров. Основанный на нодовой системе, он позволяет создать любой шейдер.
- UnrealMatinee – Редактор анимации объектов. Позволяет сделать анимацию открывающейся двери, перемещение по этажам лифта, стрелки часов. и.т.п. С помощью Matinee создаются игровые заставки, ведь камера тоже объект, а значит должна двигаться.   
- UnrealScript – это простой язык программирования высокого уровня, который даёт полный контроль скриптов. Кто не хочет изучать скрипты, но знает C++, как говорится, кто сказал нет? Это даже приветствуется.
- Unreal Cascade – Редактор системы частиц, позволяющий создать не только искры и огонь, но и погодные эффекты.
- Unreal с NVIDIA PhysX - Физический движок дает вам беспрецедентный контроль над характером движения жидкости, ткани, разрушения и.т.п.        
Вот далеко не полный, но основной список. Не будем подробно расписывать обновленный SpeedTree, плагины для мимики лица, открытый код Unreal Tournament, что позволяет делать многопользовательские игры и многое, многое, многое... Всего этого набора вполне достаточно чтобы создать игру ААА класса.

 

А, теперь барабанная дробь и встречайте - Unreal Engine 4. 


Давайте перемотаем время немножко назад. 18 августа 2005 года вице-президент Epic Games Марк Рейн сообщил, что Unreal Engine 4 уже два года находится в разработке и его целевыми платформами являются персональные компьютеры и консоли 8-го поколения, а единственным человеком, работавшим над движком, является Тим Свини. Напомним, что UDK вышла в феврале 2009г.                      
Общественность спокойно занималась UDK, но постоянно мучала Epic Games вопросом – НУ, КОГДА? Покажите, хоть, что-нибудь! Первая презентация Unreal Engine4, была произведена на выставке E3 седьмого июня 2012 года. Был продемонстрирован ролик Elemental Demo, тот самый ролик об ожившем рыцаре. Любопытно что в дальнейшем Epic выложили исходники ролика. Затем началась долгая и мучительная дразниловка. Множество роликов с показом интерфейса редактора, сотни скриншотов, выступление на мировых собраниях разработчиков, утечки с закрытых конференций (судя по качеству снятых на телефон). Поддержка nvidia и oculus rift и прочие пиар процедуры.            
19 марта 2014 года Unreal Engine 4 начал своё свободное распространение для всех желающих с подпиской 19$ в месяц. Исходные коды (!) также выложены на GitHub. 2 марта 2015 года движок стал бесплатным для всех разработчиков при условии, что прибыль от приложений, созданных на основе движка не превышает $3000 за квартал. Разработчики не особо любят цифру 4 в названии движка, а предпочитают называть просто Unreal Engine, а учитывая, что Unreal Engine 3 все еще на плаву, получается небольшая путаница. Что же нового преподнес нам Unreal Engine (новый):)
Во-первых – новый интерфейс:

                                           

 

Во-вторых - Epic Games сделали стратегический ход. Они взяли скриптовую систему и Kismet из Unreal 3 и объединили их в одну нодовую систему. И назвали blueprint. Учитывая то, что на скриптах можно было сделать то, что только фантазия пожелает, то и blueprint на это способен. Если пользователю не нравится нодовая система, то придется программировать на C++. А скрипты и Kismet были исключены из четвертой версии.

                                          

        
В-третьих -  компиляция С++ кода на лету во время игры (Hot Reload — не нужно ставить на паузу или перекомпелировать приложение)
В-четвертых - полный доступ к исходным кодам
В-пятых - новый редактор материалов, анимации, редактор кат-сцен
В-шестых – улучшенный редактор ландшафтов (предел не ясен, но очень большие детализированные площади с легкостью можно построить)
В-седьмых – встроенный искусственный интеллект
В-восьмых – Launcher. Через него можно скачивать обновления, смотреть официальные уроки, покупать модели и текстуры, но главное в нем море примеров, на все случаи жизни.

                                          

 

В-девятых – поддержка DirectX 11, и в скором времени DirectX 12
В-десятых – улучшенный постпроцесинг.
Одиннадцатое – поддержка практически всех устройств ввода и вывода и, конечно, же oculus rift. Дошло даже до того, что в очках виртуальной реальности можно работать в самом редакторе. 
Двенадцатое – улучшенная разработка под мобильные устройства.
Я предлагаю на этом остановиться, иначе перечисление нововведений займет все свободное пространство. 
Компьютерное сообщество восприняло все эти новинки на ура. Уже через несколько дней после релиза в интернете стали появляться первые пробные работы. Но больше всего меня поразило, что архитектура и дизайн интерьеров не остались в стороне. В интернете есть множество прекрасных работ на эту тему. В основном их стараются не выкладывать в общий доступ, всё-таки большинство коммерческие заказы. Unreal Engine стал не только игровым движком, он постепенно вытесняет с рынка такие рендеры, как corona или vRay. Зачем ждать часами рендеринг если все можно быстро и не менее качественно только в реальном времени. 
Изучайте, делайте свои работы, двигайтесь в ногу со временем и удачи.

И, напоследок, посмотрите несколько скриншотов сделаных на UE4, тут думаю коментарии излишны:

 

    

 

 

 

    

 

 

Никита Ивановский
Никита Ивановский

Оставьте комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Вход в личный кабинет

Введите ваш почтовый адрес и пароль

Обратный звонок

Введите данные для связи и мы вам перезвоним

Я даю согласие на обработку персональных данных и подтверждаю согласие с политикой конфиденциальности

Задать вопрос

Введите ваш вопрос

Я даю согласие на обработку персональных данных и подтверждаю согласие с политикой конфиденциальности