Чем отличается Unity от Unreal и о навыках Unity-разработчиков — Вадим Воробьёв

img

Вадим Воробьёв шесть лет в геймдеве. За это время успел поработать в четырёх игровых студиях, в том числе и в одной из известнейших в Беларуси Vizor Games. Разрабатывал игры и на Unity, и на Unreal.

И теперь Вадим делится своими знаниями с другими как по одному движку, так и по другому являясь инструктором этого курса разработки игр на Unity (а также и на Unreal Engine)

Мы посчитали, что Вадиму есть что рассказать на тему игровых движков, и задали ему пару вопросов.

О различиях Unity и Unreal Engine 4

Разница между Unity и Unreal Engine 4 фундаментально огромная. И в техническом плане, и в лицензионном, и в финансовом, и в сообществе, но обо всём по порядку.

Анрил появился в 1998 году. В те времена еще не было даже понятия «движок». Ребята просто делали классную игру, которая должна была использовать самые современные возможности компьютерного железа. В этом плане их философия остается такой до сих пор — выжать максимум из железа.

Юнити в этом плане появился в 2005 году — чтобы делать игры на компьютерах от Apple и для компьютеров от Apple. И на волне смартфонов ребята быстро оседлали волну технологического прогресса под лозунгом «чем больше платформ, тем лучше».

Историю выше надо знать. Потому что эти вещи легли в основу философии обоих компаний. Компания Epic Games зарабатывает тем, что делает и продает игры. Компания Unity Technologies зарабатывает тем, что делает и продает игровой движок. Это объясняет и разницу между экосистемами.

Unity — движок для всех. Компания предоставляет кучу сопутствующих услуг: формальное обучение и сертификаты, соответственную аналитику и рекламу.

Epic Games — движок для выжимания технологического максимума. С продвижением в массы у них поскромнее, но зато есть гранты. Они просто дают денег тем, кто им понравится.

В плане работы юнити сделан простым, а анрил — эффективным. Это прослеживается в работе с файлами, в том как пишется игровая логика, даже в том, как выглядит стартовый проект.

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

В интернете часто можно встретить заявление «Юнити для мобилок, анрил для пк и консолей». Противоречивое утверждение, и может даже устаревшее. Unity в последнее время сделали довольно много для 2D-игр. Но и для улучшения картинки и производительности они сделали немало. Unreal же давно обзавелся 2D-инструментами, просто их редко используют.

img img

Курсы для разработчиков игр

О взаимодействии

Для работы с Unity надо знать две небольшие вещи: язык программирования C# и сам движок. С# нужен для создания скриптов. Иначе говоря, чтобы сделать что угодно — это нужно написать на С#.

В Unreal надо взаимодействовать с одним большим — с самим движоком. Он похож на кухонный комбайн с тысячью функций. И выучить несколько маленьких вещей всегда проще, чем одну большую.

Обратная сторона медали в том, что без программирования в Unreal можно сделать достаточно много, и не обязательно изучать весь комбайн. Скриптинг в Unreal делаются с помощью их визуального языка — Blueprints. Но На С++ можно писать и игровую логику, и расширения для движка.

В том же Fortnite к примеру 80% игровой логики написано на блюпринтах, и оставшиеся 20% на С++ . В Unity же 100% игровой логики пишется на C#. И из этого вытекает второе различие.

В индустрии часто случается так, что если команда разрабатывает на Unity, то с движком работают только программисты. Художники и геймдизайнеры предоставляют им контент и сами движок вообще не трогают. Иногда даже доходит до такого, что в отделе появляется «специалист по вставлению контента в движок».

С Unreal же работает вся команда — художники, которые сами вставляют в движок контент, и геймдизайнеры, которые сами пишут правила игры на блюпринтах. Так происходит не во всех студиях, но движок способствует такому подходу.

О возможностях

Поговорим о стандартной работе по найму — офис, полный день. Unity с этой позиции конечно более актуальный. Если открыть список объявлений, то соотношение вакансий на Unity и на Unreal будет примерно 8 к 1.

Обратная сторона медали — проекты. В них куда меньше романтики. Чаще всего это мобильные проекты, типа три в ряд или ферма-ферма. В работе на большую компанию всегда так: есть вещи, которые работают, а есть непроверенные, и неизвестно как они себя поведут.

