Path of Exhale: браузерная idle-RPG с PvP-ареной
Фанатская idle-игра по мотивам Path of Exile: бой идёт сам, игрок собирает героя, крафтит вещи орбами и дерётся с другими игроками на арене. От первого коммита до запуска на своём домене прошло три дня.
pathofexhale.comЗадача
В Path of Exile люди часами подбирают пассивки, камни умений и свойства предметов. Идея проекта: перенести это удовольствие в формат idle, где бой идёт в фоне, а игрок принимает решения между заходами. Игра должна была открываться в браузере на компьютере и телефоне, хранить прогресс на сервере и давать честные бои между живыми игроками.
Решение
Движок боя и правил написали на чистом TypeScript без привязки к интерфейсу. Он детерминирован: одинаковый seed даёт одинаковый бой, поэтому любую ошибку можно воспроизвести в тесте. Интерфейс собран на React 19, эффекты боя рисует Pixi.js. Сервер на Node.js хранит аккаунты и сохранения в PostgreSQL, отправляет письма и считает рейтинг. Всё работает в Docker на VPS в Санкт-Петербурге за Caddy с сертификатом Let's Encrypt.
Что есть в игре
Кампания из десяти актов: 144 зоны, 78 этапов с развилками и обязательные боссы, после финала акты можно переигрывать. Три класса, полное дерево пассивок, Лабиринт с восхождениями, крафт орбами и коллекция уникальных предметов. На PvP-арене игрок дерётся с ботом или с живым соперником, пары подбираются по рейтингу Эло, лучшие 50 игроков попадают в таблицу. Знаки за победы тратятся во внутриигровой лавке.
Телефон и аккаунты
Экраны проверены на ширине 390 px. На телефоне перетаскивание вещей заменено кнопками, сумка перестроена под узкий экран. Аккаунт включает регистрацию, подтверждение почты, сброс пароля и несколько персонажей. На экране входа видно, сколько игроков сейчас в сети и сколько всего зарегистрировано.
Как выкладываем
Новая версия уходит в прод одной командой. Скрипт берёт только основную ветку, прогоняет проверку типов и автотесты, сохраняет резервную копию кода, статики и базы, а затем обновляет сервер раньше клиента, чтобы новый клиент не отправил старому серверу сохранение новой версии. Автотесты лежат в 339 файлах и покрывают движок боя, сервер, экраны и симулятор баланса.
Технологии
Обсудим задачу
Расскажите о проекте — предложим решение и оценку
Посмотрим на задачу, процессы и бюджет и предложим, как её закрыть. Работаем по Fixprice или T&M.
- Телефон
- +7 (981) 894-98-79
- info@aimatik.ru
- Режим работы
- Пн–Пт, 9:00–19:00 МСК