Геймдев Код #Статьи #Статьи

24 января, 2024

Разработчик игр. Как реализовать детские мечты

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

Когда мы думаем об индустрии развлечений, то в первую очередь вспоминаем музыку, телешоу и кино. Но многие даже не представляют, что есть сегмент, который в несколько раз дороже всех этих направлений вместе взятых. Это рынок компьютерных игр, который в 2023 году оценивается в 245 млрд долларов, а в ближайшие четыре года может увеличиться до 400 миллиардов.

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

Разработчик игр — профессия с некоторой личной и творческой свободой. Гейм-студии создают непринужденную рабочую атмосферу, развивают условия для удаленного трудоустройства. И если при разработке софта программисты опираются на шаблонные решения, то в геймдеве команды часто получают карт-бланш.

Разработка игр — это не только масштабные ААА проекты уровня «Grand Theft Auto» (GTA), «Call of Duty» и «Need for Speed». Игровая индустрия многогранна. Мобильные и браузерные игры, приложения в Facebook и VK, «пасхалки» в коммерческих приложениях, дополнения и отдельные комнаты для целых виртуальных миров — найти себя можно в самых неожиданных отраслях.

Узнайте, как создавать персонажей и игровые сцены в Blender на курсе Разработчик игр на Unity с нуля до Middle

Узнать больше

Разработчики игр. Какие бывают и за что отвечают

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

Когда-то игры были простыми и создавались усилиями небольшой команды. Например, тетрис самостоятельно разработал Алексей Пажитнов в свободное от работы время, не получив за работу никаких дивидендов. Самые успешные коммерческие проекты — зачастую плод труда одного человека. «Space Invaders» — дело рук Тосихиро Нишикадо, «Pac-Man» — Тору Иватани.

Современные игры — это целые виртуальные миры со сложной графикой и игровой механикой, запутанным сюжетом и возможностью взаимодействовать не только с ИИ-персонажами (ред.: мобами, ботами), но и другими игроками. Над крупными проектами работают сотни специалистов. Среди них программисты, дизайнеры окружающей среды и персонажей, звукорежиссеры, сценаристы, художники, тестировщики и геймдизайнеры.

Каждый из специалистов, который связан с этой индустрией, может называться разработчиком игр или гейм-девелопером (game developer, gamedev). Но традиционно термин относится к программистам, которые пишут код для игры. Над одним проектом могут трудиться десятки кодировщиков, и их делят на несколько направлений:

  • Gameplay developer. Тесно сотрудничает с геймдизайнерами и аниматорами. В его задачи входит разработка игровых механик — особенностей воздействия персонажа с игровой средой, проработка физики (ред.: физические законы в игре) и сценариев поведения врагов или неигровых персонажей при контакте с игроком.
  • Engine developer. Создает игровое ядро (ред.: игровой движок) или дорабатывает существующий. Это та часть, которая связывает все компоненты игры в единое целое, что-то наподобие операционной системы для ПК. Содержит скрипты, которые отвечают за визуализацию, игровой искусственный интеллект (ИИ), анимацию, обработку звуков и управление памятью. Программист работает над программными компонентами, тулзами (например, редакторами уровней), которые упрощают разработку игры или ее дополнений для других членов команды.
  • Animation developer. Отвечает за разработку визуальной части — окружающего мира, анимации, игровых и неигровых персонажей. Важно понимать, что это не художник, а программист, который сотрудничает с 2D- и 3D-дизайнерами. В отличие от фильмов в игре большая часть окружающего мира состоит не из растровых изображений, а просчитывается видеокартой на основе программного кода и математических формул.
  • UI-developer. Занимается разработкой элементов игры вне игрового мира — заставки, меню выбора режимов, страницы настроек, пользовательского клиента для онлайн-игр.
  • AI developer. Отвечает за настройку игрового ИИ. Создает сценарии поведения неигровых персонажей, ботов и мобов, окружающей среды в зависимости от действий игрока.
  • Graphics programmer. Оптимизирует графики — перерабатывает код и скрипты, чтобы обеспечить высокую частоту кадров без «подвисаний» самой игры.
  • Frontend и backend. Некоторые игры обмениваются данными с удаленным сервером, предлагают многопользовательский онлайн-режим. Бэкенд-разработчик кодирует серверную часть, настраивает базы данных и внутренние процессы игры. Фронтенд работает над клиентской частью — приложением на стороне пользователя.

Чем занимается гейм-девелопер

Разработка игр — процесс творческий. Здесь нет жесткой привязки к стандартам, и каждая студия выстраивает рабочий процесс по-своему. В некоторых компаниях нет жесткого разграничения на специализации, и один разработчик может отвечать за несколько направлений сразу. В небольших командах программисты иногда одновременно занимаются 3D-дизайном и работой над сценарием. Поэтому задачи, которые решает гейм-девелопер, сильно отличаются от студии к студии. Но обычно исключительно кодингом не обойтись — нужно уметь генерировать идеи и переносить их в код. В распространенные обязанности game developer входят:

  • Разработка новых идей и их реализация. В геймдеве разработчик не только решает задачу, но иногда и выступает в роли архитектора, дорабатывая и дополняя концепцию, создавая новые игровые механики, визуальные эффекты. Например, эффект привыкания глаз к темноте впервые появился в игре «Serious Sam», и его придумал программист из небольшой команды.
  • Перенос идей дизайнеров и художников в программный код. Может включать разработку кода с нуля или модификацию, оптимизацию скриптов, взятых из готового игрового движка.
  • Анимация игровых и не управляемых игроком персонажей, других объектов. Движение объектов, мимика героев, различные действия вроде выстрелов, прыжков, ударов — на каждое из них создается отдельный скрипт.
  • Разработка сценариев. Как будет меняться музыка в зависимости от происходящего на экране, какая будет реакция внутриигровой среды на различные действия игрока.
  • Тестирование игры. Поиск ошибок, которые приводят к сбоям: зависанию, нарушению внутриигровой физики, проблемам с анимацией, отображением объектов и явлений. Если игра выпускается для нескольких операционных систем, то тестируется каждая версия.
  • Оптимизация производительности. Вопреки блуждающим по форумам мифам и теориям заговора, разработчики игр не поднимают планку требований к производительности аппаратной части. Наоборот одна из задач гейм-девелопера — устранить ошибки и оптимизировать код, чтобы игра запускалась не только на ПК с топовыми характеристиками, но и на относительно недорогих устройствах. Разработчики оптимизируют фрейм-рейт, детализацию персонажей и игрового мира.
  • Перенос игры с одной платформы на другую (ред.: портирование). Например, игра, написанная для ОС Windows, пересобирается для запуска на устройствах Apple, Android или на игровой консоли вроде Nintendo, Xbox, Sony PS. В некоторых случаях приходится переписывать код с нуля.

Какие hard skills необходимы для работы

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

Среди основных языков отмечают:

  • C++. Без него не обходятся масштабные AAA проекты. Его преимущество — высокая производительность написанного кода за счет гибкого управления процессами обработки графики и памятью. Этот язык позволяет писать технически сложные игры, которые не будут слишком требовательны к ресурсам. C++ поддерживает большинство игровых движков и SDK (ред.: платформ, на основе которых другие разработчики могут создавать свои игры).
  • C#. Это нативный язык для популярного игрового движка Unity, на котором написаны тысячи игр. Unity-разработчики востребованы и зарабатывают на уровне специалистов со знанием C++.
  • Java. Войти в геймдев можно и с помощью языка джава, который распространен при разработке мобильных игр. Он не зависит от платформы и позволяет создавать приложения под разные операционные системы, в том числе и для настольных ПК — на Java написана популярная игра MineCraft. Этот язык проще освоить по сравнению с тем же C++, но на масштабных проектах его используют редко.
  • Другие языки программирования. JavaScript и Python используются при разработке браузерных игр. Оба языка относительно просты в изучении, у них есть сообщество, большой выбор фреймворков и библиотек, которые упрощают и ускоряют прототипирование игр. Для написания серверной части в геймдеве также используют PHP и GO.

