La mise en œuvre de la compensation de décalage réseau est difficile, comment l'éviter?
Peut-être qu'il est possible d'utiliser des astuces et de construire des mécanismes de jeu de telle manière que le décalage soit perçu comme un élément non critique ou même naturel du jeu?
Quelles sont ces techniques et existe-t-il des jeux existants (MMORPG, Stratégies, ...) qui utilisent de telles techniques?
MISE À JOUR:
Les jeux au tour par tour ne nécessitent pas de compensation de décalage, mais il serait intéressant de voir des approches en temps réel (ou juste une impression de temps réel, la partie importante - l'utilisateur ne devrait pas être bloqué et forcé d'attendre).
La raison principale pour laquelle j'évite la compensation de décalage est la simplicité.
Réponses:
Il est courant que le client implémente une sorte de rétroaction pour informer immédiatement le joueur que l'action choisie a été enregistrée, par exemple:
Ceux-ci peuvent avoir lieu pendant que les informations circulent vers le serveur, de sorte que le joueur ne se rend pas compte que son action n'a pas encore commencé. Tant que le serveur répond rapidement et que l'action commence bientôt, le joueur peut ne pas remarquer le retard.
Ces astuces fonctionnent dans les jeux où les entrées des joueurs sont assez rares et donc le temps que vous passez à attendre qu'une entrée prenne effet est une proportion relativement faible du temps total passé à jouer. Par conséquent, vous voudriez trouver des moyens de structurer le jeu afin que le joueur fasse moins d'entrées. Cela signifie probablement que les actions des joueurs sont plus abstraites et que le jeu implémente le comportement de bas niveau. Exemples:
la source
Pensées aléatoires:
Alors oui, trichez beaucoup.
la source
La réponse est assez simple - créez simplement des jeux qui n'ont pas de sections critiques en termes de temps. Vous cherchez à éviter de mettre en œuvre ces types d'interpolations pour une raison spécifique que je prends, ce qui signifie que vous n'êtes pas préoccupé par un gameplay nerveux et rapide. Ceci est parfaitement accessible pour de nombreux jeux, y compris Civilization (qui est un jeu de stratégie). Cependant, comprenez que cela n'est PAS acceptable pour un jeu de stratégie EN TEMPS RÉEL où vous devez transmettre beaucoup de données sur le réseau à des moments variables. Si vous souhaitez concevoir un jeu autour d'un réseau à latence très élevée, tenez compte des points suivants:
J'espère que cela aide au moins un peu; sans connaître vos idées de jeu exactes, c'est difficile. Je suppose que vous avez vos raisons de vouloir créer votre jeu autour d'un tel modèle (simplicité, économie de bande passante, complexité réseau réduite)
la source
Vous pouvez également faire du lag une partie de votre gameplay pour le "réalisme". Supposons que vos joueurs sont censés contrôler certains robots à distance, vous pouvez forcer le décalage à être d'au moins 500 ms ou 1 s (vous devez implémenter un système de rembourrage dynamique).
la source
C'est aussi une bonne astuce pour simplement masquer les actions des joueurs. De nombreux jeux FPS font exactement cela. Ils ne montrent aucun visuel de la plupart des balles, seuls les sons sont joués et vous obtenez le résultat sous la forme de dégâts infligés aux joueurs.
J'ai joué à des jeux FPS où des armes de haute précision (tireurs d'élite et autres) avaient des effets visuels très clairs, et vous pouviez réellement voir que l'autre joueur tirait derrière vous, mais à cause de la compensation du décalage, vous avez été tué.
la source