Обзор моего представления

Я воссоздал игру «Red Light, Green Light» с помощью Python, TypeScript и Redis!

Однажды в начале августа я просматривал DEV, пересматривая в фоновом режиме видео о воссоздании Squid Game от MrBeast, когда наткнулся на статью Redis Hackathon. Затем мне пришла в голову сумасшедшая, случайная идея: Redis Light, зеленый свет!

Redis Light, зеленый свет

Я решил создать свою собственную многопользовательскую онлайн-версию Red Light, Green Light, работающую в режиме реального времени, на базе Redis и отправить ее в категорию проектов Wacky Wildcard, чтобы получить шанс выиграть хакатон!

Я использовал свои любимые языки и фреймворки для быстрого прототипирования: Python с Flask для поддержки серверной части и TypeScript с фреймворком Nuxt.js для создания внешних компонентов для моей игры.

Для общения в реальном времени я добавил Flask-SocketIO библиотеку для моего приложения Flask и socket.io-client библиотеку в мое приложение Nuxt. Я также добавил сельдерей для планирования и обработки асинхронных задач. Redis использовался в качестве очереди сообщений для сообщений веб-сокетов, а также в качестве брокера для задач celery.

Это был мой первый проект, работающий с Redis Stack и Redis OM, и мне очень понравилось использовать эти инструменты. Я хранил большую часть своих данных в хэшах, и библиотека Redis OM идеально подходит для использования этого типа данных. Я также впервые использовал потоки Redis, что было очень весело.

Службы серверных приложений включают в себя:

  • Сервер Flask (для конечных точек API и обработчиков веб-сокетов)
  • Планировщик задач Celery beat (для планирования задач по изменению цвета света в каждой комнате)
  • Celery worker (для изменения цвета света в комнате и для обновления игроков в этой комнате через Websocket)

Диаграмма проекта

Пожалуйста, ознакомьтесь с видео ниже для более подробной информации о том, как работает проект.


Категория отправки

Дурацкие подстановочные знаки


Redis Light, видео Green Light на YouTube



Используемый язык

Питон. Почетное упоминание за JavaScript.


Ссылка на код

Моя заявка на Redis Hackathon на DEV! «Красный свет, зеленый свет», созданный с помощью Python, JavaScript и Redis

Этот проект представляет собой многопользовательскую онлайн-реализацию Red Light, Green Light от Squid Game, созданную с использованием Python, Javascript и Redis. Это моя заявка на Redis Hackathon 2022 на платформе DEV!

Геймплей

Redis Light, геймплей Green Light

Журнал игровых событий, созданный с помощью потоков Redis

Данные потока Redis

Обзор архитектуры

Диаграмма архитектуры проекта

Обзор кода с cloc (количество строк кода)

make cloc
github.com/AlDanial/cloc v 1.94  T=0.03 s (1102.7 files/s, 67098.7 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Vuejs Component                 13            104             14            528
Python                           3            178            104            410
Markdown                         5            139              0            272
YAML                             3             10              0             83
make                             1             10              2             34
SVG                              2              0              0             22
TypeScript                       1              1              1             22
CSS                              1              4              0             18
JavaScript                       1              0              1             18
Text                             2              0              0             13
Dockerfile                       1              8              0             12
-------------------------------------------------------------------------------
SUM:                            33            454            122           1432
-------------------------------------------------------------------------------

Вот короткое видео, которое объясняет проект и то, как он использует…


Дополнительные ресурсы/информация

Redis Light, геймплей Green Light

Потоки Redis