Je programme un serveur dédié en C # en utilisant les DLL BeamServer2. Au début, je voulais voir d'autres joueurs évoluer sur notre carte Omuni déjà créée. C'est ce que j'ai fait en envoyant simplement votre position au serveur à chaque image. Cela a fonctionné et j'ai pu jouer avec quelques amis mais le mouvement n'était pas sans décalage. J'ai donc commencé à essayer d'ajouter un lissage de mouvement et également une certaine sécurité afin qu'ils ne puissent pas simplement envoyer une fausse position au serveur sans que le serveur ne l'empêche d'atteindre les autres clients.
Ce que j'ai fait, j'ai fait un masterClient qui a un motionController sur le remotePlayer. Lorsqu'un client veut se déplacer, il se déplace localement et envoie un message au serveur en lui indiquant comment se déplacer. Le serveur prend alors sa vitesse et l'envoie au masterClient. Le masterClient déplace le remotePlayer comme le remotePlayer se déplace lui-même. Lorsqu'il arrête de bouger, il envoie un message avec sa position. Le maître client vérifie ensuite si la position à laquelle il est arrivé est aussi proche que celle qu'il a du client, si elle est réaliste selon le ping du client, le serveur le place sur la position du client.
Cela fonctionne, mais j'ai toujours un problème de décalage et je ne sais pas comment résoudre ce problème. Je dois faire un mouvement de lissage sur le client mais je me suis rendu compte que je pouvais juste lerp (x / 2, y / 2, z / 2) à la position et le mettre sur la position réelle image suivante, j'ai échoué et j'ai réessaiera bientôt. Même si cela est ajouté, je ne suis pas sûr que le lagg soit corrigé.
D'autres techniques, suggestions, questions, ...? Merci, Diede.