Разработчик или геймдевелопер создаёт концепцию игры, дизайн персонажей, игровые механики и доводит проект до продакшена. Если вы обожаете играть и мечтаете сделать собственный Minecraft или Greenlight, то профессия для вас. Разбираемся, как стать разработчиком игр: как освоить профессию с нуля и какие знания и навыки для этого нужны.
Кто такой разработчик игр и чем занимается
Этот специалист разрабатывает игры от и до: продумывает концепцию, рисует графику, проектирует персонажей и настраивает сценарии их развития. Разработчик создаёт целый виртуальный мир, который существует по собственным законам.
По сути это тот же программист, но с уклоном в игровую специфику. Его главная задача — написать код и подобрать такие инструменты, чтобы этот мир «ожил», а игра стала интересной для пользователя.
Разработчик может отвечать за весь проект целиком или за отдельную часть игры: геймплей, анимацию, шаблоны, графику, внутреннюю структуру или сервисы.
Легендарный симулятор жизни «Мор» принёс российской студии Ice-Pick Lodge мировую славу. В 2005 г. он стал игрой года по версии журнала «Лучшие компьютерные игры». Игра продавалась по всей Европе, большей части Азии и в Латинской Америке
Что нужно знать, чтобы стать разработчиком игр
К опыту и знаниям специалиста компании-разработчики выдвигают серьёзные требования, ведь от профессионализма геймдевелопера зависит успешность проекта.
Общие знания
Особенности игр и жанров. Важно знать закономерности построения игрового процесса и игровых миров, ориентироваться в жанрах и знать их особенности. Трудно создать игру, не умея отличать гонку от файтинга. А ещё во многих вакансиях работодатели прямо запрашивают опыт работы в определённых проектах.
Математика и физика. Именно математика помогает играм работать. Рассчитать траекторию полёта брошенной гранаты, отправить снаряд на вражескую территорию, спрыгнуть с высоты на землю или подняться по ступенькам — все эти действия рассчитываются математическим путём.
При разработке игр используют такие области математики:
- линейная алгебра,
- аналитическая геометрия,
- дискретная математика,
- тригонометрия,
- математический анализ.
Знать физику тоже нужно. Особенно если речь идёт о процессах. Предмет поможет создавать логичные законы вашей игровой вселенной: как летают предметы, как они разрушаются и падают, как двигаются, что влияет на персонажей и мотивирует их действовать.
Алгоритмы и структуры данных. Всё в игровом мире происходит исходя из чётко заданной последовательности операций. А знание алгоритмов и структур данных позволяет понять способы организации данных, их свойства и принципы работы с информацией.
Английский язык. Техническая документация обычно написана на английском — знать его обязательно хотя бы на уровне чтения. Велика вероятность, что во время работы над проектом вам понадобится помощь игрового комьюнити — тогда придётся идти на многочисленные англоязычные форумы и общаться с другими разработчиками.
Игровые движки
Игры уже давно не создают с нуля — движки, которые включают в себя шаблоны игровой логики и поведения объектов, сильно облегчают процесс. Игровые движки содержат визуальный редактор сцен, утилиту для анимаций и инструменты дизайна игрового окружения. Не надо ничего изобретать — можно взять готовое и творить.
Поэтому так важно тщательно изучить один из движков: CryEngine, GameSalad, HeroEngine, Chrome Engine, Frostbite, Source, Id Tech или Creation Engine. Наиболее популярные — Unity и Unreal Engine 4. Они же и наиболее конкурирующие. У разработчиков существует извечный спор: какой движок выбрать начинающему разработчику — Unity или Unreal Engine 4. Давайте сравним.
Критерий | Unity | Unreal Engine 4 |
Создатель | Unity Technologies | Epic Games |
Язык программирования | C# | С++ |
Особенности |
|
|
Известные игры, созданные на движке | Cuphead, Hearthstone, Cities: Skylines, Rust, 7 Days To Die, Hitman: Sniper, The Forest | Mass Effect, Bioshock Infinite, Mortal Combat 11, Fortnite, Borderlands, Batman: Arkham Asylum |
Для каких игр подойдёт | мобильные 2D и 3D-игры, одиночные и сетевые игры для десктопа | ААА-игры с большим бюджетом, шутеры и приключенческие экшены |
Что ещё можно сделать на движке | анимированные видео, игровые трейлеры, кат-сцены, VR-игры | VR-игры |
Для кого подойдёт | для новичков | для более опытных программистов |
Новичку будет проще начать свой путь в профессии разработчика игр с подборки «Топ-8 курсов для разработчиков игр на Unity»
Языки программирования
Движки позволяют разработать лишь базовые законы взаимодействия внутриигрового мира. Чтобы добавить в него что-то сверху, надо освоить один из языков программирования и научиться писать читабельный код.
В случае с Unity — это C# или «Си шарп». Unreal Engine 4 требует знания С++. Также не будут лишними Python, Java, JavaScript, HTML5, CSS3 и SQL.
Курсы по C# помогут разобраться, как делать игры, сайты, серверные, десктопные и мобильные приложения
Курсы по С++ помогут освоить процесс создания сложных микросервисов, операционных систем, программирования компьютерного железа и игровых движков
Программы для 3D-моделирования
Трёхмерная графика — неотъемлемый элемент любых видеоигр. Она помогает создавать объёмные объекты, добавлять им движения, накладывать текстуры и настраивать освещение сцены. Поэтому вам понадобится овладеть программами для 3D-моделирования. Есть бесплатные — Blender и платные — ZBrush, 3ds Max.
3D-эффекты для фильмов «Притяжение» и «Вторжение» Фёдора Бондарчука делала российская студия Main Road|Post. Студия разрабатывала графику и для многих других отчественных фильмов
На онлайн-курсах 3D-моделирования вы за короткое время научитесь разрабатывать текстуры, прорисовывать детали и движения персонажей
Git и GitHub
Git — наиболее популярная система контроля версий, которая позволяет вести историю разработки проекта. В Git к каждой сохранённой версии можно получить доступ и посмотреть её. GitHub — онлайн-хостинг, где хранятся сами проекты. Для начала достаточно освоить только основные операции в этих системах. Полезно будет изучить проекты с открытым исходным кодом, которые разработали и опубликовали другие программисты. Вы можете делиться своими собственными наработками и получать по ним обратную связь.
Софт-скилы
Усердие и усидчивость, аккуратность и внимание к деталям приветствуются. Ведь создать игру — это долгий и сложный процесс со множеством нюансов. Ещё пригодятся умение рисовать от руки, развитая фантазия и нестандартное мышление. И, конечно, горячая любовь к играм.
Игра Red Dead Redemption 2 от Rockstar Games сочетает в себе элементы приключенческого боевика и шутера от третьего лица с открытым миром, — одна из самых известных AAA-игр с большой армией поклонников. По состоянию на 6 февраля 2020 года было продано более 29 миллиона копий. А за первые три дня продаж игра принесла более $725 млн
С чего начать
Чтобы получить соответствующий опыт, первые шаги придётся делать самостоятельно. Без опыта тут делать нечего — компании при трудоустройстве требуют примеры проектов и минимальный набор навыков.
Разрабатывать простые мини-игры. По типу змейки — в интернете полно кусков кода и шаблонов, из которых вы сможете собрать свою игру. Не пытайтесь сразу сделать большой проект мечты. Пусть они будут примитивными и даже незаконченными, зато вы набьёте руку и не будете отвлекаться на более сложные детали вроде анимации. В будущем вы всегда можете доработать их.
Создавать моды игр. Если для создания полноценной игры у вас пока не хватает знаний и навыков, тогда начните с модов любимых экземпляров игры. Это дополнения, которые улучшают геймплей и визуал или просто новые игровые элементы — персонажи, предметы, музыка и спецэффекты. Для разработки таких дополнений нужны специальные наборы средств разработки — они обычно прилагаются к играм. Они помогут понять внутреннюю логику игр и потренироваться в разработке.
Дорожная карта по геймдеву от одного из пользователей GitHub
Устроиться в игровую студию. Готовые игры и моды вы можете положить в портфолио и показать работодателю — тогда ваши шансы найти стажировку или устроиться на вакансию младшего специалиста — джуниора в студии повысятся. Это обязательная ступень. Ведь именно в компании вы сможете поработать над реальными проектами. А значит, прокачать скилы и вырасти.
Подходящие вакансии для начинающих разработчиков можно найти в российских игровых студиях: Nival, Alawar и Playrix
Читать профильную литературу. Практику следует подкреплять теорией. Подавляющее большинство полезных книг по геймдеву написано на английском языке. Вот некоторых из них:
- Foundations of Game Engine Development, Volume 1: Mathematics;
- Hands-On Unity 2020 Game Development: Build, customize, and optimize professional games using Unity 2020 and C#;
- Game Engine Architecture, Third Edition.
Общаться на форумах и чатах. Во время изучения у вас возникнет много вопросов — задать их можно в тематических сообществах. Вот наиболее популярные среди разработчиков:
- форум разработчиков игр GameDev.ru;
- телеграм-чат подкаста «Как Делают Игры»;
- телеграм-чат, посвящённый разработке на Unity;
- телеграм-чат, посвящённый движку Unreal;
- популярный англоязычный форум Gamedev.net;
- официальный форум Unity.
За сколько можно стать геймдевелопером
Срок обучения зависит от формата.
Вузы
Прежде чем стать геймдевелопером, нужно стать сначала просто программистом. Для этого можно пойти в университет. Специальности «Разработчик игр» в чистом виде в российских вузах почти нет. Университет «Синергия» один их немногих даёт возможность обучиться на специальности «Разработка компьютерных игр, дополненной и виртуальной реальности».
Большинство же университетов предлагают программы, посвящённые информатике и информационным системам:
- Уфимский государственный нефтяной технический университет, «Прикладная информатика»;
- Московский государственный технический университет им. Н.Э. Баумана, «Информационные системы и технологии»;
- Московский государственный университет геодезии и картографии, «Информационные системы и технологии»;
- Российский государственный социальный университет, «Информационные системы и технологии».
Длительность обучения — 4–4,5 года.
Онлайн-курсы
Фундаментальное образование — это хорошо. Но университеты дают только общие понятия и мало практики — после обучения у вас не получится самостоятельно делать крупномасштабные проекты. Другая история с обучением на онлайн-курсах — они делают упор на практике.
Онлайн-курсы для разработчиков игры помогают научиться прорабатывать физику игры, генерить новые уровни, определять возможности развития персонажей, создавать его врагов и наделять их искусственным интеллектом. Вы поймёте, как добавить спецэффекты, анимацию, звуки и музыку и реализовать сетевое взаимодействие нескольких игроков. Вы разберётесь, как опубликовать игру, добавить рекламу и внутриигровые покупки и привлечь аудиторию.
Длительность обучения — от 4 месяцев.
На коротком курсе «Gamecode» от XYZ School вы за 4 месяца научитесь писать игровой код, создавать персонажей и оружие и разрабатывать искусственный интеллект. В качестве дипломного проекта вы создадите и реализуете одну из геймплейных систем: бой, хит-реакции или продвинутое перемещение
Как я стал разработчиком игр
«Профессия разработчика игр меня манила ещё в детстве, когда я рубился в Dendy или Sega. Ведь это так круто создавать собственные миры, воплощать свои идеи в жизнь.
Жаль, что я не занимался разработкой игр пока учился в школе и институте. Однажды я увидел вакансию в геймдев-компанию и решил попробовать. Я знал технологии, описанные в вакансии. На интервью мы обсудили различные технические вопросы, и мне предложили работу. Так я стал разработчиком игр.
Часть моих коллег работают без профильного образования, и это не мешает им делать невероятно крутые продукты. У меня тоже его нет, но я учусь каждый день, не упускаю возможность пройти интересный курс от Otus или Udemy»
Сергей Голицын, старший инженер-разработчик Zillion Whales
Компания Zillion Whales разрабатывает стратегии в реальном времени
Коротко о главном
- Разработчик или геймдевелопер создаёт игры: прописывает концепцию, придумывает дизайн, создаёт персонажей и разрабатывает прототип. Он реализует игровую логику и сценарии взаимодействия и следит, чтобы проект дошёл до продакшена.
- Чтобы освоить профессию, нужно разбираться в особенностях игр и жанров, понимать алгоритмы и структуры данных, знать математику, физику и английский язык.
- Для новичков подойдёт игровой движок Unity.
- Начать можно с разработки простых мини-игр или модов игр — эти небольшие проекты помогут устроиться на стажировку или на начальную позицию в студии.
- Чтобы стать разработчиком игр, нужно прежде всего научиться программировать. Язык зависит от движка. Освойте C#, если планируете писать на Unity или C++ — если на Unreal Engine 4. Ещё потребуется изучить программы для 3D-моделирования и систему контроля версий Git.
Рекомендую посмотреть подборку программ обучения для разработчиков игр от мастеров игровой индустрии