What Pokémon Showdown Gets Right

Before Pokémon Showdown rose to prominence in 2011 the competitive Pokémon community played across a variety of online simulators. Most of the time each new Pokémon generation necessitated the development of a brand new simulator, and the tenure of simulators lasted at most a handful of years. Pokémon Showdown has experienced unprecedented success and exhibited exceptional staying power that can be attributed to a number of things (not all of which are unique to Pokémon Showdown):

Onboarding

Previous simulators required users to download a binary and possibly dependencies like a Java runtime or mIRC — Pokémon Showdown can be played directly in the browser on almost any device without any installation step required.

Pokémon Showdown also supports guest play — no account setup gets in the way of immediately getting involved.

Finally, Pokémon Showdown pioneered the concept of random battles — a format which allows players to battle without having to create a team, eliminating what would otherwise be a barrier to entry to new players.

On the development front, Pokémon Showdown has optimized for being able to start up out of the box by simply running ./pokemon-showdown, allowing new developers to easily get started with minimal hassle.

Accessibility

Pokémon Showdown pays careful attention to accessibility, not only considering things like users with impaired vision that rely on screen readers or who are color-blind but also users who may be forced to use decades-old versions of browsers to access the site or who speak French.

Development-wise, Pokémon Showdown is open source and is written in TypeScript, a language far more universal and approachable to beginners than those chosen by past simulators.

Simplicity

To continue speaking to its development choices, Pokémon Showdown has a radically simple architecture — it has minimal dependencies and moving parts, it’s hosted on a small number of cheap bare-metal servers, and mostly leverages text protocols and basic filesystem storage.

Pokémon Showdown has scaled to millions of monthly active users following a “worse is better” approach and is in some ways a breath of fresh air compared to over-engineered stacks of less successful contemporary sites. While in theory Pokémon Showdown is less scalable and reliable than it otherwise could be, in practice this hasn’t really mattered and the simple architecture has helped improve debuggability and dramatically lower the skill (and resource) floor for developers.

Extensibility

Like Pokémon Lab, Pokémon Showdown leaned heavily into making the simulator extensible and open for modification — the engine effectively generalizes the idea of Pokémon mechanics to the extent that almost any desired change is possible to allow developers to implement their own custom Pokémon formats. Many developers fork Pokémon Showdown to extend it and often end up contributing back fixes and improvements upstream as a result.

Freshness

The biggest impact of Pokémon Showdown’s extensibility is that the simulator is able to update to the latest mechanics within days or even hours of new game releases or community tiering decisions. While support for new releases is also attributable to lots of hard work ahead-of-time by data miners and Pokémon Showdown’s development team, Pokémon Showdown’s design being focused on ease-of-customization facilitates these quick turn-arounds and ensures the playerbase never has a reason to go looking elsewhere.

A further aspect of Pokémon Showdown’s design that helps ensure freshness is its release process — many frequent small patch releases mean changes get reflected almost immediately to users and preclude the need for costly restarts. Players are usually willing to tolerate some instability in exchange for not having to wait and developers can get feedback on new features and fixes quickly.

Advertising

Pokémon Showdown has remarkably few advertisements when compared to other Pokémon sites or other sites of its size. Some form of monetization is required to support at minimum the server and bandwidth costs and while selling advertsiment space has downsides, Pokémon Showdown has thus far resisted the urge to really exploit its users.


Taken in combination, these factors have allowed Pokémon Showdown to both grow its playerbase and consolidate developer mindshare. However, most of the choices Pokémon Showdown has made outlined here involve tradeoffs — guest players complicate account management resulting in headaches for staff, alternative formats partly cannibalize players from other formats, many development decisions impact performance or reliability, supporting old browsers adds complexity and limits flexibility, inadequate monetization shortchanges staff and developers, etc. Many of the things Pokémon Showdown got “right” are the very things that make Pokémon Showdown “wrong” when viewed from a different perspective. Nevertheless, Pokémon Showdown can be lauded for its success and for the stability its presence has brought to the broader competitive Pokémon community.