Done: - Connexion client/serveur via un Websocket - implémentation basique (authoritative server) - Matchmaking - client prediction - server reconciliation (buffer des inputs côté client + id sur les inputs) - amélioration collision avec Hugo - du son (balle, foule qui applaudi/musique de victoire) (son de la raquette "Oof" de Roblox ? 🤡) - init de GameComponents partagé entre serveur et client. - draw on the canvas "WIN", "LOSE", "MATCHMAKING COMPLETE", ... - interpolation (mis à jour progressif des mouvements de l'adversaire) - traitement groupé des inputs clients toutes les x millisecondes TODO: - mode multi-balles - Détruire les GameSession une fois finies. - certaines utilisations de Math.floor() superflu ? Vérifier les appels. - (prediction de l'avancement de la balle basé sur la latence serveur ?) ----------- idées modes de jeu : - mode murs mouvant (la zone de jeu rétréci / agrandi en continu) - mode 2 raquettes (un joueur haut/gauche et bas/droite) - bonus divers (mode obstacle, multi-balles, skin patate, ...) - mode spectateur ----------- - BUG: Si la balle va très vite, elle peut ignorer la collision avec une raquette ou mur. la collision est testée seulement après le mouvement. Pour éviter ce bug il faudrait diviser le mouvement pour faire plusieurs tests de collision successifs. - BUG mineur: sur un changement de fenêtre, les touches restent enfoncées et il faut les "décoincer" en réappuyant. Ce n'est pas grave mais peut-on faire mieux ? ---------- OSEF, rebuts: - reconnection - amélioration du protocole, remplacement du JSON (compression. moins de bande passante).