Zapuskalka — это опенсорсный лаунчер и платформа для дистрибуции инди-игр и приложений. Цель проекта — создать удобный, современный и свободный инструмент для игроков и разработчиков, сочетающий в себе лучшие аспекты пользовательского опыта Steam и открытую, developer-friendly модель распространения itch.io.
- Для игроков: Существующие крупные платформы часто перегружены функциями, имеют закрытую экосистему и неудобны для управления большими библиотеками инди-игр, разбросанными по разным лаунчерам, Itch.io заблокирован на территориии РФ, что создает дополнительныый барьер для доступа к инди играм.
- Для разработчиков: Высокие комиссии на крупных платформах, высокая стоимость создания страницы с игрой, сложности с публикацией и отсутствие прямого контакта с комьюнити. Itch.io решает многие из этих проблем, но его лаунчер уступает по удобству и функциональности клиенту Steam, а также недоступен на территориии РФ.
Создать эталонный опенсорсный лаунчер, который станет главным домом для инди-игр: мощным и удобным для игроков, справедливым и открытым для разработчиков.
- Основная: Поклонники инди-игр, собирающие большие библиотеки.
- Вторичная: Разработчики инди-игр, ищущие простой и честный способ распространения своих продуктов.
- Третичная: Энтузиасты open-source и сторонники децентрализации цифрового контента.
- O1: Обеспечить базовый, но стабильный цикл "обнаружение-установка-запуск" для игр.
- KR1: 95% успешных установок и запусков тестового набора игр.
- KR2: 100% основных функций клиента работают без критических ошибок.
- O2: Привлечь первых 1000 активных пользователей и 50 разработчиков для публикации своих игр.
- KR1: 1000 зарегистрированных пользователей, из которых 300 установили хотя бы одну игру.
- KR2: 50 игр, опубликованных непосредственно на платформе.
1. Аутентификация и управление профилем
- Вход по одноразовому OTP-коду (email) с автоматическим созданием аккаунта при первом входе.
- Вход через OAuth (Github/Twitch) с автоматической регистрацией при первом входе.
- Восстановление доступа (повторная выдача OTP, смена или привязка OAuth-провайдера).
- Базовая публичная страница профиля (никнейм, аватар).
2. Магазин
- "Все игры": Единый каталог всех игр на платформе.
- Общий список всех игр на платформе.
- Поиск по названию.
- Базовая фильтрация (по жанрам, тегам, платформам).
3. Библиотека игр
- "Мои игры": Единый каталог всех игр пользователя.
- Поиск по названию.
- Базовая фильтрация (по жанрам, тегам, установленным играм).
4. Установка и управление играми
- Процесс установки игры с детализированным прогресс-баром (скорость, оставшееся время, объем скачанного).
- Указание пользовательских путей для установки (Настройка хранилищ).
- Создание и управление несколькими "Библиотеками" (папками) на разных дисках.
- Возможность выбрать библиотеку по умолчанию.
- Фоновая загрузка с возможностью приостановки/возобновления.
- Автоматическая проверка обновлений для установленных игр.
- Удаление игр.
5. Страница игры в библиотеке
- Название
- Кнопка "Установить" / "Запустить" / "Обновить".
- Кнопка с контекстным меню "Дополнительно"
- Параметры запуска
- Удалить с устройства
- Удалить с аккаунта
6. Страница игры в Магазине
- Обложка, описание, скриншоты, системные требования.
- Кнопка "Купить" / Визуальный индикатор статуса "Есть в вашей библиотеке" [ссылка на страницу игры в библиотеке].
- Информация о разработчике.
6. Бэкенд для разработчиков
- Простой интерфейс для загрузки билдов игры (через раздел Разработчик програмаммы + API).
- Указание версии, системных требований, описания.
Release 2.0: Улучшение социального опыта и управления
- Система друзей (добавление, список, статус "В сети/В игре").
- Чат (1 на 1, групповой).
- Гибкие настройки загрузок (ограничение скорости, расписание активности).
- Проверка целостности файлов игры.
Release 3.0: Монетизация и продвинутые функции для разработчиков
- Интеграция проприетарного микросервиса оплаты.
- Прямые продажи (единоразовая покупка).
- "Плати сколько хочешь" (pay-what-you-want).
- Управление ключами для активации.
- Страницы разработчика.
- Система новостей и обновлений для каждой игры.
- Более продвинутая аналитика для разработчиков.
- Производительность:
- Клиент должен потреблять не более 200 МБ оперативной памяти в простое.
- Интерфейс должен откликаться на действия пользователя без видимых задержек (<100мс).
- Безопасность:
- Все пароли должны храниться в хешированном виде.
- API-эндпоинты должны быть защищены от основных уязвимостей (SQL-инъекции, XSS).
- Совместимость:
- Поддержка Windows 10/11, Linux, MacOS.
- Поддержка распространенных форматов (.exe / .app / .dmg) и архитектур (x86_64 / arm64 / unniversal).
- Надежность:
- Время бесперебойной работы (uptime) бэкенда — не менее 99.5%.
- Клиент должен корректно восстанавливаться после разрыва соединения во время загрузки и выгрузки.
- UX/UI:
- Интерфейс должен быть интуитивно понятен для пользователей, знакомых с Steam.
- Приложение должно поддерживать разрешения от 1280x720 и выше.
- Клиент: Десктоп-приложение, написанное на Wails (для кроссплатформенности и использования веб-технологий). Vue в качестве фреймворка для UI.
- Основной бэкенд: Go (Pocketbase). База данных — Sqlite (встроена в Pocketbase).
- Хранение файлов: Объектное хранилище S3 (адаптер встроен в Pocketbase).
- Open-Source:
- Репозитории клиента и основного бэкенда будут публичными на GitHub под лицензией MPLv2.
- Приветствуются пул-реквесты от сообщества.
- Проприетарный микросервис оплаты будет выделен в отдельный, закрытый репозиторий и будет взаимодействовать с основным бэкендом через API.