Статья — пишем последней
Эмоциональная статья-история о проекте синтезирует весь разбор, когда остальные табы будут проработаны. Статья не предваряет анализ, а рождается из него.
Внутренний рабочий дашборд. Введи пароль.
Эмоциональная статья-история о проекте синтезирует весь разбор, когда остальные табы будут проработаны. Статья не предваряет анализ, а рождается из него.
Механике тамагочи 29 лет, и она пережила всё — брелок 1996-го, бум Neopets, эру говорящих котов и крипто-истерику 2024-го. За это время жанр похоронил сотни клонов и вырастил нескольких тихих чемпионов, которые зарабатывают десятки миллионов без единого рубля рекламы. Значит, вопрос не в том, работает ли идея «ухаживать за существом» — она доказанно работает четверть века. Вопрос острее и полезнее для нас: почему одни питомцы живут десятилетиями, а другие умирают за три месяца — и что из этого следует для того, которого делаем мы.
Чтобы понять, что делает питомца живым, надо вернуться к первому и самому честному решению жанра: существо может умереть.
В 1996-м Bandai выпустили брелок с пиксельным существом, и внутри него пряталась идея, которая держит жанр до сих пор: ставка. Не покормил — питомец голодает. Не убрал за ним — болеет. Забыл на сутки — умирает навсегда. Это звучит жестоко, но именно риск потери рождал подлинную заботу: ребёнок носил брелок в школу, просил учителя разрешить «покормить», плакал над умершим питомцем. 82 миллиона проданных устройств — это не про графику (её там не было), это про эмоциональную ставку, которую не повторил почти никто после.
Дальше жанр двадцать лет сглаживал эту жестокость — и одновременно терял её силу. Neopets и Nintendogs перенесли питомца в веб и на консоль, добавили мир, коллекцию и кастомизацию, но смягчили смертность. Мобильная эра (Pou, Talking Tom, My Tamagotchi Forever) сделала питомца массовым и добавила мини-игры и магазины — но вместе с ними пришла и первая расплата: агрессивная реклама и микротранзакции, нацеленные на детей, за которые эти продукты клянут до сих пор. А в 2020-х жанр повзрослел окончательно: Neko Atsume, Finch и Egg Inc доказали, что можно держать людей годами вообще без наказания — на любопытстве, коллекции и тёплом ритуале.
Брелок с пиксельным существом. Двигатель — смертность: ставка рождает заботу. 82+ млн устройств, мировой феномен. Урок, который потом забыли: привязанность держится на риске что-то потерять.
Питомцы уходят в веб и на консоли. Забота + коллекция + мир вокруг. Смертность смягчается — на первый план выходит привязанность и обустройство, но острота ставки падает.
Эра мобильных: питомец + мини-игры + магазин. Массовость — ценой репутации: реклама и микротранзакции на детях, штрафы, критика Common Sense Media.
Жанр взрослеет: ноль наказания, награда за возвращение, «прощающий» дизайн. Finch — $30 млн в год без инвесторов. Доказано: питомец как ритуал кормит бизнес.
Оригинал держался на том, что можно потерять. Наследники научились удерживать без жестокости — но те, кто выкинул ставку целиком, выкинули вместе с ней и привязанность.
Сегодня «виртуальный питомец» живёт в двух параллельных вселенных. В одной — тихие долгожители, которые зарабатывают годами. В другой — братская могила крипто-тапалок. И обе вселенные учат нас одному и тому же.
В мире мобильных долгожителей побеждают те, кто дал игроку смысл возвращаться не ради награды, а ради самого питомца. Finch растёт, пока ты живёшь свою жизнь, и мягко зовёт обратно через виджет, а не пушами-напоминаниями. Neko Atsume вообще не требует ничего — коты приходят сами, ты лишь ставишь плошки и ловишь азарт «кто заглянул во двор». Egg Inc держит месяцами за счёт компаундного сброса, когда всё «как новое». Объединяет их не жанр, а устройство удержания: мягкость, коллекция и награда за возврат.
В мире Telegram всё наоборот. Tap-to-earn-волна 2024-го собрала сотни миллионов игроков за недели — и схлопнулась почти целиком. Потому что ценность там была не в питомце, а в обещании будущего токена. Когда обещание наступало (или разочаровывало) — возвращаться становилось незачем. Выжили единицы, и ровно те, кто успел отрастить жизнь после токена.
Питомец растёт, когда ты живёшь свою жизнь. Виджет + мягкий возврат, без насилия пушами. Забота о себе через заботу о нём.
Коты приходят сами — ты ставишь еду и любуешься. Ноль наказания, азарт открытия «кто пришёл». Коллекция как двигатель.
Компаундный сброс (prestige): всё «как новое», плато ломается. Долгий смысл на месяцы.
Кастомизация + мини-игры + эволюция/возраст. Самовыражение держит, но тянет репутационный шлейф рекламы на детях.
300+ млн → 41 млн → ~12 млн к июлю 2025. Вся ценность — в одном будущем токене. Символ обвала всей ниши.
Оригинал тапалки. Выжил, но перестал быть игрой — стал инфраструктурой экосистемы TON.
Спасся не «котом», а контент-хабом из 50+ мини-игр + реальной монетизацией (покупки + реклама), а не ставкой на токен. $34M выручки.
Робо-питомец с PvP и прямой тамагочи на TON. Спрос на питомца есть — но завёрнут в токен и бои, а не в привязанность.
Это не «мобильные хорошие, а Telegram плохой». Это один закон в двух декорациях: живёт тот продукт, у которого есть смысл возвращаться ПОСЛЕ любой выплаты — а умирает тот, у кого вся ценность сложена в один будущий момент. Telegram просто довёл этот закон до карикатурной наглядности, потому что токен — самая чистая форма «отложенной ценности вместо привязанности».
Hamster Kombat стоит разобрать поштучно — это не просто «не повезло», а четыре системные ошибки, каждую из которых мы обязаны обойти по имени.
Игрок тапал месяцами ради будущего аирдропа. Пока его нет — ты работаешь «в долг». Как только он случился — причин открывать приложение не осталось. Ноль привязанности к самому существу.
После главного события не оставалось свежего геймплея — нечем было зацепить. Сравни с Catizen, который заранее отрастил хаб из 50+ мини-игр и потому пережил обвал токена.
Задержки, техсбои, мизерные выплаты «на доллар-два», плюс анти-чит забанил ~2,3 млн аккаунтов с конфискацией. Доверие — ресурс невозобновляемый: сгорело разом.
Ставка на инфлюенсеров и реферальные деревья, а не на то, ради чего возвращаться. Вирусность без удержания = ведро без дна: налили сотни миллионов — вытекли за квартал.
Если перевернуть кладбище и посмотреть на долгожителей, у всех до единого повторяются три одни и те же вещи. Это не советы — это условия, без которых питомец не живёт.
Возвращаешься ради самого существа и того, что с ним происходит, а не ради награды «снаружи». Finch, Neko — ценность внутри отношений, а не в токене или призе.
Поверх «покорми» — коллекция, открытие, обустройство, долгий прогресс. То, ради чего открываешь на третьей неделе, а не только в первый день.
Питомец не умирает от одного пропуска и не пилит тебя виной. Вернулся — тебя ждёт приятное, а не выговор. Забота, а не долг.
Оригинальный тамагочи нарушил бы закон 3 (смерть за пропуск), Hamster нарушил закон 1 и 2 (токен вместо питомца, пустота после). Наш питомец должен выполнить все три одновременно — и в этом ещё никто в Telegram не преуспел.
Сложив историю и реальность, мы упираемся в дыру, и она не случайна.
Почти все питомцы в Telegram завязаны на крипто-ожидание — потому что экосистема так устроена: токен давал мгновенный взрывной рост, и все бежали за ним. Ниша «питомец ради самого питомца», на эмоции и привязанности, как Finch и Neko, в Telegram практически пуста — туда просто никто не шёл, там «медленные» деньги.
Вторая, ещё более узкая пустота — зрелищность. Живые хиты Telegram (Notcoin, Hamster, TapSwap) осознанно остались на 2D-спрайтах ради охвата слабых устройств под крипто-аудиторию. Эмоциональный 3D-персонаж с настоящей мимикой не делает никто. А именно мимика — это то, за что привязываются. Получается редкое сочетание: проверенная механика (тамагочи 29 лет), бесфрикционная дистрибуция (Telegram), и при этом незанятое пересечение «эмоция + 3D + привязанность».
Окно открыто — но не навсегда. Tap-to-earn схлопнулся, аудитория устала от «play-to-earn», и рынок начинает искать продукты, которые держат не обещанием денег, а чувством. Мы заходим ровно в этот разворот.
Тамагочи, которого не бросают, потому что за него переживают — а не фармят.
Вывод первого таба — в одной связке:
История показывает двигатель: привязанность рождается из ставки и из отношений с существом, а не из внешней награды. Реальность показывает пустую нишу: в Telegram побеждает эмоция, но туда все ходили за токеном. Три закона задают проверку, которую наш питомец обязан пройти целиком. Всё, что мы проектируем дальше — сам питомец, его комната, взаимодействие, экономика — должно служить одной-единственной цели: сделать существо, за которое переживаешь. Если это получится — остальное приложится; если нет — не спасёт ни один красивый домик.
Telegram Mini Apps — это не просто вебвью, в котором крутится наша игра. Это платформа с конкретным набором возможностей, и она не нейтральна: одни её способности прямо включают нашу концепцию, другие — жёстко её ограничивают. Весь фокус этого таба — отделить то, что для нас стратегически важно, от общего списка API. Потому что именно три возможности SDK превращают «игру в вебвью» в питомца, который живёт в твоём Telegram — а пара ограничений диктует, как вообще устроена его «жизнь».
Главный технический вопрос концепции закрыт положительно — с одной важной оговоркой про то, КАК достигать «вау».
Mini App — это полноценный вебвью (WKWebView на iOS, WebView/Chrome на Android), внутри которого доступен WebGL 1.0/2.0. Three.js, Babylon, PlayCanvas, даже Unity WebGL — всё запускается. Доказательство промышленного масштаба: Catizen (30+ млн игроков) крутит 2D/3D-сцены на движке Cocos. То есть живой 3D-питомец в Telegram — не фантазия, а проверенная практика.
Оговорка — в производительности. Вебвью медленнее нативного рендера, а сам Telegram ест ресурсы поверх нашей сцены: двойной оверхед. Показательно, что топовые хиты (Notcoin, Hamster, TapSwap) намеренно остались на лёгких 2D-спрайтах ради охвата слабых устройств. Отсюда наш рецепт, совпадающий с уже принятым решением по движку: зрелищность — через арт-дирекшн, свет и анимацию, а не через полигоны и фотореализм. Стилизованный low-poly/toon, сжатые текстуры (KTX2/Basis), ленивая догрузка, critical-бандл в пределах пары мегабайт — чтобы холодный старт укладывался в 1–3 секунды. Человек открывает нас в лифте; если он 15 секунд смотрит на прогресс-бар — он уже не вернётся.
Это ровно то, почему мы выбрали web-native (R3F/Three.js), а не Unity: в вебвью потолок «вау» задаёт платформа, а не движок, — поэтому лёгкий старт и полный контроль над каждым килобайтом важнее мощного, но тяжёлого рантайма.
Телесность и «физическое» ощущение питомца достижимы родными средствами Telegram, а не хрупкими браузерными хаками.
В Bot API 8.0 Telegram добавил нативные объекты Accelerometer, Gyroscope и DeviceOrientation — с управляемой частотой опроса и единым поведением на iOS и Android (в отличие от сырого браузерного DeviceOrientationEvent, который в вебвью капризен и требует отдельных разрешений). Для питомца это значит: наклонил телефон — он скатывается, тянется взглядом, просыпается от встряхивания; параллакс даёт глубину сцене. Хаптика (Bot API 6.1) добавляет тактильный слой — мягкая серия вибраций под мурлыканье, «успех» на радости, «предупреждение» на недовольстве. Плюс полноэкранный режим, блокировка ориентации и нативные кнопки под сцену. Всё, что нужно, чтобы питомец ощущался живым и материальным, — в наличии.
Здесь спрятана ключевая архитектурная правда, на которой стоит вся наша бардак-механика.
Прямой ответ неожиданный: Mini App не выполняется в фоне. Закрыл или свернул — JavaScript останавливается. Нет фоновых таймеров, нет симуляции «внутри клиента», пока приложение закрыто. Это звучит как проблема для идеи «он живёт сам по себе» — но на деле решается стандартным паттерном idle-игр и решает её полностью.
Состояние питомца живёт на нашем сервере: голод, настроение и, главное, timestamp последнего визита. При открытии приложение считает Δt = сейчас − последний визит и server-side генерит «что произошло за отсутствие»: проголодался, заскучал, набедокурил. Именно так технически реализуется «открываешь — а там бардак»: не фоновая жизнь, а пересчёт при входе. Для хранения есть CloudStorage (до 1024 ключей × 4 КБ), DeviceStorage/SecureStorage (Bot API 9.0) — но полноценное состояние держим на своём бэкенде. А зовёт обратно — бот (см. ниже), а не фоновый процесс.
Вот здесь SDK перестаёт быть сантехникой и становится отстройкой. Эти три возможности — разница между «игрой, которую открываешь» и «сожителем, который присутствует в твоём мессенджере постоянно».
С Bot API 8.0 мини-апп может (с разрешения пользователя) ставить кастомный эмодзи-статус — тот, что видят все твои контакты рядом с именем. Идея твиста: настроение питомца становится твоим статусом в Telegram. Поспал — 😴, соскучился — 🥺, обиделся за двухдневное отсутствие — и это видят все, накормил и поиграл — 😻. Питомец выходит за пределы игры в твою цифровую личность. Ни одна другая поверхность не даёт такого присутствия — и никто в нише этого не делает.
Бот может сгенерить пользователю стикерпак с эмоциями его питомца (createNewStickerSet). Ты пишешь друзьям стикерами со своим Барсиком — он живёт во всех твоих чатах. Польза + присутствие + виральность. Ограничение: обычные стикеры, не кастом-эмодзи.
Бот шлёт «я кое-что натворил, посмотри» с кнопкой прямо в нужный экран. А shareToStory даёт виральный виток: «смотри, что он устроил» → в Stories со ссылкой на игру. Возврат на любопытстве, шеринг на эмоции.
addToHomeScreen (8.0): «посели питомца на главный экран» — иконка-мордочка как у обычного приложения. Ощущение постоянного присутствия рядом, ещё один крючок привязанности.
Сводка того, что есть, с какой версии — и как это применяет питомец.
| Возможность | Статус | Что делает питомец |
|---|---|---|
| WebGL / 3D | есть | Живая стилизованная 3D-сцена с питомцем (Three.js/R3F) |
| Гироскоп / акселерометр | 8.0 | Наклон → реакция, параллакс, «встряхни, чтобы разбудить» |
| Хаптика | 6.1 | Мурлыканье, радость, недовольство на ощупь |
| Эмодзи-статус | 8.0 | ⭐ Настроение питомца в профиле, видят контакты |
| Стикерпак | Bot API | Личные стикеры с эмоциями питомца во всех чатах |
| Пуши бота | есть | Деликатный возврат: «я кое-что натворил» |
| Stories / шеринг | 8.0 | shareToStory — виральный виток «смотри, что он устроил» |
| Home screen | 8.0 | Иконка-мордочка на главном экране телефона |
| Хранение (Cloud/Device) | 6.9 / 9.0 | Кэш сейвов; полное состояние — на своём бэкенде |
| Полноэкранный режим | 8.0 | Погружение в сцену без интерфейса чата |
| Фоновое исполнение | нельзя | «Жизнь пока не было» = пересчёт на сервере + пуш |
| Камера / микрофон | ненадёжно | Только сырой getUserMedia, на ядро не закладываем |
| Кастом-эмодзи паки | нельзя | Через Bot API не создать — только обычные стикеры |
Честные ограничения платформы. Не баги, а рамки, которые надо уважать в дизайне с первого дня.
Обходим серверным пересчётом по timestamp + пушами. Это даже лучше: бэкенд — надёжный «мозг» питомца, не зависящий от того, открыт ли клиент.
Лимит деликатности: 1–2 мягких напоминания в день, с реальной пользой, легко отключаемые. Возврат на любопытстве, а не на «claim your reward».
Экономику строим на десктоп/Fragment-покупках (комиссия 3–4%) + рекламе, а не на мобильных Stars в лоб. Деталь для таба монетизации.
Твист-поверхности включаются по желанию пользователя — это и юридически правильно, и снимает «тёмную сторону» (не всем нужен грустный питомец в статусе при коллегах).
Вывод второго таба:
Платформа зелёная по всем трём китам концепции. Зрелищный стилизованный 3D-питомец с мимикой, гироскопом и хаптикой — технически реалистичен. Твист «сожитель» — не мечта, а конкретные API: эмодзи-статус, стикерпак, пуши-возврат, появившиеся как раз в Bot API 8.0. «Жизнь, пока тебя не было» — стандартный серверный пересчёт, а не магия. Единственное, что платформа диктует жёстко: лёгкий старт, уважительные пуши и серверный мозг питомца. Это не препятствия, а рамки, внутри которых наша идея не просто помещается — она будто специально под Telegram 2024–2026 и задумана.
Питомец — длинный шест всего проекта. Если существо заставляет улыбнуться с первой секунды — концепт доказан, а мир, экономика и друзья лишь надстраиваются сверху. Если нет — не спасёт ни один красивый домик. Поэтому этот таб — самый глубокий, и он устроен в две части: сначала из чего вообще состоит питомец (всё поле возможностей), затем как выбрать первого героя не вслепую — по критериям от человечески-эмоциональных до технически-реализуемых.
Герой первого релиза — пушистый длинношёрстный КОТ. Лук: настоящий параметрический shell-мех (тюним ползунками density / length / quality под 60 fps на реальном телефоне), утрированные пропорции по детской схеме, мех короче вокруг глаз и морды ради читаемой мимики. Faux-fur (Fresnel-ободок) — страховка, если бенчмарк на целевых телефонах не сядет. Ниже — полная анатомия и матрица, на которых это решение стоит.
Восемь осей, по которым проектируется питомец. Каждая — отдельный слой «жизни»; вместе они и создают то, за что привязываются.
База «милоты» — детская схема (Лоренц): крупная голова, большие глаза ниже средней линии, округлость, короткие лапки. Язык форм: круг = тепло и безопасность, квадрат = надёжность, острые углы = угроза. Тест: узнаётся ли существо чёрным силуэтом.
Наш главный UI — вместо полосок морда. Носители без слов: глаза (размер зрачка, взгляд, блик), брови (угол = радость/грусть/гнев), наклон головы. Ключ: упрощение усиливает эмоцию — мультяшное лицо считывается точнее реалистичного.
У питомца должен быть нрав ещё до ИИ: ленивый, хулиган, застенчивый, гурман. Характер проявляется в реакциях и выходках. На платном уровне — генеративная личность на LLM: реплики и поведение рождаются, а не выбираются из списка.
Idle-жизнь (сам что-то делает) + реакции на тебя + репертуар выходок — ядро бардак-механики. Разбросал, спрятал, заболел, набедокурил. Это генератор свежих микро-сцен, который и держит «что он учудил на этот раз».
Где живёт «вау»: squash & stretch, вес, пружинистость, сочность. Живой слоистый idle (дыхание, моргание, фиджеты) важнее числа клипов — именно вариативность покоя проходит «порог живого».
Не слова, а звуки — мурлыканье, писк, бурчание + хаптика (тактильное мурлыканье через вибро). Звук и вибрация добавляют телесности без единой реплики и без языкового барьера.
Изменение во времени: стадии, возраст, эволюция. Настоящий ров — накопленная история: питомец помнит, растёт вместе с тобой, копит ваше общее прошлое. Чем дольше вы вместе, тем дороже бросить.
Как взаимодействует с комнатой, предметами и питомцами друзей. Каждый предмет меняет поведение (живой террариум), а дружба двух существ рождает сцены, которых нет у одного. Детали — в табах 4 и дружбы.
Детская схема (Kindchenschema) — большие глаза и округлость врождённо активируют систему вознаграждения мозга и инстинкт заботы (подтверждено PNAS на томографии). И работает межвидово — значит можно лепить хоть «инопланетянина», лишь бы черты были на месте. Усиление через упрощение (McCloud) — чем проще лицо, тем точнее читается эмоция (до ~60%) и тем легче спроецировать себя. Оба факта говорят одно: простое округлое существо с выразительной стилизацией бьёт фотореализм по привязанности.
Без выбора героя крафт не стартует, а ошибка здесь дороже всех. Поэтому выбираем по матрице критериев от эмоций к технике, а не по вкусу.
Критерии разложены по трём ярусам — именно так, как ты просил, от человечески-эмоциональных до технически-реализуемых:
Мгновенная любовь (детская схема), узнаваемость без объяснений, мемность/виральность, ширина эмоц. диапазона морды, сигнал «я нуждаюсь в тебе».
Проецируемость (вкладываешь себя), уникальность и защищаемость образа (не «ещё один кот»), широта аудитории, потенциал коллекции и шеринга.
Простота рига, выразительность на полигон в low-poly, вес модели и старт в вебе, объём набора анимаций, безопасность от «зловещей долины».
Независимость, грация, король интернет-мемов. Встроенный язык тела (уши/хвост/мурлык).
Верность, безусловная любовь, «нужен тебе». Сильнейший сигнал привязанности.
Круг + лицо + 1–2 уникальных якоря. Не «ещё один кот», но и не «непонятное».
Тайна и крючок «что вылупится». Холодное, пока не оживёт.
Шкала 1–5 (5 — максимально выгодно для нашей задачи). Источник — принципы дизайна персонажей и кейсы, не вкус.
| Критерий | 🐱 Кот | 🐶 Собака | 🫧 Блоб | 🥚 Яйцо |
|---|---|---|---|---|
| Мгновенная любовь (детская схема) | 4 | 5 | 4 | 2 |
| Узнаваемость без объяснений | 5 | 5 | 3 | 2 |
| Мемность / виральность | 5 | 3 | 4 | 3 |
| Проецируемость («вкладываю себя») | 3 | 3 | 5 | 5 |
| Широта аудитории | 4 | 4 | 4 | 3 |
| Эмоц. диапазон без слов (уши/хвост) | 5 | 5 | 3 | 2 |
| Сигнал «я нуждаюсь в тебе» (ядро) | 3 | 5 | 4 | 5 |
| Уникальность / защита бренда | 2 | 2 | 5 | 4 |
| Безопасность от «зловещей долины» | 4 | 3 | 5 | 5 |
| Простота рига | 3 | 3 | 5 | 5 |
| Выразительность на полигон (low-poly) | 4 | 4 | 5 | 4 |
| Вес модели / старт в вебе | 4 | 4 | 5 | 5 |
| Простота набора анимаций | 3 | 3 | 4 | 4 |
Собака — чемпион мгновенной любви и сигнала «нужности» (это и есть ядро тамагочи), но слабее по мемности, уникальности и технике, плюс тянет ожидание реализма → затраты и риск долины.
Кот — чемпион мемности/виральности и богатства языка тела, широкая аудитория. Минусы: перенасыщенный рынок («ещё один кот») и слабый сигнал нужности (коты самодостаточны).
Своё существо-блоб на базе круга — единственный кандидат, который максимизирует сразу все три яруса: эмоции добирает через детскую схему и masking-эффект, технику выигрывает вчистую (простой риг, максимум эмоции на полигон, минимальный вес, безопасность от долины), и даёт защищаемый бренд. Его слабое место — узнаваемость «из коробки» — снимается проверенной стратегией: круг + лицо + 1–2 сильных якоря (уникальный цвет, деталь-хук), как сделаны Kirby, Pikachu, Slime, Fall Guys. Это «своё на базе знакомого» — не кот, но и не непонятное.
Яйцо/непонятное — проваливает мгновенную любовь, но это идеальная стадия 0: из яйца вылупляется твой блоб. Крючок «что вырастет» добавляется почти бесплатно и работает на прогрессию.
Первый герой — своё округлое существо по детской схеме: плоские 2D-глаза-текстурой + пара блендшейпов на рот, один мемный якорь. Эволюция из яйца — как стадия 0 сверху.
Если приоритетом станет мгновенная виральность — сильный альтернативный путь стилизованный кот; если максимальная привязанность и «нужность» — собака. Матрица не отменяет твой выбор, она делает его зрячим: теперь видно, чем именно ты платишь за каждый вариант.
Выбор сделан в пользу знакомого: фавориты — кот и пёс, в духе Pixar. Риск «ещё один кот/пёс» принимаем и отбиваем обаянием, характером и живостью. Но знакомое животное сразу поднимает вопрос производства — и на нём стоит остановиться отдельно.
«Pixar-дух» в вебвью раскладывается на три производственные оси — и они радикально разные по цене. Две почти бесплатны, одна — реальный потолок.
Выразительная морда — вопрос рига и арта, не производительности. Плоские 2D-глаза-текстурой + пара блендшейпов на пасть/брови дают огромный эмоциональный диапазон почти даром. Сюда идёт главная любовь — и вебвью тянет это легко.
«Милота Pixar» = утрированная детская схема: крупная голова, большие глаза, короткие лапки, мягкий силуэт. Стилизованное low-poly тело с такими пропорциями весит столько же, сколько реалистичное, — а обаяния даёт в разы больше. Стены нет, есть работа арт-директора.
Прядевый груминг, shell-слои, hair-cards — прозрачные слои, жрущие fillrate (overdraw) и draw-calls. Цена не в загрузке, а в рендере кадра. На десктопе летает; риск — на слабом мобильном GPU в вебвью. Для одного героя на современных телефонах — стретч-вариант под бенчмарк, не закрытая дверь.
Мех — не геометрией, а текстурой: painted-fur карта + пушистый контровой ободок (Fresnel rim-light) + пара геометрических «клочков» на ушах и хвосте для намёка. Читается пушистым, стоит копейки. Ближе к «настоящему» животному.
Намеренно без меха: винил-тойс, плюшевая игрушка, гладкая стилизация в духе Animal Crossing. Не компромисс, а сильный тренд и отдельное обаяние — плюшевого котика хочется тискать не меньше. Проблема шерсти снимается целиком.
Обаяние Pixar — это не разрешение шерсти, а пропорции, глаза, мимика, свет и анимация. Мех — последние 5% картинки, которые в вебвью не окупаются. Берём твоего кота или пса с утрированными пропорциями и очень живой мордой, а шерсть решаем путём А или Б — и получаем Pixar-заряд, который платформа переживёт.
Модели ниже крутятся прямо здесь — нажми ▶ и тащи мышью/пальцем. Внешние арты и живые демо — ссылками.
Тот же shell-мех, но уже на коте — крути вживую. Слева реалистичный (тяжёлый, 174k полигонов только на мех — это «планка цены»), справа стилизованный мультяшный (ближе к нашему луку). Наш кот будет между: стилизованный силуэт + параметрический мех, притюненный ползунками под телефон.
Максимальная детская схема: огромные низко посаженные глянцевые глаза с ярким бликом-искоркой (главный носитель эмоции и «живости»), крошечные нос и рот, розовые щёчки, мягкий круглый контур, ноль резких линий. Глаза — звёзды, мех — оправа: вокруг глаз и мордочки шерсть короткая и чистая, чтобы взгляд читался. Техника: большие глаза как 2D-текстура/шейдер с бликом + блендшейпы на моргание и эмоции — дёшево и максимально выразительно.
То, что вебвью тянет идеально. Смотри на формы, пропорции и мягкий матовый материал.
Мех не геометрией, а контровым ободком (Fresnel) + painted-normal + редкими клочками. Открой живое демо ободка — вот она «пушистость» без прядей.
Важно: на десктопе демо летает — мощный GPU ест мех не замечая, и загрузка тут ни при чём. Цена прячется в рендере каждого кадра: shell-слои перерисовывают меш 16–32 раза, и каждый пиксель под мехом закрашивается столько же раз (overdraw/fillrate). Это бьёт только по слабому мобильному GPU в вебвью Telegram — там, где мы живём, а не на компьютере. Плюс демо — один простой объект, а у нас персонаж + сцена. Вердикт не «никогда»: мех на одном герое, умеренные слои, современные телефоны — стретч-вариант под бенчмарк на реальном телефоне (этап прототипа), а не закрытая дверь.
База — гладкий плюш: MeshToonMaterial с gradientMap в 2–3 ступени (тёплая мягкая ступень = намёк на подповерхностное свечение), высокий roughness, ноль металла, никакой прозрачности. Опционально +пушистость: тёплый Fresnel-ободок по силуэту + painted-fur normal-map + 10–30 alpha-клочков на ушах и хвосте (через MeshSurfaceSampler + InstancedMesh, один draw-call). Почти бесплатно — холодный старт 1–3 сек жив.
Что копировать у эталонов (My Talking Tom — 500 млн+ загрузок; коты Animal Crossing): детская схема (крупная голова, большие низкие глаза, маленький нос), округлые силуэты без острых углов, мягкий 2–3-ступенчатый toon-свет, тёплый ободок. Pixar-заряд = пропорции + глаза + свет, а не шерсть.
Комната — это не фон, а движок поведения. Разница между мёртвой диорамой-одевалкой и живым террариумом в одном: каждый предмет должен менять то, что кот ДЕЛАЕТ. Купил мячик — гоняет и раскидывает; поставил коробку — прячется и выглядывает; лежанку — спит. Мир не украшается, а оживает с каждым вложением. И, что важно для нас, есть проверенный геймдизайн-паттерн, который делает это дёшево и бесконечно расширяемо.
Ключевая находка ресёрча. Именно этот паттерн из The Sims, а не ручное программирование реакций кота, даёт экспоненциальную живость на минимум кода.
Гениальность в инверсии: логика живёт не в коте, а в предметах. В The Sims каждый объект «рекламирует» (advertisements), какие потребности он закрывает и на сколько очков: кровать вещает «поспи на мне → +энергия», холодильник — «поешь → +голод». Персонаж просто собирает все «рекламы» вокруг и выбирает — но не тупо максимум, а случайно из топ-2–3, отчего и рождается непредсказуемость и «характер».
Перенос на кота почти дословный. Каждый предмет комнаты публикует, что он предлагает:
Каждые несколько секунд кот прогоняет простой цикл:
Смотрит все предметы в комнате и их предложения.
×множитель текущей потребности (сонный → лежанка взлетает; скучающий → мячик) + новизна + близость.
Случайно из топ-2–3 вариантов — отсюда «характер» и непредсказуемость.
Привязанная анимация. Действие меняет состояние предмета → новая реклама → новая сцена.
Новая выходка = новый ассет + одна строчка «рекламы», ядро кота не трогается. Непредсказуемость даётся бесплатно, а поведение само подстраивается под то, что игрок купил и поставил — это и есть ощущение живого террариума. И это же напрямую кормит бардак-механику: поиграл → мячик раскидан → новое состояние → новое поведение → «что он тут устроил».
Принцип Neko Atsume — «предмет = свой персонаж поведения». Не число предметов создаёт живость, а то, что каждый запускает КАЧЕСТВЕННО разную выходку. Шесть штук покрывают все потребности и легко влезают в мобильный бюджет.
| Предмет | Поведение / выходка | Тип |
|---|---|---|
| 🍲 Миска (еда+вода) | Приходит, ест; отказывается когда сыт или однообразно. База заботы. | баллы |
| 🧶 Мячик | Играет, гоняет и раскидывает → порождает уборку и следующую выходку. Главный генератор живости. | баллы |
| 📦 Картонная коробка | Залезает, прячется, выглядывает. Максимально «котно», дёшево, мемно-шерабельно. | баллы |
| 🛏️ Лежанка / подушка | Спит, сворачивается, «намял место». Спокойные тёплые кадры, восстановление энергии. | баллы |
| 🪵 Когтеточка | Точит когти характерным циклом; без неё — дерёт мебель (поведение-стейк). | поведение |
| 🪟 Окно с видом | Смотрит наружу, реагирует на реальные утро/ночь/дождь. Cozy-якорь + кусочек «сожителя». | Telegram-контекст |
Каждый запускает своё: ест / играет-раскидывает / прячется / спит / точит / наблюдает — все базовые потребности закрыты, и каждый предмет узнаваемо кошачий. Окно — отдельно вкусное: кот реагирует на реальное время суток и погоду (через геолокацию), и это уже первый шаг к «питомцу, который живёт в твоём Telegram».
Шесть предметов выше — это игрушки и нужды кота. Но кот живёт не на голом полу: нужна настоящая комната — диван, полки, картины, ковёр, растение, тёплая лампа. И ключевое: эта обстановка не просто декорация — бОльшая часть её сама работает умными объектами и сценой для бардака.
Запрыгивает, спит на спинке, точит подлокотник, прячется под ним.
Залезает наверх и скидывает предметы вниз — классика кошачьего хаоса, мемно и шерабельно.
Запрыгивает, роняет чашку, разваливается сверху.
Заденет — висит набок, пока не поправишь. Мелкая, но живая выходка.
Живая деталь + тёплый свет уюта. Растение кот может погрызть/повалить.
Тепло, обжитость, мягкость. Шторами кот играет/запутывается.
Характер комнаты. Их смена — кастомизация и бренд «мой уют».
Сменил стиль всей комнаты → своё пространство → повод показать друзьям.
1. Бардак получает сцену. Не «раскидал мячик», а живёт по всей комнате: скинул книги с полки, сбил картину набок, уронил чашку, запутался в шторах, повалил растение. Каждая единица мебели через умные объекты добавляет свой набор выходок. 2. Комната = самовыражение = виральность. Смена дивана, картин, темы — это кастомизация за Stars И та самая сцена, куда придут коты друзей: «смотри, какой у меня уют».
Бюджет держим так: декор (картины, ковёр, растение, шторы) — дешёвая статика, создаёт уют почти даром; интерактивной мебели для первого релиза берём 2–3 ключевые (диван, стеллаж, столик) — они и умные объекты, и сцена бардака. Так комната ощущается настоящей и обжитой, но ассеты не взрываются.
Вот направление обстановки — стилизованные уютные комнаты в low-poly, тёплый свет, диван/полки/декор. Нажми ▶ и покрути. Наша будет камернее (одна комната под кота), но язык — вот такой.
Наш формат — уютная диорама: объёмный обжитой мирок, в который заглядываешь сверху-сбоку, как в кукольный домик или витрину-террариум. Идеальная форма для нас: «живой террариум», сделанный буквально + камерный кадр (легко для вебвью) + «tiny cozy world» врождённо милый и шеро-достойный.
Важно про размер: диорама — это про подачу (открытый передок, тёплый свет, весь мирок в кадре), а НЕ про буквальную миниатюрность. Берём не спичечный коробок, а просторную обжитую комнату — где коту есть где разгуляться и бедокурить (диван, полки, окно на расстоянии). Обаяние «маленького мирка» рождается стилем и светом, а не тем, что всё мелкое.
Камера подвижная, а не застывший кадр: по умолчанию видишь всю комнату; можешь орбитить/панить/зумить (+ гироскоп — наклон поворачивает и параллаксит, заглянуть за угол); зум к коту — крупный план морды с глянцевыми глазами, и он же лечит читаемость мимики, когда кот далеко. Рекомендация подачи — открытый передок (пара стен срезана), как у кукольного домика.
Уют — не случайность, а три столпа (рамка Lost Garden / Project Horseshoe). Все три ложатся на нашу сцену.
Ни угроз, ни принуждения, ни потерь. Всё добровольно и предсказуемо. Для кота: никакого фейла — только забота. Стейки есть, но обратимые (см. таб питомца).
Базовые нужды видимо закрыты — полная миска, тёплый свет, обжитость. Тогда игрок переходит к высшему: самовыражение и привязанность.
Медленный темп, камерный масштаб, мягкий свет. Низкое возбуждение при сохранении вовлечённости — за котом просто приятно смотреть.
Конкретные приёмы уюта для нашей одной сцены: тёплая палитра (жёлтые/оранжевые) и мягкий рассеянный свет вместо резких источников; натуральные материалы — дерево, живое растение; камерный, чуть приподнятый ракурс на одну комнату. И классический приём — окно как контраст-убежище: дождь или вечер за окном при тёплой комнате внутри. Комната = укрытие от внешнего мира, и это ощущение само по себе греет.
Мы решили ещё в табе питомца: зрелищность живёт в свете, а не в полигонах. В диораме это буквально так — свет отличает «коробку с мебелью» от «уютного дома». Он делает четыре работы.
Тёплый, мягкий, мотивированный свет (от лампы, из окна), тёплая палитра, рассеянные тени. Именно это превращает набор мебели в обжитой дом.
Свет задаёт эмоцию всей сцены: золотой вечер — тепло и покой, синяя ночь с пятном лампы — уют перед сном. Одна и та же комната звучит по-разному.
Свет комнаты меняется с реальным временем и погодой: мягкое утро, золотой вечер, сумерки, пасмурный дождь с тёплой лампой. Комната дышит вместе с твоим настоящим днём — сильнейший штрих «жизни в твоём Telegram».
Контровой свет отделяет пушистого кота от фона и подсвечивает мех по краю (тот самый Fresnel-пушок), а блик в глазах (catch-light) — та самая искра «живости».
Технически — дёшево и роскошно: запечённые лайтмапы для статичной комнаты (мягкие тени и рассеянный свет «впечены» в текстуры, ноль стоимости в рантайме — стандарт красивых веб-диорам) + пара живых источников (лампа, свет из окна) + мягкий ключ на коте. Смена времени суток — блендим лайтмапы и тонируем общий свет, двигаем и красим главный источник. Блик в глазах — крошечная деталь ценой в пиксель, а работает как «оживление».
Одна из сильнейших фишек всего продукта. Не игровое время, а твоё реальное локальное — комната и кот проживают тот же день, что и ты. Четыре нити синхронизируются с часами и погодой за окном.
| Фаза дня | 🌅 Свет | 🪟 Окно | 🐱 Кот |
|---|---|---|---|
| Утро | мягкий тёплый, низкое солнце | рассвет, розовое небо | потягивается, зевает, ждёт завтрак |
| День | яркий, ясный | солнце / реальная погода | активен, играет, бедокурит |
| Вечер | золотой, тёплый | закат | спокоен, ластится |
| Ночь | синий сумрак + пятно лампы | звёзды, тьма | спит калачиком у лампы |
Плюс погода через геолокацию: пошёл дождь по-настоящему — идёт и за окном, кот сидит и смотрит на струи. И ритуалы возврата: утренний пуш «доброе утро, кот проснулся», вечерний — «сворачивается спать». Часы кормёжки — ждёт у миски.
Магия в том, что это твой день. Заглянул в обед — там день и кот играет; поздно ночью — кот спит калачиком при свете лампы, тихо. Весь мирок дышит в такт твоей жизни — не игрушка, которую открываешь, а сожитель, живущий в твоём времени.
Технически дёшево: сервер знает реальное время и погоду (геолокация из таба SDK), делит сутки на 4 фазы → под каждую своё состояние света (блендим лайтмапы + тонируем) + веса поведения кота + слой окна. Никакой магии, чистая логика на бэкенде — том самом «мозге питомца», что считает жизнь между визитами.
Модель, проверенная в Neko Atsume и Pocket Love: двухвалютность — заработанные баллы (кот «дарит» их за заботу) на базовые предметы, Stars на премиум. Много бесплатных путей получить предмет (ежедневные подарки, опциональная реклама «для нетерпеливых») — без давления.
Главное правило, и оно же защита от провала (урок Dreamlight Valley, которую обвинили в «cash grab»): ядро живости — всегда за бесплатные предметы. Кот играет, спит, ест — за баллы. За деньги только украшение и ускорение: косметика, редкая мебель, сезонный декор. Косметика не влияет на баланс — она продаёт идентичность и самовыражение, а сезонные предметы продаются заметно лучше обычных.
И тут замыкается наш прежний узел: обустроенная комната — это та самая сцена, куда придут коты друзей. Декор = самовыражение = «смотри, какой у меня уют» = повод показать = виральность. Экономика, долгая цель и социальность сходятся в одной точке — в комнате.
Клик по предметам в R3F — это raycasting (готовые onClick/onPointerOver на любом меше, свой слушатель писать не надо); дорого на каждый кадр — значит кастим по клику/таймеру, для десятка пропов это вообще не узкое место. Состояния предметов (полный/пустой, целый/раскиданный) держим как данные в стейте — меняем материал/позицию/видимость под-меша, не пересоздавая геометрию. Это же состояние питает «рекламу» умных объектов.
Бюджет вебвью: главный враг — не полигоны, а draw-calls (каждый уникальный материал — отдельный вызов). Значит атлас текстур и общие материалы, минимум прозрачности. Ориентир — кот-«герой» ~5 000 треугольников, вся комната с ~6–12 пропами держится в несколько десятков тысяч при аккуратных материалах. Для первого релиза — фиксированные слоты под предметы (как 5 слотов двора в Neko Atsume), а не свободная расстановка: проще, надёжнее, быстрее в продакшене.
Одна уютная обжитая комната · 6 предметов-нужд + 2–3 интерактивные мебели (диван/стеллаж/столик) + дешёвый декор (картины/ковёр/растение) · движок «умных объектов» вместо ручных реакций · бардак живёт по всей комнате · тёплый свет + окно-убежище · живость за баллы, красота за Stars · фиксированные слоты.
Здесь всё сходится в конкретику. Цель — первый полноценный самодостаточный релиз: не демо и не задел, а завершённый опыт, который можно показать людям и который доказывает главную ставку — питомец живой, и в него влюбляешься. Ниже: что входит, что осознанно НЕ входит, в каком порядке лепим и когда считаем готовым.
Открываешь — и у тебя есть кот, которого хочется любить, в уютной живой комнате, проживающей твой день. Его можно покормить, поиграть, погладить, прибрать за ним бардак; он реагирует, бедокурит, меняется от утра к ночи. Этого достаточно, чтобы поймать «то самое» чувство и захотеть вернуться. Всё остальное (друзья, ИИ, коллекция) — надстройки фазы 2, без которых первый релиз уже живёт.
Главная защита от утопания — честная граница. Слева то, что делает первый релиз живым; справа то, что мы намеренно откладываем, чтобы не размазаться.
Пушистый, параметрический мех, морда по детской схеме с глянцевыми глазами. ~10–15 анимаций (слоистый idle + эмоции + реакции + выходки).
Одна просторная уютная комната, открытый передок, подвижная камера (орбита/зум/гироскоп). Запечённый свет.
6 предметов-нужд + 2–3 интерактивные мебели. Движок «рекламы» — кот сам выбирает поведение.
Свет + окно + поведение по 4 фазам суток, погода через геолокацию.
Покормить, поиграть, погладить (хаптика), прибрать бардак.
Пуш-возврат от бота обязательно; эмодзи-статус ИЛИ стикерпак — один twist-канал.
Состояние на сервере, пересчёт по timestamp, баллы за заботу на базовые предметы.
Большая соц-фича — отдельная фаза, когда ядро доказано.
Платный слой фазы 2. В v1 — рукотворная база поведения.
Одна комната заморожена. Расширение — потом.
Один кот. Зоопарк и эволюция — фаза 2.
Можно в v1.1. Сначала баллы и базовая петля.
Отдельный продукт на том же движке, сильно позже.
Строго по твоей логике: сперва персонаж, потом комната. Но с одним обязательным шагом в самом начале — бенчмарком меха, пока на него не завязано всё остальное.
Кот-болванка с параметрическим shell-мехом → гоняем на целевом среднем телефоне в Telegram. Ловим 60 fps и старт, фиксируем бюджет density/length/quality. Если не сядет — включаем faux-fur (Fresnel). Делаем ПЕРВЫМ, чтобы не переделывать.
Blender: модель (mesh) → риг (скелет + блендшейпы лица) → мех → материалы (toon + мех, короче у морды) → набор анимаций (слоистый idle, эмоции, реакции, выходки). Главная инвестиция проекта.
Blender: мебель + декор (2–3 интерактивные, остальное дешёвая статика) → запекание света на 4 фазы суток (лайтмапы) → камера (орбита/зум/гироскоп).
«Реклама» действий + состояния предметов + привязка анимаций кота к предметам. Тут оживает бардак-механика.
Фазы света/окна/поведения по реальному времени + погода + ритуалы-пуши.
Состояние на сервере, пересчёт по timestamp, бот-пуши, баллы. Деплой на инфраструктуру.
Хаптика, звук, блик в глазах, мягкие переходы. Первые 60 секунд онбординга — чтобы «то самое» ловилось сразу.
Вся ставка на «питомец живой». Снимаем: львиная доля сил — в морду, мимику и анимацию; проверка на живых людях РАНО (не в конце), до вылизывания остального.
Снимаем фазой 0: ранний бенчмарк + параметрические ползунки + faux-fur как страховка. Не закладываем мех в остальное, пока не подтверждён.
Снимаем: бюджет ассетов (кот ~5k тр, атлас текстур, минимум материалов), запечённый свет, ленивая догрузка, стилизация вместо тяжести.
Снимаем жёсткой границей слева/справа. Любая новая идея по умолчанию — фаза 2, пока первый релиз не живёт.
Релиз готов не когда «сделаны все фичи», а когда проходит эти проверки.
Кот живой, морда цепляет, хочется просто смотреть. Живые люди в тесте улыбаются и хотят вернуться.
Свет и поведение меняются от утра к ночи, кот реагирует на тебя и бедокурит, зашёл после паузы — что-то натворил.
Старт ≤3 сек, приемлемый fps на целевом телефоне, пуш от бота реально возвращает в апп.
Пушистый кот, которого хочется любить, живёт свой день в уютной диораме — реагирует, бедокурит, зовёт обратно. Этого достаточно, чтобы поймать чувство. Всё остальное — фаза 2.
Основано на решениях табов 1–4: ниша «питомец ради эмоции» (01), возможности и рамки Telegram (02), герой-кот с параметрическим мехом (03), живая диорама с умными объектами и живым днём (04). Детальный план работ — в соседнем подтабе «В чём и где».
Разбивка всего продакшна по дисциплинам: каждая задача — чем и где делаем и что на выходе. Несущий пайплайн: 3D-часть лепим в Blender → экспорт в glTF/GLB → оживляем в вебе на React Three Fiber → «мозг» на бэкенде. Стек намеренно совпадает с твоими проектами (React/Vite, Hono, grammY, PostgreSQL, VPS) — меньше нового, быстрее старт.
Ускоряемся ИИ-генерацией (Higgsfield прямо в Blender / Meshy) — с разделением. Предметы, мебель, декор и комната (жёсткая статика) — генерим и слегка чистим: огромная экономия и точное попадание в лук. Кот-герой — генерим БАЗУ/концепт для скорости и образа, но риг + блендшейпы + анимации остаются крафтом (он должен деформироваться и эмоционировать — на этом вся ставка). Мех — рантайм-шейдер поверх, не из генерации. Важно: сперва концепт-картинка (мудборд) фиксирует стиль, затем всё 3D под неё — иначе ассеты не склеятся. Higgsfield гонится прямо в Blender-сцену (интегрировано), Meshy — запасной источник.
| Задача | В чём (инструмент) | Выход |
|---|---|---|
| Модель, low-poly ~5k тр | Blender (моделинг) | .blend → GLB |
| UV-развёртка | Blender | UV-раскладка |
| Текстуры: toon base + painted-fur (normal/roughness) | Substance Painter или ручная роспись в Blender/Procreate | PNG-карты |
| Мех — параметрический shell | Blender (референс) + рантайм-шейдер в R3F (GLSL, по мотивам fur-threejs) | шейдер + ползунки |
| Риг: скелет + кости ушей/хвоста | Blender (Rigify / кастом) | арматура в GLB |
| Мимика — блендшейпы | Blender (shape keys) | морф-таргеты |
| Глаза: 2D + блик-искра | спрайты в Procreate/Figma + шейдер (UV-swap) в R3F | атлас глаз + шейдер |
| Анимации ~10–15 (idle-слои, эмоции, реакции, выходки) | Blender (кейфрейм) | клипы в GLB |
| Дыхание / моргание | процедурно в R3F (кости/шейдер) | код |
| Задача | В чём | Выход |
|---|---|---|
| Комната (открытый передок) + мебель (2–3 интерактивные) | Blender | GLB |
| Декор-статика (картины/ковёр/растение/шторы) | Blender + готовый cozy-кит как база (Sketchfab/Fab) | GLB |
| Свет: запекание лайтмапов на 4 фазы суток | Blender (Cycles bake) | 4 набора lightmap-текстур |
| Атлас текстур (минимум draw-calls) | Blender / texture atlas | атлас |
| Задача | В чём |
|---|---|
| Каркас приложения | React + Vite + TypeScript |
| 3D-сцена, загрузка GLB, лайтмапы | React Three Fiber + Three.js + drei |
| Камера: орбита/зум/пан | drei (Controls) + жесты |
| Гироскоп (наклон → параллакс диорамы) | Telegram Gyroscope API (Bot API 8.0) |
| Мех-шейдер (shell, параметрический) | кастомный материал Three.js (GLSL) |
| Движок умных объектов («реклама» действий) | TypeScript-логика |
| Живой день (4 фазы: свет+окно+поведение) | клиент + сервер, блендинг лайтмапов |
| Стейт приложения | Zustand |
| Звук (мяу, мурлык, шорохи) | Howler.js / Web Audio |
| Хаптика (тактильное мурлыканье) | Telegram HapticFeedback API |
| TMA-интеграция: статус, шеринг, сенсоры | Telegram WebApp SDK (@telegram-apps/sdk) |
| Задача | В чём |
|---|---|
| API + состояние питомца | Hono (Node.js) — как в твоих проектах |
| БД: состояние, баллы, инвентарь предметов | PostgreSQL |
| Пересчёт «жизни между визитами» по timestamp | серверная логика |
| Бот + пуши-возврат | grammY (long-polling; +прокси, т.к. api.telegram.org с VPS в РФ заблокирован) |
| Погода для живого дня | внешний Weather API по геолокации |
| Платежи (Stars) — позже | Telegram Stars API (через Fragment на десктопе) |
| Задача | В чём / где |
|---|---|
| Хостинг | VPS (твой, vdsina) |
| Веб-сервер (статика SPA) | nginx + Mini-App CSP |
| Процессы (API, бот) | PM2 |
| Деплой | rsync / scp |
| Домен + регистрация Mini App | поддомен rkvartalnov.ru + Menu Button в @BotFather |
Figma — UI и 2D-ассеты (глаза, иконки). Midjourney / концепт-арт — мудборд и референсы кота перед моделингом (не в продакшн, а для попадания в образ). Meshy (опц.) — быстрая болванка меша как старт для скульпта. GitHub — версионирование (в отличие от текущих проектов — стоит завести с нуля).
Blender (модель · риг · блендшейпы · анимации · запекание света) → экспорт GLB + лайтмапы → React Three Fiber (рантайм-сцена, мех-шейдер, умные объекты, живой день) → Hono + PostgreSQL (состояние, пересчёт, баллы) → grammY (бот, пуши-возврат) → VPS · nginx · PM2 (деплой). Всё, кроме GitHub, — уже знакомый тебе стек.
Фаза 0 в Blender + R3F: кот-болванка с параметрическим мехом → экспорт GLB → сцена R3F → сборка в Telegram Mini App → бенчмарк на реальном телефоне. Пока мех не подтверждён на устройстве — остальное не лепим.