Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Conception] Architecture réseau  (Lu 2434 fois)

0 Membres et 1 Invité sur ce sujet

Bigz

  • Full Member
  • ***
  • Messages: 154
    • Voir le profil
    • Bigz.fr
[Conception] Architecture réseau
« le: Mai 15, 2012, 10:56:40 am »
Bien le bonjour, tant appréciée communauté SFML.

Aujourd'hui j'ai besoin de vos avis, conseils et critiques sur une architecture réseau.

Contexte : Je bosse sur mon propre moteur de jeu 2D (classique ces jours ci), utilisant bien évidement la SFML comme base principale, ainsi que Box2D pour la physique, entre autres ...

Je souhaite intégrer une couche réseau à ce moteur et cette partie me semble clairement être l'une des plus caduques de ce type de projet. Je vais donc vous exposer mes idées et j'espère avoir des retours constructifs de votre part afin de corriger mes erreurs.

Voilà grossièrement comment j'imagine la chose :

Une séparation distincte entre la partie "vue" (affichage, son, gestion des entrées clavier, etc), et la partie "modèle" (traitements sur les composants du jeu, simulation physique, etc).

Du côté serveur, seule la partie Modèle existerait, afin de centraliser les traitements sur le modèle et permettre la communication entre les différents clients.

Du côté client, les deux parties existeraient. Bien évidemment la partie Vue étant nécessaire pour qu'un joueur puisse apprécier le déroulement d'une partie, mais aussi la partie Modèle.

Avoir la partie Modèle à la fois dans le serveur et dans le client ayant pour objectif de palier aux problèmes de latence dues au réseau et de "pré" simuler et mettre à jour une scène de jeu. Le serveur viendrait corriger le modèle d'un client dans le cas où un évènement  non connu du client à un moment t serait survenu et modifierait le déroulement du jeu.

Ainsi j'imagine un système permettant de stocker les évènements (genre "déplacement de l'élément E en position x,y") sur plusieurs itérations de sorte à ce que le client puisse vérifier la justesse de ses simulations et les corriger au cas où.

Tout ce bazar permettant au joueur sur son client de jouer de façon fluide et de ne pas avoir à attendre sur la simulation faite par le serveur pour voir affiché le résultat.

Néanmoins, quelque chose me dit que cette méthode peut être très lourde et nécessiterait une vérification complète du modèle à une certaine fréquence pour être sur que tous les clients évoluent sur l'exacte même base.

Enfin bref, voilà mes premières idées quant à la conception de la couche réseau de mon moteur. Qu'en pensez vous ?

Merci d'avance pour vos commentaires =)

Kiss
« Modifié: Mai 15, 2012, 04:14:21 pm par Bigz »

 

anything