1. Общая информация
Название проекта: Global Capitalization
Тип игры: Экономический MMO-симулятор
Платформа: Браузер (ПК)
Технологии: Node.js, PostgreSQL с расширением PostGIS, Overpass API для работы с OSM
2. Игровой слой и интеграция с OpenStreetMap
Backend должен обеспечивать:
Обработку и хранение данных для отображения игровых объектов (здания, улицы, города, области, страны).
Интерактивные элементы для отображения информации о владельцах, контрактах, радиусах действия и уровнях улучшений.
Интеграция с OpenStreetMap для наложения игрового слоя с помощью Leaflet.js.
3. Основные задачи
Обработка игровых данных: владения, контракты, улучшения, экономика.
Логика расчётов: капитализация, прибыль, налоги.
Геоданные: обработка улиц, городов, областей, стран.
Авторизация: через VK API.
REST API: для взаимодействия с frontend.
Модуль чатов: глобальные чаты по объектам, приватные сообщения.
Реальное время: WebSocket для мгновенного обмена сообщениями.
Тестирование: ограничение на первую территорию — Россия.
4. Структура базы данных
Пользователи: ID, VK ID, никнейм, капитализация, достижения.
Объекты недвижимости: здания, улицы, города, области, страны (связь через иерархию ID).
Владения: пользователь, объект, дата покупки, статус.
Контракты: тип (покупка/аренда), стороны сделки, условия.
История событий: операции, улучшения, сделки.
Налоговые данные: начисления, выплаты, бонусы, штрафы.
Чаты: сообщения, управление чат-комнатами (ID объекта, тип чата, участники).
5. Логика экономики
Капитализация объектов:
Формула для зданий:
(Базовая цена × Площадь) × (1 + Процент улучшения)^Уровень × (1 + Средний уровень ÷ 100) × (1 + Коэффициент заселённости)
Для улиц, городов, областей и стран: сумма стоимости нижестоящих объектов с бонусами.
Обновление раз в неделю.
Прибыль объектов:
Начисление ежесекундно:
Жилые: 8% в день
Коммерческие: 12% в день
Промышленные: 12% в день
Социальные: 6% в день
Учёт бонусов от соседних объектов.
Налоги:
Иерархия налогов от зданий к стране: 10% → 40%.
Налоги рассчитываются и списываются ежесекундно.
Улучшения:
Стоимость улучшений: процент от капитализации объекта.
Время улучшений зависит от площади и уровня объекта.
Логика ограничений на максимальный уровень.
Радиус действия объектов:
Формула:
Площадь ÷ 10 × Коэффициент + (100 × Уровень)
Обновление радиусов при изменении уровня объекта.
Контракты и аукционы:
Создание, изменение и закрытие контрактов.
Поддержка аукционов с таймерами и ставками.
Учёт комиссий и налогов при сделках.
6. API для взаимодействия с frontend
/auth/vk — авторизация через VK.
/objects/ — работа с объектами (получение информации, улучшение, продажа).
/contracts/ — управление контрактами и аукционами.
/economy/ — расчёт прибыли и капитализации.
/statistics/ — предоставление статистики (капитализация, прибыль, налоги и т.д.).
/chat/messages — отправка и получение сообщений.
/chat/rooms — создание и управление чат-комнатами.
/chat/private — отправка приватных сообщений.
/chat/moderation — управление модерацией чатов.
/map/objects — данные об объектах и игровых параметрах.
/map/layers — данные о радиусах действия, статусах владений.
/notifications/ — уведомления об изменениях во владениях.
Методы API: GET, POST, PUT, DELETE с поддержкой фильтрации и пагинации.
7. Системные требования
Производительность: поддержка до 10,000 активных пользователей одновременно.
Безопасность: авторизация через JWT, шифрование данных, защита от спама и злоупотреблений.
8. Логи и мониторинг
Логирование событий: изменения владений, сделки, прибыль.
Логирование сообщений чатов для мониторинга.
Мониторинг состояния сервера и базы данных.
9. Тестирование и деплой
Юнит-тесты для расчётов экономики.
Интеграционные тесты для API.
Тестирование чатов и уведомлений в реальном времени.
Автоматизация деплоя (CI/CD).
9. Пожелания
ТЗ может быть дополнено (по согласованию).
Бюджет можно обоснованно увеличить.
Не стесняйтесь давать советов или задавать вопросы, здесь или лично.
Заказ получит специалист выражающий достаточную вовлечённость в проект и открытый к общению.
После релиза будет заказ на дальнейшее развитие.