pkmn is a collection of projects centered around competitive Pokémon battling.
- EPOké is an enhanced Pokémon battling client which tracks not only the observed state of the battle, but which also uses the mechanics of the game to infer as much as possible about the state of play (including but not limited to an opponent Pokémon’s spreads/items/abilities).
- 0 ERROR is a competitive Pokémon battling AI, leveraging EPOké to improve its perceived information set.
- PocketMon is a mobile application which allows you to play multi-generational competitive Pokémon in an (EPOké-enhanced) offline client against an intelligent opponent (0 ERROR).
EPOké (named after a portmanteau of EPO and ‘Poké’) leverages a reverse damage calculator (‘gmd’) and additional logic to construct the perceived state based on the perspective of the client. EPOké is designed to be useful in many domains, exposing additional information from replays, extending the Pokémon Showdown client tooltips/UI, or inside the engine of a Pokemon AI.
0 ERROR (named after a famous glitch in Generation 1, while also alluding to flawless play) is an AI based around MCTS and battle state evaluation heuristics. 0 ERROR relies on EPOké's enhanced battle state tracking and prediction capabilities as well as an optimized battle simulation engine and enables offline play in the PocketMon client UI.
PocketMon (named in reference to the original Pokemon manga, with ‘Pocket’ referring to its mobile nature) will provide an interface optimized for battling on modern mobile phones. Battling 0 ERROR while offline is the primary goal of the project, but playing online against human opponents with the PocketMon UI is a potential future feature.