Connexion IP dynamique

Connexion IP dynamique - Réseaux - Réseaux grand public / SoHo

Marsh Posté le 27-08-2015 à 09:07:15    

Bonjour :)
 
Je viens vers vous dans l'espoir d'avoir quelques explications que je n'arrive pas à trouver en ligne (peut être ais-je mal cherché cela dit.)
Je viens de programmer un jeu vidéo sur unity, qui peut se jouer en réseau en utilisant UNet (pour les connaisseurs). Il fonctionne très bien en local, mais malheureusement, dés que je tente en IP publique (WAN), je me heurte à l'obstacle délicat des IP dynamiques.
 
Mes questions sont les suivantes :
 
Où sont passés les joies et les plaisirs d'une époque où jouer en réseau était sans doute plus simple ?
Comment réagissent les fabricants de jeux vidéos en réseau pour contrer ce problème d'IP dynamiques de plus en plus nombreuses ?
Y a t-il une histoire de type "culture web" à connaitre par rapport à ce système ?
Est-ce que moi, avec mon niveau de novice, mais remarquablement motivé, je peux réussir a tripatouiller quelque chose qui marche et qui permettent à mes utilisateurs de se connecter entre eux en WAN, et ne pas être limité qu'en local (ce qui marche déjà) ?
 
Je suis à cours de pistes, et je dois vous avouer que maintenant, je compte sur votre expertise pour relancer mon espoir, détruit à coup de projection-cranière-sur-mur :-)
 
Même une réponse simple, même si vous êtes pas surs... Personne ne me répond sur le forum d'Unity*, alors bon. J'aimerais juste... une piste :) Sachez que je ne vois pas d'inconvénients à passer du temps, même beaucoup, sur un tutoriel complexe ou une autre source que vous pourriez me donner, si vous êtes sûrs que la solution s'y trouve.
Merci beaucoup.
 
(*mon thread un peu plus explicatif sur le forum d'unity est ici : http://forum.unity3d.com/threads/u [...] ip.349793/
Par contre c'est en anglais ^^)


Message édité par koesys le 27-08-2015 à 09:08:09
Reply

Marsh Posté le 27-08-2015 à 09:07:15   

Reply

Marsh Posté le 27-08-2015 à 10:48:43    

Hello,  
 
Est ce qu'un service DDNS ne pourrait pas répondre à ton problème?

Reply

Marsh Posté le 27-08-2015 à 11:47:57    

J'avais regardé ça (notamment le site no-ip), mais le problème c'est que je ne peux pas demander a chaque joueur, avant de jouer, de passer par un service DDNS, sinon personne ne jouera ^^
Est il possible de passer par ce genre de service en codant en dur ? Mais ça ça me parait compliqué et pas vraiment viable dans le temps... Enfin, aurais tu une idée ?

Reply

Marsh Posté le 27-08-2015 à 11:59:40    

Si tu mets un service DDNS sur le serveur de ton jeux, tu donnes le nom DNS aux joueurs et ça fonctionnera non? Peut importe que l'adresse du client change?

Reply

Marsh Posté le 27-08-2015 à 21:02:54    

Très intéressant comme piste. En faite, c'est un jeu qui ne permet la connexion que de joueur a joueur (imagine un jeu d'échec) de type : "je créé une partie, tu me rejoins sur mon ip". C'est vrai que je n'ai jamais imaginé la chose différemment. Je vais peut être essayer de voir si c'est possible de faire plutot "je créer une partie sur 123.456... qui s'appelle "truc", tu vas sur 123.456... et tu rejoins "truc"". C'est vrai que dis comme ça ça fait sens ^^'
C'est peut être comme ça que les jeux d'aujourd'hui fonctionnent ? :/

Reply

Marsh Posté le 02-09-2015 à 02:16:56    

Pas que aujourd'hui, même 15 ans auparavant hein  [:haha caverne]
Logiquement il te faut un serveur qui liste les joueurs disponible et permette soit de faire une sélection manuelle, via un lobby / chat par exemple ou attribution auto via niveau façon chatroulette :o

Reply

Marsh Posté le 02-09-2015 à 11:08:15    

mmmh oui mais le serveur devra-t-il être capable faire tourner le jeu ? Du coup, chaque partie nécessiterait une instance différente ? Ou servira-t-il de relais permettant de connecter les joueurs ? Dans ce dernier cas, le problème ne reste t-il pas le même avec ces histoire d'ip dynamiques ?

Reply

Marsh Posté le 02-09-2015 à 14:21:31    

koesys a écrit :

mmmh oui mais le serveur devra-t-il être capable faire tourner le jeu ? Du coup, chaque partie nécessiterait une instance différente ? Ou servira-t-il de relais permettant de connecter les joueurs ?


 
ben c'est toi qui fais le jeu, non ? c'est toi qui décide.
 

koesys a écrit :


Dans ce dernier cas, le problème ne reste t-il pas le même avec ces histoire d'ip dynamiques ?


 
non car chaque client se connectera à ton serveur avec son ip publique, donc ça te permettra d'avoir l'ip publique de chaque joueur (pour t'en servir directement si tu héberges les parties, ou pour communiquer aux autres joueurs si tu ne fais que de l'indexation).


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Marsh Posté le 02-09-2015 à 22:06:48    

Citation :

ben c'est toi qui fais le jeu, non ? c'est toi qui décide.


 
C'est vrai, mais ma décision se fera en fonction de ce qui marche et de ce qui est plus simple ^^ (soit, je pense, l'indexation)
 
 

Citation :

