28-08-2007, 11:48 PM
Fitz a écrit :maintenant comment faire pour que l'autre utilisateur qui ma envoyer le "defi" reçoi la meme fenetre que celle qui vient de s'ouvrir ????????
J'ai oublié de le préciser tout à l'heure mais il presque nécessaire de faire du tour par tour (sans serveur socket, tout du moins), ceci pour éviter les inégalités liées à la connexion de l'utilisateur et surtout les accès concurrents à la BDD.
En partant de là, les joueurs n'ont plus forcément besoin d'avoir la fenêtre ouverte en même temps. L'idée d'un fichier contenant une variable associée à un tour de jeu n'est pas mauvaise, comme ça, tu peux faire une vérification rapide au début de chaque page de ton jeu pour pouvoir prévenir le joueur quand c'est à lui de jouer.
Le truc c'est que le principe est souvent facile à comprendre mais son application est beaucoup fonction des règles de ton jeu, de l'architecture globale de ton site, etc.
Personnellement, pour mon propre jeu, chaque joueur effectue son tour puis valide quand il a déplacé toutes ses unités et réalisé toutes ses attaques. Dès que son adversaire se connecte, il voit que c'est à son tour de jouer. De cette manière, les parties sont plus longues, mais elles sont très simples à gérer puisque chacun joue dans un ordre bien précis. Tu peux aussi penser à la manière de Dofus et laisser un temps défini pour réaliser des actions afin d'accélérer le jeu (celà suppose de permettre des combats entre les joueurs connectés seulement). Je pense que j'essaierai d'appliquer un peu ce dernier principe dans un autre projet de jeu mais ça suppose un code vraiment solide pour contrôler le temps écoulé côté client mais aussi côté serveur et surtout éviter les bugs de joueurs qui se déconnectent en cours de partie.
Bref, ce genre de système qui intègre beaucoup d'interaction entre les joueurs suppose une vraie réflexion en amont sur ton jeu et il est difficile de te donner des réponses sans avoir plus de détails.
Bonne chance pour la suite. @+