FireRunner

Командная практическая работа Яндекс Практикум по курсу middle frontend-разработчика: https://praktikum.yandex.ru/middle-frontend/


Описание проекта

Игра

FireRunner - «Огненный бегун» — это захватывающая аркада, где игроку предстоит управлять бегущим персонажем, который уворачивается от огненного дождя и преодолевает разнообразные препятствия на пути для сохранения своей жизни. Управление осуществляется с помощью кнопок клавиатуры W/Space/↑, A/←, S/↓, D/→, поддерживается геймпад или сенсорный ввод.

Preview

preview

Документация

Установка и запуск

Перед началом работы установите все требуемые пакеты:

  • npm install — установка всех требуемых пакетов

Сборка Docker Compose образов включает в себя три контейнера:

  • prakticum-client - клиентская часть веб-приложения (скрипты и статика для браузера)
  • prakticum-server - серверная часть веб-приложения (API для клиентской части)
  • postgres - база данных для хранения пользовательских настроек и данных форума
1. Заполнение параметров .env.sample в .env

Приложению необходимо указать переменные среды для запуска. Для локальной разработки необходимо создать .env файл в той же директории, что и данный файл (README.md). Docker-compose автоматически подтянет указанные переменные из .env файла. Значения переменных можно забрать из .env.sample или ввести свои

cp .env.sample .env

Файл .env по умолчанию игнорируется git.

2. Сборка и запуск Docker-контейнеров

docker-compose up

Порты образов по умолчанию:

  • prakticum-client: 3000
  • prakticum-server: 3001
  • postgres: 5432
3. Режим разработки

Для режима разработки необходим запущенный контейнер postgres для корректной работы с базой данных. Остальные контейнеры не обязательны к запуску.

  • Убедитесь что у вас установлен node, yarn и docker
  • Выполните команду yarn bootstrap - это обязательный шаг
  • Выполните команду yarn dev
  • Выполните команду yarn dev --scope=client чтобы запустить только клиент
  • Выполните команду yarn dev --scope=server чтобы запустить только server

Прогресс

Спринт 9

  • SEK-41 Реализована механика проскальзывания и быстрого падения игрока
  • SEK-42 Бонус на иммунитет от огненного дождя и на замедление скорости игры
  • SEK-55 Добавление вывода игровой информации (индикатор прыжка и т.п.)
  • SEK-59 Приложение сконфигурировано и размещено в Yandex Cloud
  • SEK-54 Настроены SSL, HTTPS, HTTP/2

Спринт 8

  • SEK-46 Серверная инфраструктура Docker Compose
  • SEK-44 Добавлена поддержка сенсора и геймпада в игре
  • SEK-47 Реализовано API для форума (подключен PostgreSQL)
  • SEK-52 Подключено API форума на клиенте
  • SEK-48 Переключение тем (клиентская часть)
  • SEK-51 Переключение темы (бэкенд)

Спринт 7

  • SEK-38 Настроен Express для Server Side Rendering
  • SEK-39 Настроен Redux и Router в SSR
  • SEK-40 Добавлена OAuth-авторизация
  • SEK-35 Добавлено API для лидерборда.
  • SEK-36 Добавлено звуковое сопровождение в игре (Web Audio API)
  • SEK-37 Приложение проверно на утечки памяти, проблем не найдено (отчет)

Спринт 6

  • SEK-23 Документ с описанием механик и логики игры
  • SEK-22 Завершена вёрстка страницы пользователя
  • SEK-27 Реализована одна из игровых механик, описанных в документе с логикой игры
  • SEK-20 Завершена вёрстка страницы лидерборда
  • SEK-24 Завершена вёрстка экрана завершения игры
  • SEK-32 Добавлено FullscreenAPI
  • SEK-28 Реализовано состояние «Начало» и состояние «Завершение игры»
  • SEK-29 Подготовлена визуальная часть игры
  • SEK-30 Добавлена технология Service Workers
  • SEK-34 Добавлены тесты на игровой движок + UI
  • SEK-17 Завершена вёрстка страницы форума

Спринт 5

  • SEK-10 Настроено окружение в первом боевом приближении (webpack, eslint, stylelint, typescript, server, husky)
  • SEK-25 Настроена обработка ошибок внутри «детей» React-компонентов
  • SEK-33 Добавлено Redux-хранилище: - данные хранятся и обрабатываются через Redux - состояния приложения хранятся в сторе
  • SEK-31 Авторизация проверяется через отдельно написанный НОС
  • SEK-16 Реализована логика авторизации
  • SEK-12 Завершена вёрстка главной страницы игры: мини-лендинг с презентацией игры
  • SEK-21 Завершена вёрстка экрана с началом игры — обратный отсчёт, лоадер
  • SEK-14 Завершена вёрстка страницы ошибок 500
  • SEK-13 Завершена вёрстка страницы ошибок 400
  • SEK-19 Завершена вёрстка страницу регистрации
  • SEK-15 Завершена вёрстка страницы логина
  • SEK-11 Отображение страниц, используя React Router и React Router DOM
  • SEK-26 Реализована механика игры на Canvas API

Команда

SEKTA