non car chaque client se connectera à ton serveur avec son ip publique, donc ça te permettra d'avoir l'ip publique de chaque joueur (pour t'en servir directement si tu héberges les parties, ou pour communiquer aux autres joueurs si tu ne fais que de l'indexation).


 
Oui mais ces ip publiques ne changent-ils pas ? Par exemple, le routeur de ma proprio (auquel je n'ai pas accès) fait changer mon ip toutes les 5 minutes quoi que je fasse. Je suis novice en la matière, mais il est une chose que j'ai déjà tentée et qui ne marche pas : si j'index les ip dans une base SQL grâce à $_SESSION[REMOTE_ADRESS]; et que je le transmet à qui veut rejoindre, cela ne marche pas, et je ne comprend pas pourquoi (cela marche en ip privée et en localhost évidemment). Mais peut-être n'ais-je pas compris une subtilité sur les ips publiques ? Quand un joueur se connecte a un serveur, resterait-il reconnaissable quoi qu'il ait comme routeur ? Et aussi, y aurait-il une question de "ports" bloqués ou non dans l'histoire ? (je me sers du 7777)
 
Merci en tout cas  :jap:

Reply

Marsh Posté le 02-09-2015 à 22:32:22    

koesys a écrit :


Oui mais ces ip publiques ne changent-ils pas ? Par exemple, le routeur de ma proprio (auquel je n'ai pas accès) fait changer mon ip toutes les 5 minutes quoi que je fasse.


 
5 minutes c'est impossible ou alors il y a un gros problème, en france dans le pire des cas c'est un changement par semaine ou au reboot de la box.
 
 

koesys a écrit :


Je suis novice en la matière, mais il est une chose que j'ai déjà tentée et qui ne marche pas : si j'index les ip dans une base SQL grâce à $_SESSION[REMOTE_ADRESS]; et que je le transmet à qui veut rejoindre


 
Oui c'est à cause du NAT : une connexion entrante arrive sur le routeur de l'utilisateur (son IP publique), s'il n'a pas de forwarding paramétré le routeur ne sait pas vers quelle IP locale transmettre les paquets et les détruit.  
 
Pour que ça marche, l'utilisateur doit donc avoir configuré le forwarding qui va bien dans sa box vers l'IP locale de son PC qui héberge la partie (ou être directement connecté à internet sur son PC, par exemple avec un modem USB c'est c'est franchement rare de nos jours).


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Marsh Posté le 02-09-2015 à 22:32:22   

Reply

Marsh Posté le 02-09-2015 à 22:53:05    

Ou implémenter de l'UPNP pour faire ça dynamiquement sur le routeur sous réserve qu'il le supporte et que la fonction soit activée.


Message édité par Djeng0 le 02-09-2015 à 22:53:32
Reply

Marsh Posté le 03-09-2015 à 09:29:03    

Citation :

5 minutes c'est impossible ou alors il y a un gros problème, en france dans le pire des cas c'est un changement par semaine ou au reboot de la box.


 
Je suis actuellement en Nouvelle Zélande ^^ C'est fou, mais oui j'ai pu constater ça en regardant les logs de mon site perso : mon adresse IP changeait tout le temps. J'ai déménagé depuis, vers une maison avec un internet ou l'ip est stable, ouf !
 

Citation :

Pour que ça marche, l'utilisateur doit donc avoir configuré le forwarding qui va bien dans sa box vers l'IP locale de son PC qui héberge la partie (ou être directement connecté à internet sur son PC, par exemple avec un modem USB c'est c'est franchement rare de nos jours).


 
Mmmh d'accord, mais dans ce cas comment font les grands créateurs de jeux vidéos pour que leurs jeux multijoueurs fonctionnent et que les joueurs arrivent à se connecter sans problème, et sans avoir a configurer quoi que ce soit ? (en faite je n'en sais rien, mais je présume qu'ils doivent avoir la solution)
 

Citation :

implémenter de l'UPNP


 
Aaaah un terme bien barbare comme je les aime, évidemment inconnu au bataillon, mais qui résonne comme une solution sous un tas de ronces ^^ Pourrais-tu m'en dire d'avantages ? Je vais tenter de me renseigner ^^

Reply

Marsh Posté le 03-09-2015 à 09:53:33    

koesys a écrit :


Mmmh d'accord, mais dans ce cas comment font les grands créateurs de jeux vidéos pour que leurs jeux multijoueurs fonctionnent et que les joueurs arrivent à se connecter sans problème, et sans avoir a configurer quoi que ce soit ? (en faite je n'en sais rien, mais je présume qu'ils doivent avoir la solution)


 
il y a 10-15 ans soit les users étaient connectés directement au modem donc pas de problème, soit celui qui hébergeait la partie devait faire un forwarding dans son routeur.
 
De nos jours dans 99% des cas, les parties sont hébergées sur les serveurs de l'éditeur du jeu.
 
 

koesys a écrit :


Aaaah un terme bien barbare comme je les aime, évidemment inconnu au bataillon, mais qui résonne comme une solution sous un tas de ronces ^^ Pourrais-tu m'en dire d'avantages ? Je vais tenter de me renseigner ^^


 
Attention, l'upnp est loin d'être activé partout par défaut (du fait des problèmes de sécurité qu'il implique), et l'activer est souvent à peu près aussi compliqué que faire un port forwarding.


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Marsh Posté le 03-09-2015 à 12:34:47    

Citation :

De nos jours dans 99% des cas, les parties sont hébergées sur les serveurs de l'éditeur du jeu.


 
Merci, c'est (malheureusement) la réponse que je redoutais, mais au moins je sais quel chemin je dois prendre :) Donc exit le système de relais, il faut que je me débrouille pour faire que les parties se déroulent sur serveur... Mais alors là, je ne sais pas pourquoi, mais mon petit doigt me dit que ça ne devrait pas être une mince affaire pour quelqu'un comme moi qui n'y connait rien :D Et si je me souviens des maigres informations que j'ai pu dégoté ces derniers mois, si je veux que ça tourne correctement et pouvoir y faire ce que je veux, il faut que j'y mette un certain coût :(
Je pense que je vais laisser la version actuelle, qui marchera en réseau local chez quelques personnes tout de même, et espérer que le mode "solo" fonctionne bien et me rapporte des sous pour me permettre de faire évoluer le reste.  
 
Merci thom@s78, Misssardonik, scientifik_u :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed