
Description
Mon jeu multijoueur est un jeu de combat de tank simple et amusant, il a surtout été un moyen pour moi d’avoir expérimenté avec les sockets et la communication entre un client et un serveur dans un contexte de jeu. C’est un jeu plûtot simple, le joueur peut bouger dans les quatres directions : haut, bas gauche et droite et tirer avec le clic gauche de la souris, la balle va directement ou la souris pointe et disparait en cas de collision avec l’autre tank ou après quelques secondes pour rendre le jeu un peu plus compliqué. Le jeu est actuellement en ligne au https://www.leopold.monster/ et deux utilisateurs peuvent y jouer en même temps, malheureusement, par manque de temps je n’ai pas implémenté la possibilité d’avoir plusieurs partie en même temps, mais ça ne serait probablement pas très compliqué. Vous pouvez l’essayer en ouvrant deux onglet et en créant un joueur sur chaque. L’espèce de block noir est simplement un mûr.
Aspects Techniques
Le jeu est entièrement fait en language web comme le html et le javascript. Le fichier html sert seulement à créer des svg pour les balles et à créer un canva qui sera ensuite envoyer et utilisé par les fichiers javascript pour afficher des images pour l’arrière plan et les tanks des joueurs. La communication entre le client et le serveur est fait à l’aide des Sockets. Le principe est que le client envoie un message avec certaines informations au serveur, le serveur fait des transformations avec ces données ou pas selon le message et les renvoie aux deux joueurs/clients comme par exemple lorsqu’un joueur tir une balle. Dans certains cas le serveur ne renvoie pas de données comme lors de l’initialisation de certains objets comme les mûrs. Les détections de collisions sont fait du côté des clients puisque mon serveur est trop médiocre et introduisait beaucoupt de latence. Les positions des joueurs sont par contre synchronisées à chaque secondes pour s’assurer qu’il n’y ait pas de différence majeur dans les deux écrans.