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é.