Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Speed up Random Battles species selection #10138

Merged
merged 8 commits into from
Jan 29, 2024

Conversation

livid-washed
Copy link
Contributor

@livid-washed livid-washed commented Jan 27, 2024

This refactors species selection in Random Battles to be more efficient.

Previously, after selecting a base species, it goes through the entire array of species to record the ones with the corresponding base species, then chooses one of them randomly.

Now, getPokemonPool() outputs an object pokemonPool which records, for each base species, the list of species with that base species. Instead of checking every species, it now just samples from the list corresponding to the base species.

This approach is significantly faster and keeps the appearance rates standardization from #9708.

My local testing shows that this speeds up overall team generation by around 20% for Gen 9 Random Battle and 50% for Gen 7 Random Battle.

Copy link
Contributor

@ACakeWearingAHat ACakeWearingAHat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

neat, speed

data/random-teams.ts Outdated Show resolved Hide resolved
data/random-teams.ts Outdated Show resolved Hide resolved
data/random-teams.ts Outdated Show resolved Hide resolved
data/random-teams.ts Outdated Show resolved Hide resolved
data/random-teams.ts Outdated Show resolved Hide resolved
Thanks, you're right. This simplifies the code. I will make the other necessary adjustments

Co-authored-by: urkerab <[email protected]>
@livid-washed livid-washed marked this pull request as draft January 27, 2024 12:30
@livid-washed livid-washed marked this pull request as ready for review January 27, 2024 12:47
@KrisXV KrisXV merged commit dab8f0a into smogon:master Jan 29, 2024
1 check passed
@livid-washed livid-washed deleted the speedupteamgen branch February 29, 2024 03:45
MathyFurret pushed a commit to MathyFurret/pokemon-showdown that referenced this pull request May 21, 2024
* Speed up Random Battles species selection

* Apply suggestions from code review

Thanks, you're right. This simplifies the code. I will make the other necessary adjustments

Co-authored-by: urkerab <[email protected]>

* Improve gen 9 weight code

* Apply the same changes to old gens

* Go back to baseSpeciesPool

* unintended newlines

* missed one

* Removing the final newline

---------

Co-authored-by: urkerab <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants