Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Браузерна idle-гра в Telegram. Гравець будує космічну колонію єнотів: тераформує планети, видобуває ресурси, збирає кораблі, відправляє експедиції, ловить рідкісні події. Зробив один з нуля — від ідеї до прода.

Грати → @TerraRaccoonsBot

Ігрові механіки (30+)

1. Терраформінг планет - перетворення мертвих світів на житло
2. 10 унікальних планет (3D-канвас, 4 стани на кожну)
3. Дрони G1–G5 — видобувають ресурси, поки ти офлайн
4. Прокачування дронів за рівнями
5. 11 скіл з рандомною генерацією імен через гачу, скіли комбінуються
6. Клікер по дронах для активної гри
7. Станції - апгрейд сховищ та виробництва
8. Переміщення дронів між станціями
9. Кораблі 5 рідкісностей (G1-G5) з унікальною графікою
10. Гача-ящики на кораблі
11. Merge-система - об'єднання дублікатів у більш рідкісні
12. Ангар кораблів та дронів із сортуванням та фільтрами
13. Експедиції - 8 типів з різною тривалістю та нагородою, пряма взаємозв'язок з механікою кораблів
15. Прискорення та раннє завершення експедицій
16. VIP-система
17. Лідерборд
18. Маркетплейс - онлайн-угоди між гравцями
19. Глобальні події з повідомленнями в роботі (контракт єнотів, аномалія, древній сигнал, спотворення часу)
20. 20+ місій, щоденні та довгострокові
21. Прогрес планетами - відкриваються в міру зростання
22. Магазин бандлів із пакетами ресурсів
23. Преміум-валюта Terrafract
24. Конвертація ресурсів
25. Реклама для прискорення прогресу
26. Платежі через Telegram Stars та TON Wallet (у процесі)
27. 14 мов (ru, en, zh, tr, it, pl, pt, es, de, fr, ja, uk, ar, hi)
28. Авторизація одним тапом через Telegram
29. Офлайн-прогрес — нагороди збираються поки тебе немає
30. Onboarding для нових гравців
31. Анімації та ефекти при зборі нагород
32. Адаптивний мобільний інтерфейс
33. Повідомлення про готовність дронів та кораблів

Що відчуває гравець: заходиш на пару хвилин п'ять разів на день і щоразу отримуєш щось нове – ресурси накопичилися, експедиція повернулася, випав рідкісний корабель. Без агресивних пейволів: можна грати безкоштовно, донат прискорює, але не обов'язковий.

## Технічна частина

Стек: React 18, Vite, Zustand, Tailwind CSS / Node.js, Express, TypeScript, SQLite / JWT поверх Telegram initData / Winston / VDS на Linux, nginx, PM2 cluster.

Архітектура:

- SSOT на фронті. Один Zustand-стор зберігає весь стан, компоненти підписуються на зрізи. Ніякого дублювання між useState і сервером.
- Hot-domain на беку. In-memory кеш поверх SQLite для гарячих операцій (збирання ресурсів, переміщення дронів, тики станцій) з відкладеним записом через FlushScheduler - БД не задихається під навантаженням.
- Тонкі контролери, товстий домен. Роути лише парсять запит і звуть доменні функції, бізнес-логіка тестується без HTTP.
- Динамічні чанки i18n. Кожна мова в окремому файлі вантажиться на вимогу - стартовий бандл не роздутий на 14 локалей.
- ErrorBoundary з читаним висновком. Помилки рендеру ловляться і показуються на екрані зі стеком замість синього екрану. Критично для Telegram WebView без DevTools.
- Anti-abuse багатошаровий. Експедиції захищені гейтом із прогресу, вимогою тераформінгу, повторною перевіркою події при зборі, нерфом експлойтних типів.

Симулятор економіки. Окремий інструмент, що проганяє сотні віртуальних гравців та вважає ROI джерел, retention, convergence, profitability gap для F2P та платників. Використовував для трьох великих ребалансів (V1→V2→V3→soft-deficit), щоб досягти рівного ROI всіх 11 джерел та стоків при круглих числах.

Деплой. Одна команда: git pull & pm2 restart terra-backend & cd terra-gaming & npm run build. Фронт та бек на одному VDS, nginx роздає статику, проксує /api на Express. Без Docker і CI/CD - полагодити можна руками за хвилину.

Що зробив: прототип у фігмі, 3д ассети, Архітектура, БД, API, фронтенд, UI/UX, економіка, балансування, деплой, адмінка. Гра в закритій беті.
Деталі роботи
Додано 11 квітня
93 перегляди
Фрилансер
Vadim A.
Україна Україна  1  0

Вільний для роботи Вільний для роботи
1 Сейф завершений
На сервісі 2 місяці 20 днів