Наверно, произошло что-то плохое, и теперь вы читаете эту статью. Сочувствую! Давайте начнём по порядку.

Меня зовут Джо Уинтергрин, я генералист Unreal Engine. Можете взглянуть на все мои ресурсы. В статье я приведу полезную информацию для новичков в Unreal, имевших опыт работы с Unity.

С чего начать?

  • Прочитайте документацию по Gameplay Framework. Всю целиком! У Unreal есть Gameplay Framework. Прочитайте документацию и освойтесь в ней. Это правильное решение при разработке любого типа игры. Не пропускайте её. Держите её под рукой, чтобы перечитывать.

  • Влейтесь в сообщество. Это учетверит вашу скорость обучения. Есть Discord для бывших Unity-разработчиков Алекса Роуза и есть мой Discord.

  • Почитайте Epic Online Learning Library. Вот она. Делайте упор на статьи, написанные Epic Games.

  • Скачайте последнюю версию Unreal Engine из Epic Games Launcher. На данный момент это 5.3. В общем случае всегда стоит начинать проект на самой новой версии. Кроме того, нет никаких причин больше пользоваться UE4 — UE5 лучше и имеет все возможности UE4.

  • Изучите документацию «Unreal Engine for Unity Developers» компании Epic. Это хороший способ начать. Вот она.

  • Прочитайте статью целиком. Я знаю, здесь много текста, но не ничего не пропускайте! Всё это очень важная и точная информация! В Интернете много некачественных сведений об Unreal, но не здесь. Здесь всё правильно.

«Просто дай мне советы!»

Ну ладно! Вот двадцать минут сжатых советов и видео о Class Viewer (включите Class Viewer). И видео Криса Мёрфи о фишках, которые вы, возможно не знаете. Советую сразу же внимательно посмотреть эти видео, хотя они довольно насыщенные информацией; так вы получите общее представление о возможностях движка, а после, когда освоитесь, сможете вернуться, чтобы непосредственно использовать эти функции.

«У меня так много вопросов!»

Ниже представлены ответы на самые часто задаваемые вопросы.

1. Меня беспокоит вся эта ситуация в целом!

1.1. Epic не обманет меня?

Никогда не стоит доверять крупным корпорациям, но, скорее всего, не обманет. В EULA Epic сказано, что если EULA изменятся, то вы не обязаны соглашаться с новыми условиями, если останетесь на той версии, с которой работаете. Если также учесть наличие полного доступа к исходному коду, то есть большая вероятность, что вы в безопасности.

И раньше, и сейчас Epic обычно не делает резких действий. Например, когда она сменила взимаемую Unreal Marketplace долю доходов с 30% до 12%, она сделала это ретроактивно и вернула каждому разработчику в Marketplace разницу за каждую его продажу.

Поменяться может что угодно, так что не теряйте бдительности, но, вроде всё должно быть в порядке.

1.2. Какова ситуация с оплатой? 5% от общей выручки — это не так уж здорово!

Её нет, пока вы не заработаете миллион долларов США, и только после этого она составляет 5% от общей выручки; при этом считаются только те кварталы, в которые вы заработали больше $10000. Поэтому в конечном итоге большинство разработчиков никогда ничего не будут платить. Нет никакой стоимости подписки или чего-то другого. Уточню: если вы заработаете миллион баксов, а потом ещё один доллар, то будете должны компании пять центов.

Если вас это всё равно не устраивает, то можете обсудить с компанией индивидуальную лицензию с индивидуальными условиями. Где-то на её веб-сайте есть ссылка на электронную почту.

При релизе игры обязательно заполните Release Form. В противном случае, похоже, вам придётся платить роялти раньше, чем заработаете миллион. Потратьте на это пять минут.

Если вы делаете «линейный контент» наподобие фильмов, сериалов и так далее, то Unreal в буквальном смысле бесплатен для вас.

1.3. Какова ситуация с платформами? Консолями? Epic Launcher? 

