Командная практическая работа Яндекс Практикум по курсу middle frontend-разработчика: https://praktikum.yandex.ru/middle-frontend/
FireRunner - «Огненный бегун» — это захватывающая аркада, где игроку предстоит управлять бегущим персонажем, который уворачивается от огненного дождя и преодолевает разнообразные препятствия на пути для сохранения своей жизни. Управление осуществляется с помощью кнопок клавиатуры W/Space/↑, A/←, S/↓, D/→, поддерживается геймпад или сенсорный ввод.
- Игровой движок - Описание игрового движка
- Сценарий игры - Разработка сценария игры
- Порядок работы с проектом - Описания порядка работы с проектом
- Структура проекта - Описания структуры и порядка добавления нового функционала
Перед началом работы установите все требуемые пакеты:
npm install
— установка всех требуемых пакетов
Сборка Docker Compose образов включает в себя три контейнера:
prakticum-client
- клиентская часть веб-приложения (скрипты и статика для браузера)prakticum-server
- серверная часть веб-приложения (API для клиентской части)postgres
- база данных для хранения пользовательских настроек и данных форума
Приложению необходимо указать переменные среды для запуска.
Для локальной разработки необходимо создать .env
файл в той же директории, что и данный файл (README.md
).
Docker-compose автоматически подтянет указанные переменные из .env
файла.
Значения переменных можно забрать из .env.sample
или ввести свои
cp .env.sample .env
Файл .env
по умолчанию игнорируется git.
docker-compose up
Порты образов по умолчанию:
prakticum-client: 3000
prakticum-server: 3001
postgres: 5432
Для режима разработки необходим запущенный контейнер postgres
для корректной работы с базой данных. Остальные контейнеры не обязательны к запуску.
- Убедитесь что у вас установлен
node
,yarn
иdocker
- Выполните команду
yarn bootstrap
- это обязательный шаг - Выполните команду
yarn dev
- Выполните команду
yarn dev --scope=client
чтобы запустить только клиент - Выполните команду
yarn dev --scope=server
чтобы запустить только server
- SEK-41 Реализована механика проскальзывания и быстрого падения игрока
- SEK-42 Бонус на иммунитет от огненного дождя и на замедление скорости игры
- SEK-55 Добавление вывода игровой информации (индикатор прыжка и т.п.)
- SEK-59 Приложение сконфигурировано и размещено в Yandex Cloud
- SEK-54 Настроены SSL, HTTPS, HTTP/2
- SEK-46 Серверная инфраструктура Docker Compose
- SEK-44 Добавлена поддержка сенсора и геймпада в игре
- SEK-47 Реализовано API для форума (подключен PostgreSQL)
- SEK-52 Подключено API форума на клиенте
- SEK-48 Переключение тем (клиентская часть)
- SEK-51 Переключение темы (бэкенд)
- SEK-38 Настроен Express для Server Side Rendering
- SEK-39 Настроен Redux и Router в SSR
- SEK-40 Добавлена OAuth-авторизация
- SEK-35 Добавлено API для лидерборда.
- SEK-36 Добавлено звуковое сопровождение в игре (Web Audio API)
- SEK-37 Приложение проверно на утечки памяти, проблем не найдено (отчет)
- 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 Завершена вёрстка страницы форума
- 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