Réplication coffre

Projet terminé.

Je n’ai pourtant pas assimilé tout ce que je dois en matière de réplication. Pour commencer, je m’étais laissé berner par les vidéos que j’avais regardées où la réplication était utilisée dans le code du personnage dont le joueur a – forcément – le contrôle. Par contre la réplication ne peut pas fonctionner lorsque le joueur ne possède pas le contrôle de l’acteur qu’il veut répliquer, par exemple un coffre, qui n’appartient à personne posé dans l’univers. Il n’est pas non plus possible d’assigner le contrôle d’un acteur au joueur. C’est ainsi que le moteur est conçu et j’ai passé un temps considérable à fouiller le net pour finalement le découvrir.

Pour répliquer un acteur dont le joueur n’a pas le contrôle, il faut passer une référence de l’acteur au joueur, qui peut alors créer une RPC (remote procedure call) exécutée par le serveur et actionner les fonctions de l’acteur en multicast pour les répliquer pour – presque – tout le monde. Je dis presque, parce que les joueurs qui ne sont pas près de la scène, aussi appelés relevant, ne verront rien.

Pour qu’un joueur qui arrive sur les lieux plus tard voie le résultat de la réplication, par exemple un coffre ouvert, il faut passer par un repnotify, soit une variable associée à une fonction de réplication qui s’exécutera lorsque le joueur deviendra relevant pour l’acteur.

On pourrait croire que tout cela fait partie intégrante du moteur, mais non, faut tout programmer soi-même, c’est très complexe, raison pour laquelle je viens d’y passer trois jours et que je ne suis toujours pas satisfait.

Mais ça marche et ma compréhension progresse.