Вы можете выпускать свои игры для любой платформы или консоли, они все хорошо поддерживаются и нет никаких обязательных требований. Если вы продаёте свои продукты на EGS (что необязательно), то эти продажи не влияют на упомянутые выше пороговые значения доходов. Портировать игры на консоли проще, чем на других движках.

1.4. Обязан ли я помещать в свой продукт логотип Unreal?

Нет, на самом деле, чтобы использовать его, нужно заполнить форму, и вам ещё даже могут отказать. Но вам всё равно нужно будет указать в титрах «используется Unreal Engine, права принадлежат бла-бла-бла...».

1.5. Разве компанией Epic владеет не Tencent?

У Tencent есть неконтролирующая доля акций. Мне объяснили это так: большинством владеет Тим Суини, и никто другой больше не имеет права голоса. Впрочем, Tencent действительно инвестировала в компанию и владеет её частью.

1.6. Платит ли тебе Unreal за твою полезную информацию?

Хотелось бы, конечно. Честно говоря, не знаю, что заставляет меня этим заниматься.

Но если хотите, можете отправить мне денег, а ещё у меня есть Patreon.

2. В чём концептуальное отличие Unreal?

2.1. Unreal и Unity нельзя назвать игровыми движками в одном смысле этого термина.

Unreal, idTech, Cryengine, Source, Snowdrop и так далее — это игровые движки, возникшие в процессе разработки игр. С Unity и Godot произошло иначе; это вполне нормально, но используются они фундаментально иначе.

Если вы используете движок Half-Life, то у вас есть все преимущества работы с инструментами, позволившими выпустить Half-Life; вы не пишете собственную систему оружия, сетевой игры или системы сохранений игр.

То же самое относится и к Unreal, только вы не получаете «то, что создала Epic в процессе разработки Gears of War» — Epic 25 лет занималась поддержкой AAA-лицензиатов и созданием систем, выполнявших для них достаточно большой объём работы; вот, что вы получаете. Если вы инди-разработчик, то движок имеет излишнюю для вас мощь, но это хорошо.

2.2. Не изобретайте велосипед.

Проверьте, не существует ли уже создаваемая вами система. Если она существует, но выглядит плохо, то, вероятно, вы искали недостаточно хорошо. Разработчики Epic не бездельничают. Если вы думаете, что сможете сделать более качественную систему анимации или что-то другое, то вы ошибаетесь. Перестаньте этим заниматься, вы вредите своей команде.

Тем не менее, не во всём Unreal превосходен. Мне не нравятся Behaviour Trees движка Unreal, они кажутся мне очень плохими. Я создал вместо них собственную ИИ-систему, которая, на мой взгляд, очень хороша. Возможно, и вам удастся сделать что-то подобное!

2.3. Но я хочу изобрести свой велосипед!

Я уважаю ваше желание, но вам нужно преодолеть его. Это стоит делать где-то в другом месте.

2.4. Портирование на консоли здесь — это не работа на аутсорс.

Разумеется, оно может ею быть, но Unreal проектируется так, чтобы целевыми для одного проекта были все платформы. Fortnite есть на Switch, Android, iOS, Xbox, Playstation, PC, а может, и где-то ещё, и всё это собирается из одного проекта. И вы можете сделать так же. Чаще всего это «просто работает». Фокусы наподобие «снижать разрешение текстур на Switch в зависимости от ассета» встроены в движок и легко реализуются. Я сделал порт Adios для Switch за неделю. 

Помните, что вам придётся пройти процесс подписания на консоли, чтобы получить секретный исходный код, который необходим для компиляции движка под них. Обычно это не сложно. Кстати, весь движок выложен на Github.

2.5. Вы не так часто будете использовать Asset Store.

Здесь он называется Unreal Engine Marketplace, и в нём много как качественных, так и плохих вещей. В общем случае он пригождается реже, чем в Unity. Например, вам не понадобится Rewired; системы ввода Unreal надёжны и работают на всех платформах. И подобного будет много.

2.6. Апгрейд до последней версии не вызывает особых проблем.

