Сфера гейм-дизайна на сегодняшний день является одной из самых быстроразвивающихся в мире. Среднегодовые темпы роста игровой индустрии составляют 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 из-за его функциональных преимуществ (короткий синтаксис и производительность).
Один из значимых подходов, с помощью которых достигается «мобильность» и «легкость» разработки, заключается в использовании готовых инструментов. Прежде чем браться за любую сложную задачу, команда разработчиков проводит анализ уже существующих решений (в том числе и платных).
Для Unity есть собственная площадка Asset Store, на которой собраны тысячи готовых решений и ресурсов. Для Swift можно использовать открытые решения, которые есть на площадках вроде Github. При этом, внедрение не стоит производить в формате «один в один» — любые общедоступные решения не могут учитывать все особенности вашего продукта, их нужно дорабатывать для конкретного приложения.
Помимо этого стоит обращать внимание те материалы, которые выходят по теме в профильных блогах. Примером может служить код для реализации линейной регрессии. Такие заметки стоит использовать для поиска свежего взгляда на ту или иную проблему, а потом уже возвращаться к реализации собственного решения.
Еще одно неплохое решение — создание собственного пула наработок, которые используются от проекта к проекту. Начать можно с простейшей wiki.
Если говорить о тестировании, то в масштабах такой компании как Inventain (и аналогичных проектах) нет смысла создавать целое подразделение. Здесь достаточно одного специалиста по QA, который будет задавать вектор. Реализацию этой задачи стоит отдать разработчикам, которые постараются добиться сбалансированного покрытия кода тестами. Приоритет — уход от временных затрат на рутинные действия тестировщика и устранение его потенциальных «промахов» за счет автоматизации. Таким образом, огромное количество сценариев и возможные ошибки в «далеких углах» приложения будут всегда под контролем.
Желание не тратить усилия на рутинную работу отражается и на организации инфраструктуры — она облачная (AWS), хотя вектор на облако был выбран не сразу. Облаком гораздо проще управлять. В случае АWS не нужны особые специализированные данные по инфраструктуре — достаточно ознакомиться с очень полной и хорошо структурированной документацией. Получается, что всем могут управлять инженеры-программисты, и не нужны системные администраторы. Помимо этого, с облаком гораздо легче подстраиваться под реальную нагрузку и добавлять (убирать) сервера динамически, не переплачивая за простой железа. Все это выливается в реальную выгоду по цене и гибкости: платишь только за то, что по факту используешь.
Чтобы поспевать за эволюцией современных технологий и использовать в своих продуктах решения, которые набирают популярность, нужно тратить время и силы. Это — плата за возможность конкурировать с лучшими продуктами и командами в индустрии.
В данном случае речь идет о накоплении собственной экспертизы в таких сферах как машинное обучение и технологии захвата движений. Если говорить о конкретных примерах, то команда Inventain может похвастаться тем, что научила нейронные сети распознавать лицо человека и создавать на экране похожий на него трехмерный аватар. В контексте работы с машинным обучением и нейросетями — это реализация переноса стилей изображения на другие объекты плюс возможность накладывать на лица пользователей виртуальные маски и удерживать их при движении.
Подобная «кастомизация» невозможна исключительно благодаря поиску открытых проектов и «быстрых» решений, но именно она является «ядром» продукта и оправдывает значительные временные инвестиции.
В значительной степени этот рынок «подпитывают» мобильные проекты. Количество пользователей мобильных устройств увеличивается — по данным 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 может похвастаться тем, что научила нейронные сети распознавать лицо человека и создавать на экране похожий на него трехмерный аватар. В контексте работы с машинным обучением и нейросетями — это реализация переноса стилей изображения на другие объекты плюс возможность накладывать на лица пользователей виртуальные маски и удерживать их при движении.
Подобная «кастомизация» невозможна исключительно благодаря поиску открытых проектов и «быстрых» решений, но именно она является «ядром» продукта и оправдывает значительные временные инвестиции.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Поделиться с друзьями
Комментарии (4)
daiver19
11.07.2017 06:19Какая «геймификация» в играх? Они же уже и так игры. Видимо, имелся в виду «геймплей»?
dmitrykabanov
11.07.2017 07:15+1С одной стороны — да, с другой — некоторые разработчики игр сильно уходят во всевозможные технологические «фишки» и забывают как раз о сути.
ArkturTierry
Мне думается, в голосовании не вполне понятно -за что же голосуем? Что называть «достойным продуктом»? Можно пойти по пути «быстро и недорого» -и это тоже правильный путь, на нем можно сделать качественный продукт. А можно пойти по пути Valve вылизывая свой Half-Life до упора, переделывая его по несколько раз. И получить шедевр. Но с риском пролететь по срокам -когда у вас или кончатся деньги или запал команды или конкурент выпустить что-то похуже, но первым.
dmitrykabanov
Да, именно Гейба я и вспоминал, пока готовил опрос. Здесь нет однозначных ответов и верных рецептов — пытаемся понять, на что обращать дополнительное внимание в современных реалиях.