Cela pourrait être considéré comme un problème d'animation. Si une correction de position revient du serveur suite à une tentative de se déplacer vers un objet invisible, renvoyez non seulement la correction mais un indicateur indiquant pourquoi la correction était nécessaire. Au lieu d'un joueur qui saute en arrière, il peut faire une sorte d'animation "woah" en arrière, ce qui donne plus vraisemblablement l'impression qu'il vient de tomber sur quelque chose.
Dans les jeux utilisant cette approche, il n'est pas rare de supprimer l'invisibilité (au moins momentanément) de tout ce qui a été rencontré. Entre autres choses, cela incite les joueurs invisibles à éviter les foules ou à se rapprocher trop des autres personnages, ce qui réduit la fréquence à laquelle la collision avec un joueur invisible se produit en premier lieu. Ainsi, même si votre animation pour ce type de collision est faible (ou inexistante), elle est quelque peu cachée par le personnage invisible apparaissant dans la visibilité et télégraphiant clairement à tout le monde ce qui vient de se produire.
Le besoin d'animation pourrait être supprimé en ne laissant pas l'invisibilité fonctionner à courte distance. Cela incite encore plus les joueurs invisibles à éviter de se rapprocher des autres personnages. Il s'agit d'une approche courante pour les jeux basés sur la furtivité et l'IA (remplacer "invisible" par "non visible pour la cible") et peut être vue dans les jeux PvP comme World of Tanks. Il n'y a pas besoin de s'inquiéter de la réponse aux collisions avec des personnages invisibles si rien d'invisible n'est jamais assez proche de vous pour entrer en collision (dans les limites de latence).
La solution de Dracor pour simplement ignorer les collisions avec des objets invisibles est également une bonne solution. Cela nécessite à nouveau quelques animations (pour le client des joueurs invisibles) afin que les objets ne se contentent pas de couper l'avatar du joueur sur son écran. Si vous ne faites rien d'autre, vous pouvez faire en sorte que les objets visibles repoussent toujours les objets invisibles afin que le joueur invisible soit automatiquement déplacé sur le serveur si quelqu'un entre en collision avec lui.
Les collisions invisibles-invisibles sont un peu plus délicates. Il peut être avantageux de simplement désactiver les collisions sur eux car personne ne peut voir si deux objets invisibles s’écrêtent ensemble (en supposant par "invisible" nous voulons dire que les deux objets ne sont pas visibles pour le même client). Si l'un des objets devient visible, il revient automatiquement à la réponse de collision visible-invisible (repoussez l'objet invisible).
Tout cela devient plus compliqué si l'invisibilité a compliqué des ensembles de qui peut voir qui. La première ou la deuxième solution ci-dessus est probablement la meilleure ici si vous en avez besoin. Tous les problèmes comme celui-ci n'ont pas besoin d'une solution technique; beaucoup ont juste besoin de solutions de conception (par exemple, ne laissez pas cette fonctionnalité à vos concepteurs).