Подумайте дважды, прежде чем использовать игровые движки
Холивар о том, нужно ли использовать для создания игр движки, начался сразу после появления первых игровых движков. Этот пост на reddit не является идеальным примером разумных контраргументов против постоянного использования движков, но я считаю, что непреодолимое желание их применения немного отдаёт фанатизмом.
Давайте рассуждать разумно
Я считаю, что не существует готового ответа на вопрос, стоит ли разработчику применять движок. Мудрый разработчик перед выбором технологии оценивает все возможные варианты.
Уровень навыков
Достаточно ли у вас навыков, чтобы эффективно использовать выбранный вариант? Если у вас нулевой опыт в программировании, то придётся многому научиться, прежде чем вы будете готовы создавать игру из набора разрозненных библиотек.
Если у вас нет ни технических навыков, ни интереса к их изучению, то вариантов и в самом деле нет — придётся работать с движком (или убедить кого-нибудь заняться технической частью за вас; удачи вам в этом!).
Есть промежуточное состояние между полным отсутствием навыков и профессиональным уровнем. В основном он находится в стране скриптовых языков: Scratch, Game Maker, Pygame, Unreal Blueprints, LOVE2D и т.д. Все они для тех, кто желает получить определённый уровень технических знаний, чтобы быстро достичь результатов.
Если вы опытный/профессиональный программист, способный уверенно освоить стороннее ПО, то можете воспользоваться этим навыком и решить, насколько минималистичным/максималистичным будет ваш подход (будет ли это исключительно минимальный SDL или же полностью оборудованный Unreal Engine).
Цели разработки
Каковы ваши цели в этом проекте? Технологии должны по максимуму упрощать их достижение:
Интерес
Если вы больше работаете (или планируете работать) с разработчиками, чем в одиночку, то вам нужно оценить, насколько другие люди заинтересованы в технологии. Если вы работаете со старым движком/фреймворком, который все ненавидят, то вам сложно будет найти для своего проекта мотивированных разработчиков.
Подумайте также над тем, как с технологией будут взаимодействовать художники и дизайнеры. Хотите ли вы создавать инструменты, чтобы догнать по функциональности Unreal? Они неизбежно будут сравнивать возможности движка и собственные. Я слышал, что даже у AAA-студий есть проблема с художниками, требующими наличия функций Unreal, которые пока не реализованы в текущем форке Unreal студии.
Если вы работаете в одиночку, то нужно поддерживать в себе сильную увлечённость проектами. Если вы ненавидите технологию, с которой работаете, то скорее всего забросите работу. Если вы бросите, то все ваши усилия пойдут прахом (за исключением бесценного опыта).
Что они дают вам на самом деле?
У Джонатана Блоу есть удивительно мудрое видео о том, что же на самом деле дают игровые движки. Они решают за вас «простые» проблемы, но потом встают на пути, когда пытаетесь решить сложную проблему, из которых и состоят увлекательные игры.
Да, конечно, вы получаете великолепный редактор, инструменты профессионального уровня и движок, который подошёл тысячам разработчиков, но вы расплачиваетесь за него множеством других аспектов:
Что нужно для вашего проекта?
Технологиями должен управлять ваш проект, если только это не технологическое демо. Если вы создаёте игру, то нужно работать только с теми технологиями, которые оказывают влияние на игру — только с самым необходимым для передачи вашего видения. Если движок предоставляет вам самый быстрый путь для выпуска вашей игры, то это хороший выбор. Но так будет не всегда!
Существуют успешные игры, которым бы послужил плохую службу любой из доступных движков:
Будущее вашей (и нашей) индустрии
При использовании любой технологии стоит задуматься о замыкании. У Джоэла Сполски есть серия статей о бизнес-стратегии разработки ПО, в которой он размышляет о замыкании на продукте. Если вкратце, то его мысль заключается в том, что компании заинтересованы удерживать вас, чтобы вы использовали их продукт, потому что если вы не используете продукт, то они не зарабатывают денег. Мастерами в захвате целых отраслей стали Apple, Microsoft, Adobe и Autodesk, они создают ощущение, что кроме их ПО нет никаких других альтернатив.
Замыкание влияет даже на хобби/соло-разработчиков. У меня есть друг, который постоянно борется с Unity (рушащие совместимость обновления, система прототипирования, навмеш, плохая поддержка 2D. ). Он хочет уйти от Unity, но сильно замкнут на этот движок, потому что большая часть его кода (и данных) полагается на Unity API.
Почему движки покупают?
Unreal и Unity управляются требованиями рынка. Их клиенты AAA-уровня при помощи многомиллионых контрактов определяют курс дальнейшего развития движков. Если вы работаете над игрой, структура которой не совпадает с целями этих AAA-игроков, то разработчики движков не будут так же преданно служить вам. Например, двухмерным, процедурным, экспериментальным, воксельным играм и играм с большими объёмами данных почти всегда приходится искать что-то своё.
Чем ярче кажутся функции, тем больше руководство компаний (которое чаще всего не является технарями) стремится использовать движки. Такие возможности, как Blueprints движка Unreal, очень нравятся художникам и дизайнерам, но создают множество проблем программистам. (Это свойственно любым скриптовым языкам; если позволить не изучавшим программирование людям программировать, то результат будет плохим, аналогично тому, как плоха графика, рисуемая программистами).
Действительно ли новые функции упрощают завершение создания вашей игры? На самом ли деле они повышают ценность конечного продукта?
Боритесь с централизацией
Каждый раз, когда одна из студий переходит с собственного движка на Unreal или Unity, компании Epic и Unity набирают в игровой индустрии ещё бОльшую мощь. Поначалу такая централизация может казаться выгодной (у них ведь над движком работают 500 инженеров, отлично!), но через пару десятилетий это станет реальной проблемой. На ум приходит Google: эта компания захватила обширную часть функций, которые люди используют в Интернете, и это стоило им потери большой доли приватности.
Даже на уровне хобби отказ от исследований в пользу Unreal или Unity вредит будущим поколениям движков. Это может повредить даже самому Unreal: если все будут использовать Unreal, то Epic не сможет больше нанять никого для создания нового поколения движка, потому что никто не будет знать, как пишутся игровые движки!
Будущее может быть за открытыми исходниками
Если мы, как индустрия, хотим расти, создавая всё более качественные продукты, то нам нужно больше, а не меньше делиться технологиями.
Я думаю, что индустрия движется в этом направлении, хоть и чрезвычайно медленно. В особенности это свойственно игровым студиям AAA-уровня, которые всё ещё скрывают код своих движков, чтобы получить (воображаемое?) конкурентное преимущество.
Качество ПО
Джонатан Блоу и Кейси Муратори — ярые критики современных практик написания ПО. Их точка зрения заключается в том, что мы создаём надстройки над слоями абстракций так долго, что получаются огромные хрупкие слои ненужного хлама, и это не позволяет нам писать более качественные продукты.
Возможно их философия ближе к идеализму, чем к прагматизму (что обычно приводит к откладыванию сроков выпуска игр), но если она близка вам, то не стоит её игнорировать.
Важны ли вам скорость, качество и элегантность ваших технологий? Многих людей вполне устраивает отрицательный ответ, но некоторые хотят создавать программы более «чистым» способом.
Каковы альтернативы?
Вместо использования движка вы просто пишете игру.
Новички часто думают, что для создания игры им нужен движок. С большой долей вероятности им стоит отбросить такую точку зрения. Начинающие будут впустую тратить время на реализацию бесполезных функций движка, вместо того, чтобы дать игре решить самой, что ей абсолютно необходимо. Только игра должна управлять тем, что нужно от движка (разумеется, в качестве контрпримера можно привести Unity, как образец подхода «движок в первую очередь»; в поддержку такой концепции у Unreal Engine 4 есть Paragon, Fortnite и Unreal Tournament, не говоря уже о десятках лет опыта выпуска бесконечного количества игр в предыдущих версиях движков).
Использование библиотек
Начинать «с нуля» имеет смысл только если вы имеете навык и планируете создать инновацию в конкретном компоненте (или имеете ограничения). Во всех остальных случаях существует множество библиотек для интеграции. Это особенно хорошо, когда вы знаете, что, например, стандартная система физики полностью подходит для требований вашего проекта (особо важно это потому, что для реализации собственной физики нужен большой объём знаний в этой области).
Вот несколько библиотек, которые могут заполнить пробел между работой «с нуля» и использованием полностью готового движка:
Большой плюс в использовании библиотек заключается в том, что он даёт вам наибольшую среди всех вариантов гибкость. Если вы пишете весь код в одном движке, то для его портирования придётся приложить огромные усилия. Если вы пишете игру как коллекцию библиотек, то обладаете большой мобильностью и можете заменять целые подсистемы. Если библиотека не отвечает вашим требованиям, то можно попробовать другую или даже написать собственную замену.
Кроме того, и Unreal, и Unity поддерживают импорт динамически подключаемых библиотек. Это значит, что можно начать работать с библиотеками, а затем перейти на Unreal без необходимости переписывать весь базовый код геймплея, потому что он находится в библиотеке. Чтобы код оказался достаточно гибким для таких огромных изменений, требуется серьёзная продуманность, но я думаю, что для среднего или долговременного проекта оно того стоит.
В заключение
Я представил несколько точек зрения, под которыми можно рассматривать технологии при их выборе. Потратьте пару недель на подробное исследование, и это может сэкономить вам в дальнейшем несколько месяцев работы по портированию или даже годы неудобств.
В конце концов, ваша основная задача — закончить проект. Вам следует приложить максимальные усилия к поиску кратчайшего пути к решению этой задачи. Он может оказаться для вас довольно неожиданным!
Какой игровой движок выбрать?
Всём привет! Меня зовут Дядиченко Григорий, и я CTO Foxsys. В разработке я порядка 8 лет, а занимаюсь игровой или AR/VR разработкой последние лет 6. Сразу скажу, что в данной статье нет простого ответа “этот игровой движок лучше”, и она не претендует на объективность. Я лишь расскажу мнение с точки зрения технического директора и человека за плечами которого порядка 40 коммерческих проектов. Если вам интересно — добро пожаловать под кат.
Как выбираются технологии для проекта?
Любой специалист высокого уровня знает, что не существует “лучшего языка программирования”, “лучшего фреймворка” и так далее. Но есть технологии, которые лучше всего под конкретику проекта. Вообще для каждого конкретного проекта в плане выбора технологий я бы порекомендовал дать это сделать экспертам, то есть техническим директорам. Потому что выбор технологии под конкретный проект требует очень широкой экспертизы и знание огромного количества контекста. В целом ошибка в выборе технологической базы чаще всего не смертельна и ведёт просто к дополнительным издержкам на реализацию проекта, но тем не менее.
В целом в выборе технологий со своей точки зрения я руководствуюсь двумя основными подходами: технологический и бизнесовый.
Под технологическим я подразумеваю какая технология лучше всего подходит под проект. Допустим на ней есть необходимые библиотеки, большая часть необходимого функционала готова из коробки, что технологически реализуемо и так далее.
Бизнес-часть принятия решения составляет из себя ответы на вопросы: “Насколько просто найти специалистов на рынке на данной технологии?”, “Какую технологию дороже поддерживать?”, “Какой экспертизой на данный момент обладает команда?” + возможности партнёрства и прочие бизнес-причины.
Продумав все вопросы выбор обычно сводится к достаточно небольшому списку технологий, подходов к разработке и фреймворков. То есть не существует ответа на вопрос “Какой игровой движок лучше?”, так как всё зависит от задачи и множества сопутствующих факторов.
Какой движок лучше выбрать новичку?
Конечно, с моим бекграундом в 6 лет Unity разработке можно было бы предположить, что выбор уже решён и что тут дальше читать то. Но мой ответ вас, возможно, удивит. На данный момент я считаю, что, если вы совсем новичок, ещё не погрузились ни в один движок и только начинаете свой путь лучшим выбором будет Unreal Engine. И пока сообщество не начало обвинять меня в предательстве я объясню свою точку зрения.
Я считаю, что эти движки в большинстве задач связанных с 3д графикой по сути идентичны. Чуть ниже я подробнее распишу почему. Мой выбор на данный момент связан не столько с технологическими причинами, сколько с работой компаний со своими комьюнити. И на данный момент я вижу в разы больше интересных программ, активностей, образовательных мероприятий и прочего со стороны Epic Games. На Unity, конечно, сидит почти весь мобильный геймдев, в 3 раза больше вакансий чем на UE и так далее. Но думаю, это со временем изменится. Да и 134 (на момент написания статьи) открытых позиций это немало. Современная разработка устроена так, что в целом вы можете учить что угодно, что вам больше нравится, и вы всегда найдёте себе работу. Поэтому это мнение на тему новичков, так как если вы выбрали для себя Unity — это отличный выбор. 6 лет работаю на Unity и горя не знаю. А вот для совсем новичков я вижу просто больше образовательных возможностей и интересного со стороны эпиков. Но всё может измениться.
С точки же зрения опытного разработчика в определённый момент конкретные технологии, фреймворки и языки — это вопрос вашего удобства. Перескочить на другую технологию для сеньора можно где-то за полгода, если он глубоко знает фундаментальные основы Computer Science. И смысла перепрофилироваться я тоже не вижу, потому что потребность в Unity специалистах большая, и движок отлично справляется со своими задачами.
На Unreal Engine лучше графика?
Небольшая оговорка. Всё что будет ниже не относится к новой технологии рендера, хотя пока по отзывам от знакомых UE разработчиков она работает не так красиво и хорошо, как хотелось бы.
Это чистой воды миф совершенно непонятно откуда взявшийся. В 3д графика движка настолько хороша, насколько хорош его свет и Post Processing. И с точки зрения что не особо напрягаясь и где можно накрутить, они для меня практически идентичны. Вот собственно наилучшее сравнение, которое я находил.
Что же лучше для проекта?
Всё всегда зависит от специалистов и бюджетов. И если мы берём среднебюджетный проект (коих сейчас большинство), то я вообще не вижу разницы между движками. Если мы берём аутсорс которым я занимаюсь, то вообще без разницы. В те бюджеты, которыми обладает средний проект у вас не будет даже возможности добраться до багов движков, до проблем с невозможностью что-то сделать, да и вы не будете этим заниматься. Любой эксперт при имеющемся бюджете знает, как сделать проект на технологии Х в этот бюджет качественно.
Единственное, хотя я немного не в контексте движка UE, но я бы его не стал бы брать для 2D проектов в принципе. Так как последние время Unity выпускает много крутых инструментов для 2D разработки. Поэтому мне кажется, что пока в этой области UE рассматривать нет особого смысла. Есть конечно менее популярные движки для этой задачи типа Defold или же Game Maker, но их я бы не стал брать по бизнес-причинам. Потому что я не уверен, что не столкнусь с проблемой того, что мне неоткуда будет расширять команду, так как специалистов на них днём с огнём не сыщешь.
И оба движка я бы в целом не рассматривал бы для web проектов. Если в UE я просто не знаю, что с поддержкой веба (может её там и нет) То с Unity прикол в двух основных проблемах. Первая, что там до сих пор нет поддержки мобильных браузеров. Да, на топовых телефонах оно даже как-то работает, но это очень рискованная затея брать технологию, которая официально не поддерживается для продакшен решения. А второе и самое главное — это время загрузки. Основной прикол веба в быстрой доставке контента до пользователей (помимо того, что там нет ограничений и правил сторов). Поэтому время загрузки Unity убивает эту фишку напрочь. Для веб проектов я чаще всего беру pixi.js, three.js, playcanvas и react. Что в этом списке забыл реакт? Это длинная история для другой статьи, если кому-то это интересно.
Собственно, по этим же причинам я для себя пока не вижу смысла переходить с Unity. За 40 коммерческих проектов разного масштаба я ни разу не упирался в стену, чтобы что-то было нереально сделать на Unity и реально на Unreal Engine. Плюс для меня, как для бывшего С++ разработчика (невысокого уровня) основным минусом UE является С++. C# как язык в разы приятнее. Кто знает undefined behavior и сложные утечки памяти, тот поймёт.
Опять-таки, если вы разбираетесь в компиляции, исполняемых средах и прочем, вы знаете, что на самом деле к любому движку можно прикрутить почти любой язык (а точнее его подмножество) Но это странно брать движок и писать для него библиотеки на языке не поддерживаемом этим движком. И тут мы переходим к последнему и самому спорному.
Открытые исходники — это хорошо?
Нет, нет и ещё раз нет. И в этом я довольно категоричен. Даже беря в работу Unreal Engine, я рассматриваю его как чёрный ящик. Потому что фреймворк берётся в работу не для того, чтобы поддерживать свою версию этого фреймворка. Наличие такой возможности для компаний, которые могут заниматься подобной деятельностью есть и в Unity, но вы никогда не хотите этим заниматься. И причин этого целая масса. Начиная от ада с конфликтами версий в случае необходимости переезда на новую версию. Движок берётся не для того, чтобы исправлять его баги. Безусловно важной является не открытость исходников, а возможность надстройки своей системы поверх движка. И этой возможностью обладают и юнити, и анреал. Открытость к расширению и закрытость к модификации так сказать. Потому что в этом случае обновляться можно спокойнее, хотя обновление — это всегда важный шаг в отношениях с любой технологией, и делать это надо крайне осторожно.
Подводя некий итог
На чём создают игры? Обзор популярных игровых движков
Авторизуйтесь
На чём создают игры? Обзор популярных игровых движков
индивидуальный разработчик видеоигр
Игровые движки — особый класс программного обеспечения. Каждая компания использует свой собственный, охраняя все секреты с исключительной ревностью. Чаще всего все знаковые «фишки» какой-то успешной игры обусловлены именно возможностями движка, а не квалификацией программистов. А потому, предоставить лицензию кому-то другому означает получить себе сильного конкурента.
Взять к примеру, автомобильные гонки: как там будут реализованы погодные условия? Просто туман — довольно легко, но надо, чтобы на лобовое стекло падали капли дождя или мокрого снега, причем взаимодействовали с потоком набегающего воздуха в зависимости от скорости. Если вас обогнали на мокрой трассе — значит, должно окатить грязью. Добавьте еще реалистичное отражение в зеркалах, и подумайте, сколько здесь работы для программиста. Если все это будет доступно на уровне движка, значит, с работой вполне справится специалист средней руки во вполне обозримые сроки. В результате, уникальная в своем роде игра рискует быть расклонированной безо всякого стеснения.
1 октября – 30 ноября, Онлайн, Беcплатно
Бывают программисты, способные написать игру без движка, или даже сперва создать собственный движок, а затем игру. Но зачем, если можно сразу игру? А затем, что в каждой компании есть HR-специалист, который не позволит руководству совершить роковую ошибку, и сделать проект зависимым от одного человека. В зарплате таких программистов не обидят и создадут самые комфортные условия, но сделать игру без движка не позволят ни под каким видом.
По сути, каждый проприетарный игровой движок — это уникальный закрытый фреймворк, построенный по собственным стандартам, использующий собственную терминологию. За счет этого, программист, работающий в знаменитой студии, прикован к движку, как к веслу на галере. Весь его опыт и квалификация востребованы только здесь, и нигде более.
Возникает вопрос: зачем изучать игровые движки? А затем, что в последние годы ситуация в гейм-индустрии радикально меняется. Меняются подходы к лицензированию, меняется уровень доступного контента, меняется рынок труда в ИТ.
На самом деле, доступные и бесплатные движки были всегда. Однако, если взглянуть на готовые проекты, становится ясно, почему бесплатно: пользуясь предложенным инструментарием, вы никогда и никому не составите конкуренции. Говоря коротко, при всем богатстве выбора, достойными внимания можно считать от силы четыре движка: CryEngine, Godot, Unity, Unreal Engine.
Каждый имеет свою специфику, но есть и общие свойства, выделяющие их в особую категорию. Будучи доступными индивидуальному разработчику, все они позволяют создавать проекты ААА класса. До недавнего времени такое сочетание считалось невозможным. Как следствие, на рынке труда можно встретить вакансию «Разработчик Godot/UE/Unity» столь же часто, как и «Программист С++».
CryEngine
Самый экзотический движок из нашего списка. Создан немецкой частной компанией Crytek в 2002 году. В 2006 году движок купила компания Ubisoft. Игры Crysis и Far Cry знают многие, но рабочий инструмент для их создания большой популярности так и не набрал. Условия использования — 5% роялти при доходе более 5 тысяч евро в год вполне демократичные, но главная проблема другая. Движок хорош для тех, кто делает шутер под десктоп или консоль, а о мобильных устройствах лучше не думать.
В свое время Crysis казался революционным благодаря уровню интерактивности с внешней средой. Все предметы были разрушаемыми, их можно было брать и перемещать. Зато на максималках эта игра не работала ни у кого. Сегодня реалистичность взаимодействия с предметами стала привычной, но уровень оптимизации движка до сих пор оставляет желать лучшего. В былые времена реальное попиксельное освещение, объемные эффекты, анимированные текстуры и прозрачные материалы внушали пользователям благоговейное уважение и потому недостаток производительности прощали.
Из достоинств следует также отметить высококачественный звук 5.1 и реалистичную проработку перспективы. К примеру, туман доступен трех типов: объемный, слоистый и дальний. Не забыли разработчики также и об искусственном интеллекте, который настраивается скриптами помимо кода C++.
В версии 5.6.7 присутствуют шаблоны SideCroller, Third Person Shooter, Top Down Shooter, но почему-то никто под мобильные устройства ничего не делает. Также следует помнить, что все продукты Crytek были однопользовательскими, следовательно мультиплейер тоже под большим вопросом. Южнокорейский разработчик NCsoft использовал CryEngine для MMORPG The Tower of Eternity, но все сетевое взаимодействие переписывали самостоятельно с нуля.
Godot
Здесь самое приятное — это цена. Движок полностью бесплатный безо всякого мелкого шрифта. Трудно поверить, но это один единственный файл размером менее 70 мегабайт, не требующий инсталляции. При этом имеет полный функционал, к которому привык современный разработчик.
В смысле кроссплатформенности самый универсальный: Godot-проекты можно портировать как на ПК или консоли, так и на мобильные или WEB-платформы. «Из коробки» доступна основная физика, как для персонажей так и для автотранспортных средств. Есть встроенные алгоритмы поиска пути с обходом препятствий. В наличии привычный для многих визуальный редактор шейдеров, в полном объеме представлены инструменты скелетной анимации и визуальные эффекты, основанные на частицах. Редактор анимаций в движке устроен таким образом, что можно анимировать практически любой параметр, присутствующий в проекте. Для движка доступно огромное количество шаблонов и готовых примеров, и раскапывать эту сокровищницу не хватит никакого терпения.
Чтобы не перехвалить, следует отметить отсутствие встроенного редактора ландшафта, но зато есть расширенный импорт из Блендера, откуда можно забрать всю сцену со всеми потрохами. В качестве языка программирования предложен GDScript, по синтаксису похожий на Python. Идеологически Godot-проект представляет собой древовидную структуру, каждый узел которой может служить самостоятельной сценой. Объекты могут общаются между собой с помощью так называемых сигналов, которые могут содержать в себе переменные.
Начиная с версии 3.0 появилась возможность использовать Visual Scripting, до боли напоминающий Блюпринты в Unreal Engine.
Unity
Сказать о нем «очень известный» — ничего не сказать. Без преувеличения это один из столпов, на которых держится игровая индустрия. Angry Birds 2, Pokemon Go, Super Mario Run, Escape From Tarkov — ничтожно малая часть проектов, созданных на Unity.
Лицензия Personal бесплатна, при условии, что ваш доход не превышает 100 000 долларов в год. Если вы вдруг разбогатеете сверх меры, придется покупать помесячную или годовую подписку. Причем богатеть есть с чего, поскольку система идеальна для разработки мобильных приложений. В этом сегменте и пиратства поменьше, и издателей побольше, да и покупателей хватает.
От прочих систем Unity отличает сравнительно низкий порог вхождения: визуальный редактор прост, удобен интуитивно понятен. В отличие от Godot имеется встроенный редактор ландшафта.
Есть базовая физика, в том числе симуляция ткани. Можно сделать так, чтобы плащ на плечах героя не торчал, как лист фанеры, а красиво развевался на ветру. Но нельзя сказать, будто вся красота доступна прямо из коробки: любая фенечка начинает работать только после того, как ее описать в соответствующем скрипте и немного посидеть над отладкой.
В качестве языка программирования используется C#, любители визуального скриптинга могут приобрести за отдельные деньги Playmaker. Вообще говоря, Unity — система модульная и позволяет легко превратить свои наработки в отдельный коммерческий продукт. Оболочка включает в себя собственный и довольно бойкий Marketplace, где можно как хорошо потратиться, так и хорошо заработать. В любом случае, разработчику на Unity придется всерьез вникать в программирование, благо в интернете можно найти достаточно учебных материалов на русском зыке.
Unreal Engine
Движок был рожден в 1998 году в недрах компании Epic Games и буквально до 2015 года оставался малоизвестным даже в узких кругах. Судя по всему, все эти годы система эволюционировала намного активнее своих конкурентов. Из специфического движка для шутера от первого лица UE превратился в удивительно универсальный кроссплатформенный инструмент, способный удовлетворить самые изысканные запросы. Очевидно, чудо случилось в тот момент, когда были приняты новые условия распространения: бесплатно для некоммерческого использования или роялти 5% от дохода.
Что движок этот приличный, догадаться легко, все помнят игры серии Unreal, Deus Ex, Rune, X-Com, Duke Nukem D-Day, BioShock, Mass Effect, S.T.A.L.K.E.R. 2, и наконец, Fortnite. Другое дело, никто не мог представить, насколько удобным может быть рабочее место разработчика сложных проектов. Едва движок оказался общедоступным, монополизму Unity пришел конец.
С первого взгляда Unreal Engine подкупает широким набором стандартных шаблонов. Кроме трехмерных шутеров от первого или третьего лица предложены и полеты в космосе, и двухмерные пазлы, целых два варианта платформера и два варианта автомобильных гонок с упрощенной и продвинутой подвеской.
Погружаясь в работу вы обнаруживаете, что многие функции, которые в Unity надо непременно описывать в скриптах, встроены в движок заранее, надо лишь найти нужную галочку в свойствах объекта.
И наконец, заглянув в Marketplace находите много бесплатного но качественного контента.
Игровая логика программируется на C++, для опытного программиста — идеальный вариант. Если не делать стратегию реального времени типа StarCraft, и таргетироваться под десктоп, можно вполне обойтись пресловутыми блюпринтами, по готовому проекту ни один сноб об этом не догадается.
Единственная беда —проекты на Unreal Engine получаются достаточно объемными, и для мобильных устройств приходится очень серьезно заниматься оптимизацией. Однако, в свете современных трендов такие недостатки постепенно отходят на второй план.










