«Любое решение должно быть полезным игроку и выгодным бизнесу». CTO Grand Games о том, как строится игра с миллионами пользователей

Первые шаги в разработке Игорь Сторожук сделал в 14 лет — увлекшись мультиплеерными модификациями Grand Theft Auto, он разбирал чужие скрипты и писал собственные. Тогда это было хобби, а сегодня — профессия. Сейчас, в 31 год, он занимает позицию CTO в Grand Games и отвечает за развитие Grand Mobile — многопользовательской онлайн-игры с открытым миром, которая напоминает GTA. У Grand Mobile более 70 млн скачиваний и 6 млн уникальных пользователей.
В рамках конкурса лучших CTO, который Digital Business проводит с Yandex Cloud, Игорь рассказал, как менялась архитектура проекта вместе с ростом аудитории, как команда справляется с читерами, что помогает развивать ИТ-специалистов и какие ошибки в итоге пошли только на пользу.
«Grand Mobile — мой первый мобильный проект»
— Как вы пришли в геймдев?
— В 2008 начал интересоваться мультиплеерными играми и вскоре захотел разобраться, как все работает изнутри: что делает сервер, как обрабатываются команды, как устроены механики. Тогда же взялся за Pawn — язык, на котором пишут скрипты для Grand Theft Auto: San Andreas Multiplayer (модификация, где можно играть онлайн с другими людьми, а не в одиночку — прим. Digital Business). Документации почти не было, приходилось искать ответы на форумах, разбирать чужие примеры. Затем начал писать свои скрипты, делился ими с гейм-сообществом — так шаг за шагом набирал опыт и репутацию.
— Как увлечение переросло в профессию?
— Первые деньги начал зарабатывать еще в 16 лет на фрилансе. Затем поступил на специальность «Прикладная математика и информатика», но на втором курсе отчислился — сделал выбор в пользу работы. Это было вынужденное решение, но со временем понял — практика стала для меня главным университетом.
Начинал как разработчик ПК-игр, но постепенно брал на себя все больше ответственности и в итоге дорос до позиции технического директора. В проектах, где я работал, нагрузка на сервер в пиковые моменты доходила до 3 000 человек одновременно. Параллельно консультировал команды покрупнее — там нагрузка была уже около 6 000 игроков. Помогал им решать архитектурные задачи, улучшать производительность и масштабировать проекты.
Еще делал лаунчеры — это отдельные программы, через которые запускается игра. Они проверяют обновления, авторизуют пользователя, подгружают ресурсы. Такой опыт помог мне увидеть всю цепочку: от запуска игрового приложения у пользователя до того, как сервер обрабатывает его действия и возвращает результат.
— Как вы пришли в Grand Games?
— В какой-то момент понял, что мобильные игры мне особенно любопытны: они всегда под рукой у пользователя, не требуют сложной установки и охватывают огромную аудиторию.
Grand Mobile стал моим первым мобильным проектом. Меня пригласили в команду благодаря опыту работы с высоконагруженными серверами. Задача звучала амбициозно — сделать массовую многопользовательскую онлайн-игру с открытым миром в условиях ограниченной мощности устройств, не всегда стабильного интернета и необходимости, чтобы игра быстро скачивалась и запускалась. Такой контраст между сложностью продукта и техническими ограничениями стал для меня настоящим вызовом.
«Сократили количество вылетов из игры до 96%»
— В чем техническая особенность Grand Mobile?
— Игру можно развивать и масштабировать без полной перестройки. На старте у нас была команда из 5 разработчиков и ограниченные ресурсы, поэтому мы сознательно выбрали простую архитектуру: монолитный сервер на C++ со скриптовой логикой. Это позволило быстро выпустить первую стабильную версию и сосредоточиться на самой игре и ее механиках. Простота тогда была нашим преимуществом — изменения внедрялись быстро и без лишних затрат.
Но по мере роста аудитории архитектуру пришлось менять. Монолит хорош на старте, но когда игроков становятся миллионы, его сложно развивать: любое изменение может затронуть весь проект. Тогда мы разделили систему: игровая логика осталась на C++, а для API мы подключили Node.js. Через него работает взаимодействие с глобальной системой аккаунтов и выдача информации о персонажах.
В итоге архитектура стала модульной и управляемой: обновления теперь выкатываются быстрее, а новых разработчиков подключать проще — во многом благодаря тому, что специалистов по Node.js найти легче.
Со временем перестроили и работу с базами данных:
- Вынесли их на отдельные серверы. Раньше все лежало на одном «центральном» сервере, и при росте аудитории он начинал тормозить. Теперь нагрузка распределена, игра работает стабильнее даже в пиковые часы, а нам проще добавлять новые функции.
- Сделали свою систему резервного копирования. Теперь у нас есть автоматические копии, которые хранятся в разных дата-центрах. Это снижает риск для бизнеса и, главное, защищает игроков: их прогресс и покупки в безопасности, даже если где-то происходит технический сбой.
Также отмечу, что мы стараемся не полагаться на готовые универсальные решения. Вместо этого сделали собственный античит и инфраструктуру для хостинга пользовательского контента. Это сложнее и дольше, но дает полный контроль и позволяет быстро реагировать на проблемы, если они возникают.
— Что из последних изменений оказалось самым заметным для игроков?
— В 2024 году мы активно работали над тем, чтобы сделать игровой опыт лучше. Доля пользователей, у которых игра работает без вылетов, выросла с 90-91% до 95-96%, а загрузка ускорилась примерно на 20%. Даже на слабых устройствах играть стало комфортнее — и это важно, потому что люди всегда выбирают стабильный и быстрый продукт.
Недавно мы внедрили механизм, который позволяет отключать отдельные подсистемы без остановки серверов. Раньше любая серьезная ошибка требовала перезапуска, и это затрагивало всех игроков сразу. Сейчас все иначе: если, например, случается баг в игровой механике, мы можем временно ее выключить, а остальная часть игры продолжит работать.
Такой подход заметно ускорил реакцию на проблемы. Пользователи не страдают от вылетов, а поддержка не получает шквал жалоб. Проблема для игрока исчезает почти мгновенно, а команда спокойно дорабатывает решение «за кулисами».
— А какие изменения оказались важными для бизнеса?
— Я участвую не только в технической части, но и в проработке бизнес-модели. В 2024 году мы с другими топ-менеджерами много обсуждали, как сделать воронку оплаты эффективнее. Тогда родилась идея добавить больше прямых покупок.
Если раньше игроку нужно было сначала пополнить баланс игровой валюты, а потом уже тратить ее на предметы, то теперь многие вещи можно купить сразу в магазине приложений. Казалось бы, разница всего в один шаг, но эффект оказался заметным: конверсия таких покупок выросла на 10–15%.
Дополнительно сделали «паки новичка» и персонализированные предложения для первых сессий. Это выгодные наборы или временные офферы, которые помогают начинающему пользователю быстрее включиться в игру и повышают шанс, что он сделает первую покупку.
— Как вы справляетесь с ботами и читерами?
- В 2024 году кибератаки стали одним из главных вызовов. Поэтому мы усилили античит сразу на нескольких уровнях.
- Сделали дополнительные проверки на стороне сервера — теперь сложнее подменять данные и выдавать себя за «честного игрока».
- Добавили внутренние триггеры в игровом приложении, которые фиксируют подозрительное поведение.
- Закрыли вход через сторонние программы. Теперь в игру можно зайти только через официальное приложение. Для большинства ботов именно это было главным способом авторизоваться, и с появлением этого барьера их число заметно сократилось.
Не могу сказать, что полностью решили проблему ботов и читеров — это в целом невозможно, так как технологии развиваются и люди находят новые способы обходить правила. Но их стало сильно меньше, а мы реагируем на новые попытки взломов быстрее.
— Расскажите о фейлах — ведь без них невозможно обойтись в любом крупном проекте.
— Один раз полностью обновили систему инвентаря и тщательно все протестировали. Но упустили один момент — обучение, где эта система тоже использовалась. Обновления туда не подтянулись, и новички просто не могли пройти первые шаги. Этот случай стал для нас важным уроком: всегда проверять ключевые сценарии, особенно первые минуты в игре, и выкатывать обновления постепенно, сначала на ограниченную аудиторию.
Был и неприятный случай с монетизацией. После обновления игры в магазине приложений перестали работать внутриигровые покупки. Проблема была в сторонней библиотеке для платежей. В ней оказался баг, и система сломалась. С тех пор мы изменили процесс: теперь каждое обновление таких инструментов проходит отдельное тестирование на всех актуальных версиях игры, чтобы подобные ошибки больше не повторялись.
«Cам участвую в разработке сложных участков»
— У CTO в разных компаниях задачи могут сильно отличаться. Чем именно вы занимаетесь в Grand Games?
— Я нахожусь на стыке технологий, продукта и бизнеса. Моя главная зона ответственности — архитектура и инфраструктура. Проектирую взаимодействие между игровым приложением и сервером, курирую монетизацию и платежные системы: от интеграции с Google Play и App Store до проверки транзакций и аналитики. Это напрямую влияет и на стабильность экономики игры, и на выручку.
Кроме того, участвую в найме и развитии команды, а по мере роста компании подключился и к бизнес-процессам: обсуждаю интеграции, формирую техническую стратегию с учетом продуктовых целей. Если коротко, моя основная задача в том, чтобы любое решение было надежным, полезным игрокам и выгодным бизнесу.
— Сколько разработчиков создает Grand Mobile и как устроена команда?
— Сегодня у нас 18 разработчиков, 3 геймдизайнера и больше 10 специалистов по графике — 3D-моделлеры и художники. Разработчики распределены по направлениям:
- C++-движок — 2 человека, отвечают за «сердце» игры, ее серверную основу.
- Серверная логика — 3 человека, пишут сценарии и правила работы игровых механик.
- Web — 3 человека, отвечают за интеграцию игры с внешними системами.
- Unity-движок — 5 человек, работают над самим игровым процессом.
- UI — 5 человек, делают интерфейсы.
В каждом направлении есть лид, который координирует работу команды.
— Что для вас важнее в работе: скорость или качество?
— Я всегда ставлю на первое место качество. Без него не получится настоящей скорости: технический долг, баги и нестабильность быстро «съедят» любой выигрыш во времени. Если закладывать качество сразу, дальше двигаешься быстрее, потому что не тратишь время на бесконечные переделки.
Конечно, есть задачи, где можно сделать быстро — например, для проверки гипотезы или создания MVP. Но есть и критичные зоны: монетизация, сохранения, сетевые протоколы. Здесь ставка только на надежность.
— Как вы формируете стандарты разработки в команде?
— Для меня это три вещи:
- Личный пример. Я сам участвую в разработке сложных участков и показываю, что технический долг не игнорируется, задачи расписываются четко, а архитектурные решения обосновываются.
- Регламенты. Мы формализуем лучшие практики: делаем шаблоны задач, гайды по архитектуре, соглашения по логам и обработке ошибок. Это помогает масштабироваться — новые разработчики быстрее вливаются в проект.
- Обучение и наставничество. Разборы, обсуждения решений в чате и на митингах, менторство. Как уже говорил, есть и лиды, которые отвечают за качество в своем направлении.
— Были ли у вас управленческие ошибки?
— Раньше слишком мягко давал обратную связь. Хотел подстроиться под человека, но из-за этого фидбек был размытым и не помогал расти. Со временем понял: разработчику важен не только комфорт, но и ясность. Теперь стараюсь говорить прямо, но уважительно, всегда с примерами и конкретикой.
«Планируем расширяться в странах Америки, Европы и Ближнего Востока»
— Каким вы видите развитие Grand Mobile в ближайшие годы?
— Ключевая задача — сделать игру максимально доступной. Будем и дальше улучшать производительность и стабильность, особенно для слабых устройств и при нестабильном интернете.
Второе направление — расширение геймплея. Хотим добавить больше социальных и соревновательных механик, чтобы игроки активнее взаимодействовали между собой. Такой опыт удерживает аудиторию лучше любых акций, потому что пользователь возвращается не только в игру, но и к сообществу.
Отдельный фокус — более масштабное внедрение ИИ. Сейчас используем его для аналитики, а дальше планируем применять для персонализации — то есть предлагать пользователю акции, подсказки и прочее, когда это уместно.
И, конечно, выход новые рынки. Хотим запуститься в Латинской Америке и усилить присутствие в Европе и странах Ближнего Востока. В этих регионах стремительно растет количество мобильных игроков, а значит, есть хорошая аудитория, которая выгодна бизнесу.