Page 2 of 2

Re: NodeJS + GDevelop

PostPosted: Wed 14 Dec 2016, 18:35
by victor
Je viens volontier sur le chat, tu peux me passer modo ? (victorlevasseur#4215)

Re: NodeJS + GDevelop

PostPosted: Fri 16 Dec 2016, 17:58
by Bouh
Y a t-il moyen de mettre ce post dans la partie PROJETS EN COURS DE DÉVELOPPEMENT du forum ?
Le topic y serait mieux répertorié.

Update du projet :

Les déplacements de chaque joueurs qui rejoignent une partie sont bien transmis à ceux qui sont aussi dans la partie.
Le hic est qu'il y a un petit décalage de position entre la position du joueurs local et ce que vois les autres joueurs.
Du coup je test plusieurs manières de transmettre les données de déplacement du joueur local :

Test effectué :

Avec erreur de déplacement :
- Envoi au serveur le signal que le joueur local bouge :
Le serveur renvoi à tout le monde (joueurs local + distant) de bouger le joueur (simulation d'appuie de touche)

- Envoi au serveur le signal que le joueur local bouge :
Le serveur renvoi aux joueurs distants qu'un joueur bouge (par simulation d'appuie de touche)


Test à faire :

- Envoi au serveur le signal que le joueur local bouge :
Le serveur renvoi aux joueurs distants qu'un joueur bouge (transmission des positions du joueur en mouvement)

- Déplacement du joueur local, et envoi des données positons au serveur, qui les renvoient aux autres joueurs distant.

Déplacement du joueur local, et envoi des données positons au serveur, qui les renvoient à tout les joueurs (joueurs local + distant).

Re: NodeJS + GDevelop

PostPosted: Thu 7 Jun 2018, 00:39
by Fax
Où en es-tu de tes recherches ? Ça m'intéresse beaucoup.

Concernant ton soucis de synchronisation, c'est un peu plus complexe que simplement transmettre une info. En réalité il faut créer deux "mondes" qui devront être les plus identiques possibles.
Dans l'ordre le joueur presse sur un bouton.
Le client (côté joueur), fais les calculs de collision pour savoir si il peut bouger. Si il peut il envoi au serveur l'instruction de l'appui sur la touche.
Le serveur vérifie la faisabilité du mouvement dans son monde qui sera celui de référence. Il déplace le joueur dans son monde et envoi la position du joueur a tout le monde.
Dès réception de la nouvelle position, tout les clients mettent a jour leur monde.
Avec ce système tu évites de créer un lag inutile qui peux frustrer un joueur (cas où le joueur doit attendre la réponse du serveur pour voir son personnage bouger).
Tu vérifies toujours les infos envoyées par les joueurs sans leur faire confiance (évite les tricheurs).
Enfin tu t'assures que tout les clients ont les mêmes positions a l'écran.

Avec ce système j'ai eu de bons résultats pour mon bomberman.