13 KiB
Game Marathon — Концепция
Общее описание
Game Marathon — закрытая платформа для проведения игровых марафонов среди друзей (~10 человек), где за месяц нужно набрать максимум очков, выполняя случайные челленджи в случайных играх.
Ключевые особенности
- Колесо рандома (игра → челлендж)
- Игры добавляют сами участники + ссылки на скачивание
- Челленджи генерирует нейросеть (интегрированное API)
- Пруфы обязательны (скриншоты/видео/Steam ачивки) — загружаются на сервер
- Социальные механики (вызовы, ставки, события)
- Уведомления через Telegram-бота
- Авторизация по логину/паролю
Жизненный цикл марафона
Фаза 1: Подготовка (3-7 дней до старта)
Действия участников:
- Присоединяются к марафону (по ссылке-приглашению)
- Добавляют игры (название + ссылка на скачивание + обложка)
- Когда все готовы — организатор "закрывает" список игр
- Система (нейросеть) генерирует челленджи для каждой игры
- Участники могут посмотреть/предложить правки к челленджам
- Организатор запускает марафон
Добавление игры включает:
- Название игры
- Ссылка на скачивание (для платных игр — сторонние ресурсы)
- Обложка (загрузка или 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 с ачивкой
Процесс верификации
- Участник загружает пруф + опциональный комментарий
- Пруф виден всем участникам в ленте активности
- Любой участник может "оспорить" пруф (если считает невалидным)
- Если нет споров за 24 часа — автоматически засчитывается
- При споре — голосование участников или решение организатора
Социальные механики
Лента активности
Отображает в реальном времени:
- Выполненные челленджи (с пруфами)
- Дропы
- Кто крутит колесо и что выпало
- События марафона
- Вызовы между участниками
Вызов (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 — Основные экраны
- Главная — список марафонов (активные, завершённые)
- Авторизация — вход/регистрация
- Создание марафона — форма с настройками
- Лобби марафона — подготовка, добавление игр
- Колесо — основной геймплей (спин игры → спин челленджа)
- Текущее задание — детали + загрузка пруфа
- Лента активности — действия всех участников
- Таблица лидеров — рейтинг участников
- История заданий — все выполненные/дропнутые
- Профиль — настройки, статистика