Architecture réseau, threadé ou non?
Bonjour, ou plutôt bonsoir,
je code actuellement un jeu de plateforme, et j'aimerais bien implémenter la partie réseau avant que le moteur ne soit pas trop avancé (histoire de ne pas avoir trop de choses a revoir).
Je suis novice en programmation réseau, et en threads (mais je maîtrise un minimum les sockets), c'est pour cela que je viens demander conseils avant de me lancer dans le cambouis.
Histoire de commencer pas trop violemment, j'ai programmé un pong deux joueurs, a l'aide de threads pour récupérer les données de l'autre joueur. Le soucis, c'est que j'ai l'impression de m'être planté quelque part car si mon client et mon serveur utilisent chacun un thread, le jeu plante (alors que si j'ai un thread sur soit le client, soit le serveur ça marche, mais du coup seul un joueur peut bouger des deux cotés).
Sachant que je vise un jeu en réseau 4 joueurs (mais si j'y arrive pas 2 joueurs ce serait déjà bien cool), temps réel, quel architecture me conseillerez vous? Suis-je obligé de passer par des threads? (j'ai pas réussi sans a vrai dire).
Pour ce qui est de mon architecture actuelle (sur mon pong) c'est:
Serveur:
Un thread pour récupérer les informations de la batte du joueur 2
Chaque step du jeu j'envoie les coordonnées de la balle et de la batte du joueur 1
Le serveur gère les collisions, le score, etc...
Client:
Un thread pour récupérer les informations de la batte du j2 et de la balle.
Chaque step du jeu il envoie les coordonnées de la batte.
Du coup si je suit cette logique, pour mon jeu 4 joueurs je vais me retrouver avec 3 threads sur le serveur. J'ai vraiment pas l'impression que ce soit le mieux, sachant que j'ai du mal a les bien gérer et que je sais pas trop quand placer des mutex...
Si quelqu'un a un peu de temps a me consacrer je le remercie d'avance, et sur ce bonne soirée a tous!