Сфера гейм-дизайна на сегодняшний день является одной из самых быстроразвивающихся в мире. Среднегодовые темпы роста игровой индустрии составляют 4,8%, и ожидается, что к 2020 году стоимость рынка достигнет 90 млрд долларов.

В значительной степени этот рынок «подпитывают» мобильные проекты. Количество пользователей мобильных устройств увеличивается — по данным statista.com, в 2017 году их число достигнет 2,32 млрд — поэтому растет и стоимость рынка мобильных игр.

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

Disclaimer: с учетом того, что мы говорим о примере отдельной компании, я решил поместить этот материал в хаб «Я пиарюсь».

/ фото офиса компании

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

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

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

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

Разработка и инфраструктура


В компании Inventain разработка приложений ведется с применением языка программирования Swift и движка Unity. Unity 3D используется для создания игровых проектов и был выбран благодаря своей простоте, функциональности и доступности. Также на момент выбора, его цена была более лояльная, нежели у Unreal Engine. Игровой движок Unity гораздо популярнее среди разработчиков, чем любое другое программное обеспечение. Например, 34% из топ-1000 бесплатных мобильных игр разработаны на Unity.

Что касается Swift, то он был выбран для «неигровых» проектов. Популярность Swift, как и Unity 3D, также постоянно растет — в 2017 году он впервые вошел в десятку самых используемых языков программирования, согласно индексу Tiobe. В данном случае Swift пришел на смену Objective C из-за его функциональных преимуществ (короткий синтаксис и производительность).

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

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

— Дмитрий Дегтярев, COO Inventain

Для Unity есть собственная площадка Asset Store, на которой собраны тысячи готовых решений и ресурсов. Для Swift можно использовать открытые решения, которые есть на площадках вроде Github. При этом, внедрение не стоит производить в формате «один в один» — любые общедоступные решения не могут учитывать все особенности вашего продукта, их нужно дорабатывать для конкретного приложения.

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

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

Если говорить о тестировании, то в масштабах такой компании как Inventain (и аналогичных проектах) нет смысла создавать целое подразделение. Здесь достаточно одного ��пециалиста по QA, который будет задавать вектор. Реализацию этой задачи стоит отдать разработчикам, которые постараются добиться сбалансированного покрытия кода тестами. Приоритет — уход от временных затрат на рутинные действия тестировщика и устранение его потенциальных «промахов» за счет автоматизации. Таким образом, огромное количество сценариев и возможные ошибки в «далеких углах» приложения будут всегда под контролем.

Желание не тратить усилия на рутинную работу отражается и на организации инфраструктуры — она облачная (AWS), хотя вектор на облако был выбран не сразу. Облаком гораздо проще управлять. В случае АWS не нужны особые специализированные данные по инфраструктуре — достаточно ознакомиться с очень полной и хорошо структурированной документацией. Получается, что всем могут управлять инженеры-программисты, и не нужны системные администраторы. Помимо этого, с облаком гораздо легче подстраиваться под реальную нагрузку и добавлять (убирать) сервера динамически, не переплачивая за простой железа. Все это выливается в реальную выгоду по цене и гибкости: платишь только за то, что по факту используешь.

«Тяжелой» должна быть только специфика


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

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

Подобная «кастомизация» невозможна исключительно благодаря поиску открытых проектов и «быстрых» решений, но именно она является «ядром» продукта и оправдывает значительные временные инвестиции.
Only registered users can participate in poll. Log in, please.
На что следует «делать ставку», чтобы создать достойный игровой продукт?
76.47%Геймификация / продуманный сюжет и история26
23.53%Уникальные технологические решения / их новое применение8
11.76%Скорость разработки за счет использования открытых решений4
14.71%Весь секрет в работе с ожиданиями и инвестиациях в PR-составляющую5
35.29%Каждая мелочь должна быть уникальной — не стоит экономить время12
34 users voted. 11 users abstained.