Demande de renseignement sur les réseaux

a marqué ce sujet comme résolu.

Bonjour, Je suis en train de faire avec un groupe d’ami un jeu de type stratégie qui opposera deux joueurs. Nous voulons que chaque joueur puisse jouer sur son ordinateur, seulement nous ne savons pas trop comment nous y prendre. Nous n’avons que des connaissances en Python et C++, et nous codons le jeu en C++. Veuillez m’excuser si je demande au mauvais endroit mais je ne sais pas où d’autres demander. J’aimerais vous demander si vous pouvez me rediriger vers des cours, tutoriels … pour comprendre les bases de ce qu’il faut faire et comment le faire. Merci d’avance.

Salut, est-ce que vous utilisez un moteur ?

  • Si oui, regardez dans la doc du moteur
  • Si non, arrêtez tout et prenez un moteur

Par ailleurs, si c’est un premier jeu, il est déconseillé de commencer avec un jeu en réseau à cause de la difficulté que cela représente.

+0 -1

Bonjour. Merci pour votre réponse. Nous n’utilisons pas de moteur mais nous ne pouvons pas arrêter puisque nous avons assez bien avancé. On n’a pas de problème avec la difficulté puisqu’on ne fait pas ça pour un intérêt particulier mais juste pour apprendre des choses et du coup ça serait bien voir cette partie aussi. J’ai trouvé un bon cours pour l’instant pour une introduction à la programmation réseau en C++. Le contenu porte sur la création d’un socket et la connexion à un serveur connaissant son adresse IP puis l’envoi et la réception des données. Il ne propose pas l’utilisation de ces connaissances dans un jeu ni comment créer un serveur mais je cherche toujours. Toute autre aide serait la bienvenue ^^ Merci d’avance.

Vous vous apprêtez à tomber dans un écueil dans lequel de très nombreuses autres personnes sont déjà tombées avant vous. Créer un jeu vidéo sans moteur ne veut pas dire qu’on ne le crée pas, au contraire, ça signifie que tu te concentres sur la partie réellement jeu vidéo du projet. Il est déjà difficile de coder correctement la partie réseau avec un moteur de jeu complet, vous ne participez en fait qu’à tenter de refaire (moins bien, sans offense) ce qui a déjà été fait et peaufiné pendant des dizaines d’années par des professionnels spécialisés. Le fait est qu’en faisant ça, vous programmez un projet complet pour votre projet réel, et votre jeu vidéo n’avançant pas de manière visible, il y a de gros risques que vous l’abandonniez en route.

Je vous invite tous à aller lire cet article de blog de l’ami @Ge0 : https://ge0.github.io/2020/02/22/dummy-mon-meilleur-echec.html

+0 -0

Bonjour je me permet de poser la question votre jeu de stratégie, il ressemblerait a quelle autre nom dans le milieu ? comme vous a dit Phigger faire un moteur de jeu n’est pas des plus facile c’est possible de s’en passer, pour, par exemple une bataille naval, mais si le projet est plus a la "Xcom" ça sera compliqué, vraiment

il existe un juste milieux, permettant de gérer les jeux en 2D, sans devoir sortir la grosse artillerie, style SFML (lien d’une recherche Google) qui est une lib pour le C++ il en existe plein "SDL, SFML, pygame, pyglet" pour citer Entwanne ^^ (ce ne sont pas des moteurs de jeux)

apres sinon pour les bases sur quoi faire, c’est deja une liste de ce que vous voulez faire, dans le résultat final, et a partir de ça faire une roadmap pensez a utiliser GIT (comme vous etes plusieurs a travailler sur le même projet)

Bonjour. Je m’excuse pour ma réponse tardive. Merci pour votre attention Phigger et l’article m’a bien touché. Sinon, notre jeu de stratégie ne ressemble pas vraiment à un jeu présent dans le milieu. Il est vraiment très simple juste pour appliquer ce qu’on apprendre en C++ surtout en programmation orientée objet. On a bien utilisé SFML oui ! En fait, on a que des cases qui sont cliquables et le joueur peut modifier le choix des bâtiments dans la case. L’autre joueur peut modifier le choix des unités dans la case. (On a un joueur attaquant et un joueur défenseur). Ce que je cherche c’est juste comment faire pour que les deux joueurs puissent jouer séparément sur des ordinateurs différents. Merci d’avance pour toute réponse ^^

pour ca, tu vas pas avoir beaucoup de solution une architecture client serveur. (via une API) en quelques mots sur google j’ai trouvé enet (j’ignore sa valeur) Après l’implémentation est vraiment au choix par exemple les gros jeux, sont souvent en mode "le gros serveur chez nous" et on a juste des clients

je pense le plus simple serait de faire, le serveur dans le client (prenons comme exemple Minecraft d’aujourd’hui)

tu peux rejoindre une partie en rentrant l’adresse IP et le port

tu peux hébergé une partie a partir du jeux "client" (le serveur.jar est utile uniquement car pas de GUI)

quand tu joues en local, en verité t’es sur un serveur local (si ton pc est vraiment nul tu peux même avoir des rollbacks XD)

ce qu’il fait que t’évites le problème de l’article (avoir 2 exécutables a lancé et sans savoir d’où vient le problème vu que ça devient juste une sous partie) même si ça doit sans doute rajouter un peu de complexité (j’ai jamais fait de jeu vidéo, donc je connais de loin)

sinon de ce que je vois, SFML devrait suffire (je vois les exemples les personnes ont fait le casse brique) donc un style d’"Advance Wars" doit pas être enormement plus complexe (je parle uniquement en termes d’affichage))

Bonjour. Merci pour votre réponse ! Cette idée de mettre le serveur dans le client est formidable. Je ne sais pas comment je pourrais faire cela, je dois encore chercher. Le problème c’est que tout cela est flou pour moi. Par exemple comment le joueur va avoir accès à l’adresse IP et le port de la personne avec laquelle il veut jouer.

pour l’adresse IP et le port, si c’est sur le reseau local tu fais ipconfig dans la ligne de commande si c’est en ligne go https://www.ipchicken.com/ il te donne ton adresse IP externe

c’est la solution la plus simple que je connaisse (a mettre en place, pas forcement pour l’utilisateur)

concernant le port, il suffit que ce soit un port defini a l’avance (dans un fichier de config, le jeux, ou en dur) puis sur ta box internet tu ouvres les ports (je te laisse trouver un tuto en fonction de ton FAI) (attention pas dans les 1000 premiers qui sont "reservé")

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte