Files
game-marathon/CONCEPT.md
2025-12-14 02:42:32 +07:00

13 KiB
Raw Permalink Blame History

Game Marathon — Концепция

Общее описание

Game Marathon — закрытая платформа для проведения игровых марафонов среди друзей (~10 человек), где за месяц нужно набрать максимум очков, выполняя случайные челленджи в случайных играх.

Ключевые особенности

  • Колесо рандома (игра → челлендж)
  • Игры добавляют сами участники + ссылки на скачивание
  • Челленджи генерирует нейросеть (интегрированное API)
  • Пруфы обязательны (скриншоты/видео/Steam ачивки) — загружаются на сервер
  • Социальные механики (вызовы, ставки, события)
  • Уведомления через Telegram-бота
  • Авторизация по логину/паролю

Жизненный цикл марафона

Фаза 1: Подготовка (3-7 дней до старта)

Действия участников:

  1. Присоединяются к марафону (по ссылке-приглашению)
  2. Добавляют игры (название + ссылка на скачивание + обложка)
  3. Когда все готовы — организатор "закрывает" список игр
  4. Система (нейросеть) генерирует челленджи для каждой игры
  5. Участники могут посмотреть/предложить правки к челленджам
  6. Организатор запускает марафон

Добавление игры включает:

  • Название игры
  • Ссылка на скачивание (для платных игр — сторонние ресурсы)
  • Обложка (загрузка или URL)
  • Жанр (опционально)

Фаза 2: Генерация челленджей

После закрытия списка игр — автоматический запрос к API нейросети.

Для каждой игры генерируется 5-7 челленджей:

  • 2 лёгких (15-30 минут)
  • 2-3 средних (1-2 часа)
  • 1-2 сложных (3+ часов)

Каждый челлендж содержит:

  • Название
  • Описание
  • Тип (completion/no-death/speedrun/collection/achievement/etc)
  • Примерное время выполнения
  • Способ проверки (скриншот/видео/Steam ачивка)
  • Количество очков

После генерации участники могут предложить правки или добавить свои челленджи.

Фаза 3: Активный марафон (1 месяц)

Процесс выполнения:

1. Крутишь колесо игр
         ↓
   Выпадает случайная игра
         ↓
2. Крутишь колесо челленджей (для этой игры)
         ↓
   Выпадает случайный челлендж
         ↓
3. Выбор:
   • Принять → идёшь выполнять
   • Дроп → штраф, крутишь заново
         ↓
4. Выполняешь задание
         ↓
5. Загружаешь пруф (скрин/видео/ссылка на Steam профиль)
         ↓
6. Получаешь очки + streak продолжается
         ↓
7. Можешь крутить снова

Система очков

Базовые очки

Зависят от сложности челленджа (определяет нейросеть при генерации):

Сложность Очки
Лёгкий 30-50
Средний 60-100
Сложный 120-200

Streak бонус

Последовательное выполнение заданий без дропов:

Streak Бонус
1 +0%
2 +10%
3 +20%
4 +30%
5+ +40% (максимум)

Дроп штрафы

Прогрессивная система штрафов:

Дроп # Штраф
1 Бесплатно (streak сбрасывается)
2 -10 очков
3 -25 очков
4 -50 очков
5+ -50 очков + кулдаун 2 часа

Штрафы сбрасываются после успешного выполнения задания.


Подтверждение выполнения

Типы пруфов

  • Скриншот — загружается на сервер
  • Видео — загружается на сервер или ссылка (YouTube)
  • Steam Achievement — ссылка на профиль Steam с ачивкой

Процесс верификации

  1. Участник загружает пруф + опциональный комментарий
  2. Пруф виден всем участникам в ленте активности
  3. Любой участник может "оспорить" пруф (если считает невалидным)
  4. Если нет споров за 24 часа — автоматически засчитывается
  5. При споре — голосование участников или решение организатора

Социальные механики

Лента активности

Отображает в реальном времени:

  • Выполненные челленджи (с пруфами)
  • Дропы
  • Кто крутит колесо и что выпало
  • События марафона
  • Вызовы между участниками

Вызов (Challenge)

Когда участник выполнил челлендж, другие могут "вызвать" себя на тот же:

  • Вызов заменяет текущее активное задание
  • Награда: стандартные очки за челлендж
  • Бонус: +30 очков если выполнить быстрее оригинального исполнителя

Ставка (Bet)

Перед началом выполнения участник может поставить часть своих очков:

  • Выполнил: награда + ставка x2
  • Дропнул/провалил: теряет ставку

Варианты ставок: 0 / 25 / 50 / 100 очков


Система событий

Случайные события во время марафона (1-2 раза в неделю). Могут запускаться автоматически или вручную организатором.

Событие Описание Длительность
Золотой час Все очки x1.5 30-60 минут
Общий враг Все получают одинаковое задание, топ-3 = бонус До выполнения
Двойной риск Дропы бесплатны, но очки x0.5 2 часа
Джекпот Следующему кто крутит — гарантированно сложный челлендж с x3 очками 1 спин
Обмен Можно поменяться заданием с другим участником 1 час
Реванш Можно переделать любой свой проваленный челлендж за 50% очков 4 часа

Таблица лидеров

Отображает для каждого участника:

  • Место в рейтинге
  • Общее количество очков
  • Текущий streak
  • Количество выполненных челленджей
  • Количество дропов

Модель данных

User (Пользователь)

- id
- login
- password_hash
- nickname
- avatar
- telegram_id (для уведомлений)
- created_at

Marathon (Марафон)

- id
- title
- description
- organizer_id (User)
- start_date
- end_date
- status: preparing | active | finished
- invite_code
- settings (JSON: события вкл/выкл, etc)
- created_at

Participant (Участник марафона)

- id
- user_id
- marathon_id
- total_points
- current_streak
- drop_count (текущий счётчик для штрафов)
- joined_at

Game (Игра)

- id
- marathon_id
- title
- cover_image (путь к файлу на сервере)
- download_link
- genre
- added_by (User)
- created_at

Challenge (Челлендж)

- id
- game_id
- title
- description
- type: completion | no_death | speedrun | collection | achievement | challenge_run | score_attack | time_trial
- difficulty: easy | medium | hard
- points
- estimated_time (в минутах)
- proof_type: screenshot | video | steam_achievement
- is_generated (boolean — создан AI или вручную)
- created_at

Assignment (Задание — выпавшее участнику)

- id
- participant_id
- challenge_id
- status: active | completed | dropped
- proof_file (путь к файлу на сервере)
- proof_url (опционально — ссылка)
- proof_comment
- points_earned
- bet_amount
- started_at
- completed_at

Event (Событие)

- id
- marathon_id
- type: golden_hour | common_enemy | double_risk | jackpot | swap | rematch
- start_time
- end_time
- is_active
- data (JSON — доп. данные события)

Dispute (Оспаривание пруфа)

- id
- assignment_id
- raised_by (User)
- reason
- status: open | resolved_valid | resolved_invalid
- resolved_by (User — организатор или голосование)
- created_at
- resolved_at

Уведомления (Telegram-бот)

Типы уведомлений

  • Марафон скоро начнётся
  • Кто-то выполнил челлендж
  • Тебя вызвали на челлендж
  • Твой пруф оспорен
  • Началось событие (Золотой час и т.д.)
  • Напоминание: у тебя нет активного задания
  • Марафон завершён — итоги

Настройки

Пользователь может включить/выключить отдельные типы уведомлений.


Технические решения

Аспект Решение
Авторизация Логин/пароль
Хранение пруфов Загрузка на сервер
Уведомления Telegram-бот
Генерация челленджей Интегрированное API нейросети
Формат марафона 1 месяц (с перспективой других режимов)

Перспективы развития

Дополнительные режимы марафонов

  • Sprint (4-12 часов) — интенсивный формат
  • Daily Challenge (1 неделя) — по 1-3 задания в день
  • Tournament — несколько раундов, выбывание

Дополнительные механики

  • Колесо модификаторов (без звука, одной рукой, и т.д.)
  • Командные марафоны (2v2, 3v3)
  • Глобальная статистика и достижения пользователя
  • Рейтинговая система игроков

UI/UX — Основные экраны

  1. Главная — список марафонов (активные, завершённые)
  2. Авторизация — вход/регистрация
  3. Создание марафона — форма с настройками
  4. Лобби марафона — подготовка, добавление игр
  5. Колесо — основной геймплей (спин игры → спин челленджа)
  6. Текущее задание — детали + загрузка пруфа
  7. Лента активности — действия всех участников
  8. Таблица лидеров — рейтинг участников
  9. История заданий — все выполненные/дропнутые
  10. Профиль — настройки, статистика