Optimiser ton jeu Unreal Engine : stat fps et stat unit
Ton jeu rame et tu ne sais pas pourquoi ? Avant de changer quoi que ce soit, il faut mesurer. À la fin de ce guide, tu sauras lire les FPS, utiliser les commandes stat fps, stat unit et stat game, trouver ce qui ralentit ton jeu et savoir pourquoi un Event Tick coûte cher. Tout est vérifié sur la documentation officielle d’Epic Games.
Les FPS et le temps d’une image
Les FPS (Frames Per Second, images par seconde) comptent combien d’images ton jeu dessine chaque seconde. Plus il y en a, plus tout paraît fluide.
On mesure aussi le temps pour fabriquer une seule image, en millisecondes (ms). Une seconde vaut 1 000 ms. Pour 60 FPS, chaque image doit être prête en 16,7 ms environ (1 000 ÷ 60). Si elle met plus longtemps, le jeu passe sous 60 FPS.
La console et stat fps
La console est une ligne où tu tapes des commandes pendant que le jeu tourne (touche ² sur un clavier français). Avec stat fps, un compteur affiche les FPS et le temps d’une image en ms. Retape la commande pour le cacher.
La méthode : mesurer, corriger une chose, mesurer encore
- Mesure.
- Trouve ce qui ralentit.
- Corrige une seule chose.
- Mesure à nouveau.
Optimiser sans mesurer, c’est deviner. Si tu changes dix choses d’un coup, tu ne sais plus laquelle a aidé. Refais toujours tes mesures dans les mêmes conditions : même endroit, même direction. Un mur et tout un niveau ne coûtent pas pareil à dessiner.
Le pas à pas complet, avec les captures de l’éditeur, des quiz et un mini-projet, est dans le chapitre « Performance : un jeu fluide » du cours.
stat unit : qui ralentit le jeu ?
La commande stat unit découpe le temps d’une image en quatre chiffres.
- Frame : le temps total de l’image.
- Game : le temps du thread du jeu, celui qui fait tourner tes Blueprints.
- Draw : le temps du thread de rendu, qui prépare ce qu’il faut dessiner.
- GPU Time : le temps de la carte graphique, qui dessine.
Un thread est un « ouvrier » du processeur. Game, Draw et le GPU travaillent en même temps, et l’image attend le plus lent : c’est le goulot d’étranglement. Compare Frame aux trois autres :
- Frame proche de Game : c’est le jeu qui ralentit tout ;
- Frame proche de Draw : c’est le rendu ;
- Frame proche de GPU Time : c’est la carte graphique.
Exemple : Frame 25 ms, Game 24 ms, Draw 8 ms, GPU Time 10 ms. Frame est collé à Game : le thread du jeu est le goulot d’étranglement.
Game et Draw travaillent sur le processeur (CPU), GPU Time sur la carte graphique (GPU). Un jeu freiné par le processeur est « CPU-bound », un jeu freiné par la carte graphique est « GPU-bound » (bound = limité par).
stat game : regarder le gameplay
Si Game est le goulot d’étranglement, stat game montre combien de temps prennent les Ticks du gameplay, c’est-à-dire le code lancé à chaque image.
Le prix d’Event Tick
Le code branché sur Event Tick tourne à chaque image, pour chaque acteur. Avec 100 zombies qui ont un gros calcul dans Tick, à 60 FPS, ça fait 100 × 60 = 6 000 calculs par seconde. Ça s’additionne vite, et Game grimpe dans stat unit.
- Garde Tick pour ce qui change vraiment à chaque image, comme un missile qui suit sa cible en douceur.
- Ce qui arrive à un moment précis (le joueur touche un objet, la partie commence) va sur un événement lancé une seule fois, comme On Component Begin Overlap ou Event BeginPlay.
- Si rien n’est branché sur Event Tick, il ne coûte rien.
Quand tu déplaces un acteur dans un Tick, multiplie par Delta Seconds, le temps écoulé depuis l’image précédente. Sans cela, un PC rapide irait plus vite.
Questions fréquentes
Quelle commande afficher pour voir les FPS ?
Pendant que le jeu tourne, ouvre la console et tape stat fps. Retape-la pour cacher le compteur.
Mon jeu rame : que faire en premier ?
Mesure. Avec stat unit, regarde si Frame est proche de Game, de Draw ou de GPU Time. Si c’est le gameplay qui ralentit, baisser les textures ne changera rien.
Que veut dire « GPU-bound » ?
Que la carte graphique est ce qui limite les performances. « CPU-bound » veut dire que c’est le processeur, où travaillent Game et Draw.
Sources officielles
- Introduction to Performance Profiling and Configuration (documentation Epic)
- Stat Commands (documentation Epic)
- Events (documentation Epic)
- Blueprint Best Practices (documentation Epic)
- FTickFunction (documentation Epic)
À lire aussi : utiliser un Timer au lieu d’Event Tick, Event Tick et BeginPlay et Delta Seconds.
Tu veux apprendre à mesurer puis corriger les lenteurs de ton jeu, pas à pas dans un vrai projet ? Le cours propose des leçons courtes, des quiz et des mini-projets, à ton rythme.
Apprendre Unreal Engine 5 gratuitement