46 lines
2.1 KiB
Plaintext
46 lines
2.1 KiB
Plaintext
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 (rebonds de la balle, "Oof" de Roblox sur un point)
|
|
- 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
|
|
(BUG désynchronisation: revenu à un traitement immédiat en attendant)
|
|
- Détruire les GameSession une fois finies.
|
|
- mode multi-balles
|
|
- mode murs mouvant (la zone de jeu rétréci / agrandi en continu)
|
|
- Selection des modes de jeu via HTML
|
|
- Selection audio on/off via HTML
|
|
|
|
TODO:
|
|
- Match Abort si tout les joueurs ne sont pas pret assez vite (~15 secondes)
|
|
- mode spectateur
|
|
- certaines utilisations de Math.floor() superflu ? Vérifier les appels.
|
|
(éventuellement Math.round() ?)
|
|
- un autre mode de jeu alternatif ?
|
|
- changer les "localhost:8080" dans le code.
|
|
- sélection couleur des raquettes (your color/opponent color) dans le profil utilisateur.
|
|
Enregistrement dans la DB.
|
|
init des couleurs dans GameComponentsClient() basé sur les variables de l'utilsateur connecté.
|
|
-----------
|
|
idées modes de jeu :
|
|
- mode 2 raquettes (un joueur haut/gauche et bas/droite)
|
|
- skin patate ???
|
|
- (prediction de l'avancement de la balle basé sur la latence serveur ?)
|
|
- d'autres sons (foule qui applaudi/musique de victoire)
|
|
-----------
|
|
- 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).
|