Unreal Engine — один из лучших движков для разработки игр
В этой статье мы расскажем что такое Unreal Engine, почему это один из самых популярных движков для разработки игр, в чем преимущества Unreal Engine и какие перспективы тебя ждут, если ты научишься в нем работать. Если дочитаешь до конца, то получишь лайфхак, как создать свою первую игру на этом движке. Так что приготовь 8-10 минут свободного времени, чтобы больше разобраться в этой теме. Итак, приступим.
ЧТО ТАКОЕ UNREAL ENGINE
Unreal Engine (UE) — это игровой движок, который создала студия разработки видеоигр Epic Games. Это один из самых популярных движков, потому что Эпики работают над ним уже 15 лет, но при этом он бесплатный. Единственное, что нужно учесть — компания берет роялти 5%, если прибыль проекта выше, чем 3000$ за квартал. Но это абсолютно стоит каждого цента, потому что со всем набором инструментов, которые есть в UE можно легко создать игру.
ЛУЧШИЕ ПРОЕКТЫ, СОЗДАННЫЕ НА UNREAL ENGINE
Что такое Unreal Engine и как с ним обращаться
UE — это движок высшего уровня, потому что им пользуются даже ААА-студии, например:
- Nintendo;
- Valve;
- Rockstar Games;
- Electronic Arts;
- Sony Computer Entertainment;
- Activision Blizzard.
- Final Fantasy VII Remake;
- Gears 5;
- Fortnite;
- Mortal Kombat 11;
- Borderlands 3.
ГЛАВНЫЕ ПРЕИМУЩЕСТВА UNREAL ENGINE
Unreal Engine не зря такой популярный, у него есть много преимуществ, которые делают его таким привлекательным. Мы рассмотрим основные из них.
1.Удобно настраивать интерфейс под себя
Логика интерфейса UE достаточно простая — все делится на 4 раздела: редакторы, вкладки, панели и меню. Их можно передвигать в те места экрана, где вам это было бы максимально удобно. Еще их можно соединять, разъединять или делать вообще отдельными окнами.
2.Универсальный инструмент для разработки игр “все в одном”
В UE есть сразу почти все инструменты, которые нужны разработчику. Есть даже встроенный редактор настройки контента, в котором можно создать 3D-модель или анимировать ее. Все материалы, которые вы создали или перенесли в UE, настраиваются по визуальным блок-схемам — нодам.
По визуальному программированию проще работать с материалами
На UE можно достичь кинематографического качества графики. Особенно с новым Unreal Engine 5. Он пока вышел только демо версии, но результаты уже впечатляют.
Качество графики на Unreal Engine 5
Разработчики говорят, что их цель это реалистичная графика как в голливудских фильмах. Это будет возможно благодаря новым технологии оптимизации Nanite и технологии реалистичного глобального освещения Lumen. Разработчики обещают, что полная версия движка выйдет в конце 2021 года.
4.Новичкам или инди-разработчикам не нужно платить за использование движка
Если вы только учитесь работать с движком или не тратите десятки тысяч долларов на разработку игры, то для вас UE бесплатный. Платят только те разработчики, которые создали на Unreal игру и получают больше 3000$ за квартал. Потому вы можете учиться сколько хотите на Unreal или выпускать небольшие игры — за это вы не заплатите ни цента.
Ну, а если вы создали игру и на нее свалиться коммерческий успех, как на Fall Guys, то вы платите только 5% роялти от вашей выручки
5.Упрощенное программирование для новичков и более продвинутое программирование на языке С++
В Unreal Engine можно программировать даже если не знаешь ни одного языка программирования. Для этого Epic Games разработали систему визуального-программирования — Blueprints. В ней не нужно прописывать строчки кода, вместо этого используют специальные блок-схему — ноды. Этим нодам задают свойства, а потом соединяют нужные свойства нодов между собой.
Blueprints в Unreal Engine
Соединять блоки между собой намного проще, чем писать код, поэтому новичкам легче разобраться с программированием в UE. Кроме того, когда работаешь с блюпринтами не будет ошибок в синтаксисе кода.
Более опытные программисты могут комбинировать блюпринты и С++, чтобы оптимизировать производительность.
6.Можно создавать игры сразу под несколько игровых платформ
В Unreal игры сразу можно создавать на несколько платформ: PlayStation, Xbox, Switch и ПК, а для смартфонов сразу на iOS и Android. С нескольких платформ получится охватить больше людей — чем больше людей узнает о игре, тем больше будет продаж.
7.Большая библиотека игровых моделей от Epic Games
Если вы инди-разработчик и хотите создать игру, но не умеете моделить, текстурить или создавать спецэффекты, то на сайте Unreal Engine для вас есть целый набор игровых моделей. Если деньги не особо хочется тратить, то там есть целый набор бесплатных моделей. Если хочется эксклюзивности, то можно модели покупать. Причем там любые игровые ассеты — окружение, 2D-модели, 3D-модели, анимация, оружие, персонажи и даже целые уровни.
На Unreal Engine Marketplace целая библиотека бесплатных игровых моделей
Чтобы зайти в эту библиотеку бесплатных игровых моделей нужно:
- Зайти на сайт Unreal Engine;
- Нажать вверху во вкладке “Marketplace” и дальше “Browse”;
- Найти и нажать на ячейку “Free”.
ЛАЙФХАК. КАК СОЗДАТЬ ПЕРВУЮ ИГРУ, ЕСЛИ ВЫ ИНДИ-РАЗРАБОТЧИК
Чтобы было проще создать игру самому, вы можете сначала сделать ее из готового материалы библиотеки ассетов и потихоньку заменять на свои. Так уже сразу будет готовый черновик игры и вы быстро получите результат вашей задумки. Вы увидите получилось ли реализовать идею игры и насколько в нее интересно играть. Если и то, и другое получилось, то шаг за шагом создавайте собственные модели и меняйте черновые варианты на свои.
ПЕРСПЕКТИВА ИЗУЧЕНИЯ UE
С помощью одного только Unreal Engine можно создать свою первую игру, в нем есть все инструменты для этого. Особенно, когда есть товарищ, с которым вы вместе делаете игру. Например, он занимается визуалом, а вы продумываете геймдизайн и по по блюпринтам программируете игру.
Если же вы не хотите сами создавать игру, а хотите пойти по более стабильному пути, то вы можете стать Unreal Engine разработчиком. Для этого вам нужно научиться работать с блюпринтами, изучить язык С++ и разобраться в интерфейсе, тогда уже можно будет устроиться на позицию UE-разработчика в студию. зарплата в этом случае будет от ₽55 000 на основе данных в “HeadHunter.ru”.
Если какой-то из этих двух вариантов подходит вам и вы хотите либо создать свою игру, либо стать UE-разработчиком, то приходите на курс Game Code . Там мы научим вас программировать в Unreal Engine и разбираться в его интерфейсе. Преподавать на курсе будет Александр Балакшин, который работал ведущим геймплей-программистом для Ubisoft. Вместе с командой они разрабатывали ААА-игру “Rainbow Six Siege”. Переходите по ссылке и узнайте больше о курсе. Если вы пройдете наш курс, то уже за 5 месяцев у вас будут все знания, которые нужны, чтобы устроиться на вакансию UE-разработчик джуниором.
Источник: www.school-xyz.com
Unreal Engine: что нужно знать новичку о «слишком сложном» ПО, на котором создаются шедевры
Чтобы реализовать мобильную игру именно так, как это было задумано, стоит выбрать движок еще на стадии проработки идеи. Бесплатное ПО Unreal Engine популярно среди разработчиков благодаря универсальности платформы – функционал позволяет реализовать даже игру ААА-уровня, что недоступно во многих других бесплатных движках.
Хотя изначально движок предназначался для разработки шутеров от первого лица, сейчас на нем создают MMORPG, файтинги и даже стелсы. Об эволюционном пути движка, правилах выбора проекта для UE, а также сильных и слабых сторонах ПО поговорим далее.
Движок Unreal Engine: характеристики ПО и требования к оборудованию разработчика
Движок Unreal Engine был разработан в 1996 году командой разработчиков Epic Games и работает на основе языка программирования C++. Первой разработанной на платформе игрой стал шутер от первого лица Unreal, а сам движок распространялся на платной основе по модели ежемесячной подписки.
Только с 2015 года UE стал условно бесплатным, но пользователи движка все же обязаны выплачивать роялти в размере 5%, когда игра выходит в релиз. Благодаря языку программирования C++ на движке можно без проблем делать игры для:
- Windows;
- Mac OS;
- Linux;
- Xbox;
- PlayStation;
- Wii;
- Dreamcast и других платформ.
В последние годы мобильные платформы стали одним из приоритетных направлений геймдева на Unreal Engine, поэтому разработка для iOS и Android также поддерживается. Вы можете сравнительно быстро импортировать игру с одной платформы на другую за счет модульной системы зависимых компонентов.
На данный момент последней является версия Unreal Engine 5, в которую разработчики добавили новые функции. Но системные требования остались на уровне UE 4, а это значит, что для тестирования драфта игры нужен следующий комплект «железа»:
- процессор – 4 ядра с частотой 2,5 GHz или выше;
- оперативная память – не менее 8 GB;
- видеокарта – любая, поддерживающая DirectX 11.
Впрочем, движок постоянно обновляется и совершенствуется, Epic Games выпускает новые паки и оптимизирует среду разработки под новые устройства. Главной задачей Unreal Engine является упрощение создания качественного проекта, в том числе с играбельным и стабильным мультиплеером. Масса ассетов и возможность контролировать не только механику, но и графику игры – одни из главных особенностей UE.
Среди других характеристик, которые отличают данный движок от других, можно выделить:
- Полный инструментарий «из коробки». Вам нужно лишь установить среду разработки и запустить ее – все нужные функции уже будут в Unreal Engine.
- Разработка на C++. Данный язык программирования, хоть и является более сложным для освоения, чем те же C# или Python, но работает гораздо быстрее. Это повышает качество и производительность проекта в финальной версии.
- Визуальное создание скриптов. Система Blueprints Visual Scripting позволяет создавать игры, даже тем, кто не знает язык C++. И хотя для лучшего результата код все же придется править под себя, скорость создания базовых объектов удастся значительно повысить.
Таким образом, постоянное улучшение Unreal Engine позволяют разработчику получить максимальный уровень качества мобильных продуктов при минимальных затратах сил и времени.
UE5: какие сюрпризы подготовили создатели платфомы для пользователей новой версии
Логичным эволюционным шагом в развитии Unreal Engine стала 5-я серия движка, выпущенная в 2021 году. По словам Epic Games, она вывела ПО на новый уровень фотореализма – это было главной целью обновления. Но это отнюдь не все важные нововведения:
- Nanite. Под этим названием была презентована виртуализированная геометрия с микрополигонами, исключающая неприятное явление «бюджета на полигоны». Данная геометрия позволяет показывать в кадре геометрию кинематографического качества, которая имеет миллионы и миллиарды полигонов.
- Lumen. Еще одна фича для детальной картинки, которая представляет собой абсолютно динамическое глобальное освещение. При помощи системы Lumen картинка реагирует на изменения сцены и условий освещения, то есть падение лучей света в игре будет меняться в реальном времени. Алгоритм сам просчитает интенсивность, угол освещения, а художнику останется только скорректировать нюансы.
- Симуляция реверберации звука. Если говорить проще, то в UE5 завезли реалистичное эхо, которое работает в замкнутых пространствах. Звук постепенно угасает, а система просчитывает это индивидуально, исходя из параметров прорисованной площади.
- Улучшенный физический движок. Тут все проще – законы природы работают более корректно, модели персонажей двигаются реалистичнее, а физика работает так, как и в реальном мире.
- Новая симуляция поведения жидкостей. Система позволяет создавать зрелищные сцены с жидкостями и повышать реалистичность картинки. В сравнении с предыдущим поколением UE, теперь разные жидкости имеют разные параметры, а значит атмосферность картинки повышается многократно.
Если говорить о том, для каких проектов можно выбрать Unreal Engine, ответ будет простым – для любых. Неважно, будет это простая карточная 2D-игра или полноценная ААА-проект – UE обеспечит быстрый процесс разработки с огромным набором ассетов и вспомогательных систем.
Знание языка C++ несомненно потребуется для подгонки нюансов и персонализации, но интуитивный механизм добавления объектов позволит проработать игровой мир гораздо быстрее, чем на движках-аналогах. Таким образом, при желании получить результат с отличной графикой, реалистичной физикой и стабильностью работы стоит выбирать именно Unreal Engine.
Новичкам на заметку
В сторону Unreal Engine редко смотрят новички, а все из-за того, что на первый взгляд интерфейс кажется слишком сложным. Но стоит посвятить его изучению чуть больше времени, и в итоге вы получите отличный инструмент для любых творческих задач.
- Изучите доступные на платформе демо и шаблоны (вкладка Online Learning). Выполняя инструкции в уроках вы сможете создать свой первый проект и поделиться им с друзьями.
- Создайте игру на основе бесплатных шаблонов и только потом начинайте ее персонализировать и обновлять.
- Воспользуйтесь бесплатным продуктом для визуального программирования Blueprint – с его помощью вы сможете собрать код из готовых частей, не боясь опечататься или что-то напутать.
- Не ждите идеального результата. Вряд ли у вас с первого раза получится игровой шедевр – для этого нужны опыт, знания и полноценная команда. Поэтому смотрите на тестовые проекты, как на источник бесценного опыта.
- Развивайте продукт постепенно. Не стремитесь к полноценной ААА-игре, сверстанной «на коленке», это в принципе невозможно. Создайте что-то, что будет соответствовать понятию минимально жизнеспособного проекта.
- Идите на игровые джемы. Соревнования по разработке игр дисциплинируют и учат создавать рабочий продукт за минимально возможные сроки. К тому же, на джемах можно найти единомышленников и даже собрать команду для дальнейшей работы над игрой.
- Работайте регулярно. Начав работу над проектом, не откладывайте его в долгий ящик и не допускайте больших пауз. Даже если вам кажется, что затея провальная – изучайте движок и экспериментируйте.
- Подпишитесь на блоги опытных разработчиков, которые щедро делятся опытом и идеями. Видео-уроки могут помочь найти ответы и вдохновение.
Наши советы помогут начать работу с Unreal Engine, но при этом могут использоваться и для других движков. Отличаются только технические моменты разработки, но тут все зависит от ваших потребностей и ожиданий. О работе с движком Unity мы рассказывали в одном из наших материалов.
У Unreal Engine есть как плюсы, так и минусы, которые имеют индивидуальный оттенок, ведь в зависимости от проекта важны разные характеристики. Впрочем, список преимуществ можно построить следующим образом:
- Весь код проекта пишется на С++, есть встроенный графический редактор Blueprints.
- ПО максимально стабильно, разработчик может рассчитывать на полное отсутствие багов.
- Unreal Engine одинаково хорошо подходит как для проработки кинематографических спецэффектов, так и видеоигр.
- Пользоваться UE и всем его функционалом можно абсолютно бесплатно. Но не забывайте, что роялти от продаж успешной игры выплатить все же придется (при обороте в более, чем 100 000 $).
Но при этом веские минусы данного движка тоже имеются:
- Высокая цена на контент для геймдева. Несмотря на обилие бесплатных файлов, часто стоимость нужных предметов достигает 100 $.
- Сложный интерфейс. Этот минус – лишь дело привычки, как только вы сориентируетесь в функциях и привыкнете к меню, сможете оперативно использовать все возможности.
- Требовательность к «железу». При написании кода сложно заметить прожорливость движка, но для обработки неоптимизированной графики потребуются серьезные мощности.
- Большой «вес» ПО – более 20 ГБ.
На Unreal Engine были созданы множество глобальных и красивых игр для мобильных устройств. Пятерка наиболее известных продуктов, которые вдохновят нас на создание собственного проекта:
- Fortnite.
- PES 2020.
- Lineage 2: Revolution.
- Heroes Reborn: Enigma.
- PUBG Mobile.
Чтобы быстрее и продуктивнее освоить Unreal Engine, новички могут использовать ряд рекомендованных ресурсов: YouTube-канал от разработчиков движка, онлайн-курсы по геймплею и графике.
Следите за обновлениями блога! Мы готовим еще много интересных материалов для начинающих разработчиков, которые только планируют ворваться в мир геймдев.
Источник: vokigames.com
История Unreal Engine: от первого Unreal до наших дней
Представьте сейчас, что было бы с современной игровой индустрией, если бы Epic Games в далеком 1998 году не разработала революционный игровой движок Unreal Engine? Сейчас, я просто уверен в этом, вы начали вспоминать безграничное количество проектов, созданных на этой технологии, но их такое огромное количество, что не просто удержать в голове. Возможно, вы бы никогда не посетили город Rapture в Bioshock, не ощутили бы себя в шкуре супершпиона Сэма Фишера из Splinter Cell и не примерили на себе киберпротезы из Deus Ex.
Этот программный продукт, повлиявший на всю новейшую историю видеоигр, создал человек по имени Тим Суини, программист, разработчик и основатель компании Epic Games. Его идеи стали не просто новаторскими, они стояли на ступень выше, чем конкуренты, и даже по прошествии многолетнего периода использовались во многих культовых проектах. Как показывают последние новости, эта тенденция будет только развиваться, порождая за собой то, что мы все так с вами очень любим — видеоигры.
Unreal Engine 1
Unreal, вышедший в 1998 году, стал первой игрой, принесший компании большой успех, но не только из-за того, что это был отличный шутер от первого лица. Первая часть серии имела абсолютно бескомпромиссные по меркам того времени системные требования для ее запуска, что вызывало негодование аудитории и сказалось на популярности проекта. Хотелось бы отметить, что большие требования к железу стали отличительной особенностью каждого последующего релиза новой версии Unreal Engine.
Технологии первой версии впечатляли своими возможностями, в него входили не только сильные графические свойства, но также физический движок и искусственный интеллект, который, кстати, был разработан одним из разработчиков первого Quake Стивеном Полжем.
Конечно, визуальный аспект первого Unreal был безусловным прорывом, но все эти возможности не имели бы никакого отражения в самом игровом процессе, если бы не огромный труд над дизайном. Нагнетающая атмосфера инопланетных просторов, замечательная электронная музыка, богатый арсенал оружия, способность уклоняться от смертоносных когтей скаарджей и, конечно же, культовый Headshot — заслуга гейм-дизайнера Клиффа Блежински.
Несмотря на то, что в первую версию движка был встроен свой редактор карт, он не нашел значительной популярности у энтузиастов. Являясь основным конкурентом Quake II, Unreal на тот момент имел не самый лучший сетевой режим в отличие от своего брата по жанру, что подстегнуло разработчиков выпустить отдельную версию игры, коей стал Unreal Tournament.
Unreal Tournament
Новая версия движка Unreal Engine 1.5 являлась значительной переработкой оригинального. Она отличилась поддержкой текстур с большим разрешением и переработанным сетевым кодом, а также доведённым до ума редактором уровней UnrealEd (Unreal Editor). Все это делалось именно для сетевых баталий, где Epic Games значительно продвинулись вперёд по сравнению с первой частью игры.
Несмотря на то, что проект имел огромного конкурента в лице Quake III: Arena, игроки приняли новый Unreal очень тепло. Зачастую из-за кардинально отличающегося дизайна в целом. Сводящий с ума искусственный интеллект ботов (в особенности, последнего босса игры Xan’а), отличный саундтрек, проработанный до мелочей огромный арсенал оружия, динамичный игровой процесс, прекрасная графика и восхитительно переданный футуризм – все эти преимущества заставляли прыгать любителей FPS выше потолка от радости.
Еще бы, что могло быть лучше, чем превращать в кровавую пыль своих противников, находящихся по другую сторону экрана, из разрывного импульсного заряда!
Количество модификаций к Unreal Tournament росло с такой же скоростью, как и уровень самих желающих «творить» в игровом редакторе. Несомненно, многие разработчики, которые сейчас работают в индустрии, начинали именно с порывов типа «а не создать ли мне сейчас свою карту с бензопилами и модификатором огромных голов?». Исходя из этого, говорить, что Epic Games повлияли на современную индустрию – значит, не сказать ничего!
Unreal Engine 2
К 2002 году количество поклонников технологии росли, как на больших грибах из Mario – появилось огромное количество проектов, использующих Unreal Engine первой версии, в число которых входили и популярные проекты студий типа Ion Storm, Human Head Studios и так далее.
Epic Games не просто одели вторую версию в новую обложку, а полностью переработали ядро инструмента, добавив в него более реалистичную физическую модель, улучшили до неузнаваемости его графическую часть, а также сделали довольно реалистичную водичку, что заслужило уважения среди любителей поплескаться в виртуальных бассейнах.
С выходом новой технологии флагманом выступило не очень удачное продолжение Unreal Tournament 2003, которое было воспринято спокойно и без особого фанатизма, но вызвало очевидное одобрение непосредственно поклонников прошлых частей игры. За ней также вышло продолжение сюжетной части серии – Unreal II: The Awakening.
Ничего выдающегося, увы, она показать не смогла и выделялась лишь множеством продолжительных игровых роликов, описывающих неплохую сюжетную линию. Но это не спасло проект от разносторонних отзывов.
К 2004 году Epic Games вспомнили знаменитые слова «Нет предела совершенству» и выпустили обновленную версию Unreal Engine под дробным номером два с половиной, а в подарок поклонникам выпустили продолжение Unreal Tournament 2004. Но дело тут совсем не в том, что Epic Games решили загладить ошибку прошлого, а в том, как сторонние студии подхватили идею использовать в каждой третей игре технологии новой модификации движка.
Кстати, в это же время, id Software выпустила Doom 3 и его квадратные головы.
Такой коммерческий успех повел за собой большой приток желания разрабатывать на новых технологиях компании. Все больше людей подтянулось в общее движение клепать игры на новоиспеченном Unreal Engine, поэтому Epic Games оглянуться не успели, как оказались на E3 с эксклюзивом для игровой приставки от Microsoft.
Unreal Engine 3
Рассвет консолей следующего поколения в виде Xbox 360 и Playstation 3 подарил для Epic Games возможность выпускать проекты не только ориентированные на ПК, но и сильно продвинуться на рынке консольных игр, где они могли опробовать свой новый Unreal Engine 3. Первой пробой и абсолютным успехом стал Gears of War, выпущенный на Xbox 360.
Gears of War был воплощением всего самого лучшего, что умела компания. Графические возможности поражали своей насыщенностью и детализацией, а просторы, на которых использовались эти возможности, были поистине огромные. Большие труды над артом и дизайном не оставили равнодушным ни одного любителя видеоигр. И, конечно же, стоит вспомнить знаменитую винтовку с бензопилой «Lancer» от Клиффа Би, с помощью которой в игре можно было разрубать всех врагов пополам!
Участь новой версии Unreal Engine 3 была предрешена, как и в случае с предыдущей версией движка. За прошедшее поколение было выпущено колоссальное множество видеоигр на основе идей Тима Суини и компании.
Сторонние разработчики использовали не только конкретно существующий инструмент для разработки, но и модифицировали движок для достижения конкретных целей, так что Unreal Engine 3 зарекомендовал себя как совершенно универсальная платформа для работы, где можно было выходить за рамки предоставленных тебе возможностей, но при этом сохранять фирменный и выдержанный стиль. Разумеется, все это подняло статус самих Epic Games в глазах как обычных игроков, так и разработчиков.
Чуть позже, была выпущена бесплатная версия нового движка, что развязало руки многим начинающим разработчикам, которые с удовольствием подтянули слоган «Powered by Unreal Engine».
В 2012 году были анонсированы не самые лучшие новости с фронта компании. Клифф Блежински официально сообщил о том, что уходит из индустрии, аргументировав это тем, что устал от создания видеоигр, и ему нужна передышка.
Unreal Engine 4
На выставке E3, прошедшей в 2014 году, были представлены первые технические возможности четвертой версии движка, которые показывали именно то, что хотели видеть – прогресса и эволюции в сфере компьютерной графики.
Была проделана масштабная работа над освещением, а физический рендеринг позволял обрабатывать настолько колоссальные пространства, что хотелось забыть о существовании всех предыдущих достижений Epic Games в этой сфере.
На данный момент над движком ведется постоянная работа, он обновляется практически каждую неделю, а его дополнениями занимается Тим Суини с небольшой командой программистов. Приняв во внимание опыт данного мастодонта, репутацию, заработанную потом и кровью, а также умение создавать действительно оптимизированные технологии, можно предположить, что в ближайшем будущем нас ждет еще одна революция.
Такое стремительное продвижение Тима Суини к фотореализму будто подталкивает к необходимости приобретения VR-шлемов. Правда на данный момент мнения относительно реального использования существующих шлемов виртуальной реальности расходятся, склоняясь к мнению типа «А как вообще это в играх будет выглядеть?», так что хочется верить в действительно стоящую реализацию этого новшества в скором времени.
Такие личности как Кен Левин, известный по играм Bioshock, System Shock, бывший сотрудник Epic Games Клифф Блежински со своим новым проектом BlueStreak, новый Street Fighter V от японской студии Capcom и, конечно, огромный поток инди-проектов (раз уж технология распространяется бесплатно) уже сейчас сообщают о разработке своих проектов на четвертой версии движка.
Прошлый опыт в использовании этих возможностей доказывает универсальность применения Unreal Engine. Многие студии использовали его для абсолютно разных жанров, что говорило о его гибкости, а такой простор для фантазии, как следствие, ведет к появлению абсолютно новых механик, о которых нам станет известно в ближайшем будущем.
Идущая наравне с трендами Epic Games имеет сейчас сыроватый, но бесплатный и работающий Unreal Tournament, в котором никто не ограничивает фантазию пользователей и идет им на встречу, отдавая в свободное использование свою технологию Unreal Engine 4. А что может быть лучше для начинающего разработчика, чем бескорыстная помощь в реализации его идей? Наверное, только обещание сделать всю работу за него, пока он будет играть в любимые видеоигры.
Источник: www.playground.ru
Первый опыт и впечатления от Unreal Engine 4
Evening, lads! Под конец года я хочу вам вкратце рассказать о своём начальном опыте познания троп Unreal Engine 4, его инструментария, и о том, чему можно самостоятельно и спокойно научиться делать в нём за три месяца.
5860 просмотров
Начну сразу с демонстрации:
Для контекста
Сразу уточню – я всё делал на Blueprints и к написанию кода на Си не прикасался. У меня уже есть опыт как в разработке игр (участвовал в трёх проектах на Unity), так и двух лет программирования на С++, но в этом учебном проекте решил сосредоточиться на изучении частично или полностью нового – в создании игровых механик (ранее в играх в основном занимался ИИ), в инструментарии (движок и аспекты игры); и иной вид программирования (графический BP, вместо классического кодинга).
Также, до начала работы у меня уже было видение и концепции игры (роуглайк FPS с упором на динамичные бои, передвижение и скиллы), которая может из этого прототипа вырасти, и механик, которые я хотел создать – их было на полноценные полторы-две игры, так что пришлось выбирать и сосредоточиться лишь на главных (так, например, совершенно не заморачивался с перезарядкой стволов).
Какие темы в итоге затронул:
— Использование проекта-шаблона (FPS шутер) и его настройки, а также готовых ассетов (материалы, модели, анимации);
— Inputs (клавиши управления и действий);
— Базовый ИИ – его настройка, навигация и поведение;
— Программирование актёров, их компонентов и их динамичное изменение;
— Создание актёров-снарядов (Projectile) и их взаимодействие;
— Программирование уровня и “game mode”;
— Функционал взаимодействия игрока и интерактивных объектов;
— Создание и программирование HUD и виджетов;
— Создание материалов, использование их экземпляров и работа с координатами;
— Использование многослойных (Layered) материалов;
— Система частиц (Cascade);
— Создание статичных мешей с помощью Geometry brush;
— Основы работы с освещением;
— Настройки импорта в UE изображений (текстур);
— Особенности ООП в Blueprints UE4;
— Рабата со структурами, таблицами и перечислениями;
— Изменение параметров материалов и систем частиц с помощью кода.
Теперь уже перейду к тому, что конкретно сделал.
По контроллеру игрока, шаблону и что не трогал
Для базы своего проекта я использовать шаблон ‘FPS Shooter’ входящий в UE4 и должен сказать, что был приятно удивлён качеством контроллера персонажа игрока и глубиной его настройки. Например, ещё до начала работы я знал, что хочу сделать функционал двойного и более прыжков – и хотя в итоге мною было это реализовано, но это оказалось ненужным, так как в шаблоне уже был параметр с количеством этих самых прыжков, а также возможность настройки перемещения в воздухе и его силы, скорости торможения, силы эффекта гравитации (не путать с весом актёра) и так далее.
Но что добавил в передвижение игрока, так это рывки – о них напишу отдельно.Кроме этого, добавил в проект готовые базовые ассеты (материалы, меши) и шаблон ‘3dr Person Shooter’ (нужен был готовый актёр-манекен для врагов).
Geometry brush и его карты
Довольно любопытный инструмент для создания простой геометрии, отличный вариант для построения временного игрового уровня. Я опробовал все основные функции, сделал несколько статичных мешей, в том числе для ”сундука”. Однако, для создания чего-то более серьёзного, вроде мешей оружия, он уже не так хорошо подходит, например, в нём не хватает возможности глубокой настройки UV карты (только позиция, масштабирование и “перспективная стыковка”, которая делает то, что вы хотите только при создании элемента уровня). Так пробовал создать полый цилиндр – с геометрией никаких проблем не было, а вот нормально настроить эту самую карту (да, только одну) возможности нет.
(меши что сделал, парочку даже не использовал)
(цилиндрические проблемы)
Система частиц
Теперь перехожу уже к более интересным и объёмным темам. Система частиц, материалы и “data staff” – это то, что я активно использовал во многих частях проекта. Например, частицы у меня используются в:
- Эффектах у закрытых сундуков;
- Эффектах при использовании скиллов (в частности – взрывов);
Как уже писал, я использовал старую (но ещё актуальную) встроенную систему Cascade, к которой у меня почти не было претензий или желания большего. Она достаточно понятная и функциональная, особенно благодаря многослойности (разные эффекты в одной системе), взаимодействию с материалами через специальные входные данные, возможности изменения параметров через код или кривые.
Материалы и текстуры
Самое большое количество времени в этом проекте мною было потрачено на визуальный кодинг, второе – материалы. Впервые занимаюсь ими и был очень приятно удивлён функционалу, понятности (большинства) и тому, что ты можешь сделать с их помощью – от простого наложения текстуры с настройкой цвета или контрастности до полноценного изменения геометрии и симуляции жидкостей (эти два я, правда, не пробовал, но когда-нибудь!), при этом ещё и с возможностью делать это разными слоями (имею в виду систему Layered Matereals, про неё будет дальше).
Конечно, не все материалы, что мною были сделаны, основаны на генерации — я создал некоторые текстуры и иконки (созданные в PS изображения с разными настройками импорта):
А также несколько “кистей” для UI виджетов (brushes; большинство, правда, в итоге так и не использовал):
Отдельно хочу отметить систему многослойных материалов, так как работа с ними отличается от обычных, например, вместо одного ассета-материала, используются:
— Layered Material – материал конкретного слоя или фона (Background);
— Material Layer Blend – отвечает за формат наложения/слияния слоя, где он выбран с предыдущим слоем или фоном;
— Материал-база, в котором присутствует компонент для использования этой системы и включает в себя базовые настройки.
Кроме этого отличается и синтаксис для динамичного изменения параметров этих материалов, документации и примеров чего я почти не нашёл, так что пришлось разбираться самостоятельно.
В итоге с помощью материалов сделал:
— Простой материал с настройкой основных атрибутов;
— Динамичную (прокрутка по X и/или Y текстурной коор.) текстуру для снарядов (с возможностью настройки цвета, скорости прокрутки и эффектом Fresnel);
— Текстуры для систем частиц (их необходимо делать через материалы из-за того, что их цвет идёт как input значение);
— Динамичную текстуру для отображения 3D эффекта при использовании рывка игроком;
— Многослойный материал с отображение 2D иконки как один слой и добавочным визуальным эффектом (использовал почти тот же самый, что и для эффекта рывка) как второй на меше-плоскости в 3D пространстве;
— Материал для эффекта “обводки” объекта в постобработке (выбор врагов при использовании направленных умений);
— Материал для “наклеек” (Decals, на которые действуют эффекты FadeIn и FadeOut) с параметрами 2D текстуры и наложения цвета.
Записи, информация или data-staff
Тут речь пойдёт об одной из самых скучных частей разработки (не такой как тестирование и исправление багов, но всё же) – организации данных, а конкретно о структурах и их использовании в информационных таблицах и проекте. Кто не в курсе: структура данных – это пользовательский набор данных (которые могут быть различного формата, например, в одной структуре использовать такие данные как число, строка, ссылка на актёра и 2d текстуру), который можно использовать в качестве переменной или в таблице для записи данных.
Но зачем это всё нужно в моём небольшом проекте? Как уже писал, даже если в итоге он не разрастется в полноценную игру, то я хотя бы получу дополнительный опыт для работы с оными и больше пойму возможности масштабирования.
Итак, мною были созданы структуры с информацией о:
- Оружии (с таблицей) – название, ссылка на класс, иконка, изначальная скорострельность (задержка между выстрелами), количество амуниции (выстрелов);
- Способностях (с таблицей) – название, ссылка на класс, описание, иконка, изначальное время перезарядки, количество зарядов;
- Виде статус эффектах – название, описание, иконка;
- Статус эффектах (с таблицей) – вид статуса эффекта (исп. предыдущая структура), продолжительность тика (одного заряда), количество тиков;
- Цветах (с таблицей, для использования как единой цветовой палитры) – название (типа enumeration – выбор одного из созданного перечисления) и линейный цвет, вот так просто.
(таблица с информацией о статус эффектах; нет, сделал только один)
Кроме этого я создал несколько объектов-интерфейсов для большего удобства работы с переменными записями и наборами (например, геймплейных тегов).
Как уже писал, у меня уже есть опыт работы с созданием модели поведения NPC и системы их взаимодействия, однако ранее это делал на чистом коде (за исключением системы навигации – что тогда, что сейчас я использую предоставляемую движком), на этот же раз — использовал готовые инструменты и системы, что предоставляет Unreal: Behaviour Tree, Blackboard, AI Controller и AI Perception, а также встроенную навигационную систему.
Работать и объединять работу (через Blueprint классы) со всеми этими компонентами было удобно, быстро и довольно понятно, по крайне мере на том уровне, который был мною выбран.
За основу персонажей врагов взял готовый “манекен” для контроллера игрока от третьего лица (готовая модель с анимациями) и класс актёра “Character controller” со своими компонентами (капсулой для коллизии, компонент навигации персонажа с настройками проходимости, скорости движения и прочим). Для полноценного функционирования и для возможности будущего масштабирования пришлось также использовать дополнительный компоненты и классы:
- Behavior Tree (далее BT) – “дерево поведения” или “дерево выбора”, компонент для удобной работы с поведением врага в виде последовательных графов (имеют иную структуру и вид, нежели кодинг на Blueprints);
- Blackboard – связанный напрямую с BT компонент, в котором хранятся переменные для использования в нём;
- AI Controller – базовый компонент для настройки и прописывания логики относящихся к “чувствам” (в данном случае задействовано только зрение для поиска игрока), а также присвоения значения Blackboard переменным;
- Несколько BT Task – небольшие задачи со своей логикой, которые можно использовать в BT;
- Interface – для обозначения (лишь обозначения, сама логика описывается в каждом конкретном классе отдельно) типовых для врагов функций (вроде получения урона, призыва атаковать, проверки готовности для деспавна), к которым будет простой доступ из других классов;
- и наконец, отдельный класс снаряда (Projectile, о них будет идти речь позже) для возможности атаки по игроку.
Итак, вот какую логику и действия я прописал врагу:
- “Патрулирование” – нахождение случайной допустимой для подхода точки в небольшом от актёра-врага радиусе, доход до неё, небольшое ожидание и повторение;
- “Визуальное обнаружение и преследование игрока” – обнаружение игрока в поле зрения (настраиваемое виртуальное “чувство” в AI Controller) или после получения урона от него, и его преследование, пока тот не выйдет за пределы зрения, после чего возврат к патрулированию;
- “Атака игрока” – суть думаю ясна, враги стреляют в игрока с заданным промежутком, когда преследуют его. Так же сделал для этого действия специальный визуальный эффект;
- У врагов есть здоровье и при попадании игроком по нему (снарядами или способностями, что наносят урон) оно уменьшается, опустится до нуля — он перестаёт двигаться или атаковать, включается ragdoll и через пару секунд он уничтожается;
- В видео этого не было, но я для тестов сделал функционал респавна — когда враг умирает или падает за пределы уровня, то он вновь появляется в своей начальной позиции (реализовано в коде уровня).
Источник: dtf.ru