CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

La Programmation Réseau

News jeu

Expeditions: Samurai veut révolutionner le RPG tactique avec une aventure entièrement jouable en coop

Voir
Gleuh
Gleuh
Niveau 10
26 avril 2013 à 16:32:28

Putain comment je galère.
D'un autre côté c'est passionnant, mais c'est super compliqué.
J'y pense, avec la SFML. J'avais un putain de gros bug.
Le serveur de mon jeu, quand un client se connectait, faisait télécharger la map au client (L'équivalent d'entre 500Ko et 1,5 Mo), et au lieu de donner la bonne map, le serveur donnait la map du background du menu du jeu.
Mais what the fuck ? :pf: Le serveur arrive a donner une map qu'il n'a meme pas charger et qui n'existe meme pas dans son repertoire de fichier ? :ouch:
Après y'a l'envois des positions ... Ho my god, franchement c'est chaud de gérer 12 clients de façon synchro, sans netcode, sans lag, sans bug. Mais après c'est beau d'arriver aux positions, mais faut aussi dire au serveur quand on veux bouger ? :pf; Quand on veux effectuer une action ?
Et après, faut aussi enreigstrer les statistiques ? Une gestion des comptes ? Gérer les events etc pour faire un jeu dynamique, original, et tout ? :hap:
Putain, créer un multijoueurs, c'est trop dur. :pf:
Vous en pensez quoi vous ? Au faites vou auriez pas un tutoriel pour la programmation réseau pour des jeux 2D ? L'architecture a mettre en place ? :pf:
Sur ce, bonne continuation :hap:

MeCulpa
MeCulpa
Niveau 5
26 avril 2013 à 16:44:14

Personnellement j'arrive pas a faire un chat :hap: (bon j'ai pas non plus essayé 4heures).

[-ArK-]
[-ArK-]
Niveau 30
26 avril 2013 à 16:50:36

La première fois que j'avais essayé d'implémenter un multijoueur j'avais aussi franchement galéré :(

Une des difficulté les plus chiantes c'est que c'est relou pour tester, tu dois lancer plusieurs fois ton jeu, lancer un serveur, etc. :malade:

Perso dans un jeu dynamique, pour les positions, j'ai trouvé une méthode qui est cool je trouve : à chaque fois qu'un joueur appuies sur une touche, j'envoie un packet contenant sa position ainsi que la touche sur laquelle il a appuyé. Ensuite, la personne qui reçoit ça sait par exemple que tel joueur est en train d'appuyer sur telle touche à telle position et agit en conséquences :oui: S'il relache la touche, on renvoie un paquet aussi comme ça il arrête son action à la bonne position

Enfin dans ce cas là si on fait juste ça le serveur ne sert qu'à transmettre les données et du coup on pourrait tricher facilement :noel:

Gestion des comptes et des stats, c'est assez classique par rapport aux apps normales :noel:

J'ai pas de tutos désolé :hap:

jedemandeledeba
jedemandeledeba
Niveau 9
26 avril 2013 à 16:57:07

[-ArK-] -> Au pire tu fais un application qui lance les deux en même temps ...

[notch]
[notch]
Niveau 10
26 avril 2013 à 17:11:22

PommesCarrotes
Posté le 26 avril 2013 à 16:56:04
| https://www.jeuxvideo.com/forums/1-31-8644407-1-0-1-0-la-programmation-reseau.htm#message_8644410
| Ecrit par « [-ArK-] »,26 avril 2013 à 16:50:36
| « Enfin dans ce cas là si on fait juste ça le serveur ne sert qu'à transmettre les données et du coup on pourrait tricher facilement
| »

Pas forcement. Si tu envois un packet toutes les X secondes qui replace le joueur, ça devient plus dur de tricher je pense

La regle pour chaque jeu multijoueur, c'est que le serveur ne doit jamais faire confiance au client.
Suffit que quelqu'un avec une mauvaise intention et quelques connaissance reprogramme un client qui permet de tricher à volonté et le mette à disposition et là ... :hap:

[notch]
[notch]
Niveau 10
26 avril 2013 à 17:57:46

PommesCarrotes
Posté le 26 avril 2013 à 17:23:42
Ouais .
Ou alors le serveur envois un socket qui demande un renvois de position. Si le joueur renvois pas de position, on le pend

bah ca change rien, si ya un gars qui programme un client, son client repondra avec des positions cheaté...
Ne jamais faire confiance au client.
Par exemple, pour certains mmo, la communication client/serveur est crypté pour certaines données (position par exemple) et pourtant, il ya quand même des cheats.

jedemandeledeba
jedemandeledeba
Niveau 9
26 avril 2013 à 18:25:23

Le mieux c'est de vérifier coté serveur si la position précédente du joueur est cohérente ou pas

[-ArK-]
[-ArK-]
Niveau 30
26 avril 2013 à 18:34:29

Oui jedemandeledeba :hap:

Et en effet c'est chiant. Perso pour un jeu en coop' par exemple, je m'en tape de vérifier si quelqu'un triche ou pas, je préfère bosser sur le jeu en lui-même :hap:

Pinsa
Pinsa
Niveau 4
26 avril 2013 à 19:21:27

Je débuté mon 1er "test" de création de MMORPG, le plus compliqué pour moi c'était faire l'éditeur de map car il doit être pratique simple et performant il doit contenir plusieurs fonctionnalités : calques (2 calques, calque collision), autotiles, téléporteurs, events, pnj... :peur:

[notch]
[notch]
Niveau 10
26 avril 2013 à 20:00:43

Pinsa
Posté le 26 avril 2013 à 19:21:27
Je débuté mon 1er "test" de création de MMORPG, le plus compliqué pour moi c'était faire l'éditeur de map car il doit être pratique simple et performant il doit contenir plusieurs fonctionnalités : calques (2 calques, calque collision), autotiles, téléporteurs, events, pnj...

bof, si tu prevoit comment tu stocke les données et comment tu les utilise, ya rien de trés compliqué, juste long :(

urizen45
urizen45
Niveau 5
26 avril 2013 à 20:20:56

Hello,

En théorie, il faudrait que le serveur de jeu reçoive les events clients (j'avance, je lance tel sort, je recule, je saute, etc), les traite et renvoie le résultat.

Le soucis est qu'il est difficilement imaginable dans un concept de MMO d'avoir un serveur qui puisse gérer un monde entier a lui tout seul.

A mon avis, le serveur traite les données importantes liées a des events (je lance le sort quel est le résultat ?) mais ne contrôle pas les mouvements (sinon comment serait possible ne serait ce que le FlyHack !?)
Par contre des logs de chaque client sont enregistrés pour analyse ultérieur si problème ou dénonciation.

Pour ma part, c'est comme ca que je développe mon prototype. J'envoie un vecteur de déplacement normalisé et une action (saute, avance, recule). Chaque client traite l'information personnellement et fait de la prédiction de mouvement.
Suite a ceci, en cas de changement de l'une des deux informations (vecteur normalisé ou action) le client a la source du message renvoit une "vraie" position au serveur qui le renvoi a chaque clients.

Si vraiment un client fait le con, j'analyserais son log, en ferait une simulation off-line et si problème détecté, il sera ban : basta.

A+
Uri

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment