Home Archives

<b>Comment mesurer les performances des jeux ?</b>

Imprimer Envoyer
Note des utilisateurs: / 7
MauvaisTrès bien 
Écrit par Pascal Thevenier   
Vendredi, 13 Avril 2001 12:54
-Tonton, comment savoir si mon jeu est fluide ?
-Tonton, pourquoi en 1600x1200 Quake ressemble à un slideshow ?
-Tonton, pourquoi tu ne fais pas un site sur les Mac ?
Fiston, les benchs servent à représenter la puissance d’un ordinateur afin de le comparer à un autre...

Les types de jeux

Les jeux comme AOE ne demandent pas trop de puissance (ici Settlers III)Avant de nous lancer dans de grandes théories, il faut savoir que tous les jeux ne demandent pas une vitesse d’affichage très élevée. Les plus rudimentaires sont ceux livrés avec Windows. Inutile de se prendre la tête, la Dame de Pique et consorts fonctionnent à merveille depuis les 386… Au-dessus, nous retrouvons les jeux du type Age of Empire, Command & Conquer, Simcity, etc. Aussi beaux soient-ils, ils ne demandent pas une carte graphique dernier cri. En effet, l’image affichée varie relativement peu. Dans ce domaine, il n’est généralement pas nécessaire de s’inquiéter : une machine âgée de deux ans suffit souvent.
Les jeux gourmands sont visuellement beaux, rapides et très animés. Nous y retrouvons les courses de voitures, les simulateurs de vol, les jeux de combat, les Quake-Like, etc. Dans ces domaines, il est important de bénéficier d’une configuration musclée afin de profiter pleinement du jeu. Sur une machine plus ancienne, il n’y aura pas d’autres alternatives que de réduire les détails graphiques. Les réglages seront donc un compromis entre la beauté de l’image et la vitesse d’affichage.

L’API utilisée

  • Open GL est une bibliothèque professionnelle très puissante. Elle sert principalement dans les First Person Shooter (" FPS ") comme Quake II, Unreal Tournament, Quake III, Half-life, etc. Dans ce type de jeu, l’image présentée à l’écran correspond à ce que voit votre personnage et Open GL convient très bien. Pour y jouer, il faut donc impérativement disposer d’une carte graphique et d’un pilote compatible avec cette norme.
    Attention, les cartes de type ATI 3D Rage Pro, Matrox G200 ou nVidia Riva 128 supportent Open GL mais ne sont plus vraiment adaptées aux jeux récents. Il faut au moins bénéficier d’une ATI Rage 128, 3Dfx Voodoo 3000, nVidia Riva TnT, Matrox G400 ou S3 Savage. Les jeux particulièrement rapides comme Quake III demandent un très grand nombre d’images par seconde pour être agréables. Open GL reste donc le sujet chaud dans les benchs… Open GL est l’API des Quake-like rapides. Elle demande une carte graphique très puissante.
  • DirectX est utilisé dans une gamme de jeux variée. De la course de voitures au simulateur de vol en passant par le jeu de golf, tous utilisent l’API de Microsoft. Même les cartes AGP anciennes (ATI 3D Rage Pro, nVidia Riva 128, S3 Savage, Matrox G200 et 3Dfx Banshee) supportent DirectX dans sa version 5. Elles permettent encore de jouer à un bon nombre de titres. Au fur et à mesure de l’évolution des versions, de très nombreuses fonctions ont été ajoutées à Direct X. Aujourd’hui, la version 8 est aussi complète qu’Open GL. Cependant, Direct X présente un inconvénient face à Open GL : il ne peut restituer une fonction qui n’est pas supportée par la carte (Open GL peut faire traiter la fonction par le processeur). DirectX est l’API la plus répandue dans les jeux. Elle se contente d’une carte moins puissante.
  • Glide reste supporté par quelques jeux mais se fait de plus en plus rare. Etant dérivé d’Open GL, le Glide permet aux cartes de 3Dfx de rester relativement rapides dans les jeux. Une Voodoo 2 permet de jouer à Quake III dans de bonnes conditions. Glide est l’API de 3Dfx, elle disparaît rapidement.

La fluidité…

Il s’agit d’un domaine particulièrement chaud ! Entre ceux qui prétendent que 25 images par seconde sont suffisantes et les autres qui ne jurent que par 60 fps au minimum, le débat est houleux. En fait, tout le monde a raison ! L’œil ne perçoit que 25 images par seconde. Il faut donc en théorie 25 images par seconde pour rendre une impression de mouvement. Mais l’oeil est aussi capable de remarquer le scintillement d’une image à 75Hz. Entre l’impression de fluidité dans le mouvement et un réel rendu agréable, il y a donc de la marge.
Midtown Madness 2 est fluide avec ~40fps en 1600x1200x16 en full optionsUn jeu de voitures comme Midtown Madness 2 ne demande pas un nombre d’images aussi important qu’un Quake like. Dans une course de voitures, la quantité d’objets présents à l’écran (et donc le nombre de polygones) ne varie pas de manière spectaculaire, les changements complets de plans sont rares et les fonctions 3D utilisées ne sont pas trop nombreuses. Il en découle un nombre d’images par seconde assez constant et une impression de fluidité dès que la vitesse atteint 27 à 30 fps.
AArrrrggghhhhh!  Quake III à 66fps en 1024x768x32 full option, le gameplay est excellent.Dans un jeu d’action comme Quake III, les choses sont complètement différentes. Les variations du champs de vision sont très importantes et se font dans toutes les directions, le nombre de polygones varie de manière spectaculaire. Les effets visuels sont très riches et font appel à de très nombreuses fonctions 3D. Il en résulte un nombre d’images par seconde très variable. Ainsi, une moyenne de 60 images par seconde dans Quake III n’est pas un luxe. Cette valeur pouvant chuter à moins de 20 en cas de scènes chargées…

Le nombre d’images par seconde

Assez perdu de temps, voici comment obtenir les nombres d’images par seconde dans différents jeux… Nous avons réalisé les tests sur une machine assez faible (Pentium !!! 500, Savage4 et 128Mo) et sur une configuration plus musclée (Pentium !!! 700, GeForce Pro, 128Mo).

Open GL

Quake II

Quake II en rendu SoftwareLa même scène en Open GL

Quake II est un jeu de baston en Open GL ou en rendu software. Il n’est plus très nouveau (1998) mais permet de comparer les différences de performances et de qualité entre les deux modes. Quake II utilise la profondeur de couleurs du bureau de Windows. Si vous affichez Windows en mode 16bits, le jeu s’affichera en 16bits. Pour tester le mode 32bit, il faut placer le bureau de Windows en mode 32bits. Après avoir lancé le jeu, il est nécessaire d’activer le mode console en appuyant sur la touche [ ³ ] en haut à gauche du clavier. Ensuite, il reste à taper deux lignes de commande :

Timedemo 1 [ENTER]
Map demo1.dm2 [ENTER]

Attention, le clavier est en mode QWERTY, il faut taper ti,ede,o et ,qp de,o1.d,2 . Le score apparaît après la démonstration. Il faut parfois descendre la console manuellement avec la touche [ ³ ]. Il existe une seconde démonstration dont le nom est demo2.dm2.

Demo1 (Pentium !!! 500) 640x480 800x600 Software 28,3 (39) 21,1 (29) Hardware 51,3 (187) 34,3 (189)

Afin de bien comprendre ce qui se passe dans le cas d’un jeu en mode multijoueurs, la démonstration Crusher prouve sans équivoque la différence de frame rate lors de scènes particulièrement chargées. Pour installer cette démonstration, il faut copier le fichier dans le dossier baseq2 du répertoire Quake II. La seconde ligne de commande sera remplacée par

Map crusher.dm2 [ENTER]

Crusher 640x480 800x600 Software 19,3 (26) 14,8 (21) Hardware 31,1 (86) 26,8 (90)

Il est évident que jouer en mode Software n’est d’aucun intérêt : c’est laid et lent ! Mais les cartes d’ancienne génération sont parfois plus lentes en rendu Open GL qu’en rendu software (ATI 3D Rage Pro). Le plus impressionnant est de constater que le frame rate de la toute puissante GeForce Pro arrive à chuter de moitié entre Demo1 et Crusher ! ! !

A titre d’information, la configuration Pentium !!! 700 – GeForce Pro atteint encore 60fps lors de la démonstration Crusher en 1600x1200x32…

Half-life

Ce jeu est lui aussi déjà âgé mais présente encore un certain intérêt au niveau des tests. En effet, Half-life supporte les modes Direct X et Open GL. Un simple test dans chaque mode permettra de sélectionner le plus rapide… Pour réaliser des mesures de performances avec ce jeu, il faut créer un raccourci vers l’exécutable du jeu et ajouter la commande –console (comme le montre notre capture d’écran). Il faut aussi télécharger une démonstration comme Cheat.dem et la placer dans le dossier half-life/valve. Il reste à lancer half-life grâce au raccourci. Le menu du jeu propose maintenant une option console. Il n’y a plus qu’à activer la console en cliquant et à taper la ligne de commande :

Timedemo cheat [ENTER]

Comme dans Quake II, le clavier est configuré en QWERTY, il faudra réellement taper " ti,ede,o cheqt ".

Demo Cheat 640x480 800x600 Sowftware 20,2 14,4 Hardware Open GL 32,7 31,0 Hardware Direct X 35,6 31,0

La vitesse peut varier en fonction de l’API utilisée. A qualité d’image généralement égale, autant choisir la plus rapide. Sur l’ordinateur équipé de la GeForce, le bouton console ne veut pas apparaître… Une question de drivers certainement !

Avec Direct X, le problème n'est pas présent.  Remarquer la différence de luminosité entre les deux modes (gamma)

Unreal Tournament

Unreal Tournament est un shoot, comparable à Quake III, supportant un grand nombre d'API

  • Software: Destiné aux machines anciennes (320x200, 400x300), pauvre qualité.
  • Glide (3Dfx): Exclusivement réservé aux Voodoo, support complet, excellente qualité.
  • Open GL: Ce mode est supporté mais peut poser problème, excellente qualité.
  • Direct X: Il s'agit du meilleur mode de rendu pour UT, excellente qualité.
  • Metal (S3): Uniquement pour les cartes S3, qualité moyenne.
Astuce: pour faire une capture d'écran sous Unreal Tournament, il suffit de presser [F9]. L'image sera sauvée au format .bmp dans le dossier système d'Unreal.

Il est intéressant de vérifier quelle interface de programmation offre les meilleurs résultats. Cependant, il faut être assez prudent car le jeu s'avère parfois instable avec les autres API que DirectX et le rendu Metal n'est pas toujours du plus bel effet. UT est un assez long à charger, il demande de 4 à 5 fois plus de temps que Quake III. Il est judicieux de défragmenter le disque pour réduire le temps de démarrage. Enfin, pour réaliser un bench avec UT, il faut télécharger une démonstration comme Wicked400.dem et la placer dans le dossier: La console d'Unreal Tournament/Unreal Tournament/system.

  • Lancer Unreal Tournament
  • Appuyer sur [ESC] pour enlever le bureau de UT
  • Appuyer sur [%] fera descendre la console
  • Taper: timedemo 1 [ENTER] dans la console pour activer le compteur de fps
  • Taper: demoplay wicked400 [ENTER] et directement après sur [%] pour retirer la console

A la fin de la démonstration, il faut à nouveau presser [%] pour avoir le nombre d'images par seconde. UT donne les fps min, max et moyen. Il ne faut pas s'étonner si le score est faible. Unreal Tournament dépend assez du processeur central. Il ne sera pas peut-être nécessaire de passer en mode 800x600 en 16bits pour avoir un bon score. La démonstration est particulièrement chargée et montre des scènes graphiquement très chargées. Un score de 30fps offrira un bon gameplay lors de parties classiques.

Voici quelques capture d'écran qui expliquent comment augmenter les FPS:

Placer Gore-Level sur Ultra-low (comparable à seta cg_gibs 0 dans Quake 3) pour limiter les

Pour aller plus loin, il faut taper: [preferences] dans la console. Vous arriverez alors dans la fenêtre de configuration avancée. Attention, le jeu peut devenir instable en modifiant les paramètres.

Placer les paramètres comme sur la cpature d'écran. Placer les paramètres comme sur la capture d'écran.

Quake III

Quake III est le meilleur exemple de jeu Open GL actuel. C’est aussi le plus gourmand de tous. Ici, pas question de mode software ou de Direct X, la dernière version de Quake ne fonctionne que sous Open GL. Le jeu bénéficie directement de deux démonstrations intégrées : les demo001 et demo002. De très nombreux autres exemples peuvent être téléchargés depuis l’Internet. La mesure de vitesse se fait grâce à la console. Tout comme dans Quake II, elle arrivera à l’écran via la touche [ ³ ]. Les deux lignes de commande à valider sont :

Timedemo 1 [ENTER]
Demo demo001 [ENTER]

Pour vérifier le score, il faut à nouveau faire appel à la console [ ³ ].

Demo001 640x480 800x600 Normal 31,1 22,3 Tweaked 45,2 30,0

Le Pentium !!! 700 et la GeForce Pro atteignent tranquillement 45 images par seconde en mode 1600x1200x32 avec tous les détails poussés au maximum. Il n’y a donc pas lieu de s’inquiéter de la jouabilité. Dans le pire des cas, il est possible de se rabattre sur le mode 1280x1024x32 (full options) où le frame rate reste au dessus de 60fps ! Mais Quake III place les machines un peu anciennes sur les genoux. Nous avons donc examiné le jeu en détail afin de permettre aux moins fortunés de jouer sans avoir à acheter une nouvelle carte graphique. Nous avons utilisé le mode normal 640x480 en mode 16bits. Nous avons ensuite "Tweaké" le jeu pour atteindre une augmentation des performances de près de 50% sans dégrader l’image ! C’est toujours bon à prendre…

Beaucoup de modifications vont se faire via la console :

Ligne de commande Action Seta r_ignorehwgamma 1 Désactive la correction gamma externe Seta r_gamma x La valeur de gamma (x) peut aller de 0.5 à 2.0 Seta r_intensity 1.5 Corrige un jeu trop sombre (GeForce seulement) Seta r_dynamiclight 0 Désactive certains effets de lumière Seta r_texturebits 8 Force les textures en 8bits Seta r_stencilbits 4 Réduit la profondeur du stencil buffer Seta cg_lagometer 0 Supprime le graphe de connexion Seta cg_draw3dicons 0 Utilise des icônes 2D Seta cg_drawattacker 0 Empêche l'affichage de l'icône de l'agresseur Seta cg_drawfps 1 Affiche le compteur de FPS en permanence Seta cg_gibs 0 Supprime les morceaux de corps lors des explosions Seta cg_shadows 0 Supprime l’ombre sous les joueurs Seta cg_centertime 2 Réduit la durée d'affichage des messages (3 par défaut) Seta com_blood 0 N'affiche pas les sang Seta s_khz 11 Force le son en 11kHz

En installant un groupe de trois DLL dans le dossier /baseq3 vous pouvez encore gagner quelques images par seconde. Vous pouvez aussi accéder à de nouvelles options :

Ligne de commande Action Seta cg_rockettrail 0 Plus de fumée derrière les roquettes Seta cg_grenadetrail 0 Idem pour les grenades Seta cg_shotgunsmoke 0 Idem pour le fusil

Place à quelques images bien plus révélatrices que de longs discours…

Utiliser la touche [F11] produit une capture d'écran. Les captures sont placées dans un dossier Quake III Arenabaseq3screenshots au format .tga

MDK 2

MDK 2 utilise SSE, MMX, 3Dnow!, T&L, etc.

Mesurer les performances avec MDK2, est un jeu d’enfant ! Lors du lancement de la fenêtre de configuration, il suffit de valider "Aperçu". Une boîte de dialogue donnera le nombre d’images par seconde à la fin de la démonstration. Il est possible d'activer ou non, le T&L hardware intégré à une carte graphique. Cela permet de juger de manière réelle le gain apporté par les GPU. Tout comme Quake III, MDK2 ne fonctionne que dans le mode Open GL.

640x480x16 640x480x16 T&L Pentium !!! 700 GF Pro 85 101 Pentium !!! 500 Savage 4 40 30

Il n’est pas toujours utile de valider des options au hasard. Ainsi, l’activation de T&L Hardware offre un gain important sur le Pc puissant grâce à la GeForce Pro. Sur la petite machine, la perte de fluidité est importante.

640x480 800x600 1024x768 1280x1024 1600x1200 16bits 101 101 101 100 80 32bits 101 101 95 62 40

MDK2 affiche la taille des textures, le temps CPU, le temps image et le nombre d'images par seconde.Dans ce petit test, nous avons mis en évidence la chute du nombre d’images par seconde en fonction de la résolution et la profondeur des couleurs. Nous n’allons pas polémiquer sur les résolutions et profondeurs de couleurs. Mais avouez qu’il ne sert à rien de jouer en 640x480x16 alors que le jeu offre la même fluidité en 800x600x32 ! Au-delà, c’est à vous de choisir entre par exemple 80fps en 1600x1200x32 ou le 1024x768x32 à 95fps. Ici, il s’agit d’une question de goût personnel. Si le rendu en 16bits est de bonne qualité, le jeu sera certainement plus joli en 1600x1200x16 qu’en 1024x768x32.

Sur l'image de droite les temps CPU et images sont de l'ordre de 40ms avec le Pentium !!! et la Savage 4 (25fps). Ces temps passent à 10ms sur le Pentium !!! 700 équipé de la GeForce Pro. Le nombre d'images par seconde est de l'ordre de 100.

Direct X

Incoming

Incoming est le premier jeu qui a exploité le bus AGP et les nouvelles fonctions 3D. Aujourd’hui, toutes les configurations sont capables de faire fonctionner ce jeu de manière très détaillée. Incoming supporte les modes 16 et 32bits qui ont fait couler beaucoup d’encre lors de la guerre TnT – Rage 128. Tout comme dans Half-life, il faut créer un raccourci et ajouter –screenmode –gameindex. Lors du lancement du jeu grâce au raccourci, une boîte de dialogue demandera la résolution et la profondeur de couleurs à utiliser. Il faudra vous même choisir l’instant ou arrêter la démonstration (avec la touche [PAUSE]) et relever le frame rate "de visu". Dans le cas contraire, le jeu continue indéfiniment...

Tout au long de la démonstration, Incoming affiche de nombreuses informations: FPS instentanné, plus faible, plus élevé et moyen.

Démonstration 640x480 800x600 Mode 16bits 41 30 Mode 32bits 32 26

Avec plus de 140fps toutes options activées en 1024x768x32, Incoming tourne à merveille sur une machine récente. Le score est identique en 1024x768x16, il est donc inutile de se limiter au 1024x768x16 ! Le jeu étant ancien, il ne supporte pas de résolution plus élevée que le 1024x768…

Expendable

Ce jeu remplace avantageusement Incoming car il supporte un plus grand nombre de fonctions 3D. De plus, il crée automatiquement un fichier texte timedemo.txt qui contient la résolution, les frame rates minimum , maximum et moyen. Tout comme pour Incoming, il est nécessaire de créer un raccourci et d’ajouter la commande –timedemo.

Les essais realisés montrent que le frame rate peut descendre de plus de 50% par rapport à la moyenne. Il est aussi capable de passer par des pointes importantes avec pas moins de 50% d'images en plus!

Il est aussi important d’avoir un FPS min le plus haut possible que d’avoir le maximum dans l’absolu… Une fois de plus, avec une configuration récente, le jeu fonctionnera en 1600x1200x32 full options (moyenne : 55, minimum : 32 et maximum : 80).

Démonstration 640x480 640x480 S3TC FPS min 22 27 FPS max 72 71 FPS moy 47 47

Autres jeux en vrac :

  • Motorhead. Il suffit d’appuyer sur [ ³ ] pour avoir le nombre d’images par seconde.
  • Flight Simulator. Pendant le jeux [SHIFT] + [Z] + [Z] (deux fois sur [Z])
  • Monster Truck Madness 1 & 2 : Taper FRAME pendant la partie.
  • Beack Neck, Excessive speed, Axcelerator : option de bench dans le menu.

Le frame rate de tous les jeux Direct X

Nous avons gardé le meilleur pour la fin : FRAPS. Fraps est un petit utilitaire pesant moins de 100ko qui affiche le nombre d’images par seconde instantané dans tous les jeux Direct X. Pour y parvenir, il compte chaque passage d’une image du second buffer au buffer principal. Et ça marche ! Nous avons vérifié avec Expendable, le frame rate affiché par Fraps correspond exactement au frame rate affiché par le moteur du jeu. Pour l'utiliser, il suffit de le télécharger (puis de le dézipper), et de lancer le fichier fraps.exe. Une icônes prendra place dans la barre des tâches. Il reste à démarrer un jeu Direct X et le score sera affiché en haut à gauche. Cool, non?

Expendable, FRAPS à l'oeuvre montre les fps en haut à gauche. Tout comme dans Expendable, le socre affiché par FRAPS est correct. Une fois de plus FRAPS ne se trompe pas! 25fps dans Need for Speed 4, le jeu est hyper fluide! Cette scène de Midtown Madness 2 descend à 20fps sur la petite configuration.

Les essais sont un bon moyen de rendre un jeu particulièrement agréable. Les machines récentes équipées de processeurs puissants n’auront pas de compromis à faire entre beauté et jouabilité. Dans le cas des machines moyennes, il faudra souvent se limiter à un mode intermédiaire en réduisant les détails affichés, la résolution ou la profondeur des couleurs. Les petites configurations n’auront droit qu’au mode 640x480x16 avec peu d’options. Mais, comme nous l’avons démontré avec Quake III, en ajustant astucieusement les paramètres, il est possible de faire fonctionner de nombreux jeux sur ces machines. N’hésitez donc pas à tester de nombreux réglages afin de tirer le meilleur compromis !

Mise à jour le Mardi, 10 Novembre 2009 20:23