Pokémon sur GameBoy Advance, la troisième génération à l'essai

(7/15)

Pokémon Version Emeraude - suite (3/3)

LA RNG

 
La génération de nombres aléatoires ou random number generation (RNG) est la façon dont un programme informatique crée le hasard. Cependant, le hasard comme on l’entend dans la vie réelle qui ne repose sur rien (rappelez-vous vos cours de probabilités avec le tirage de boules de couleur dans une urne ou un jet de dé non pipé) n’existe pas en informatique car il est le résultat d’un calcul mathématique basée sur une donnée spécifique (date, fréquence d’horloge du processeur, etc…).
 
La donnée de base est comme une graine qu’on plante et la RNG est l’arbre qui en résulte. Il pousse et donne un résultat à chaque cycle d’horloge (frame) qui est utilisable pour une fonction qui a besoin de hasard. Dans un jeu vidéo, il y a en général 60 frames par seconde et donc 60 nombres possibles dans une seconde donnée.
Pour illustrer, les calculs de dommage en combat dans les RPGs prennent en compte la puissance d’attaque d’un combattant et la défense de son adversaire pour savoir combien de points de vie seront retirés après un coup. Cependant, le résultat n’est pas toujours identique car une part d’aléatoire est utilisée dans le calcul, comme un jet de dé. Par exemple à la frame numéro 5296 un coup enlèvera 10 points de vie et à la frame numéro 7848 le coup enlèvera 15 points de vie alors que les 2 adversaires et les attaques sont identiques.
 
Normalement, la graine de la RNG est différente dès qu’on allume sa console pour lancer une partie ce qui fait qu’on a une véritable illusion de hasard.
Cependant, ce n’est pas le cas dans Pokémon Version Emeraude. Quelle que soit la partie, la graine est toujours identique et la RNG se développe au cours des frames toujours de la même façon. Bug ou modification volontaire, le débat reste ouvert.
 
Cela a 2 conséquences : d’une certains événements aléatoires sont presque impossibles à réaliser car trop loin dans la liste des frames et d’autre part la RNG et ses frames sont facilement prévisibles.
 
La première conséquence implique qu’il est pratiquement impossible dans ce jeu d’obtenir un Pokémon chromatique par reset. Cette pratique, généralement pour les légendaires, consiste à se placer devant le Pokémon, sauvegarder, puis lancer l’interaction. S’il n’est pas chromatique, on relance le jeu (reset) et on recommence jusqu’à ce qui le soit. Le problème étant que que la RNG étant fixe, si l’événement n’a lieu qu’à la frame numéro 150000, c’est-à-dire à un soixantième de seconde très précis après plusieurs dizaines de minutes de jeu il est complètement impossible d’obtenir l’événement durant un reset qui dure moins d’une minute.
 
La deuxième conséquence implique que si la RNG est facilement prévisible, elle est donc facilement manipulable. Si l’on connait comme la RNG est calculée, il suffit de savoir à quelle frame il faut déclencher un événement pour avoir le résultat voulu. Par exemple, si vous recherchez un Pokémon avec des caractéristiques particulières (bonnes statistiques, chromatique, ce que vous voulez), si vous savez à quelle frame il faut déclencher la rencontre, vous êtes sûrs à 100% du résultat. Il suffit de chronométrer.
Enfin, ça c’est en théorie, la pratique est évidemment un peu plus compliquée car il faut réagir au soixantième de seconde. Clairement pas facile mais néanmoins possible.
 
Dans tous les cas, il faut les bons outils pour le faire dont en voici un : Emloop ). C’est en japonais, mais parfaitement utilisable avec les bons tutoriaux. Vous en trouverez ici sous forme de texte ou ici en vidéo (si vous avez le temps, c’est long).
 
Voici Emloop. Relax, ce n'est pas très compliqué avec les bonnes explications.
 

 

 

LES MOINS
LES PLUS
 
 
-    La version ultime d'Hoenn
-    La Zone de Combat
-    Quelques nouvelles mécaniques
-    L'intégration de l'adaptateur sans fil
-    Ca ne reste malgré tout qu'un épisode complémentaire