Chapitre 20 — Boucle de jeu, FPS et delta time
Partie 2A — Les fondamentaux du jeu 2D · Chapitre 20 sur 62 · 6 h
Chapitre 20 — Boucle de jeu, FPS et delta time
Niveau : intermédiaire Durée estimée : 6 h Pré-requis : chapitre 19 — Flutter en accéléré pour le jeu (
runApp,StatefulWidget,setState,Ticker,CustomPainter) Ce que vous saurez faire à la fin : écrire une boucle de jeu complète en Dart et en Flutter pur, mesurer les FPS, et faire bouger un objet à la même vitesse réelle sur toutes les machines grâce au delta time.
20.0 — Objectifs du chapitre
À la fin de ce chapitre, vous serez capable de :
- expliquer ce qui distingue techniquement un jeu d'une application classique ;
- décrire le schéma entrées → mise à jour → rendu et le redessiner de mémoire ;
- écrire une première boucle de jeu en Dart console ;
- expliquer pourquoi un
while (true)gèle une application Flutter ; - définir une image (frame) et un taux d'images par seconde (FPS) ;
- convertir un nombre de FPS en durée de frame en millisecondes, et l'inverse ;
- démontrer le bug d'un déplacement écrit
x += 5par frame ; - définir le delta time et écrire
x += vitesse * dt; - raisonner en pixels par seconde plutôt qu'en pixels par frame ;
- calculer un
dtà partir d'unStopwatch; - utiliser un
TickeretSchedulerBindingpour piloter une boucle Flutter ; - afficher un compteur de FPS et le lisser avec une moyenne glissante ;
- reconnaître un
dtaberrant après un pic de lag et le plafonner avecclamp; - implémenter un pas de temps fixe avec un accumulateur ;
- comparer pas fixe et pas variable et choisir en connaissance de cause ;
- découpler la mise à jour du rendu et interpoler entre deux états ;
- mettre le jeu en pause, au ralenti ou en accéléré avec un facteur de temps ;
- nommer précisément ce que le moteur Flame fera à votre place à partir du chapitre 27 ;
- assembler un petit moteur de boucle réutilisable pour tous les chapitres suivants.
Commentaires
Les commentaires sont alimentés par GitHub Discussions
Connectez-vous avec GitHub pour participer à la discussion