Pour la SAE du 4ème semestre nous avons dû produire un Agar.io like en NodeJS, en utilisant Socket.io pour la communication entre notre serveur et notre client.
Pour lancer le projet pour la première fois :
npm run build:server
npm run start
Nous avons rencontré plusieurs difficultés techniques lors du développement de notre projet, notamment :
- La gestion du canvas : Il a été difficile de gérer correctement le canvas, la gestion des coordonnées et du "scale" était une horreur dans ce projet, j'en suis encore traumatisé, j'en tremble en l'écrivant.
- La synchronisation avec Socket.io : Socket.io est une trés bonne technologie mais parfois compliquée à comprendre au début, le fait d'envoyer des informations et de les recevoir à distance est une nouvelle notion pour nous et ce fut très enrichissant.
- Ensemble du projet : La vue d'ensemble du projet sur le coté Backend pour que ce soit conforme dans son utilisation avec socket.io , pour surmonter cela, nous avons plusieurs fois eu des discussions sur l'infrastructure du projet qui a mené a du refractoring de nos classes ou du côté socket.io selon la difficulté pour adapter notre code aux différentes parties
Notre projet pourrait être amélioré de plusieurs façons :
- Le dézoom en fonction de la taille : C'est un bon ajout qui n'a pas pu être fait, il est compliqué de bien gérer le canvas et les joueurs en fonction de leurs coordonnées
- Ajouter des fonctionnalités : Pour améliorer notre jeu on pourrait ajouter des pièges, des obstacles ou même des bonus à récupérer !
- Expérience utilisateur : Améliorer l'expérience utilisateur avec des choix de couleurs, des skins, des sons etc... (ou même des pubs comme dans le vrai Agar.io :D)
Nous sommes fières d'avoir une liaison en direct entre tous les joueurs, c'est l'un des premiers projets avec un système de multijoueur, ensuite il y a aussi le fait que le canvas fonctionne dans sa globalité, même si le rescale manque à l'appel