voila je me lance, je bosse actuellement sur un projet de jeu video et j'apprends la programmation en C++ win32 avec les sockets et TCP et UDP
voila j'ai pas mal de question à poser par rapport à ce que j'ai remarqué
1/ si je créé 2 instances d'un meme programme qui fait envoie et reception de messages en UDP avec le meme port par ex 1234 et la meme IP donc 127.0.0.1 et en utilisant 1 thread pour les envois et un thread pour les receptions, en gros dans chaque thread y'a une boucle while(1), pourquoi une de mes instances receptionne ses propres messages et ceux envoyés par l'autre, et pourquoi l'autre instance n'arrive pas à recevoir ses propres messages et ceux de la première? (j'ai malheureusement pas de 2ème pc sous la main la)
2/ les threads c'est bien gentil mais ca me pompe toutes mes ressources processeur, y a-t-il un moyen de coder ca de maniere a ce que ca "bouffe" moins? comme un MSN ou un jeu réseau(ex: half-life, quake3 et compagnie, ...) comment c'est gérer dans ces programmes?
3/ j'ai vaguement lu sur les sockets asynchrones, ca a l'air intéressant car ca "bouffe" beaucoup moins de puissance processeur, vu que c'est un evenement windows qui dit quand un message a été recu et qu'il faut le traiter. ok ! mais j'ai aussi vu sur gamedev que des fois y'a un mini-plantage et que ca renvoit une erreur et qu'il faut attendre en moyenne 750ms avant de pouvoir réenvoyer ou rerecevoir, quelqu'un a des infos dessus? des expériences ? j'ai cru ainsi comprendre qu'il fallait mieux faire un systeme de threads sur le serveur et de sockets asynchrones sur le client, mmh si ca marche si bien que ca pourquoi ne pas le faire sur les 2? les sockets asynchrones sont-elles utilisables aussi avec UDP(j'ai testé TCP et ca marche)?
4/ il me faut un systeme ou je peux actualiser mes positions de joueurs par UDP toutes les 30ms (40ms=la perception de l'oeil donc c'est impec) et qui envoie par TCP les informations importantes(ex: un objet qui a été ramassé). handicap, il faut que ca prenne le moins de ressources processeur possible et que ce soit fiable, des idées? conseils? expériences? quelqu'un sait comment marche le systeme sur tel ou tel jeu?
Partager