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

推荐订阅源

S
SegmentFault 最新的问题
S
Secure Thoughts
Google DeepMind News
Google DeepMind News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security Affairs
TaoSecurity Blog
TaoSecurity Blog
Cloudbric
Cloudbric
Cisco Talos Blog
Cisco Talos Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
H
Heimdal Security Blog
The Last Watchdog
The Last Watchdog
T
Threatpost
Hacker News: Ask HN
Hacker News: Ask HN
Security Latest
Security Latest
Know Your Adversary
Know Your Adversary
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Securelist
Microsoft Azure Blog
Microsoft Azure Blog
The GitHub Blog
The GitHub Blog
阮一峰的网络日志
阮一峰的网络日志
D
Docker
V
Vulnerabilities – Threatpost
Attack and Defense Labs
Attack and Defense Labs
Hugging Face - Blog
Hugging Face - Blog
W
WeLiveSecurity
Engineering at Meta
Engineering at Meta
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
L
LINUX DO - 热门话题
NISL@THU
NISL@THU
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Cloudflare Blog
博客园_首页
P
Privacy International News Feed
Scott Helme
Scott Helme
N
News and Events Feed by Topic
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
T
Tenable Blog
H
Hacker News: Front Page
N
News and Events Feed by Topic
罗磊的独立博客
Google Online Security Blog
Google Online Security Blog
S
Security @ Cisco Blogs
Hacker News - Newest:
Hacker News - Newest: "LLM"
A
About on SuperTechFans
有赞技术团队
有赞技术团队
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
G
GRAHAM CLULEY
Application and Cybersecurity Blog
Application and Cybersecurity 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 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Год разработки iOS-игры, 266 тысяч показов и $33: как я делал Vault и почти ничего не заработал
Георгий Глухов · 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.