Die fabelhafte Welt der Mathematik: Warum echter Zufall manchen Pokémon-Fans den Spaß verdirbt

Als Jugendliche habe ich etliche Stunden damit zugebracht, Pokémon auf dem Game Boy zu spielen. Bei diesem Spiel geht es darum, möglichst viele der begehrten Kreaturen zu sammeln. Von diesen gab es damals 151 Stück – einige waren aber extrem selten und kaum anzutreffen. Das war manchmal frustrierend: Man brauchte viel Glück (oder Geduld), um an die begehrtesten Pokémon zu kommen. Aber man konnte dem Schicksal mit ein paar Tricks nachhelfen.
In den frühen 2000ern war es noch vergleichsweise einfach. Schon damals war es möglich, sich mit anderen Spielerinnen und Spielern zusammenzutun und Pokémon miteinander zu tauschen. Da die Game Boys nicht internetfähig waren, lief das damals über Kabel. Der Pokémon-Tausch wurde darüber nacheinander abgefertigt: Erst schickte ich meine Kreatur los, und erst dann konnte mein Gegenüber seine übertragen. Zog man nach der Übertragung des ersten Pokémons das Kabel heraus, blieb der zweite Teil der Transaktion aus. Das Ergebnis: Ich war immer noch im Besitz meines versendeten Pokémons, und die andere Person hatte es ebenfalls. Damit ließen sich Kreaturen beliebig oft vervielfältigen.
Heute braucht man zum Spielen natürlich keine Kabel mehr. Dadurch lassen sich Pokémon nicht mehr so einfach kopieren. Aber es gibt andere Möglichkeiten, den Spielverlauf aktiv zu beeinflussen. Eine davon ist als RNG-Manipulation bekannt: Man nutzt die Schwachstellen des Zufallsgenerators (auf Englisch: random number generator, kurz: RNG) eines Spiels aus, um an bestimmte Pokémon heranzukommen.
Tatsächlich sind es Zufallszahlen, die darüber entscheiden, auf welche Pokémon man während eines Spiels scheinbar zufällig trifft. Sobald es um Zufall geht, werden die meisten Fachleute hellhörig. Denn erstaunlicherweise ist es extrem schwierig, Zufallszahlen zu erzeugen.
Mehr zu Mathematik im Kino, Spielen und Popkultur
Fasziniert Sie die popkulturelle Seite der Mathematik – oder suchen Sie nach Nerd-Wissen, mit dem Sie auf Partys glänzen können? Dann könnten Ihnen auch diese Beiträge gefallen:
- Warum »Good Will Hunting« Mathematiker ärgert
- Die mysteriöse Zahl im Programmcode von Quake 3
- Die verborgene Mathematik im Verstand von Sherlock Holmes
Alle bereits erschienen Artikel dieser Kolumne finden Sie hier.
Wie man eine zufällige Zahl erzeugt
Im Alltag kommt uns zwar ziemlich vieles zufällig vor, aber echten Zufall allein durch einen deterministischen Prozess wie einen Algorithmus zu erzeugen, ist unmöglich. Stattdessen nutzt man sogenannte Pseudozufallsgeneratoren. Die durch sie entstehenden Zahlenfolgen folgen einem festen und theoretisch vorhersagbaren Schema, aber ihre Ausgabe lässt sich nicht von einer zufälligen Zahlenfolge unterscheiden.
Hierfür behelfen sich Pseudozufallszahlgeneratoren mit »Seeds«: Das sind die Startwerte, von denen aus sich eine Zahlenfolge aufbaut, die nach außen hin zufällig wirkt. Das bedeutet aber: Wenn man den Seed kennt, dann lässt sich die Zahlenfolge vorhersagen.
Genau hier setzt die RNG-Manipulation bei Pokémon an. Es gibt mittlerweile Dutzende verschiedene Versionen des Spiels, die sich in ihrer internen Programmierung unterscheiden. Einige davon beherbergen Pseudozufallsgeneratoren mit recht simplen Seeds. Bei der »Pokémon Smaragd-Edition« hat er zum Beispiel immer den Wert null; bei den Pokémonspielen der vierten Generation ergibt sich der Seed hingegen aus dem Datum und der Uhrzeit der genutzten Konsole, sowie aus der Zeitdauer, die zwischen dem Start des Spiels und dem Drücken des »Weiter«-Buttons vergangen ist.
Der zugrunde liegende Algorithmus, der in diesen Spielen der dritten und vierten Generation die zufällig erscheinenden Zahlen ausspuckt, heißt Kongruenzgenerator. Solche Programme gehören zur verbreitetsten Klasse von Pseudozufallsgeneratoren. Sie basieren auf einer linearen Gleichung und dem Prinzip der Rekursion. Das heißt, man nutzt zunächst den Seed, um aus der linearen Gleichung die erste zufällig erscheinende Zahl zu berechnen. Anschließend setzt man diesen Wert wieder in die lineare Gleichung ein, um die nächste Zahl in der Folge zu bestimmen. So erhält man nach und nach eine wachsende Zahlenfolge.
Damit sich die erzeugten Zahlen nur innerhalb eines bestimmten Intervalls bewegen (etwa zwischen 0 und 9), wendet man am Ende der Gleichung noch eine Modulo-Operation an: Man teilt das Ergebnis beispielsweise durch 10 und behält nur den ganzzahligen Rest bei. Auf diese Weise lassen sich pseudozufällige Zahlen erzeugen, die bestenfalls nicht von echten Zufallszahlen zu unterscheiden sind.
Kongruenzgenerator
Ein Beispiel für einen Pseudozufallsgenerator, der Zahlen zwischen 0 und 49 ausgibt, hat folgende Form:
In diesem Fall ergibt sich mit einem Seed x0 von 0 folgende Zahlenfiolge: x1 = 37, x2 = 36, x3 = 9, x4 = 30, x5 = 47, x6 = 6, x7 = 49, x8 = 10, x9 = 7, x10 = 26, ...
Lavalampen für den Zufall
Da die Smaragdversion von Pokémon immer den gleichen Seed verwendet, lassen sich die Pseudozufallswerte stets vorhersagen. Um eine direkte Ausnutzung auszuschließen, rattern die Zufallszahlen wie eine ultraschnelle Uhr im Hintergrund dahin – sie wechseln ihren Wert rund 60-mal pro Sekunde. Sobald also ein vermeintlich zufälliges Ereignis eintritt (ein Spieler trifft zum Beispiel auf ein wildes Pokémon) und die Zufallszahl über den Ausgang entscheiden soll, wirkt die Handlung durch die enge Taktung unvorhersehbar.
Theoretisch gilt aber: Wenn das gleiche Ereignis zum selben Zeitpunkt nach dem Start eines Spiels eintritt, wird der Ausgang gleich sein. Und das kann ausgenutzt werden.
Möchte man die zufälligen Ereignisse eines Spiels also beeinflussen, braucht man unter anderem eine genaue Stoppuhr, um eine Aktion zur passenden Zeit auszuführen. Darüber hinaus muss man wissen, welcher Zufallswert in welchem Zeitraum errechnet wird und was er codiert. Im Internet finden sich Listen, in denen solche Daten gesammelt sind. Daran lässt sich ablesen, welche Pokémon in welchem Zeitraum bei welcher Handlung zu erwarten sind.
Selbstverständlich kann man es sich auch deutlich einfacher machen und nach bereits fertigen Programmen suchen, die eine solche RNG-Manipulation vornehmen. Es gibt ganze Internetforen, in denen sich Spielerinnen und Spieler intensiv zu dem Thema austauschen.
Doch offenbar haben sich die Pokémon-Entwickler irgendwann sichereren Zufallsgeneratoren zugewandt. Zumindest sind herkömmliche RNG-Manipulationen für neuere Versionen wie Pokémon Karmesin und Purpur kaum noch möglich. Auf welche Methode die Entwickler für ihre Zufallsgeneratoren genau gesetzt haben, ist unklar.
Im Internetforum »Reddit« schrieb ein User, dass der Seed der Programme wahrscheinlich durch die Hardware des Geräts bestimmt wird, auf dem man Pokémon spielt. So sei in der Nintendo Switch ein Hardware-Zufallsgenerator verbaut. Manche Geräte nutzen hierfür etwa die Impulsschwankung eines elektrischen Stromkreises – also eine Größe, die sich kaum realistisch vorhersagen lässt.
Die Methoden, mit denen in der Praxis zufällige Seeds erzeugt werden, sind teilweise extrem kreativ. So nutzt der Internetdienstleister Cloudflare, ein großer Betreiber von Content-Delivery-Networks, am Standort San Francisco eine Wand voller Lavalampen, um daraus eine möglichst zufällige Größe abzuleiten. An manchen Standorten verwendet die Firma auch präzise Ankunftszeiten von Paketen, während andere Unternehmen auf Bewegungen in Fischbecken oder Aufnahmen von Wolken vertrauen. Der Fantasie sind hier kaum Grenzen gesetzt.
Einige Pokémon-Fans zeigten sich allerdings wenig begeistert von den verbesserten Zufallszahlen in den neueren Versionen. Einige geben an, das Spiel nur wegen der RNG-Manipulation überhaupt gespielt zu haben. »Die Entwickler haben sich schließlich dazu entschlossen, den Leuten, die diese Nischenaktivitäten lieben, den Spaß daran zu verderben. Schön für sie«, schrieb ein Nutzer auf Reddit.
Sie haben ein Lieblingstheorem, ein mathematisches Thema, das Sie fasziniert, oder eine Lieblingszahl? Dann kommentieren Sie doch gerne den Artikel oder schreiben Sie eine Mail an: m.bischoff@spektrum.de – und vielleicht taucht Ihre Anregung in einer der folgenden Kolumnen auf.
Schreiben Sie uns!
Beitrag schreiben