Skip to content

Latest commit

 

History

History
134 lines (97 loc) · 10.3 KB

File metadata and controls

134 lines (97 loc) · 10.3 KB

Product Requirements Document (PRD): Zapuskalka

1. Введение

1.1. Сводка

Zapuskalka — это опенсорсный лаунчер и платформа для дистрибуции инди-игр и приложений. Цель проекта — создать удобный, современный и свободный инструмент для игроков и разработчиков, сочетающий в себе лучшие аспекты пользовательского опыта Steam и открытую, developer-friendly модель распространения itch.io.

1.2. Проблема

  • Для игроков: Существующие крупные платформы часто перегружены функциями, имеют закрытую экосистему и неудобны для управления большими библиотеками инди-игр, разбросанными по разным лаунчерам, Itch.io заблокирован на территориии РФ, что создает дополнительныый барьер для доступа к инди играм.
  • Для разработчиков: Высокие комиссии на крупных платформах, высокая стоимость создания страницы с игрой, сложности с публикацией и отсутствие прямого контакта с комьюнити. Itch.io решает многие из этих проблем, но его лаунчер уступает по удобству и функциональности клиенту Steam, а также недоступен на территориии РФ.

1.3. Видение продукта

Создать эталонный опенсорсный лаунчер, который станет главным домом для инди-игр: мощным и удобным для игроков, справедливым и открытым для разработчиков.

1.4. Целевая аудитория

  • Основная: Поклонники инди-игр, собирающие большие библиотеки.
  • Вторичная: Разработчики инди-игр, ищущие простой и честный способ распространения своих продуктов.
  • Третичная: Энтузиасты open-source и сторонники децентрализации цифрового контента.

2. Цели и метрики успеха (OKRs)

2.1. Цели для MVP (Release 1.0)

  • O1: Обеспечить базовый, но стабильный цикл "обнаружение-установка-запуск" для игр.
    • KR1: 95% успешных установок и запусков тестового набора игр.
    • KR2: 100% основных функций клиента работают без критических ошибок.
  • O2: Привлечь первых 1000 активных пользователей и 50 разработчиков для публикации своих игр.
    • KR1: 1000 зарегистрированных пользователей, из которых 300 установили хотя бы одну игру.
    • KR2: 50 игр, опубликованных непосредственно на платформе.

3. Функциональные требования

3.1. Release 1.0 (Минимально жизнеспособный продукт)

1. Аутентификация и управление профилем

  • Вход по одноразовому OTP-коду (email) с автоматическим созданием аккаунта при первом входе.
  • Вход через OAuth (Github/Twitch) с автоматической регистрацией при первом входе.
  • Восстановление доступа (повторная выдача OTP, смена или привязка OAuth-провайдера).
  • Базовая публичная страница профиля (никнейм, аватар).

2. Магазин

  • "Все игры": Единый каталог всех игр на платформе.
    • Общий список всех игр на платформе.
    • Поиск по названию.
    • Базовая фильтрация (по жанрам, тегам, платформам).

3. Библиотека игр

  • "Мои игры": Единый каталог всех игр пользователя.
    • Поиск по названию.
    • Базовая фильтрация (по жанрам, тегам, установленным играм).

4. Установка и управление играми

  • Процесс установки игры с детализированным прогресс-баром (скорость, оставшееся время, объем скачанного).
  • Указание пользовательских путей для установки (Настройка хранилищ).
    • Создание и управление несколькими "Библиотеками" (папками) на разных дисках.
    • Возможность выбрать библиотеку по умолчанию.
  • Фоновая загрузка с возможностью приостановки/возобновления.
  • Автоматическая проверка обновлений для установленных игр.
  • Удаление игр.

5. Страница игры в библиотеке

  • Название
  • Кнопка "Установить" / "Запустить" / "Обновить".
  • Кнопка с контекстным меню "Дополнительно"
    • Параметры запуска
    • Удалить с устройства
    • Удалить с аккаунта

6. Страница игры в Магазине

  • Обложка, описание, скриншоты, системные требования.
  • Кнопка "Купить" / Визуальный индикатор статуса "Есть в вашей библиотеке" [ссылка на страницу игры в библиотеке].
  • Информация о разработчике.

6. Бэкенд для разработчиков

  • Простой интерфейс для загрузки билдов игры (через раздел Разработчик програмаммы + API).
  • Указание версии, системных требований, описания.

3.2. Future Releases (Post-MVP)

Release 2.0: Улучшение социального опыта и управления

  • Система друзей (добавление, список, статус "В сети/В игре").
  • Чат (1 на 1, групповой).
  • Гибкие настройки загрузок (ограничение скорости, расписание активности).
  • Проверка целостности файлов игры.

Release 3.0: Монетизация и продвинутые функции для разработчиков

  • Интеграция проприетарного микросервиса оплаты.
    • Прямые продажи (единоразовая покупка).
    • "Плати сколько хочешь" (pay-what-you-want).
    • Управление ключами для активации.
  • Страницы разработчика.
  • Система новостей и обновлений для каждой игры.
  • Более продвинутая аналитика для разработчиков.

4. Нефункциональные требования (NFR)

  • Производительность:
    • Клиент должен потреблять не более 200 МБ оперативной памяти в простое.
    • Интерфейс должен откликаться на действия пользователя без видимых задержек (<100мс).
  • Безопасность:
    • Все пароли должны храниться в хешированном виде.
    • API-эндпоинты должны быть защищены от основных уязвимостей (SQL-инъекции, XSS).
  • Совместимость:
    • Поддержка Windows 10/11, Linux, MacOS.
    • Поддержка распространенных форматов (.exe / .app / .dmg) и архитектур (x86_64 / arm64 / unniversal).
  • Надежность:
    • Время бесперебойной работы (uptime) бэкенда — не менее 99.5%.
    • Клиент должен корректно восстанавливаться после разрыва соединения во время загрузки и выгрузки.
  • UX/UI:
    • Интерфейс должен быть интуитивно понятен для пользователей, знакомых с Steam.
    • Приложение должно поддерживать разрешения от 1280x720 и выше.

5. Архитектура и Open-Source модель

  • Клиент: Десктоп-приложение, написанное на Wails (для кроссплатформенности и использования веб-технологий). Vue в качестве фреймворка для UI.
  • Основной бэкенд: Go (Pocketbase). База данных — Sqlite (встроена в Pocketbase).
  • Хранение файлов: Объектное хранилище S3 (адаптер встроен в Pocketbase).
  • Open-Source:
    • Репозитории клиента и основного бэкенда будут публичными на GitHub под лицензией MPLv2.
    • Приветствуются пул-реквесты от сообщества.
    • Проприетарный микросервис оплаты будет выделен в отдельный, закрытый репозиторий и будет взаимодействовать с основным бэкендом через API.