Кто такой разработчик игр

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

Что нужно знать программисту игр

Gamedev это сфера, которая привлекает разработчиков интересными задачами и возможностью раскрыть свой творческий потенциал. Однако, здесь очень высоки требования к знаниям, с которыми разработчик приходит в индустрию.

Hard Skills

  • Знание нескольких языков программирования — чем больше, тем шире круг задач, который вы сможете выполнять. Подробнее про востребованные языки поговорим ниже.

  • Хорошая математическая база — высшая математика, линейная алгебра и статистика помогут глубже понять алгоритмы, которые вы описываете с помощью программного кода.

  • Опыт работы в Unreal Engine и Unity — понимание, как устроены современных игровые движки пригодится при создании любого проекта, даже если студия использует свой собственный.

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

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

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

  • Умение пользоваться системами контроля версий — системы типа Git или SVN помогают синхронизировать работу всей команды так, чтобы несколько человек могли одновременно работать над одной задачей и не мешали друг другу.

Профессиональные знания (Hard Skills) это главное, но не менее важны и Soft Skills — ваше умение общаться и приспосабливаться к новым условиям.

Soft Skills

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

  • Желание преодолевать трудности — программисту часто приходится решать задачи, с которыми он раньше никогда не сталкивался. Тогда на помощь приходят упорство, концентрация и целеустремлённость.

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

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

  • Инициативность — желание найти наиболее удачное решение для задачи и умение обосновать его перед коллегами.

Обязанности специалиста

Основные должностные обязанности программиста:
  • писать программный код;
  • поддерживать в актуальном состоянии существующие программы;
  • заниматься оптимизацией написанного кода.

Чем больше игровая студия, тем уже специализация геймдевелоперов, которые работают над проектами. Давайте рассмотрим самые популярные специализации программистов в играх. Обратите внимание, что на английском этот специалист может называться Programmer, Engineer или более общим термином Game Developer.

Game Engine Developer
Игровой движок — это сердце игры, где создаётся весь функционал игры. Самые популярные движки на сегодняшний день — это Unreal Engine и Unity. Языки: C++, C# и другие.

Gameplay Developer
Реализует всё, что относится к геймплею: объекты, подсистемы, игровые механики, режимы, способности, физику взаимодействия с окружением и многое другое. Языки: C++, C#.

Graphics Programmer
Отвечает за графическую часть игрового движка — то, какого качества картинку увидит на экране игрок. Реализует алгоритмы рендера и разрабатывает инструменты, автоматизирующие некоторые задачи художников. Языки: C++, Java, C#.

AI Developer
Разрабатывает объекты и подсистемы игрового мира, связанные с искусственным интеллектом — например, поведение соперников и поиск пути. Языки: LISP, Python, C++, Java, Prolog.

GUI Developer
Занимается разработкой системы графического интерфейса пользователя и его сопряжением с игровыми системами. Языки: C++, Java, Python.

Game Tools Developer
Создатель компьютерных игр — профессия, где программирование востребовано на всех этапах разработки. Разработчик инструментария исследует процессы производства контента в разных отделах студии и разрабатывает программы, которые помогут автоматизировать часть повседневной работы специалистов. Языки: C++, Python.

Frontend и Backend Developer
Занимаются разработкой сетевых игр. Например, многопользовательских онлайн-шутеров. Frontend-разработчики занимаются клиентской частью — тем, что происходит на устройстве пользователя. А Backend-программисты отвечают за то, чтобы полученная от игроков информация правильно и быстро обработалась на сервере. Языки: для клиентской части — HTML, JavaScript, Python, а для серверной — GO, PHP и Java.

Scripter
Для некоторых задач не нужны очень глубокие знания программирования, их реализуют при помощи несложных скриптовых языков. Например, навыки скриптования часто нужны гейм дизайнерам при создании прототипов игровых механик, 3D художникам — для реализации нестандартных творческих задач, аналитикам — для сбора информации о проекте и подсчёта метрик проекта. Языки: Python, JavaScript.

Карьерный рост разработчика игр

Профессии разработчика игр обычно подразумевает несколько этапов роста специалиста — от младшего до старшего. В разных студиях требования к разработчикам разного уровня могут отличаться: то, что в одной студии ждут от Middle, в другой требуют уже от Junior.

Стажёр
Игровые студии иногда размещают у себя на сайтах объявление о наборе кандидатов на стажировки. Чаще, это студенты старших курсов, которые, пройдя отбор, будут несколько месяцев работать в компании, слушать лекции сотрудников и набираться опыта и разбираться в специфике профессии.

Junior Developer
Программист, у которого уже есть несистематизированные теоретические и практические знания для того, чтобы успешно выполнить тестовое задание, но ещё нет опыта разработки успешных коммерческих проектов. Знает один язык программирования. Способен сам справляться с небольшими задачами и поиском ошибок в своём коде. Важные качества, которые помогут джуниору вырасти это: самостоятельность, общительность и желание развиваться в разных направлениях.

Middle Developer
Гейм девелопер с 2-4 годами опыта работы над проектами разной сложности. Знает несколько языков программирования. Командный игрок. Не только пишет код, но и занимается аналитикой, документированием и тестированием. Способен найти и исправить критические ошибки в типичных задачах. Может предложить новое решение и аргументировать свою точку зрения. В особо сложных случаях обращается с вопросами к Senior-разработчику.

Senior Developer
Эксперт с широким кругозором, у которого за плечами от 5 лет работы. Способен решать задачи любой сложности, может предложить несколько уникальных подходов для решения нестандартной проблемы. Проектирует инфраструктуру проекта. Принимает участие в обсуждении планов разработки с продюсерами и геймдизайнерами. Постоянно изучает новые инструменты, появляющиеся на рынке. Ментор для Junior и Middle разработчиков. Проводит регулярные ревью кода команды, чтобы поддерживать его исполняемость и масштабируемость. На этом этапе вы уже набрались достаточно опыта и становитесь востребованным специалистом.

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

Какие языки программирования нужны для создания игр

Наиболее востребованы в разработке игр вот эти языки:

  • C++;
  • Java;
  • JavaScript;
  • C#;
  • Python;
  • HTML 5.

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

Java
Широко используется для разработки мобильных игр под Android — одной из самых популярных платформ на рынке. Сообщество Java-разработчиков активно разрабатывает инструменты с открытым исходным кодом, что позволяет находить и использовать готовые решения для своих задач.

JavaScript
Один из трёх главных языков web-разработки (два других — HTML и CSS). Простой, быстрый и несложный для освоения. Востребован для разработки онлайн игр. Как и в случае с Java, имеет активное комьюнити, которое разрабатывает удобные готовые инструменты.

C#
Гибкий кроссплатформенный язык программирования, на котором пишут игры для таких платформ, как Windows, iOS, Android и PlayStation. Широко используется для реализации фич в игровых движках, например, Unity, CryEngine, Godot.

Python
Универсальный, достаточно простой в освоении язык программирования. Имеет свою библиотеку модулей для создания 2D игр. Python также можно использовать для расширения функционала и автоматизации рутинных задач во многих графических пакетах, например, в Maya или в Houdini. Обратите внимание на Python, если вы только недавно решили стать программистом компьютерных игр.


HTML 5
Кроссплатформенный язык программирования 2D и 3D web-игр. Созданную игру можно выложить на личном сайте, игровом портале или опубликовать в магазине мобильных приложений. Хорошо подходит для того, чтобы начать разрабатывать игры.

Плюсы и минусы профессии

Высокая зарплата

Зарплата начинающего специалиста в Москве 80.000-100.000 рублей в месяц. Senior-программист — около 300.000 рублей. Чем выше планка, тем больше ответственность и сложнее проекты, которые выполняет программист.


Интересные задачи

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


Возможность работать удалённо

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


Большая востребованность

Разработчики игр востребованы во всём мире. Большие студии зачастую отдают часть задач по написанию кода на аутсорс, а потом могут пригласить лучших специалистов работать на фуллтайм в офис.


Доступность образования

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

Жёсткие дедлайны

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


Постоянно меняющиеся требования

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


Сидячий образ жизни

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


Высокая конкуренция

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


Необходимость постоянно учиться

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

Сколько зарабатывает разработчик игр

Зарплата разработчика игр — одна из самых высоких на IT-рынке.

В Москве специалист уровня Junior может рассчитывать на 80.000 — 100.000 рублей в месяц. Middle — от 150.000 до 250.000, а Senior-программист получает около 300.000 рублей.

На занимаемую должность и величину зарплаты разработчика влияют следующие факторы:

  • трудовой стаж — чем больше лет программист занимается своим ремеслом, тем больше задач умеет решать;

  • стек технологий — если вы знаете несколько востребованных языков программирования, вам готовы платить больше;

  • выпущенные проекты — если в вашем портфолио есть коммерчески успешные игры, то скорее всего, уже не вы откликаетесь на вакансии, а рекрутёры ищут вас сами;

  • социальные навыки — умение работать в команде, доносить свою точку зрения и вовремя улаживать возникающие конфликты;

  • страна проживания — например, разработчики игр из США и Канады получают больше, чем специалисты на аналогичных должностях в Европе.

Согласно сайту Game Industry Career Guide, в 2022 году средняя зарплата опытного программиста игр в США составляет около 120.000 долларов в год (около 580.000 рублей в месяц по текущему курсу).

Как стать разработчиком игр с нуля

С чего начать обучение
Нужно начать с выбора языка, который вам больше нравится. Если у вас ещё нет опыта программирования, то обратите внимание на Python — он прост в освоении и пригодится вам и за пределами индустрии разработки игр.

Куда пойти учиться
Чтобы стать разработчиком игр, лучше всего пойти на курсы. Овладеть профессией программиста сегодня можно на очных и онлайн-занятиях — выбор зависит только от ваших предпочтений и времени, которое вы готовы вложить. Многие школы предлагают и короткие буткемпы, и годовые программы.

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

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

Как найти первую работу программиста в играх

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

Соберите портфолио
Разработчик игр — профессия, где о вас судят в первую очередь по вашему портфолио выпущенных проектов. Подойдут работы с курсов, играбельные прототипы и маленькие инди-игры, которые вы сделали для себя и, возможно, даже никогда не выкладывали в магазины (AppStore или Google Play). Лучший сайт, где можно разместить портфолио программиста — GitHub.

Откликайтесь на вакансии
Самые популярные площадки для поиска IT-вакансий в России это:
  • Hh.ru;
  • Работа.ру;
  • Linkedin;
  • DTF;
  • VK.

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

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

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

Как построить успешную карьеру

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

Фриланс
Частичная занятость, которая позволяет сотрудничать сразу с несколькими компаниями. Здесь есть и плюсы, и минусы. Вы сами планируете свой график, но не можете повлиять на дедлайны — может случиться, что в один день вам придётся закрывать несколько задач. Если вы справитесь, вы сможете зарабатывать больше, чем в gamedev студии. Фриланс обычно выбирают опытные специалисты, у которых уже есть несколько клиентов и привычка самостоятельно организовывать свой рабочий процесс.

Инди-проекты
В свободное от работы время многие разработчики продолжают делать игры. Личные проекты хороши тем, что задачи и сроки вы себе ставите сами. В отличие от игровых студий, работая на себя, вы свободны от NDA (Non Disclosure Agreement) и можете делиться результатами с комьюнити.

Старты программ:

    Ближайшие мероприятия:


      Другие статьи: