Random Number Generator

Aus PokéWiki
Zur Navigation springen Zur Suche springen

Der Random Number Generator (abgekürzt "RNG") ist eine Software-Mechanik, die auch in den Pokémon-Videospielen zum Einsatz kommt. Übersetzt steht dieser Begriff für "Zufallszahlengenerator" und ist dafür zuständig, zufällige Werte zu generieren, die dann spielintern für bestimmte Prozesse genutzt werden, bei den Editionen beispielsweise für die Kalkulation der DVs eines wilden Pokémon. Diese Methode kann allerdings wie jedes andere System in der Informatik keinen wirklichen Zufall entstehen lassen und ist an den eigenen Algorithmus gebunden, der sich auf systeminterne Variablen bezieht, daher spricht man hier oftmals von einem Pseudo-Zufall. Aus diesem Grund kann das System auch vom Spieler aktiv beeinflusst und manipuliert werden, wenn dieser die entsprechenden Eingangswerte seinen Zwecken anpasst (siehe "RNG Abuse").

Das Prinzip

Zu Beginn benötigt der RNG einen Startwert, in der Technik auch als Seed bekannt. Dieser Seed wird bei der ersten Abfrage des Generators aus den Eingangsvariablen heraus berechnet ist für den Rest der Spielsession nicht veränderbar. In den Pokémon-Spielen geschieht dies meist, wenn die Software gestartet oder der Spielstand aufgerufen wird, er ist meistens als eine x-stellige, hexadezimale Zahl dargestellt. Dieser Seed ist zusammen mit einigen anderen Faktoren für eine Vielzahl an oft zufallsbestimmten Elementen des Spiels zuständig:

  • Das Verschlüsseln der Pokémon-Daten im Spielstand
  • Die Generierung der DVs eines Pokémon
  • Die Generierung der Fähigkeit, des Geschlechts, des Wesens, und der Art eines Pokémon
  • Die Bestimmung, ob ein Pokémon ein Schillerndes ist
  • Der Zufall in verschiedenen Minispielen, wie beispielsweise bei der Lotterie


Seedfindung

Der Random Number Generator ist für die meisten Spezifikationen eines Pokémon verantwortlich und bezieht sich dabei auf bestimmte Eingangswerte, die für den Spieler zwangsweise nicht ersichtlich sind, um das System komplett zufallsbasiert erscheinen zu lassen. Die meisten dieser Variablen verändern sich teilweise, ohne dass der Spieler dies aktiv beeinflusst, manchmal sind sie aber auch indirekt an seine Aktionen geknüpft. Wie bereits beschrieben wird der Seed meist zum Start des Spiels oder des Spielstands bestimmt und ist solange unveränderlich, bis der Spieler die Software beendet und neu startet. In diesem Fall ist der Großteil der beeinflussenden Faktoren daher nicht durch Aktionen des Spielers veränderbar, sondern durch passive Faktoren festgelegt.

Die Zeit im DS-System

Der Zeitpunkt, zu dem der Spieler die Edition im DS-Menü startet oder den Spielstand betritt, ist bisher in jeder Pokémon-Generation maßgebend für den Seed gewesen, da sie bei jedem Spielstart variiert, wenn die DS-Uhr nicht durch den Nutzer beeinflusst und umgestellt wurde. Genutzt wird vom PRNG hierbei sowohl das Datum, wie auch die sekundengenaue Uhrzeit.

"Delay"

Dieser Begriff beschreibt die zeitliche Differenz zwischen dem Starten des Spiels und dem tatsächlichen Aufrufen des Spielstandes. Ähnlich wie der oben genannte Zeitpunkt, kam auch die Delay bisher in jeder Generation zum Einsatz, wenn es um die Seed-Bestimmung geht. In der 5. Generation wurde allerdings schrittweise Abstand davon genommen, so ist sie in S2W2 vollständig irrelevant für den Seed geworden.

Hardware

Erstmals in der fünften Generation haben auch die Hardware-Spezifikationen des DS-Systems an Bedeutung zugenommen, so generiert der PRNG je nach System-Art teils vollständig andere Seeds. Nennenswert ist hierbei einmal die MAC-Adresse des Systems, wie auch die DS-Art selbst. So gibt es große Unterschiede zwischen der Verhaltensweise Random Number Generator auf einem 3DS und der Verhaltensweise auf einem DS Lite.

Im Spiel

Der zuvor festgelegte Seed bestimmt nun in Kombination mit weiteren Variablen, welchen Pokémon der Spieler begegnet. Der Spieler hat durch seine Aktionen im Spiel nun erstmals aktiv Einfluss auf diese Werte, wenngleich er sie natürlich nicht einsehen kann.

"PID-Frames"

Der Begriff PID steht für "Pokémon Identification Number" und hat Einfluss auf die meisten Werte des Pokémon. So wird der Shinystatus, das Wesen, die Fähigkeit, das Geschlecht und die Art durch sie bestimmt. Bis zum Beginn der fünften Generation wurden auch die DVs des Pokémon durch sie bestimmt, mittlerweile allerdings werden diese separat generiert (siehe unten). Die PID-Frames werden durch viele verschiedene Aktionen im Spiel erhöht, zum Beispiel wenn die Spielfigur Schritte geht oder sich dreht. Auch passive Faktoren wie Wettereffekte und unregelmäßige Bewegungen von NPCs haben einen Einfluss. Taucht ein wildes Pokémon auf, spricht der Spieler ein stationäres Pokémon an oder erhält er ein Ei, so wird die PID in genau diesem Moment festgelegt und setzt sich durch einen Algorithmus aus der Höhe der PID-Frames und dem Seed zusammen.

"DV-Frames"

Erstmalig in Generation 5 werden die DVs nicht mehr durch die Pokémon ID, sondern separat festgelegt, während sie in vorherigen Editionen zusammen mit dieser generiert wurde. Ähnlich wie die PID-Frames werden auch die DV-Frames durch Aktionen des Spielers erhöht, beispielsweise während eines Kampfes oder wenn er Pokémon auf dem PC bewegt beziehungsweise ablegt. Taucht ein wildes Pokémon auf, spricht der Spieler ein stationäres Pokémon an oder erhält er ein Ei, so werden die DVs genau in genau diesem Moment festgelegt, auch sie setzen sich durch einen Algorithmus aus der Höhe der DV-Frames und dem Seed zusammen.

RNG abuse

Wenngleich sämtliche Variablen eigentlich garantieren, dass immer zufallsbasierte Pokémon erscheinen und es kein für den Spieler erkennbares Muster gibt, so ist es dennoch möglich, durch Berechnungen genau bestimmen zu können, zu welchem Zeitpunkt im Spiel welches Pokémon auftaucht. Dies wird von einigen Spielern (ugs. auch als „RNGer“ bezeichnet) beispielsweise dazu genutzt, um gezielt Pokémon erscheinen zu lassen, die für das „Competitive Play“ geeignete Werte besitzen oder in jeder denkbaren Form andere Besonderheiten aufweisen. Wenn dank Knacken des Algorithmus vorhersehbar ist, bei welchem Seed und welcher Framezahl ein bestimmtes Pokémon erscheint, so ist auch ersichtlich, wann der RNG abuser das Spiel zu betreten hat und welche Aktionen er im Spiel auszuführen hat, um dieses Pokémon erscheinen zu lassen.

Das Ausnutzen dieser Spielmechanik sorgt seit Anbeginn für große Kontroversen in der Pokémon-Community. Während es für die meisten professionellen Spieler normal ist, Turnier-Pokémon über diese Methodik zu erhalten, so gibt es auch eine Gegenseite, die den RNG abuse als drastischen Eingriff in das Spiel definiert, der so nicht legitim sei und den Nutzern einen großen Vorteil gegenüber „ehrlichen“ Spielern verschaffe. Auf diese Diskussion gibt es bis heute keine eindeutige Antwort, da die Manipulation des RNG von Nintendo weder akzeptiert, noch abgelehnt wurde und beide Diskussionsseiten einen nicht von der Hand zu weisenden Standpunkt vertreten. Fakt ist einmal, dass natürlich ein zeitlicher Vorteil für den RNG abuser entsteht. Während ein Spieler ohne RNG-Erfahrungen in der 5. Generation im Schnitt 45 Minuten benötigt, ein für Turniere geeignetes Pokémon zu erhalten, so benötigt der „RNGer“ 15 Minuten. Daraus ist allerdings auch zu folgern, dass RNG abuser auf Turnieren selbst keinen direkten Vorteil besitzen, da ein normal züchtender Spieler auch die in einem Kampf wichtigen Werte wie gute DVs erreichen kann. Auf Turnierebene ist der RNG abuse also letztlich als eine Steigerung der Effizienz gegenüber dem normalen Spieler zu betrachten. Ob dies bedenklich ist, kann niemals eindeutig definiert werden. Weitere Informationen zur RNG-Manipulation in Generation 5 finden sich beispielsweise hier.

Beispiel

Der RNG abuser verwendet für seine Berechnungen meistens ein darauf spezialisiertes Programm, in das er seine Suchkriterien, wie zum Beispiel die Höhe der DVs, einzutragen hat. Daraufhin werden ihm die entsprechenden Werte vorgelegt, die er zu beeinflussen hat, damit das gewünschte Pokémon auftauchen kann. In diesem Beispiel werden die Pokémon-Editionen HGSS genutzt. Gesucht ist ein Larvitar mit dem Wesen „Hart“ Und 31 DVs auf jedem Statuswert. Das Resultat sind folgende Angaben:

Variable Wert
Zeit 17:45:49
Datum 17.10.2015
Delay 491
PID-Frame 56

Zuvor geht der Spieler meist in das Gebiet, in welchem das Pokémon zu finden ist und speichert dort ab. Anschließend wird versucht, die Delay und die Zeit korrekt zu treffen, daher muss das Spiel zur richtigen Zeit gestartet werden und der Spielstand im richtigen Moment aufgerufen werden. Durch das Verstellen der Uhrzeit und des Datums ist es möglich auch auf unrealistischere Zeiten zu kommen. Ist dies geschafft, werden anschließend die Frames durch verschiedene Aktionen so weit erhöht, dass sie auf dem korrekten Wert liegen. Nun erscheint das Pokémon, indem z.B. Lockduft eingesetzt wird. Bei richtiger Ausführung sollte dieses nun die vom Nutzer gewünschten Werte besitzen. Da es viel Übung erfordert, die korrekte Zeit, Delay und Framezahl zu treffen, ist allerdings auch nicht ausgeschlossen, dass der Versuch des Öfteren neu gestartet werden muss, bis sich ein Erfolg einstellt.

In Pokémon X/Y

Aufgrund der von GameFreak getroffenen Sicherheitvorkehrungen gibt es bis jetzt noch keine Möglichkeit, den RNG in Generation 6 auszunutzen. Dies ist auf den 3DS zurückzuführen, der bis jetzt relativ sicher gegenüber Hackangriffen war. Bestätigt ist, dass der Generator ähnlich wie der aus Generation 5 funktioniert. Auch scheint es der Fall zu sein, dass der 3DS jetzt selbst über eine RNG Mechanik verfügt, der Seed wird also nicht im Spiel berechnet, sondern direkt von der Konsole geliefert. Es ist unwahrscheinlich, dass RNG abuse weiterhin so gut durchführbar sein würde, selbst wenn der Algorithmus dahinter vollständig ermittelt wird. Bereits Pokémon Colosseum und Pokémon XD besaßen einen sehr schwer bis gar nicht ausnutzbaren RNG, da die zu treffenden Zeiten bis in den Nanosekundenbereich genau sein mussten. Der 3DS wird, so besagen es erste Einschätzungen, über eine ähnliche Mechanik verfügen. Folglich könnte dies das Ende des RNG abuse markieren, insbesondere, da das öffentliche Interesse dafür stark gesunken ist. Die in X/Y neu eingeführten Zuchtmechaniken ermöglichen einfachere und gleichzeitig zeiteffizientere Methoden als es der Abuse der Zufallsmechanik darstellt.

Quellen

[1] [2] [3] [4]

In anderen Sprachen: