The effect of trolls on Twitch Plays Pokémon

João V. Tomotani

Universidade de São Paulo; São Paulo, Brazil.

Email: t.jvitor (at) gmail (dot) com

Download PDF

In a previous paper, I presented a curious experiment of a fish playing Pokémon, made real and popular thanks to the wonders of the Internet (Tomotani, 2014). The Twitch Channel (Twitch, 2016), which sadly has been inactive for some time now, showed Grayson, the fish, playing Pokémon Red with the help of an image identification software, and was watched by millions of people (Johns, 2014). I showed that, when assuming that a fish player was the same as a random input of commands – a premise I do not find absurd – it would take quite a while to advance through a single route (although a very complex one) in the game (Fig. 1): circa 115,700 years.


Figure 1. Route 23; image taken from Tomotani (2014). The many ledges, which could make the path much more tortuous, made the Twitch Play community come up with the infamous name “Ledge Simulator”.

The peculiar premise of a fish playing Pokémon obviously derived from the original Twitch Plays Pokémon, a game of Pokémon Red where everyone watching the stream could type commands in the chat window. An IRC bot would read and execute the commands in the game. The available commands were the classic Gameboy keys: A, B, Up, Down, Left, Right, Start and Select.

Since the inputs came from rational human beings, with defined intentions and minimal coordination, supposedly the game should be less frustrating than watching a fish swimming and randomly inputting commands in the game – the key word in this phrase being “supposedly”.

The point is (besides, of course, the difficulty in coordinating thousands of people to avoid incorrect commands), not all of the people participating in the event wanted to complete the game. In fact, some of them wanted to make matters as difficult as possible for the other players, as their goal was solely to make the Twitch Plays Pokémon a frustrating experience for anyone wanting to be a crowdsourced Pokémon master. (In their “defense”, I find it hard to believe that this sort of behavior was not one of the intentions of the programmer of this game, described by him as a “social experiment”; Alcantara, 2014.) This group of people is given the name of trolls.

The impact of trolls on Twitch Plays Pokémon was so peculiar that it resulted in a curious work, where Machine Learning techniques were used to detect anomalous inputs in the game (from a base of 38 million data points), trying to identify potential trolls (Haque, 2014). The objective of the present study is to see exactly how the percentage of trolls inputting commands on Twitch Plays Pokémon affected the time for completing Route 23 in the game.


Trolls are creatures from Nordic and Scandinavian myths and folklore, made popular in the 20th century by pop culture, starting with J.R.R. Tolkien’s books, going through Dungeons & Dragons and Harry Potter to the thousands, possibly tens of thousands, of other novels, comics, games etc. which they inspired.

Troll is a term applied to the Giants of Norse Mythology (the Jötnar), a race that live in Jötunheimr, one of nine worlds in Norse cosmology. There is some confusion about the terms, though, as jötunn (the singular form of Jötnar), troll, þurs, and risi frequently overlap and are used to describe many beings in the legends. Some researchers point out that there are distinct classes of these creatures, but the terms are frequently considered synonyms in late medieval literature and all of them are frequently translated to English simply as “giant” (Jakobsson, 2005). In a late saga of the Icelanders (Bárðar saga Snæfellsáss; probably from the early 14th century), a passage at the very beginning claims that risi and troll not only are distinctive races, but are, respectively, at the opposite ends of the binary divide of good and evil (Jakobsson, 2005).

The Internet term “troll”, however, does not come from such creatures. The term “trolling” means luring others into pointless and time consuming discussions, deriving from the practice used in fishing where a baited line is dragged behind a boat (Herring et al., 2002).


Figure 2. Trollface, a popular internet meme based in “rage comics”. – Did you just read two paragraphs about creatures in Norse mythology that have absolutely nothing to do with this topic?

The idea of trolling always seems to be related to communication, mostly computer-mediated communication (CMC). Hardaker (2010) analyzed a 172-million-word corpus of unmoderated, asynchronous CMC to try to formulate an academic definition of trolling. After his analysis, he proposes that:

A troller is a CMC user who constructs the identity of sincerely wishing to be part of the group in question, including professing, or conveying pseudo-sincere intentions, but whose real intention(s) is/are to cause disruption and/or to trigger or exacerbate conflict for the purposes of their own amusement. Just like malicious impoliteness, trolling can (1) be frustrated if users correctly interpret an intent to troll, but are not provoked into responding, (2) be thwarted, if users correctly interpret an intent to troll, but counter in such a way as to curtail or neutralize the success of the troller, (3) fail, if users do not correctly interpret an intent to troll and are not provoked by the troller, or, (4) succeed, if users are deceived into believing the troller’s pseudo-intention(s), and are provoked into responding. Finally, users can mock troll. That is, they may undertake what appears to be trolling with the aim of enhancing or increasing affect, or group cohesion.

― Hardaker, 2010: p. 237.

The definition of “trolling” for the present study is not strictly the same, since the troll does not necessarily has the intention of portraying any good will toward the group’s goal of completing the Pokémon game. The intention of creating conflict and frustrating a group of people for personal amusement, though, is very similar. As such, we shall use a less strict definition of trolls, so that we may keep calling them such.

The percentage of people deliberately trolling on the Internet is never clear. Since trolls tend to draw too much attention, it is easy to believe they are more numerous. In the Twitch Plays Pokémon case, this was particularly true: a single input from a troll at the wrong time (or right time, from the troll’s point of view) and the avatar in the game would jump down a ledge, making many more inputs necessary for the avatar to go back to the same coordinate.


For the present study, I wanted to know how trolls affected the time for completing Route 23 in Twitch Plays Pokémon. The first step was to develop a simulation model in VBA. A map for Route 23 composed of 305 different coordinates was generated (the same as seen in Tomotani, 2014) and the neighbors for each coordinate were defined. For each coordinate, I defined three different inputs: the “optimal route” (the command which a player wanting to finish the game would input) and two different “troll inputs”. The latter are commands that would make the route as long and frustrating as possible. I defined two different troll inputs because: (a) there were times when two commands could be equally bad; (b) trolls not always want to troll the same way; and (c) to add some variation to the routes’ heat maps presented in this analysis.

The premises to define the commands for the optimal route were:

  • Always go through the shortest path towards the objective (the door at the end of Route 23);
  • When two commands are equally good, stay away from ledges for as long as possible.

The premises to define the troll commands were as follows:

  • If you are close to a ledge you normally would not want to jump over, jump;
  • Go away from the direction you are supposed to go;
  • Only input “movement” commands (to simplify the model by not having to create simulation models for the game’s menu screen).

Once the simulation model was complete, I defined a “troll factor”, that is, the number of trolls inputting commands. Thus, the troll factor represents the percentage of players that are, in fact, trolls trying to prevent the group from completing the route.

In the simulation, we randomly decided whether the next command would be an “optimal” command or a “troll” command. The chance of the command being a “troll input” was equal to the “troll factor”. Figure 3 shows a heat map of time spent in each coordinate when the troll factor was zero. Since there is no probabilistic factor (that is, all commands made are optimal), this route is always the same: it takes 70 steps to complete this path.


Figure 3. Optimal route, when the troll factor is zero, completed in 70 steps.

Figure 4 shows a heat map of time spent in each coordinate for a simulation run when the troll factor was 10%, that is, on average one out of every ten inputs was made by a troll. In this specific run, it took 285 steps to complete the route, more than four times longer than the optimal path. When tested with a troll factor of 20%, the number of steps necessary reaches the thousands. Figure 5 is an example, where 1,011 steps had to be taken to complete the route.


Figure 4. Simulation run with troll factor of 10%, completed in 285 steps.


Figure 5. Simulation run with Troll factor of 20%, completed in 1,011 steps.


The VBA model, though, proved inefficient when dealing with higher troll factors, constantly crashing or giving inconsistent results. As such, I decided to use a more appropriate tool, and developed a simple Discrete Event Simulation Model on the Rockwell Arena software (ARENA, 2016). This model can be seen in Figure 6. (For more information on simulations with this software, see Altiok & Melamed, 2007; and for more on Discrete Event Simulation, see Banks et al., 2009).

On this simulation model, the coordinates were indexed in a “305 lines x 4 columns” matrix in the software, where each line was a coordinate, and each column contained the possible neighbors. With a “Create” module, 100 entities were inserted simultaneously in the model, each representing a different simulation run. Each entity had an attribute named “position”, where the current coordinate of the simulation was recorded, and a “total steps” attribute, where the number of steps necessary to finish the simulation run was recorded.


Figure 6. Simulation model on Rockwell Arena.

In each step of the simulation, a “Decide” module of the Arena decided whether the next command inserted for each run was a “normal” or a “troll” one, and the “position” attribute of each entity was updated. When the current position of an entity was the coordinate for the door at the end of Route 23, the simulation was terminated and the total number of steps to finish the route was registered. At the end of the simulation, a “Read and Write” module was used to record some additional information at an Excel worksheet, such as number of steps on each cell, and number of steps on each area (more of this below).

To see how the percentage of trolls (“troll factor”) affected the number of steps, I made various simulations. For each troll factor used, I ran 100 simulations and calculated the average number of steps to complete Route 23 (it took a while for the 50% troll factor!). The results can be seen on Table 1 and Figure 7.

Table 1. Average number of steps (out of 100 simulations) necessary to finish Route 23.

troll-table-01 troll-figure-07

Figure 7. Well, that escalated quickly. (Keep in mind that the Y axis is in logarithmic scale.)

In other words, with a single troll command in every 20, it is already enough to make traversing this map twice as difficult, and when 50% of the inputs were made by trolls (well… in this case it is almost a philosophical question whether the trolls are the ones trying to prevent others from completing the game or the ones effectively trying to complete it), the number of steps necessary was more than 264,000 times greater than the optimal route.

Additionally, I divided Route 23’s map into five different areas (Fig. 8) to analyze how much time was spent in each area for each troll factor. The results can be seen on Table 2 and Figure 9. It is clear that, the greater the troll factor, the easier it is for the avatar of the game to jump over the lower ledge and into “Area 5”, where he spends most of the time. (See the Appendix for heat maps with average results.)


Figure 8. Division of Route 23 into five areas.

Table 2. Percentage of time spent on each of the five Areas for varying troll factors.



Figure 9. Percentage of time spent in each of the five Areas for varying troll factors.

With these results, it is clear that trolls can be a pain whenever you are trying to conduct some nice experiment online, or have a good argument. Herring et al. (2002) speculate about why trolls (or “trollers”, as he puts it) troll, suggesting that the actions may be a result of: hatred towards people who are perceived as different or threatening by the troller (e.g., women or homosexuals); sense of control and self-empowerment when groups are targeted for their vulnerability (such as disabled people or inexperienced users); or simply because trollers enjoy the attention they receive, even (and maybe especially) when it is negative. According to Herring et al. (2002), this suggests that ignoring the troller might truly be an effective way of thwarting him/her (a.k.a. “don’t feed the troll”). Sadly, this is much harder to do in Twitch Plays Pokémon.


Now consider again my previous work (Tomotani, 2014), where I discussed the fish Grayson and his journey to be a Pokémon master. When you think about it, the average number of steps necessary for a simulation with 50% of trolls seems a bit underwhelming. Considering that one command was inputted every 1.5 second, the 18.492.842 steps would be made in 321 days, less than one year, while random commands made by a fish would take more than 115 thousand years.

I tried to validate this number by using my model to simulate Grayson, but it would take way too long. I adapted the model so that, instead of deciding between a “troll” and “normal” input, it chose randomly between any of the four directions (Fig. 10). After ninety minutes and 5 billion steps, the model seemed no closer to concluding its task. A simple calculation showed me it would take close to 30 days to simulate the equivalent of 115 thousand years (not that long in comparison to the 10 million years it took Earth to calculate the question to the ultimate answer).


Figure 10. Adapted model for the “random” input. Here, the two “troll inputs” and the “optimal input” from the previous model are substituted by four different commands, one for each direction.

So, I aborted the idea of simulating the whole thing, and decided to limit my simulation. I made 10 simultaneous runs, each with a limit of 1 billion steps, 50 times more than the average it took for the troll factor of 50%. After this limit was reached, the simulation would stop and record the results to show how far the simulation managed to go. Spoiler alert: not a single one managed to finish the route. Figure 11 shows a heat map for this experiment, considering the sum of the 10 simulations, a total of 10 billion steps. Figure 12 gives a closer look at the hardest area to traverse (the narrow path on Area 3), where a single input “down” means lots of backtracking.

After 10 billion steps, only once the random simulation managed to get to the “signpost” coordinate, and never getting further than that (you can see the actual signpost in Fig. 12). Table 3 shows the distribution of steps in each Area (of those five defined above) by the random simulation. More than 95% of the time was spent in Area 5, the lower part of the map.


Figure 11. Heat map for the “random” simulation.


