Créer une plateforme de jeux multijoueurs en ligne

busshi

Transcendance
Une implémentation web franchement sur-conçue mais pas moins cool du jeu Pong. Ce projet consiste à créer une plate-forme multijoueur en ligne avec des fonctionnalités de réseaux sociaux et un chat instantané.
Architecture
Le diagramme suivant représente l'ensemble de l'architecture du projet. Chaque entité est un conteneur docker individuel.
Ce que j'ai appris de ce projet
Ce projet codĂ© en Typescript est construit Ă l'aide du framework moderne NextJS (basĂ© sur ReactJS) pour le front-side et de NestJS pour le back-end. J'ai utilisĂ© une base de donnĂ©es PostgreSQL liĂ©e au back-end Ă l'aide de TypeORM. Il existe Ă©galement un conteneur unique pour nginx qui agit comme un reverse proxy et gĂšre les redirections. Une particularitĂ© de ce projet est l'utilisation de sockets. Sans eux, aucun moyen d'avoir une bonne expĂ©rience de jeu en ligne. Il est question de crĂ©er un jeu fluide et responsive c'est-Ă -dire que la fenĂȘtre doit pouvoir ĂȘtre redimensionnĂ©e sans que les Ă©lĂ©ments du jeu ou du site web ne soit soit dĂ©formĂ©.
Toutes les données proviennent du backend et sont ensuite envoyées aux joueurs. Chaque fois qu'un joueur fait un mouvement, l'information est envoyée au serveur, puis distribuée à l'autre joueur.
L'utilisation de sockets pour ce projet donne la possibilité de créer un chat instantané. Il est également possible d'ajouter des amis ou de les bloquer, comme sur des réseaux sociaux bien connus.
Essayez-le ici.