-
-
Our current Team
-
List of Available Pokemon
-
Team optimization in Progress 1
-
Team optimization in Progress 2
-
Team optimization in Progress 3
-
List of Available Items in Pokemon
-
The optimized team that BugCatcher Joey has created
-
Detailed logs and reasoning for why this team was chosen
-
Our teams matchup against most popular Pokemon analyzed by AI
-
Our teams matchup against most popular Pokemon analyzed by AI Pt2
-
The backend design of how we improve teams
Inspiration
We were tired of losing to try-hards using only the most used Pokemon on the ladder. We wanted to use our favorite Pokemon, but still have the ability to counter the biggest threats in the current meta. That's when we came up with the idea of Bugcatcher Joey. The tool helps us build teams with our favorite Pokemon that won't get us steamrolled.
What it does
The tool can be interfaced as a webpage. The user selects their favorite 6 Pokemon that they want to form a team with. Then, we use custom optimizing algorithms to figure out how viable the current team is, which threats in the meta it can counter, and what Pokemon it would need help beating. We aim to get 50% of coverage, meaning that the team has at least 1 counter to a majority of the most popular pokemon in the meta. Then, a strategy agent recommends changes to the team such as moves, items, natures and in the worst case, bringing in new Pokemon.
Finally, the user can copy the PokePaste the team into showdown and start climbing the ladder!
How we built it
We used Modal as an inference engine. Our backend is a mix of Python for orchestrating agents and JavaScript for running Pokemon damage calcs and computing optimal EV assignments. Our beautiful frontend was build in React with Antigravity.
Challenges we ran into
Dealing with and understanding the Smogon Pokemon library was challenging, especially since it is written purely in JavaScript. Because of this, we needed to run a hybrid Python/Javascript setup, since it was ill-advised to try to hand-roll a Pokemon Damage Calculator.
One of the hardest challenges was coming up with a reasonable algorithm to distribute EVs in such a way that our Pokemon can counter the most common threats, while still staying under the 510 EV total limit.
Dealing with UI elements, especially the custom Pokemon sprites, animations while managing the classic. UI issues like padding, spacing and centering added significant amount of developr hours.
A big issue was music because different browsers handle audio differently, so Pokemon music in one browser may just fail to play in another. We spent many hours trying to perfect it for Chrome.
Accomplishments that we're proud of
We think the UI looks really good. We also are happy that the EVs that are assigned are reasonable, although we could never come up with the crazy scenarios Wolfey plans for. We will at least be spending less time in the teambuilding menu of Showdown and more time in battle.
What we learned
The Smogon library is so clutch. The subprocess library in Python makes things really slow. Competitive Pokemon is more art than science.
What's next for Bugcatcher Joey
Make the AI faster and less hallucinations (just like everybody else wants) .
Also waiting for our Metapod to evolve :).
Built With
- javascript
- modal
- python
- react
- smogon
Log in or sign up for Devpost to join the conversation.