НЕ ТАПАЙ!
Тапни
Я ЖЕ СКАЗАЛ НЕ ТАПАТЬ!
Тапнуть ещё раз
Сейчас в свободное время я подрабатываю и параллельно разрабатываю свою Practice-сборку. Два месяца назад я выпустил этот эксперимент, и теперь на его основе решил переработать архитектуру проекта.
Главная идея — полностью разделить UI/UX и игровой сервер.
Сайт отвечает за взаимодействие с игроком (кейсы, подбор противников, система друзей и т.д., а-ля Faceit/FastCup), а Minecraft-сервер — исключительно за геймплей.
Как это работает?
Игрок заходит на сайт и нажимает кнопку подбора матча. После нахождения игры начинается этап банов: игроки по очереди исключают режимы, пока не останется один. Выбранный режим и состав игроков сохраняются в Redis, после чего сайт предлагает им зайти на сервер.
При входе сервер уже знает, кто это и куда их отправить — игроки автоматически попадают на нужный подсервер и арену. Далее начинается матч: сервер передаёт бэкенду информацию о состоянии игры, результатах и других событиях. (Короче говоря, бэкенд — единственный источник истины)
Текущий статус
Клиент будет на React + Vite (Node.js), с обёртками под десктоп на Tauri и под мобильные устройства на Capacitor.
Бэкенд на FastAPI (Python), игровой сервер на Lumi, а прокси игрового сервера — WaterdogPE.
Клиент активно разрабатывается, бэкенд готов примерно на 70%, игровой сервер будет дорабатываться в финальной стадии.
Параллельно ищу билдеров для арен и дикторов для анонсера на сайте (даже не смейте мне писать по поводу предложений).
Ну вы поняли крч. Если этот пост наберёт 70 лайков, я выложу проект с подробной инструкцией по установке.

