J'ai lu ceci: Comment concevoir un système de rejeu Mais cela ne répond pas vraiment à ma question.
Mon jeu est construit avec la "vue" cliente du jeu en tant que programme distinct du serveur "modèle" et "contrôleur". (un peu comme un mmo, ou n'importe quel jeu multijoueur construit de cette façon). Le côté serveur est toujours la «vérité» du jeu, il n'accepte que les demandes d'action en entrée des clients et les événements de sortie et les messages «état actuel».
Le modèle de jeu et les règles sont entièrement déterministes avec un cycle de mise à jour "tick" fixe, donc du côté serveur je peux enregistrer à la fois les événements envoyés aux vues client et les demandes d'action. Les deux sont associés à un numéro de cycle spécifique.
La question est: dans ce cas, pour configurer un système de relecture, dois-je utiliser l'entrée, ou les demandes d'action de l'utilisateur (comme suggéré ici) ou les événements?
Il me semble que les deux donneraient exactement la même sortie. Les seules différences que je peux voir sont:
- Les événements donnent la sortie réelle tandis que les demandes d'action doivent être traitées pour donner des événements.
- Les demandes d'action peuvent contenir beaucoup moins de données à enregistrer.
Y a-t-il d'autres choses à considérer?