Codebox Software

Pokémon Go Cellular Automaton

Published:

This is a Pokémon Go Battle Simulator cellular automaton that runs in your web browser. The simulation populates a square grid with random Pokémon, each represented by a different colour. The Pokémon in the grid battle their neighbours, and at the end of each battle the losing Pokémon is removed from the grid and replaced with a copy of the winner.

Over the course of a simulation Pokémon of the same kind cluster together and spread into areas occupied by weaker opponents. Because of the game's type effectiveness rules, Pokémon that are strong against one opponent may be weak against another, and so most simulations that start off with a good variety of different Pokémon end in some form of dynamic equilibrium, with territory constantly changing hands but without a single winner dominating the grid:

Pokemon Go cellular automata stage 1 Pokemon Go cellular automata stage 2 Pokemon Go cellular automata stage 3 Pokemon Go cellular automata stage 4

The following timelapse video shows how a simulation initialised with 40,000 Pokémon progressed over the course of 2 hours:

The simulation allows you to select which Pokémon should appear in the grid, and what moves they should have. You can also select the weather conditions and the number of squares in the grid. As the simulation progresses a graph is generated showing how the numbers of each Pokémon change over time.

The combat algorithm is based on Pokémon Go's PVE battle mechanics. The data relating to Pokémon and their moves has been extracted from the latest Game Master file using this Python script.

This project was inspired by a Pokémon type cellular automaton created by Matt Henderson.