Если же говорить о hard skills разработчика игр, то среди основных отмечают: 

  • Знание низкоуровневых библиотек DirectX, SDL, OpenAL. Содержат готовый набор инструкций для доступа к аппаратному обеспечению — звуковой и сетевой карте, джойстику, мыши и клавиатуре.
  • Математика и физика. Например, при работе с анимацией нужны знания в тригонометрии, линейной алгебре и дифференциальном исчислении. Для создания реалистичной симуляции вождения авто, взаимодействия с игровым миром — понимание массы, инерции, термодинамики.
  • Знание популярных игровых движков — программного ядра, которое отвечает за техническую сторону игры. Некоторые проекты включают визуальную среду разработки. Например, редактор уровней и персонажей. Даже если студия разрабатывает собственный движок, знание стороннего ПО позволит избежать распространенных ошибок и ускорить разработку. Популярные платформы: Unity, Unreal Engine, Game Maker, CryEngine, GameSalad.
  • Базовое знание редакторов трехмерной графики. Среди популярных — Blender, Maya LT, 3DS Max, Houdini, Photoshop (работа с текстурами). Здесь пригодятся умение редактировать, экспортировать трехмерные модели, работать с текстурами.
  • Система контроля версий GIT. Используют студии и инди-разработчики. Эта система позволяет синхронизировать работу команды и своевременно откатить нежелательные изменения.
  • Понимание структур данных. Умение работать с MySQL, MS SQL, Oracle.

Как стать разработчиком игр

Есть несколько способов попасть в индустрию. Самый очевидный — получить образование в университете. Например, в БГУИР. Но, как и в других направлениях IT-сферы, для работодателей на первом месте не диплом, а портфолио и знания, которые бы помогли в реализации проектов. Индустрия настолько жива и изменчива, что образовательные программы не всегда успевают за отраслью. Но в любом случае некоторые навыки придется осваивать с нуля.

Но не стоит пугаться и отказываться от мечты. Как рассказал в материале изданию Builtin вице-президент по технологиям в Aspyr Media Джез Шерлок, совсем не обязательно быть асом в C++ и системной инженерии. Даже в небольших командах никто не доверит новичку разработку движка и ядра системы. Этим занимаются девелоперы с опытом от 10 лет. И многие специалисты начинают с должности тестировщика или доработки существующих скриптов. 

В том же материале инженер EA Red Crow Шон Уорнок отметил: «Просто иметь диплом — недостаточно. У вас должно быть какое-то доказательство того, что вы можете выполнять работу, на которую претендуете. Если вы дизайнер уровней браузерной игры, то это может быть скриншот или видео ваших уровней. Если вы программист, то — репозитории игр на GitHub». 

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

Перейти в индустрию можно с разработки коммерческих приложений или веб-разработки со знанием HTML и JavaScript, Python, Ruby или Java. Можно освоить игровой движок Unity, где многие процессы сводятся к работе в визуальном редакторе, и будет достаточно знания языка C#.

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

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

Классический сценарий развития карьеры гейм-девелопера — начать с тестировщика и понять принципы геймдева, постепенно развиваясь: 

  • Junior.  На этом этапе часто достаточно знать C#, Unity, Git и уметь работать в команде.
  • Middle. Специалист с опытом около трех лет, который может самостоятельно работать над отдельными задачами. Хорошо знает 1-2 движка и несколько языков программирования, знаком с C++.
  • Senior. Разработчик игр такого уровня может решать сложные задачи. Например, дорабатывать или создавать игровой движок. Он знает несколько языков программирования, базы данных, может управлять командой, выполнять функции архитектора и знает разные аспекты gamedev.

Искать работодателей можно напрямую — через официальные сайты студий. Альтернативные способы — LinkedIn, rabota.by, hh.ru, glassdoor.com, ziprecruiter.co.uk, talent.com. Фриланс в геймдеве тоже есть, но развит слабо.

Разработчики игр — одни из самых высокооплачиваемых специалистов в IT. Их зарплата зависит от квалификации, специализации и места трудоустройства. Редакция Skillbox.by изучила сервисы по поиску работы — сегодня в Беларуси больше всего зарабатывают разработчики на C/C++ и Unity-девелоперы уровня Middle, Senior. На том же сайте rabota.by можно встретить вакансии с зарплатой в 2000-3000$. Однако большинство компаний не указывают предполагаемый доход. 

В США, Великобритании и странах ЕС gamedev остается одной из самых высокооплачиваемых профессий в IT. По данным glassdoor.com, медианная зарплата разработчика в США составляет 123 000 $ в год. Диапазон ежегодного дохода — от 95 до 160 тысяч $. Отдельные компании платят выше рынка. Например, медианный доход разработчиков студии Roblox составляет 217 192 $ в год, а зарплата отдельных девелоперов достигает 289 тысяч. 

Похожие данные приводит и портал builtIn.com. Ресурс talent.com  предоставляет более скромные цифры. Медианная зарплата составляет 105 тысяч $  в год. В Великобритании разработчики зарабатывают немного меньше. На ziprecruiter.co.uk большинство компаний предлагают годовую заплату в пределах 76-114 тысяч долларов.

Успешные проекты в геймдеве. Полезные ресурсы от редакции Skillbox.by

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

Постоянно меняется бизнес-модель. На этапе становления индустрии основную прибыль приносили игровые автоматы. Такая модель давно не работает, хотя и остается одной из самых прибыльных за почти 50-летнюю историю компьютерных игр. Простая по современным меркам Space Invaders принесла разработчикам почти 14 млрд долларов.

В последние 5-7 лет самыми прибыльными стали мобильные онлайн-игры. Разработчики распространяют их бесплатно и зарабатывают на рекламе и продаже премиальной подписки. Так, в 2020 году доход более двух миллиардов долларов в год получили «Honor of Kings», «Peacekeeper Elite», «Roblox» и «Free Fire». Они опередили такие ААА проекты, как «Call of Duty: Modern Warfare», «Fifa 20», «Grand Theft Auto V», «Cyberpunk 2077».

До сих пор успешны и инди-проекты. Чего только стоит успех «Minecraft», который единолично создал шведский программист Маркус Перссон. Или «Stardew Valley», созданная Эриком Бароне. А над культовым шуттером «Крутой Сэм», который привнес в индустрию много новых технологий, работала небольшая команда Croteam. 

Разработчик игр — увлекательная и высокооплачиваемая профессия. Здесь много творческой свободы и нет шаблонных подходов. Даже рабочий процесс организован таким образом, чтобы сотрудники не были скованы рамками. Но чтобы стать девелопером, нужно уметь доводить дело до конца и обладать личной проактивностью. А чтобы вы могли ближе познакомиться со сферой геймдева редакция Skillbox.by собрала для вас полезные ресурсы.

Литература:

  • Майк Гейл «Разработка игр на Юнити 2018 за 24 часа»;
  • А. Куксон, Р. Даулингсока, К. Крамплер «Разработка игр на Unreal Engine 4 за 24 часа»;
  • Джереми Гибсон Бонд «Unity и C#. Геймдев от идеи до реализации».

Интернет-ресурсы:

Осваивайте профессию «Разработчик игр на Unreal Engine с нуля до Middle» со Skillbox

Научитесь разрабатывать игры разных жанров на движке Unreal Engine 4. Освоите программирование на C# и Blueprints. Исследуете специфику геймдева и достигнете уровня middle.

Забрать доступ

Узнайте, какие профессии в сфере IT будут востребованы в 2024 году

Подробнее