Figure 12. Closer look at the most critical part of the map, a narrow path on Area 3. The number on each coordinate represents the number of steps taken on that coordinate (the “###” represents very large numbers).

 Table 3. Steps taken in each area in “random” simulation.


As such, the conclusion of my previous work that a random input of commands to complete the game is not a productive approach seems valid. This might be a possible explanation to the deactivation of the Fish Plays Pokémon channel, so that Grayson could focus his energy in activities that make better use of his skills.


Alcantara, A.M. (2014) Twitch Plays Pokémon: a social experiment from its creator. Mashable, available from: 28/twitch-plays-pokemon/#5nL.FQX07sq3 (Date of access: 11/Sep/2016).

Altiok, T. & Melamed, B. (2007) Simulation Modeling and Analysis with ARENA.  Academic Press, Waltham.

ARENA. (2016) Arena Simulation Software. Available from: https://www.arenasimulation. com/ (Date of access: 17/Sep/2016).

Banks, J.; Carson II, J.S.; Nelson, B.L.; Nicol, D.M. (2010) Discrete-Event System Simulation, 5th ed. Prentice Hall, Upper Saddle River.

Haque, A. (2014) Twitch Plays Pokemon, Machine Learns Twitch: unsupervised context-aware anomaly detection for identifying trolls in streaming data. Available from: https://www. (Date of access: 19/Sep/2016).

Hardaker, C. (2010) Trolling in asynchronous computer-mediated communication: from user discussions to theoretical concepts. Journal of Politeness Research 6(2): 215–242.

Herring, S.; Job-Sluder, K.; Scheckler, R.; Barab, S. (2002) Searching for safety online: managing “trolling” in a feminist forum. Information Society 18(5): 371–384.

Jakobsson, A. (2005) The Good, the Bad, and the Ugly: Bárðar saga and its Giants. Medieval Scandinavia 15: 1–15.

Johns, S. (2014) 20,000 anxiously watch a fish play Pokemon on Twitch TV. Available from: y-watch-a-fish-play-pokemon-on-twitch-tv (Date of access: 17/Sep/2016).

Tomotani, J.V. (2014) The infinite fish playing Pokémon theorem. Journal of Geek Studies 1(1–2): 1–8.

Twitch. (2016) Fish Plays Pokemon. Available from: (Date of access: 17/Sep/2016).


I am grateful to Henrique M. Soares for proposing this nice topic to study, as well as for suggestions and comments.


João Vitor Tomotani is an engineer who likes to make strange models. He refuses to acknowledge any Pokémon game after the Gold/Silver generation.



Figure A1. Heat map for the average of 100 simulation runs with a troll factor of 5%.


Figure A2. Heat map for the average of 100 simulation runs with a troll factor of 10%.


Figure A3. Heat map for the average of 100 simulation runs with a troll factor of 20%.


Figure A4. Heat map for the average of 100 simulation runs with a troll factor of 30%.


Figure A5. Heat map for the average of 100 simulation runs with a troll factor of 40%.


Figure A6. Heat map for the average of 100 simulation runs with a troll factor of 50%.

Table A1. Number of total steps on each coordinate for the 100 simulations for varying troll factors (since the table is quite large, please click on the image to see a better resolution).


Check other articles from this volume

Praise Helix!

Rodrigo B. Salvador

Staatliches Museum für Naturkunde Stuttgart; Stuttgart, Germany.

Eberhard Karls Universität Tübingen; Tübingen, Germany.

Email: salvador.rodrigo.b (at) gmail (dot) com

Download PDF

It is not everyday that I manage to join two of my main interests, mollusks and mythology. So rejoice!, for today is one of those days. I bid you welcome to the Cult of the Helix.

So how was this cult born? Nature-worshipping barbarians coping in a dangerous environment? An old bearded guy receiving revelations in the desert? A bald hermit meditating in the mountains? Well, none of the above. The Cult of the Helix was born in a most unorthodox manner: on the first iteration of Twitch Plays Pokémon. Wait, what?


Twitch Plays Pokémon (henceforth “TPP”) was a crowdsourced event in which everyone could type commands through the website’s chat window and try to finish the game that was being streamed, namely Pokémon Red. It took a little more than two weeks for the players to complete the game and this was more than enough time for the birth of an entirely new religion. But how exactly did that happen?

With thousands of people giving commands at the same time, there was a huge confusion and progress was very slow at the beginning. Then some programmer had the idea of initiating a system (named “Democracy Mode”) in which the game compiled votes every 10 seconds and the command inputted on the game was the one with most votes. People could vote to switch between Democracy and the original mode (hence renamed as “Anarchy Mode”) at any time. Most people preferred Anarchy, because it was supposedly more fun, and turned to Democracy only when it seemed otherwise impossible to advance in the game.

TPP is a very boring way of playing Pokémon and the players soon turned to other stuff in order to make it a little more exciting. They started to interpret whatever was happening in the game in a way that it would make sense from a cosmic point of view. And, as a matter of fact, many bad things were happening in the game – in the Anarchic world of TPP, bad moves and poor strategies were running amok. Not intentionally, mind you, but as a result of the way in which commands were given and computed. This way, items were discarded, pokémons were released and, even worse, eevees turned into flareons.


But let’s return to the Helix. One item in particular could not be discarded; it was the Helix Fossil (the fossilized shell of a ammonite-like pokémon). And, boy, people spent a lot of time in the inventory clicking on the Helix Fossil (and thus receiving in return the message “This isn’t the time to use that”). It did not take long for people to decide that the fossil was a god and that Red, the protagonist, was consulting it as a sort of oracle in order to discover the best way to proceed on his adventure.

Lord Helix. Artwork by Chlorine17 (

From this point onwards, the mythology of the Helix developed really fast. The Helix Fossil had been previously chosen by the players in spite of the Dome Fossil, which then became the Enemy, or the Devil, if you will. The Helix represented Anarchy Mode, while the Dome represented Democracy. The pidgeot, the most reliable pokémon in battle, became Bird Jesus; flareon became the False Prophet, a servant of the Dome Fossil; and many other pokémons received places in the mythology, accompanied by a lot of fanart on the internet. Long story short, eventually the players revived the fossil (yes, that’s possible in the game in a very Jurassic Park style) and received the pokémon omanyte in return. He was the resurrected god, Lord Helix. And then they went on to beat the game, but that’s not important – let’s take a closer look at the whole religion thing.


The Church of the Helix was born in a very short time span and possibly already have more followers than many of the world’s “true” religions. In a sense, Helixism has itself become a true religion and, more than that, it was created consciously through the consensus of a tribe (here defined as a group of people sharing the same interests and symbols). This is perhaps an example of Durkheim’s totemism. According to him, this is the most fundamental and primitive style of religion. The totem (here, the Helix) is a reflection of the tribe’s consciousness, chosen as a symbol to represent it. Symbols are an important part of any religion and the main pillar of totemism. Symbols are the representation (or perhaps translation) of the abstract principles of a religion in material form and, thus, allow the cult to develop and flourish.

Durkheim’s ideas were much disputed, of course (despite having received certain revival now in the light of research on the evolutionary roots of religious behavior), but the parallel was too strong to be ignored here. For Lévi-Strauss, for instance, the totem is a kind of animal with which a particular tribe identify themselves. In this case, it is not consciously chosen. Therefore, this view does not accommodate so nicely with the TPP’s Helix cult, since it was consciously (albeit somewhat accidently) chosen by its followers, which supposedly don’t identify themselves as an omanyte.

Granted, there are yet further difficulties: to begin with, Helixism was not born “naturally”, like a totemic religion developing in a group of humans some tens of thousands years ago. Rather, it was in a large part built on the common features of Christianity (including its symbology and usual artistic depictions). This, of course, merely reflect the cultural background of most players, but make comparisons with theoretical works more complicate and perhaps even more tenuous.

The Helix mythology. Artwork by Twarda8 (

Of course, this is not a serious foray into the origins of religions in general or the meaning of a peculiar newborn religion. These are just some random thoughts that came to me when I first saw the Helix cult in all its glory. Helixism will probably never be treated seriously by its followers (well, at least I hope so). Still, the Church of the Helix functioned in its own manner as a true religion does, giving an identity to a group, making them stick together and driving them forwards (there was even a petition to make March 1st the National Helix Day in the USA). As such, it is a unique and amazing event and I do hope that somebody will someday seriously study it.


The Helix Fossil and the pokémons you get from it, omanyte and its evolved form omastar, are based on actual mollusks: the ammonites.

Top row: the helix fossil (left) and omastar (right), as they appear in official Pokémon artwork. Bottom row: Asteroceras sp. (left), an actual fossil ammonite shell from the Jurassic of England, and an artistic reconstruction of the animal (right), by N. Tamura (

The ammonites are a completely extinct branch of cephalopod mollusks – besides ammonites, the class Cephalopoda comprises squids, octopuses, cuttlefish, nautiluses and the also extinct belemnites. Ammonites once ruled the seas and diversified in thousands upon thousands of species, but unfortunately, they died together with the dinosaurs in the great extinction event at the end of the Cretaceous. They received their name in ancient Rome, for the fossil shells were compared to the ram’s horns of the Egyptian god Ammon.

By the image above, one can see that both the fossil item and the pokémon are reasonably representative of ammonites (although the pokémon’s shell is positioned like a snail’s shell, not like a cephalopod’s!). But I do have an issue with the name: “helix” comes from the Greek, through Latin, and simply means “spiral”. Up to here, it is a fitting name. However, Helix (notice the italics) is already the name of a genus of land snails, which includes common garden snails and edible snails.

A Helix snail: Helix lucorum. Image taken from: Wikimedia Commons.

Land snails are, of course, gastropods, which is an entirely different class of mollusks altogether and only distantly related to the cephalopods (and thus to ammonites). They could at least have chosen a better name; a good deal of ammonites have names ending in “ceras”, for instance (which means “horn” in Greek). But Pokémon is a complete failure for names – gastrodon is another poorly named molluscan pokémon. But I’ll let this whole name deal slide just this once, since this fossil has spawned the first mythology ever based around a mollusk – and that is truly something to be happy about.

But since they have chosen the name Helix, I have a final comment to make (which may be somewhat disturbing for the faithful), for one must be consistent with his choices. “Helix” is feminine, so we would have a Lady Helix, not a Lord Helix. Unfortunately, pokémons still did not have genders in Pokémon Red (this feature was only introduced in the so called Generation II, i.e., the Gold/Silver games), so we will never know Helix’s gender for sure. In any case, I bet it would have been a surprise for the followers to discover that their god was actually a goddess.

Last but not least, if you have any important questions, feel free to do like Red and consult the Helix Fossil, in this charming website:

Praise the Helix!


I’d like to thank the artists from, who kindly let me use their works here.


Durkheim, E. (1912) The Elementary Forms of the Religious Life. George Allen & Unwin, London.

Leach, E. (2010) The Structural Study of Myth and Totemism. Routledge, London.

Lévi-Strauss, C. (1963) Totemism. Beacon Press, Boston.

Mithen, S. (1999) Symbolism and the supernatural. In: Dunbar, R.; Knight, C.; Power, C. (Eds.) The Evolution of Culture: A Historical and Scientific Overview. Rutgers University Press, New Jersey. Pp. 147–172.

Monks, N. & Palmer, P. (2002) Ammonites. Smithsonian Books, Washington D.C.

Wade, N. (2009) The Faith Instinct: How Religion Evolved and Why It Endures. Penguin Press, London.

cover vol1(1-2)
Check other articles from this volume

The Infinite Fish Playing Pokémon Theorem

João V. Tomotani

Universidade de São Paulo; São Paulo, Brazil.

Email: t.jvitor (at) gmail (dot) com

Download PDF


I will start by presenting this little famous theorem. The Infinite Monkey Theorem states that if you have a monkey hitting keys at random on a typewriter keyboard for an infinite amount of time, eventually it will end up reproducing some famous text, like the complete works of William Shakespeare, The Lord of the Rings, or the very article you are currently reading (the process used to write this article is not that far from it, actually).

This is the sort of theorem that clearly became famous because of its funny name. And, while I do find the name amusing, the theorem itself is also quite interesting; well, at least more interesting than the real-life experiment that the University of Plymouth decided to do, which remarkably showed that a monkey with infinite time would probably be able to defecate infinitely and destroy an infinite amount of typewriters (BBC News, 2003). Also, for some reason, friends of mine tend to state the Infinite Monkey Theorem as having an infinite amount of monkeys with an infinite amount of typewriters, instead of the infinite time stuff. Though this would solve the small problem of having to find an immortal monkey, maybe an infinite amount of monkeys would also pose a problem (for more information, you can read “what would happen if you were to gather a mole (6×1023) of moles” from Randall Munroe, 2014) – let me simply say that this would make Planet of the Apes a lot more literal.

In any case, recently a small event reminded me of the Infinite Monkey Theorem. I am talking, of course, about Grayson Hopper, and his quest to become a pokémon master. Grayson is a fish who rose to absolute stardom after his owners decided to make him play Pokémon. By swimming in his aquarium, Grayson’s position is detected by a camera and a command is sent to the game. You can follow his play on Twitch. Not much is going on right now (or ever).

Grayson is trying to prove by himself that, through a generator of random movements and a lot of time, one should be able to finish a game like Pokémon, which you can play by pressing only one button at a time and not having to rely on timing or stuff like that. I mean, if a ten year old boy can do it, why can’t a fish?

And what the Infinite Monkey Theorem states is that he can do it, right? The fish might very well be able to beat the game in his lifetime, since a really large number of combinations of buttons will be generated, and one of them MUST be the correct one. Well, meet Route 22 (Fig. 1).

Figure 1. Why, hello there, Route 22. Image taken from: Pokémon Gold/Silver/Crystal.

From now on, I will consider that all of you had a childhood and are thus capable of following the game mechanics.

Route 22 could be called the nightmare of random walking (for more information on random walking, or “why a drunk always come back home while a drunk bird may be lost forever because of extra dimensions and stuff”, see Math Explorer´s Club, 2009). The game mechanics of one-side-crossing-only ledges clearly makes this route goddamn awful. Also, Grayson tends to stay still for some seconds on the same area of the aquarium, thus repeating the same command a lot (a “down” command one time more than necessary can be fatal here). So, is it impossible?

Only one way to find out…


To simplify, let’s say that the movement of the fish in the aquarium is a random process that can be categorized as a Markov chain. A Markov chain is one of the simplest stochastic processes, where the next entry in the chain depends only on the current position (or state), and not on the history of entries (this lack of history is called the Markov property). The random walk is an example of a Markov chain. Though the movement of the fish depends on the history (usually he will keep swimming on the same direction), let’s not waste time trying to model this further, because time is precious and we wouldn’t like to waste it on useless stuff like a useless model.

Grayson’s aquarium is divided into nine squares (Fig. 2). Each square has a specific command, with one exception, the “randomize!” command, which randomly chooses one of the other eight. Let’s consider that one command is chosen after every second.

Thus, the Markov chain describes a process where the random walker is on a position among nine, and has a random probability of going to any of the nine positions (including staying on the same one) after one second.

Figure 2. Grayson’s aquarium and control scheme. Screenshot taken from: Twitch – Fish Plays Pokémon.

The matrix that gives the probability of transition to each of the states in a Markov chain is called the transition matrix. The transition matrix can be dynamic or stationary in time. For example, giving the fish more food would make it dynamic, with a higher probability of him going to the surface of the aquarium. But let’s consider a stationary matrix for simplicity.

After watching Grayson playing Pokémon for 2 minutes (boy, that was fun!), I generated some numbers for the transition matrix (Table 1). I decided that the probability of him staying still in the same position for one second would be 80% in any of the positions (though I must say that it is probably much higher). Also, I considered that the probability of him going to an adjacent area was higher than crossing the aquarium from one instant to the other. Since the position of the commands changes over time on the twitch play, I decided to generate them randomly and leave them as such. Admittedly, the fish spends a lot of time near the surface, but let’s not focus on the details since the randomization of the commands also contributes to the randomization of the process.

Table 1. Position matrix.
Table 2. Probabilities of the transition matrix.

By multiplying the transition matrix by itself a number “n” of times, you can find the accumulated transition probabilities after n events. For instance, if I multiply the matrix by itself twice, I will have the probabilities of Grayson transiting between two states after two seconds.

Since the transition matrix is stationary, aperiodic (no time limitations from transiting from one state to the other) and has no recurrent state (states with probability of 0, transition state, or 1, absorbing state), it is also said to be ergodic, that is, the system has the same average behavior over a long period of time. Multiplying the matrix by itself 128 times, I get to the following matrix (Table 3).

That is, the probability of Grayson being in one of the states after a long period of time is not dependent on his initial state, only on the transition matrix. Looking at this matrix, I can see that the probability of the fish spending some time on the center of the aquarium is slightly higher than on the edges, given the numbers I decided for the transition matrix. Since the distribution among the states is quite similar, I am happy with the transition matrix chosen. After modeling the fish movement, it was time to model the map of Route 22 (Fig. 3).

 Table 3. Transition matrix after 128 seconds.
Figure 3. Modelled map of Route 22.

   As can be seen on Figure 3, for each coordinate on the map, a number was attributed. This number states movement restrictions or other characteristics. Coordinates with the number “1” have no movement restriction, while coordinates with the number “3” has restrictions with the “up” direction, and coordinates with the number “2” have no restrictions, but the “down” direction skips a square. Once again, to simplify the model I considered that Grayson cannot go to the right of the map, leaving the area of Route 22.

The green area is the “wild grass” area. I decided to count the steps taken on “wild grass” areas to estimate how many pokémon battles Grayson would face in his epic quest. The probability encounter formula, according to Bulbapedia (2014) is defined as P = x / 187.5, where x is the encounter rarity variable. Considering a common encounter rate (x = 8.5), Grayson should face S*0.05 battles, where S is the number of steps taken on wild grass.

The desired results are the number of total commands necessary for Grayson to arrive at his destination. Other interesting results are the number of battles and the number of commands given while in “paused” state.

As a limit of commands (thus, time), at first I thought that the simulation should go no longer than the average life span of a goldfish. Considering a life span of 25 years, this would be the same as 788,400,000 seconds/commands (if he keeps pressing the A or select button, or moving while on paused state, it still counts as a command for the simulation).

This number of commands, though, is unreasonably high and would probably only increase the entropy of the universe. So, I decided to just let it run for a couple of minutes and see what would happen after the equivalent of one day for the fish.

The model was written in VBA and the program ran on my personal computer.


The results are as follows:

  • Number of steps to complete: 86400 (1 full day, didn’t complete, ended in coordinate 14 x 18);
  • Number of steps on “wild grass” areas: 351;
  • Estimated number of battles: approximately 18;
  • Number of steps taken on paused state: 47796.

Thought I only simulated the equivalent of one “fish day”, whenever I stopped to watch the simulation, it was clear that the character in-game was struggling to get out of the lower part of the map. It was expected, almost inevitable, for Grayson to spend most of his time randomly walking around the 76 coordinates that composed this artificial cage (with only one way out, coordinate 13 x 34, and many ways in); more than 99% of the time was spent there. Positioning the character right in front of the exit and moving “up” twice was a very specific command that happened only twice during the simulation, with the character going back right after. Also, more than half of the commands were given while on paused state.


The greatest limitations of the study above are the short simulation time and the fact that the simulation was run only once. Considering how the stochastic process of the fish swimming impacted the results, it would be necessary to run the simulation dozens of times to achieve better and more valid results.

With that in mind, I now propose a different take on The Infinite Fish Playing Pokémon experiment. Instead of simulating the random process of a fish swimming, I will propose some simplifications in the previous model, so that the problem can be solved on a deterministic way. Though the simplification will reduce considerably how well the model represents reality, the results presented will offer valuable information on the magnitude of the problem.


On my first attempt to model the Fish Playing Pokémon, I considered that the movement of the fish in the aquarium was a random process which could be represented as a Markov chain. Since the position of the fish in the aquarium was considered a Markov process, this stochastic process was what defined which command was sent to the Pokémon game.

Since the probability of each command being chosen depended on the position of the fish in the aquarium, the modeling of the Pokémon game was a complex process that needed simulation.

This time, I will simply ignore the position of the fish and consider that the command sent to the game is a completely random process, with each of the directional commands having the same probability of being chosen. This way, the movement made on the game depends only on the current position of the character in the map, that is, the game itself can now be modeled as a Markov chain. With this simplification, the probability of the character being in each position can be defined on a deterministic way.


Once again, the first step is to attribute a number to each coordinate in the map, and define which the possible movements for them are. There are 305 different possible coordinates in Route 22 (Fig. 4). Considering four possible commands, each command has a 25% chance of being chosen.

Figure 4. Route 22 with coordinates.

If the chosen command is impossible to be made, the character stays on the same coordinate. For example, if the character is on square 305, there is a 25% chance of him going to coordinate 267, 25% of going to 304, and 50% chance of staying in the same place. These probabilities, as stated, do not vary.

Having defined the coordinates and the possible movements, I can define the transition matrix. Since I have 305 possible positions, the transition matrix will be a 305 x 305 matrix (Figure 5). From each position, the character can do, at most, 4 different movements. That way, at least 301 movements will have a zero (for instance, the probability of going from position 127 to 29 in a single step is zero).

By multiplying the transition matrix by itself a number “n” of times, you can find the accumulated transition probabilities after n events.

Another simplification adopted is that the end of route 23 is not an absorbing coordinate, that is, if the character arrives at the end, it is possible for him to go back. This simplification is necessary for the transition matrix to be ergodic, and thus stabilize after a long period of time.

Figure 5. An example of a small subset of the transition matrix.

Multiplying the matrix by itself 64000 times (since there were many coordinates, it took a while for the probabilities to stabilize), I get to the matrix shown in Figure 6. This stabilized matrix shows that, after a long time, the probability of the character being in each coordinate does not depend on the starting point. This is true because of the ergodic property of the system. When stabilized, it is said that the system achieved stationary regime.

Figure 6. A small part of the transition matrix, after 64000 commands.


Another way of interpreting the stationary regime matrix is that, instead of the probability of the character being in each state, it represents the percentage of time the character will spend in each of the 305 coordinates. That way, it is possible to calculate how many iterations are necessary, on average (after achieving stationary regime), for the character to pass through a defined coordinate.

The probability of the character being in coordinate 29, thus, is 4.11*10-13, that is, a little more than 0.000000000041%. If we divide 1 by this probability, we see that, on average, we would need 2.43*1012 iterative steps to pass through coordinate 29.

Since each command (or step) is made every 1.5 seconds, this number of steps would take around 115.700 years to be made. This time should be at least doubled, if we considered the possibility of the commands that are not movement commands (the “A”, “B” and “Pause” commands).

Interestingly, the percentage of time spent in the lower part of the map (coordinates 230 to 305) is 96.36%, and the time spent in the initial part of the map (up to coordinate 92) is 99.42%.


What are the odds of the universe taking form as it did? What are the odds of you being conceived? These questions were made many times by many different scientists from different areas. Binazir (2011) shows through an interesting chart, which went viral on the internet, that the odds of you existing are the same as two million people throwing a trillion-sided dice and all of them getting the same result. As usual, the best answers are from Douglas Adams (1979), who shows that the whale and the bowl of petunias are not impossible as you initially thought, just as impossible as anything else.

The more specific the event, the more impossibly low are the odds of it happening.

This study only started as a joke, but the more I thought about it, more it made sense in this world of impossible improbabilities happening.

Grayson will clearly never finish this game, not before the heat death of the universe. He probably won’t even get close to the Safari Zone, from where he would never come out as well anyway. But maybe, only maybe, something impossible might happen, and the fish might be able to achieve his impossible dream of becoming a Pokémon master.


For more information on Markov chains, queue theory and lots of Operations Research concepts, read: Winston, W.L. (2003) Operations Research: Applications and Algorithms, 4th ed. Cengage Learning, Boston.

Adams, D. (1979) The Hitchhiker’s Guide to the Galaxy. Pan Books, London.

BBC News. (2003) No words to describe monkeys’ play. Available from:   (Date of access: 14/Aug/2014).

Binazir, A. (2011)  What are the chances of your coming into being? Available from: (Date of access: 14/Aug/2014).

Bulbapedia. (2014) Tall Grass. Available from: (Date of access: 14/Aug/2014).

Math Explorer’s Club. (2009) Random walks. Available from: (Date of access: 14/Aug/2014).

Munroe, R. (2014) What If?: Serious Scientific Answers to Absurd Hypothetical Questions. Houghton Mifflin Harcourt, Boston.

Twitch. (2014) Fish Plays Pokémon. Available from: (Date of access: 14/Aug/2014).

cover vol1(1-2)
Check other articles from this volume