J'ai eu des problèmes de tremblement de la fréquence d'images avec mon jeu récemment, et il semble que la meilleure solution serait celle suggérée par Glenn Fiedler (Gaffer on Games) dans le classique Fix Your Timestep! article.
Maintenant - j'utilise déjà un pas de temps fixe pour ma mise à jour. Le problème est que je ne fais pas l'interpolation suggérée pour le rendu. Le résultat est que je reçois des images doublées ou sautées si mon taux de rendu ne correspond pas à mon taux de mise à jour. Ceux-ci peuvent être visuellement perceptibles.
Je voudrais donc ajouter une interpolation à mon jeu - et je suis intéressé de savoir comment les autres ont structuré leurs données et leur code pour prendre en charge cela.
Évidemment, je devrai stocker (où? / Comment?) Deux copies des informations d'état du jeu pertinentes pour mon moteur de rendu, afin qu'elles puissent interpoler entre elles.
De plus, cela semble être un bon endroit pour ajouter du filetage. J'imagine qu'un thread de mise à jour pourrait fonctionner sur une troisième copie de l'état du jeu, laissant les deux autres copies en lecture seule pour le thread de rendu. (Est-ce une bonne idée?)
Il semble que le fait d'avoir deux ou trois versions de l'état du jeu pourrait introduire des problèmes de performances et - beaucoup plus important - de fiabilité et de productivité des développeurs, par rapport à une seule version. Je suis donc particulièrement intéressé par les méthodes pour atténuer ces problèmes.
Je pense en particulier au problème de savoir comment gérer l'ajout et la suppression d'objets de l'état du jeu.
Enfin, il semble qu'un certain état ne soit pas directement nécessaire pour le rendu, ou qu'il serait trop difficile de suivre différentes versions de (par exemple: un moteur physique tiers qui stocke un seul état) - je serais donc intéressé de savoir comment les gens ont traité ce genre de données dans un tel système.