Категория: Блог
Автор: А. Богданова

Обзор рынка GameDev

Компании GameDev:

  • Разработчики и издатели игр;
  • Только разработчики игр.

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

Команды:

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

Конечный продукт:

По оплате: платные, free-to-pay (условно бесплатные).

По площадкам распространения: коробочные игры, on-line игры, игровые (мобильные) приложения, игры для социальных сетей.

По типу создания: любительские (инди), профессиональные.

Что разрабатывают:

  • Разработка движка.
  • Разработка игровой логики.
  • Разработка графического дизайна.

Цикл создания игр:

 

 

 

 

 

 

Где:

Мы говорим о компаниях в России. В Москве и Санкт-Петербурге сосредоточено наибольшее число компаний (более 20 компаний в каждом городе), которые занимаются разработкой игр. По России таких компаний от 70 до 100. Издателями игр является гораздо меньшее число компаний, порядка 10. Это про Российские компании. Мировые компаний по разработке игр крупнее и, конечно, их численность больше.

Офис или один из офисов компаний-издателей обязательно есть в Москве или Санкт-Петербурге. Редко издателями игр выступают компании с периферии.

Европейские компании имеют офисы в Москве, Санкт-Петербурге и в некоторых городах Центральной России и Сибири.


Участники процесса: должности

1. Идея, правила игры

Сценаристы

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

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

2. Монетизация, баланс, иногда сопровождение разработки игры на протяжении всего процесса

Гейм-дизайнер

Для этой позиции важно:

  • понимание прикладной математики, теории вероятности;
  • организаторские способности, аналитическое мышление;
  • понимание рынка игр, игровых механик, механики монетизации, вовлечения и удержания игроков;
  • знание игровых движков (Unity, Unreal Engine, CryEngine и др.).

Также могут пригодиться следующие знания:

  • Языки: Java, С#, C, C++
  • Инструменты аналитики
  • СУБД

3. Все, что видим

Если ты играешь во все, это не значит, что ты хороший дизайнер. Если ты хочешь быть хорошим дизайнером, то должен играть во все.

Дизайнеры

Знание UI/UX принципов, моды и технологий

Инструменты: графические программы пакеты Adobe для 2D графики (Adobe Photoshop, Adobe Illustrator и др.), 3d-sculpting программы/инструменты (Maya, 3dsMAX, Blender, Sketchup, Zbrush, Cinema4D и др.).

3D дизайнеры должны знать пакеты для текстурирования (Substance Painter/Designer), программы для работы с анимацией (Spine, Adobe After Effects, Flash и т.п.), 3D трекинг (внедрение 3D объектов в видео) - Boujou.
А также уметь рисовать руками, иметь художественный вкус.

Будет плюсом знание анатомии, анималистики, а также Unity3D и других движков.

4. Реализация идей в виде кода

Хорошее знание математики – это требование для разработчиков в этом сегменте рынка.

Frontend developer

Языки: JavaScript, HTML, CSS, иногда/редко: PHP, Lua, Java, ActionScript.

Фреймворки: ReactJS (JavaScript), Vuejs (JavaScript), Angular (JavaScript), Bootstrap.

Технологии: Rest API (Swagger); Spring Boot, микросервисная архитектура, системы контроля версий (Git, SVN).

Инструменты: инструменты сборки (Webpack – самый распространенный), Docker (инструмент контейнеризации), инструменты CI (непрерывной интеграции), Clarity Design System (система проектирования, объединяющая рекомендации UX, структуру HTML/CSS).

Плюсом будет знание и понимание SQL и unit-тестирование.

Backend developer

Языки: C++, С#, Python, реже: Java, Kotlin, PHP, редко: JavaScript.

Фреймворки: Django и Django Rest Framework (Python), .NET (С#), Spring (Java), Lua (PHP), Node.js (JavaScript).

Технологии: многопоточность, облачные технологии (например, часто требуется знания сервисов AWS), технологии работы с высокими нагрузками, системы контроля версий (Git, SVN).

Инструменты: Memcached, ElasticSearch, инструменты сборки (Maven и др.), RakNet (библиотека средства для интеграции), иногда продукты экосистемы Hadoop для работы с big data, инструменты непрерывной интеграции.

СУБД: MySQL, PostgreSQL, Redis, MongoDB, MSSQL; реже: NoSQL, Cassandra + понимание SQL.

Плюсом будет понимание фронтенда, хорошее знание геометрии, стереометрии, планиметрии и др.

Разработчик на движках

Языки: С#, С++, реже: javascript, Python, Perl.

Движки:

  • Unity (С#, Xamarin),
  • UE4 (C++),
  • реже: CryEngine (C++),
  • Phaser (javascript),
  • Lumberyard (Lua, C++),

совсем редко: Corona SDK, libGDX (фреймворк для создания игр), Turblenz, GameSalad, HeroEngine и др.

Технологии для всех: многопоточность, системы контроля версий (Git, SVN), Blueprints Visual Scripting.

Инструменты: shell, иногда протоколы (tcp/ip).

СУБД: NoSQL, MySQL, MongoDB + понимание SQL.

+ хорошая математическая база (знания математики, линейной алгебры, 3D-математики).

Мобильная разработка

Языки: Android (C++, С#, Java, реже: Kotlin), iOS (C++, Swift, Objective-C).

Технологии: Git, SVN, знание движков (чаще всего - Unity, и др.).

Инструменты: OpenGL (Open Graphics Library - инструмент для написания различных приложений, с использованием и двумерную и трёхмерную компьютерную графику), продукты Adobe, NDK (native development kit – набор инструментов).

Плюсом будет знание платформ Android, iOS, windows mobile и умение работать с 2D и 3D графикой.

5. Тестирование

QA

Языки: Python, perl и другие языки.

Технологии: баг-трекеры (часто используется JIRA).

Инструменты: по видам тестирования (ручное, автоматизированное), инструменты CIS (системы непрерывной интеграции) – Bamboo, Jenkins и др.

  • Понимание SQL.

Тестеры – тестирование альфа-версии игр (в России, как правило, встречается. Их заменяют близкие знакомые – френд окружение)

  • Желание играть, аналитическое мышление.
  • Умение доносить мысль словами.
  • Наличие технического бекграунда.

6. Поддержка разработки и игры

Билд-инженер (Continuous Integration)

Языки: Python, Perl, редко JavaScript, XML, Java, C++

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

  • инструменты CI (непрерывной интеграции) (Jenkins, Team City и др.);
  • система контроля версий (Git – самая часто используемая, реже SVN, perforce);
  • системы сборки (Gradle, Ant, Maven, CMake, qmake, GNU-Make), Developer Studio (инструмент для робототехники);
  • инструменты виртуализации (KVM, Hyper-V, OpenVZ, LXC, Docker);
  • работа с сетью: обмен данными (Tomcat/Jetty/OC4J), инструменты работы с большими данными (elasticsearch, logstash и kibana), протоколы (OpenLDAP), мониторинг сети (Zabbix).

Плюсом будет понимание процессов разработки ПО, навыки администрирования Windows и Linux.

СУБД: PostgreSQL, MongoDB, Redis, Cassandra и др.

Системный администратор/DevOps

Языки: bash, python, Java, groovy, ruby.

Технологии: облачные сервисы, стек протоколов транспортно-сетевого уровней TCP/IP и другие, VCS (система контроля версий) - SVN, Git, системы баг-трекинга (JIRA и др.).

Инструменты: ОС, системы мониторинга сети (zabbix – самая распространенная), мониторинг (Zabbix + Grafana), синхронизация (Zookeeper, Tomcat, Consul,), интеграция (Jenkins, Teamcity и др.), , *nix системы (чаще всего)
СУБД: реляционные, нереляционные.

Плюсом будем понимание SQL.

7. Постановка задач для доработки продукта

Аналитик / Ресечер (инженер-исследователь). Занимается поиском оптимальных решений.

Языки: Python, C++, редко R;

Технологии: методы машинного обучения, нейронных сетей, Computer Vision, machine learning, deep learning и пр.

Инструменты: веб-сервисы (SOAP, REST, GraphQL), инструментами визуализации данных (Tableau, D3 и т.д.); инструменты для работы с Big Data, Excel.

БД: PostgreSQL и др. + понимание SQL.

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

8. Продвижение игр

Игровой продюсер

Этот человек понимает, как продвигать игры, кому и где. Для этого нужно (в зависимости от размера фирмы обязанности могут варьироваться):

  • Уметь анализировать игровой рынок по разным жанрам и сегментам плюс иметь широкий IT-кругозор.
  • Понимать пайплайн разработки (весь процесс производства компьютерной графики (стили, современные тренды)), поддержки и продвижения игр.
  • Понимание игровых механик, механик монетизации, вовлечения и удержания игроков.
  • Понимание маркетинга, владение его основами.
  • Организаторские способности и навык менеджмента (взаимодействие с внутренними и внешними исполнителями).

Маркетолог

  • Умение анализировать рынок, определять целевые сегменты.
  • Умение выбирать формы маркетинга, цифрового маркетинга.
  • Понимание и умение управлять бюджетом на маркетинг.
  • Умение работать с контекстной рекламой (яндекс.директ, Google AdWords). Умение анализировать трафик (яндекс.метрика, гугл.метрика).
  • Понимание PR.
  • Организаторские способности: умение организовывать акции, мероприятия. Умение работать с промоматериалами.
  • Навыки коммуникации.

VR (virtual reality) /AR (augmented reality)

VR/AR (Виртуальная реальность/дополненная реальность) – относительно новые области, в которых пока нет устоявшихся технологий и решений. Можно подумать, что это только игровая, развлекательная индустрия, но на сегодняшний день VR и AR - неотъемлемая часть «Индустрии 4.0», также в связке с Интернетом вещей «реальности» помогают в промышленности: добывающая промышленность, автомобильная промышленность, строительство и т.д.

Любой бизнес пытается найти пути, позволяющие ускорить рабочие процессы, сократить издержки. Например, виртуальная реальность помогает в работе с созданием прототипов изделий, проектирования (зданий, судов и т.д.), для достижения маркетинговых целей. VR подходит для обучения специалистов, для работы с объемными предметами. Дополненная реальность с помощью смартфонов, шлемов, проекционных систем помогают предоставить больше информации об имеющихся реальных объектах (например, складское обслуживание), причем информация будет подана в более удобном виде. AR сейчас уже часто используется в качестве услуги поддержки специалистов, как инструмент продвижения бизнеса и продуктов.

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

Для специалиста в этой области важно: понимание основ аналитической геометрии, знания в областях графики, искусственного интеллекта, физики, VR/AR. Знания и навыки программирование 3D-графики и 3D моделирования. На сегодняшний день используются: языки (С#, С++), игровые движки (Unity, UE4); технологии: Blueprints Visual Scripting (система визуального программирования); стек протоколов транспортно-сетевого уровней (TCP/IP), алгоритмы компьютерной обработки данных. Никуда не деться от такой технологии, как системы контроля версий (Git – самая распространенная). Помимо этого, нужно понимание как работают шлемы виртуальной реальности (Oculus Rift, HTC Vive; GeaR VR), дополненной реальности - augmented reality (очки Microsoft HoloLens – это еще только один из вариантов решений, но далеко не последний).

 

Обзор подготовлен кадровым агентством СПб iChar.