Coucou Quentin !

Très intéressant tout ça !

Début de citation

UDP est plus rapide mais la'utre bout de la connexion ne confirme pas
que le message a été reçu; et s'il y a plusieurs messages en transit,
ils ne sont pas assurés d'arriver dans l'ordre.

Fin de citation

Je comprend, mais ne trouve pas que ce soit un obstacle insurmontable.
Pour remettre les instructions dans l'ordre, moi je le ferai en envoyant avec chacune d'elle un numéro incrémenté. Et s'il arrive que le programme récepteur constate qu'il y a un chiffre sauté, il attend que ce dernier arrive et reprend l'ordre normal.

Début de citation

Les meilleurs jeux utilisent bien entendu UDP...

Fin de citation

Et je suis persuadé que certain  combinent même le UDP au TCP.
UDP pour les requêtes les plus fréquentes (qui ne nécessitent pas forcément de confirmation); Et TCP pour celles lancées sporadiquement (permettant je l'imagine de faire le point).

Début de citation

Si tu n'as pas de serveur central, tu risque d'avoir à te frotter aux
routeurs récalcitrants...

Fin de citation

Voilà justement !
Si je décide d'avoir un serveur central distant, de quel type  sera-t-il ?
Linux ou Windows ?
Par quoi y fait-on appel aux sockets ?
Je me doute bien que ce ne sont pas des outils qu'on retrouve nativement chez les hébergeurs bon marché.

Et merci encore pour tes orientations, tu m'aide beaucoup.

D'ailleurs pour te dire la vérité, puisque j'ai été un peu hypocrite tout à l'heure, c'est que j'envisage de donner la possibilité à mon jeu blind kombat, un jeu de baston exclusivement sonnore de pouvoir se jouer en réseau. Mais bon, si ce désir se révèle un peu trop utopique vu les temps de réaction très fins que requière ce genre de jeu, je me lancerai forcément dans le développement d'un autre type de jeu moins dur à réaliser en réseau.

Yannick Daniel Youalé
La programmation est une religion. Aimez-la, ou quittez-la.
Mon site: www.visuweb.net


----- Original Message ----- From: "QuentinC" <[email protected]>
To: <[email protected]>
Sent: Wednesday, April 01, 2015 2:30 PM
Subject: [progliste] Re: Développement de jeu en réseau


Salut,

Documente-toi sur ce que sont exactement TCP et UDP et tu vas comprendre.
UDP est plus rapide mais la'utre bout de la connexion ne confirme pas que le message a été reçu; et s'il y a plusieurs messages en transit, ils ne sont pas assurés d'arriver dans l'ordre. TCP par contre tu es sûr que l'autre bout a reçu le message car il confirme, et les paquets arrivent toujours dans l'ordre; mais c'est, à cause de ça, plus lent.

Les meilleurs jeux utilisent bien entendu UDP, mais il faut bien garder à l'esprit que tu ne sais pas si ton correspondant reçoit tout ce que tu lui envoies. Un moment donné tu vas être obligé de recoder des aspects assez compliqués du réseau: accusé de réception, renvoi d'information en l'absence de confirmation après un délai, remettre les informations dans l'ordre, etc. tout ce que tu n'as pas à faire si tu utilises TCP parce que c'est implicite avec TCP. Il faut bien y réfléchir. Suivant l'application, ce n'est pas trop grave s'il te manque des informations momentanément, p.ex. audio/vidéoconférence; mais dans d'autres c'est fatal, p.ex. pour reprendre la VOIP, le signal d'appel. Donc UDP c'est plus rapide, mais il y a une réflexion de fond à avoir sur ce que tu peux te permettre de rater et ce que tu ne peux pas, le but étant bien sûr que tu n'aboutisses pas à deux joueurs ayant une vue différente de l'état du jeu, des parties incohérentes, des désynchronisations, etc. tu as déjà dû t'apercevoir de ce genre de phénomène si tu as déjà joué à SoundRTS, où les désynchro arrivent parfois (p.ex. chacun a détruit le camp de l'autre sans que l'autre ne s'en aperçoive)

Après pour l'architecture générale, en fait, tu as le choix, avec toujours des avantages et des inconvénients.

Si tu n'as pas de serveur central, tu risque d'avoir à te frotter aux routeurs récalcitrants, besoin de demander aux joueurs d'ajouter des NAT, activer UPNP & Co si tu veux que les joueurs puissent jouer entre eux. Ca peut être vachement bien, sauf qu'il n'y a que les geeks qui savent à peu près comment faire et parfois les opérateurs t'empêchent de le faire (dans ce cas change d'opérateur).

Après, il y a la vision réseau en étoile, plus simple, tout le monde se connecte sur le serveur central ou la machine d'un des joueurs. Relayer est le job du serveur, forcément; tu n'y coupes pas.

Sinon tu as le modèle graphe complet, tout le monde se connecte à tout le monde. C'est plus compliqué, et en général on ne le fait pas parce que c'est trop compliqué. Mais c'est assurément plus rapide parce que toutes les communications sont directes.

Pour les jeux de rapidité, ce qui fait aussi la différence à un moment donné (les FPS sont célèbres pour faire ça), c'est la prédiction. IL y a des tas d'algorithmes qui tentent de prédire les choix du joueur et qui sont très utiles si le réseau lague momentanément ou si le joueur est très loin (p.ex. autre côté de l'atlantique) car dans ce cas les ping sont de toute façon inacceiptables pour ce genre de jeu (150ms et plus).
Progliste :
Pour se désinscrire de la liste : mailto:[email protected]?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pièces jointe sont activés leur taille est limité à 2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, je vous répondrez en privé.




Progliste :
Pour se désinscrire de la liste : 
mailto:[email protected]?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/       

Je vous rappelle que les pièces jointe sont activés leur taille est limité à 2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, je 
vous répondrez en privé.
        
        

Répondre à