Платформа: Telegram Mini Apps.
Состояние: Стабильный MVP
Стек технологий
Клиент: Vanilla JS, Three.js r128 (WebGL), Socket.IO Client.
Сервер: Node.js, Express, Socket.IO.
База данных: SQLite3 (файл game.db).
Инфраструктура: Ubuntu VPS, PM2 (фоновый запуск), Nginx (прокси), Certbot (SSL/HTTPS), домен DuckDNS.
Ключевые механики и Архитектура
Оптимизация сети (Анти-лаг): Координаты отправляются 15 раз в секунду (каждые 60мс). На клиенте работает Интерполяция (Lerp) — модельки врагов плавно скользят к нужной точке, сглаживая любые скачки пинга.
Умные коллизии: Стрельба (Raycaster) просчитывается на клиенте. Чтобы телефон не тормозил, пули попадают не в сложную 3D-модель (SkinnedMesh), а в скрытый цилиндр-хитбокс вокруг каждого игрока и зомби.
Анимации и Визуал: Написан авто-плеер скелетных анимаций (бег, ходьба, простой). Работают мягкие тени от солнца (DirectionalLight).
UI / UX: Мобильный интерфейс в стиле PUBG Mobile (джойстик слева, кнопки дугой справа, полупрозрачные панели, адаптировано под "шапку" Телеграма).
Матчмейкинг: Сервер автоматически создает новые арены по мере заполнения (лимит — 15 человек). Работают инвайт-ссылки через параметр startapp в Telegram.
Экономика и База данных (SQLite)
Идентификация: Игроки сохраняются по уникальному tgId (Telegram User ID).
Заработок: +5 монет за зомби, +50 монет за реального игрока. Приветственный бонус 1000 монет (1500 по инвайту).
Магазин (Арсенал):
Прокачка: Здоровье (+20 ХП за уровень) и Скорость (+10% за уровень)
Оружие: Покупка мощной Снайперской винтовки
Косметика: Покупка "Золотого скина" (меняет материал модели на сверкающий металл с поддержкой анимаций скелета)