Bonjour,

J'ai été un peu surpris en lisant un exemple de code dans la documentation d'introduction de SFML concernant la gestion du temps dans cette bibliothèque. J'ai une expérience du temps réel, mais pas des jeux, aussi je me demande dans quelle mesure cet exemple est typique ou pas dans ce domaine...

En gros, le code tournait aussi vite que possible, mesurait le temps qu'il avait mis à s'exécuter, et mettait à jour sa simulation en tenant compte d'un pas d'intégration variable.

Le mécanisme que j'ai plus souvent vu en temps réel était de faire tourner le programme à un pas de temps fixe, en s'assurant de ne pas avoir de débordements de temps (ou le moins possible, quitte à simplifier les calculs si on ne tient pas), en faisant attendre le système entre deux pas de temps, et en utilisant un pas de temps fixe dans la simulation.

A priori, je vois les avantages suivants à la première méthode :
- Moins de soucis à gérer les configurations un peu faiblardes.
- Possibilité d'afficher des fps à 4 chiffres dans les benchs

Et les avantages suivants à la seconde :
- La plupart des méthodes d'intégration numérique marchent mieux à pas fixe
- Moins de sollicitation du hard (et donc de la batterie pour du développement sur portable, mais aussi bruit de ventilateurs sur une machine classique, réchauffement climatique...)

Qu'est-ce qui est utilisé généralement dans un jeu de nos jours ?
Question annexe : Y a-t-il généralement une seule boucle, ou bien des boucles par sous-systèmes (affichage, IA, moteur physique...) pouvant donc avoir leur propres rythmes (par exemple, une IA à 10Hz, mais un affichage à 60Hz).

Merci de satisfaire ma curiosité !