Чаще всего при апгрейде до следующей версии Unreal вы не столкнётесь ни с какими проблемами. Кто-то любит не торопиться, чтобы быть уверенными. Разработка Psychonauts 2 началась на 4.11, а выпущена игра была на 4.26. Здесь поддержание актуальности движка — это хорошо.

2.7. Unreal не удаляет внезапно важные функции.

Когда Epic прекращает поддержку масштабной фичи, она обычно остаётся в движке достаточно долго перед удалением, после чего вам предоставят возможность апгрейда.

Например, сейчас используется редактор частиц Niagara. До Niagara много лет был Cascade. Cascade всё ещё есть в движке, но стоит использовать Niagara, и есть автоматический преобразователь систем частиц Cascade в Niagara.

Аналогично, инструмент анимации Matinee (на котором делали катсцены в Gears of War, Mirror's Edge, Batman, Xcom и так далее) был удалён из движка годы спустя после завершения поддержки и замены на Sequencer. При этом даже если вы сегодня откроете уровень, в котором есть Matinee, он идеально преобразуется в Sequencer.

2.8. Unreal вводит новые системы аккуратно.

Если в Unreal появляется что-то новое, то это обычно помечается как Experimental. Такая пометка значит, что Epic не рекомендует использовать это в продакшене. Со временем эту пометку убирают, после чего фичу можно безопасно использовать в игре.

Предположительно, из-за избыточной осторожности некоторые фичи остаются экспериментальными слишком долго, даже если они надёжны и уже используются во многих изданных играх. Спрашивайте, если не уверены, насколько безопасна «экспериментальная» фича.

Кроме того, все новые фичи опциональны, они не заменяют старые. Lumen и Nanite новы и круты, но всё равно опциональны. Освещение по-прежнему можно запекать, и всё по-прежнему будет с этим совместимо.

2.9. В Unreal нет множества конвейеров рендеринга, у каждого из которых свои требования к ассетам.

В Unreal есть разные рендереры с разными фичами — есть отложенный и прямой рендереры для десктопа и мобильных платформ со своими особенностями (например, MSAA есть только в прямом). Но графическим ассетам это неважно — все рендереры выглядят одинаково и между ними можно переключаться, чтобы понять, какой из них больше подходит вашему проекту.

2.10. Это движок, на котором сделана та любимая вами игра.

Помните, как в Batman Arkham Asylum иногда нужно ждать перед дверью, пока вас просканирует система безопасности? На самом деле это грузится следующий уровень, и на медленных машинах сканирование происходит дольше. Эту фишку придумала не Rocksteady, это просто система потоковой загрузки уровней Unreal, которая использовалась в Gears of War. Вы можете просто использовать её.

Если в какой-то игре на Unreal есть что-то, что вам понравилось, то существует вероятность, что в движке в буквальном смысле уже есть соответствующий код.

3. Разные слухи

3.1. Я слышал, что его сложно изучать!

Возможно! Он огромный и мощный, но плохо справляется с обучением. UI сделан «простым», и это значит, что важные функции вы просто не обнаружите, если вам кто-нибудь о них не скажет.

Форумы далеки от идеала, а Интернет заполнен дезинформацией, излагаемой с уверенным видом. Гугление до этого года помогало, но уже не сейчас.

Если вы не справляетесь, то не надо изучать его в одиночку. Присоединитесь к какому-нибудь сообществу изучающих Unreal, например, к Discord для бывших Unity-разработчиков Алекса Роуза, и задавайте вопросы. Я видел, как люди в моём Discord проходили путь от абсолютного нуля до отличного специалиста (которого в результате нанимали на работу).

3.2. Я слышал, что C++ — отстой!

Возможно, но C++ движка Unreal достаточно сильно отличается от остальных C++. Он проще. Дайте ему шанс, даже если он вас пугает.

Однако для большинства игр не требуется или почти не требуется никакого C++ — можно создать и выпустить полную поддерживаемую производительную сложную игру на одних блюпринтах.

Изучите Complete Guide to Unreal C++ Тома Лумана, этот парень знает, о чём говорит.

Самое важное — не быть догматичным. И у C++, и у блюпринтов есть своя сфера использования. Если окажется, что вы настаиваете на необходимости переписать всё с блюпринтов на C++ «ради производительности», то это вредит проекту. Нативизация и оптимизация — разные вещи.

3.3. Я слышал, что блюпринты — отстой!

На самом деле, блюпринты — это вещь. Да, я понимаю: с чего бы это визуальному скриптингу быть чем-то хорошим? Это же фигня! Соглашусь.

Но с блюпринтами всё иначе. Они потрясающие. Они даже помогут вам изучать движок. Всё, что вы делаете на них, будет применимо и к C++. Кем бы вы ни были, вам нужно начать с блюпринтов. Абсолютно верно то, что на блюпринтах можно создать игру целиком. Да, с мультиплеером. Да, с высокой производительностью. Да, с удобной поддержкой. Они нужны не только для быстрого прототипирования.

Снобское отношение к блюпринтам опасно. Я помог многим людям достичь высокого уровня в Unreal и получить связанную с ним работу, и неприятие блюпринтов было главной причиной неудач. Не осознавая того, они приговаривали себя к месяцам впустую потраченного времени, превращаясь в тот тип пользователя Unreal, который саботирует собственную команду. Проглотите свою гордость и изучайте ноды.

3.4. Я слышал, что Unreal рассчитан на шутеры от первого лица, а в моём жанре делать на нём что-то очень сложно!

Это неправда. Это было частично правдой в первой половине эпохи развития UE3. К моменту выпуска UE4 это не было правдой ни в каком смысле. Кто-то вам врёт.

Вы одинаково легко можете создать что угодно в любом жанре. Если сомневаетесь, посмотрите в Википедии список игр на Unreal Engine. Никому из их разработчиков не приходилось сходить со своего пути (или выходить за пределы Gameplay Framework), чтобы выпустить свой продукт.

3.5. Что если мне не нужны графические изыски и навороты? Что, если я делаю игру не в реалистичном стиле?

Это нормально. Изощрённые графические функции в Unreal легко отключить, сохранив при этом доступ ко всему сложному инструментарию.

Кроме того, Unreal не ограничивает типы стилей, которые вы можете выбрать. Вы можете делать, что угодно. «Physically based rendering» не означает, что вам нужно работать в реалистичном стиле.

3.6. Можно ли на нём сделать 2D-игру?

Разумеется. Просто делайте игру, как обычно, но с ортографической камерой. Если вам нужны спрайты вместо анимированных мешей, то есть система Paper2D для работы со спрайтами, у неё появляется не так много апдейтов, а функции работы с анимацией достаточно ограничены, но есть также и система под названием PaperZD (в маркетплейсе), способная на много большее. В версии 5.3 все самые новые функции освещения работают с ортографической камерой: lumen, virtual shadowmaps и так далее.

3.7. Можно ли сделать игру, которая будет работать в браузере?

Едва ли! Раньше в движке была поддержка HTML5, но её поддержку прекратили несколько лет назад. За исключением Pixel Streaming, обратиться за помощью здесь особо не к чему, если только реализовать что-то самостоятельно. Так что увы.

3.8. Я слышал, что на движке нельзя создать сборку меньше, чем миллиард мегабайтов!

В стандартном UE5.3 при отключении всех необязательных плагинов пакет почти пустого проекта занимает около 120 МБ. В UE4 он занимал примерно 75 МБ. Можно проделать ещё множество действий для уменьшения размера файла — я занимался этом лично. Если поискать, то найдёте полезные советы.

3.9. Я слышал, что инструменты дизайна уровней плохи!

Вероятно, вы слышали это от меня. До совершенства ещё далеко, но всё стало гораздо лучше. особенно в 5.3. По ссылке есть советы о превосходных инструментах CubeGrid и MeshTool, хорошо взаимодействующих друг с другом.

3.10. Я слышал, что разработка в/для Linux и Mac очень трудна!

Едва ли! До недавнего времени некоторые CPU Mac не имели полной поддержки, но теперь она уже есть. Можно скачать редактор для Mac в Epic Launcher точно так же, как для PC, а для Linux его можно взять здесь.

Комментарии (15)


  1. p0rsche
    21.09.2023 08:25

    По-моему, самым первым пунктом должно стоять "Прочитайте EULA" или что-то подобное и разберитесь в лицензировании игр на движке.


    1. aik
      21.09.2023 08:25
      +4

      А толку, если всё равно задним числом эту еулу менять могут?
      Юнити тоже ведь изначально лишнего не просила.


      1. qw1
        21.09.2023 08:25
        +1

        В EULA Epic сказано, что если EULA изменятся, то вы не обязаны соглашаться с новыми условиями, если останетесь на той версии, с которой работаете. Если также учесть наличие полного доступа к исходному коду, то есть большая вероятность, что вы в безопасности


        1. Conung_ViC
          21.09.2023 08:25

          в юнити вроде бы тоже пару лет назад был такой пункт. потом его убрали


          1. Suvitruf
            21.09.2023 08:25
            +2

            Они репо с TOS полностью снесли)


            1. freeExec
              21.09.2023 08:25

              Репа с ТОС и не имела никакого значения, соглашение размещено на сайте.


              1. Conung_ViC
                21.09.2023 08:25
                +3

                в репе был чейнджлог изменений. Чтоб самому не приходилось смотреть что менялось....


  1. Suvitruf
    21.09.2023 08:25
    +14

    Никогда не стоит доверять крупным корпорациям, но, скорее всего, не обманет


  1. yrHeTaTeJlb
    21.09.2023 08:25
    +3

    Я не понимаю что за прикол с блюпринтами. Буквально каждый человек, который что-то рассказывает про анрил обязательно упоминает какие же это прекрасно, что в этом мире существуют блюпринты. Это какой-то локальный мем? Какой-то то аналог рикроллинга среди анрильщиков? Код, хранящийся в бинарных файлах, это же просто черная дыра из мерж конфликтов.


    1. kraidiky
      21.09.2023 08:25

      Скорее попытка Unity сделать Bolt, и гораздо более успешная сторонняя библиотека CanvasFlow являются аналогами блюпринтов. Я делал одну игру с активным использованием этой штуки и хочу сказать, что если вы чётко понимаете зачем она вам, это прям хорошо и удобно. Главное не пытаться сделать с её помощью вообще всё, и расширять её кастомными нодами и макросами.


  1. Andrykor
    21.09.2023 08:25
    +1

    Unreal сложна в освоении чем Unity - кардинально другой подход в проектировании и использовании инструментария.

    Одна сборка под платформу чего стоит. Ради теста попытался собрать шаблонный проект под windows - ушло более 20 часов и это при тестовой 3d сцене, которая предлагается для начала проекта. По характеристикам видеокарта на 4 Гб и оперативка на 8 Гб. Использовался Unreal Engine 5.2.

    По мне видно, это не то же самое что собрать проект на Unity, особенно для разработки игр под мобильник. Если проект большой и у вас мощные ПК, то конечно Unreal в остальном случае нужно что-то облегчённое Godot, Panda3d, Construcrtor, Defold, Pygame, Game Maker, NeoAxis, Castle Game и т.д.


  1. KeeVeeG
    21.09.2023 08:25
    +1

    Про то что у Unreal билд пустого проекта без плагинов имеет неадекватный размер никто никогда не упоминает


  1. maxcat
    21.09.2023 08:25

    Лучше переходите на Stride. Будете наконец-то нормально программировать и иметь все исходники. И даже шейдеры ООП!

    А не проприетарный движок с возюканьем мышкой


    1. zartarn
      21.09.2023 08:25

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


      1. maxcat
        21.09.2023 08:25

        И в Stride есть почти такое же возюканье, а вот программирвоание там на уровень выше по удобству