platon179
Messages postés237Date d'inscriptionlundi 20 mai 2002StatutMembreDernière intervention22 juillet 2011
-
22 juil. 2011 à 10:05
Utilisateur anonyme -
22 juil. 2011 à 11:10
Bonjour les gens,
Je suis en train de développer un (petit) jeu multijoueurs en temps réel.
Aucun problème pour le serveur, j'arrive plus ou moins à m'en sortir.
Là où je bloque, c'est au niveau des clients.
La communication se fait en TCP.
Quelle est la meilleure méthode pour que les clients ne freezent pas pendant les communications réseau ?
- Un Thread qui entre dans une boucle infinie et attend les données du serveur (par ex. les nouvelles positions des autres joueurs) et mets à jour les infos. Dans ce cas, comment ça va se passer si c'est le client qui doit faire une requête au serveur et attendre sa réponse ?
- Utiliser des sockets non bloquants dans la boucle principale du client
- Autre méthode ?
Je te préviens, tu trouveras peu de gens calés ici sur la programmation de jeux vidéo en Java, je te conseille de poser ce genre de question sur java-gaming.org qui est fréquenté par des gens assez pointus dans ce domaine dont le créateur de MineCraft.
Utilise peut-être plusieurs sockets pour faire communiquer le client et le serveur dans un sens et dans l'autre. Pense aussi à bien gérer les paramètres de sécurité afin que les jeux puissent avoir les droits nécessaires pour utiliser des sockets. Tu peux mettre les messages reçus par le client dans une file et les traiter au fur et à mesure.
Il existe plein d'autres solutions possibles basées sur les sockets dont RMI, Apache Mina, JGN, Kryonet API, Project Reddwarf...