Забавный факт: опытные разработчики игр на Unity могут перекочевать на роль Unreal-специалиста — и наоборот. Рынок в этом плане гибкий.THE GODLIKE Alpha Version In-Game Footage.

Вадим работал над сетевым кодом The Godlike. Под его руководством были еще два разработчика.

Если говорить про стартап, когда ты сам собираешь команду энтузиастов и делаешь то, к чему лежит душа — то у Unreal Engine потолок возможностей выше.

Во-первых, есть гранты, о которых я упоминал. Если проект прям классный — Epic Games могут отсыпать денег и помочь с технической стороны.

Во-вторых, у Unreal есть свой магазин игр, Epic Game Store, в котором хорошие условия для разработчиков.

Ну и раз уж речь о деньгах, то Unreal просто берут 5% от выручки, если вы зарабатываете больше 3000$ за 3 месяца. Unity в этом плане условно-бесплатный. До 100000$ в год они ни просят ничего, но потом нужно платить минимум 480$ в год за каждого члена команды.

img img

    Бесплатно поможем
    с выбором курса

    Нажимая на кнопку отправить, я соглашаюсь на обработку персональных данных

    О старте

    — Скажите, пожалуйста, куда мне отсюда идти?

    — А куда ты хочешь попасть? — ответил Кот.

    — Мне все равно… — сказала Алиса.

    — Тогда все равно, куда и идти, — заметил Кот.

    Иногда новичкам советуют сделать понг или змейку своим первым проектом. Тут дело не в жанре, тут дело в масштабе. Самое главное — закончить игру и выложить ее куда-нибудь, где в нее смогут играть люди. Ведь пока в игру не играют, игры как бы и нет.

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

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

    Просто надо принять тот факт, что первая игра, а лучше первые три, это не про мечту и уж тем более не про деньги. Это пристрелка и притирка, и главная цель тут выпустить продукт.

    О навыках

    У разработчика игр на Unity 80% навыка — это навыки программиста. Еще 16% — геймдизайнера и оставшиеся 4% занимает художник. Я бы так распределил.

    Навыки художника, о которых идёт речь — это базовое владение графическим редактором, в первую очередь. Теоретические знания тоже не помешают — теория цвета, композиция.

    Ну и о программировании. Есть 4 направления:

    • алгоритмизация;
    • структуры данных и алгоритмы (немного тавтология, но что поделать — так их назвали);
    • философия программирования SOLID;
    • конструирование программ.

    Алгоритмизация — это про то, в каком порядке выполняются вещи. Это самое начало любого программирования. В целом, не сложная тема. Кроме стандартных вещей, в Unity к этому добавляются coroutines — сопрограммы, если на русский переводить.

    Структуры данных и алгоритмы — это про накопленные человечеством знания в области программирования. Есть определенные проблемы, у которых давно есть методы решения.

    SOLID ближе к теоретической науке. Что такое хорошо и что такое плохо, и почему одни вещи — это ок, а другие нет.

    Конструирование программ — о том, как писать код, чтобы не выстрелить себе в ногу.

    Кроме программирования есть еще и математика с информатикой. В играх нужно двигать вещи. Для этого используется векторная алгебра, матричная алгебра и линейная алгебра. Звучит страшно, но на самом деле все сводится к шести формулам.

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

    Кроме этого есть еще так называемые гибкие навыки, или soft skills. Тайм-менеджмент, английский язык, навыки общения. Это не специфичная только для программистов вещь, но достаточно важная.

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

    Об обучении

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

    В первом нужно научить людей основам. И мы обычно делаем что-то простое, например змейку или crimsonland. Во втором там уже совсем разные проекты могут быть — тут учитываем интересы учащихся. Это может быть RPG а-ля Diablo или стратегия в духе Героев.

    Но нужно напомнить, что в курсе по разработке мы не учим людей рисовать или моделить. На выходе мы получим игру, скорее всего не самую красивую и блестящую, но это будет проект в портфолио. Который очень важен для того, чтобы устроиться на первую работу. На собеседовании, в первую очередь, смотрят на предыдущий опыт. Если устраиваетесь на работу впервые — просят пример вашего кода. А потом уже задают теоретические и другие вопросы.

    Другие категории

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