惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
M
MIT News - Artificial intelligence
MyScale Blog
MyScale Blog
博客园_首页
G
Google Developers Blog
博客园 - 【当耐特】
美团技术团队
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Vercel News
Vercel News
小众软件
小众软件
博客园 - 司徒正美
雷峰网
雷峰网
T
Tailwind CSS Blog
V
V2EX
博客园 - 三生石上(FineUI控件)
F
Fortinet All Blogs
罗磊的独立博客
量子位
P
Proofpoint News Feed
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
Год разработки iOS-игры, 266 тысяч показов и $33: как я д...
Георгий Глухов · 2026-05-25 · via Все публикации подряд на Хабре

Простой

6 мин

8.5K

Я сделал мобильную настольную игру Vault: the board game.

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

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

Я хотел перенести это в телефон: без бумажек, без ведущего, без ручного подсчета, с онлайн-режимом, профилями, друзьями, сезонными паками, локализацией и нормальной страницей в App Store.

А потом я открыл App Store Connect и увидел за последние 90 дней $33 proceeds.

Сводка App Store Connect с proceeds

Сводка App Store Connect с proceeds

Что я сделал

Vault — это цифровая версия разговорной настольной игры для 4-12 игроков. Каждый получает персонажа: профессию, здоровье, фобию, хобби, багаж, черты характера, возраст, телосложение и другие характеристики. Отдельно генерируется катаклизм и сам бункер: площадь, срок автономности, условия, полезные и не очень особенности.

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

Мне хотелось, чтобы игра ощущалась не как «табличка с карточками», а как настоящий маленький продукт. С интерфейсом, настройками, аватарами, режимами, событиями, премиум-контентом, локализацией и всем тем, что обычно незаметно, пока оно работает.

Вот скриншоты моего проекта. Мне правда кажется, что он классный.

Скриншоты App Store и постеры событий

Скриншоты App Store и постеры событий

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

Потом появились профили, аватары, публичный ID, друзья и приглашения. Это был не один экран «для галочки», а нормальный кусок продукта: хранение профиля, заявки в друзья, список друзей, состояния загрузки, ошибки, paywall для закрытых аватаров, UI-сценарии.

Экран профиля и друзей

Экран профиля и друзей

Смешно и немного грустно, что я могу открыть этот экран и вспомнить, сколько вечеров ушло на аккуратные состояния, локализацию, тесты, мелкие правки интерфейса. Я реально делал это как продуктовую фичу, а не как декоративную кнопку.

В проекте сейчас 4 набора контента: основной, Halloween, New Year Eve и Extended Package. Всего около 795 игровых элементов в JSON: профессии, катаклизмы, черты, фобии, хобби, особенности бункера и так далее.

Я перевел интерфейс на 12 языков: de, en, es, es-419, fr, id, it, ja, ko, pt-BR, ru, zh-Hans. В проекте 39 string catalog файлов. Это не то, что обычно видно пользователю, но это ровно та работа, которая съедает время.

События, которые не стали событиями

Я делал сезонные ивенты в App Store.

Halloween in the Bunker шел с 28 октября по 28 ноября 2025 года.
Christmas in the Bunker шел с 19 декабря 2025 по 19 января 2026 года.

Для них были отдельные картинки, описания, high priority, тип Major Update. То есть это не была мысль «а давайте просто нажмем кнопку». Я реально готовил сезонный контент, оформлял карточки, надеялся, что это даст хотя бы небольшой всплеск.

А в App Store Connect по событиям вот так:

Список App Store in-app events

Список App Store in-app events

Apple прямо пишет, что событие должно привести первые загрузки хотя бы от 5 отдельных Apple Accounts, иначе результаты не появятся. У меня в таблице по обоим событиям прочерки: event impressions, total downloads, app opens.

Это неприятное чувство. Ты сделал сезонный повод вернуться в игру, нарисовал материалы, завел ивент, прошел через App Store Connect, а потом видишь не «мало», а буквально отсутствие данных.

Цифры

Срез App Store Connect на 14 мая 2026 года, последние 90 дней:

  • 266 тысяч показов в App Store;

  • 16,5 тысяч просмотров страницы;

  • 6,05 тысяч первых загрузок;

  • 4,41% conversion rate;

  • 87 in-app purchases;

  • 1 платный план;

  • $33 proceeds;

  • Download to Paid на 7-й и 35-й день: 0,1%.

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

Но между «человек увидел или скачал приложение» и «проект может жить» огромная яма.

Показы за период даже выросли на 19,1%. При этом первые загрузки упали, просмотры страницы упали, conversion rate упал, in-app purchases упали, proceeds упали. То есть приложение где-то показывалось, но это почти не превращалось в деньги.

И вот тут ломается очень распространенная инди-иллюзия: кажется, что если сделать приложение достаточно хорошим, оно постепенно само начнет окупаться. Не обязательно сильно, но хотя бы как маленький живой проект.

У меня так не произошло.

Почему «просто добавить еще одну фичу» не работает

Самая опасная мысль в инди-разработке звучит примерно так: «Вот добавлю еще это, и станет лучше».

Я так думал много раз.

Не хватает режима на одном устройстве? Сделал.
Нужны друзья и приглашения? Сделал.
Нужно больше контента? Сделал.
Нужны сезонные паки? Сделал.
Нужны события в App Store? Сделал.
Нужны красивые скриншоты? Сделал.
Нужно поддержать больше языков? Сделал.

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

У Vault есть еще одна сложность: это не одиночная игра. Одному человеку недостаточно скачать приложение. Ему нужна компания, время, настроение, общий язык и повод начать партию именно сегодня.

Для App Store это тяжелый сценарий. Установка может быть одна, а ценность появляется только когда собралась группа.

Почему без монетизации дальше не получается

Есть фичи, которые очень хочется добавить, потому что они идеально подходят игре. Например, голосовой чат на 12 человек.

Для Vault это звучит естественно: игра построена на обсуждении. Сейчас игроки могут играть рядом, созваниваться отдельно или использовать внешний голосовой чат. Но внутри приложения это было бы намного удобнее.

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

Для комнаты до 12 человек простой WebRTC mesh — плохая идея для нормального качества. Каждый клиент начинает держать соединения со всеми остальными, растет нагрузка на сеть, батарею, CPU, появляются проблемы с NAT, TURN, reconnect и мобильными сетями.

Более нормальный путь — self-hosted SFU, например LiveKit, плюс coturn, плюс отдельный token endpoint, плюс проверка участников через текущую игровую сессию. Даже если софт бесплатный, инфраструктура не становится бесплатной. Нужен сервер, трафик, настройка, мониторинг, тесты на реальных устройствах, обработка обрывов сети, поддержка.

То есть это уже не «вечером добавил микрофон». Это отдельный кусок продукта с постоянными расходами.

И вот здесь $33 за 90 дней превращаются не просто в грустную цифру, а в ограничение развития. Я могу хотеть сделать voice chat. Пользователям это правда могло бы понравиться. Но если приложение не приносит денег даже на минимальную инфраструктуру, каждая такая фича становится личным донатом в никуда.

То же самое с Android.

Меня регулярно спрашивают про Android-версию. И я понимаю почему: игра для компании, а в компании почти всегда есть люди с разными телефонами. Если приложение только на iOS, часть потенциальных партий разваливается еще до старта.

Но Android-версия — это не галочка в настройках проекта. Это отдельная разработка, отдельный интерфейс, покупки, подписки, Firebase, пуши, deep links, тестирование, релизы, баги на разных устройствах.

Я iOS-разработчик. Я физически не могу быстро и качественно сделать Android-версию один. А денег на Android-разработчика у проекта нет.

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

Что я понял про инди

Я не хочу писать «App Store плохой» или «пользователи виноваты». Это было бы слишком просто.

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

Но со стороны инди-разработчика это все равно выглядит жестко.

Ты можешь год делать работу маленькой команды: код, дизайн, тексты, локализацию, аналитику, монетизацию, стор-страницу, события, поддержку пользователей, исправления багов. Можешь отвечать людям, смотреть метрики, пробовать новые идеи, добавлять то, о чем просят.

А потом открыть финансовый блок и увидеть $33.

В этот момент особенно ясно понимаешь: приложение может быть настоящим, живым, аккуратно сделанным и все равно не быть бизнесом.

Что бы я сделал иначе

Я бы раньше проверял не фичи, а канал.

Не «какую еще классную штуку добавить», а:

  • где конкретно живут люди, которым нужна такая игра;

  • как приводить их не случайно, а регулярно;

  • готовы ли они платить до того, как я сделал еще 300 карточек;

  • можно ли продавать игру не абстрактным пользователям из App Store, а конкретным компаниям, клубам, ведущим, антикафе;

  • нужен ли вообще мобильный freemium, если основной сценарий — групповая игра от случая к случаю.

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

Не нашел.

Итог

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

Но как бизнес это пока не сошлось.

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

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

Окупить — не получилось.

Если стало интересно, приложение здесь: Vault: the board game в App Store.