You should consider joining our Discord to ask for support.

We created a support channel using the new Discord Forum feature!

You can also visit our new website, it has a help section in English and French

0 like 0 dislike
620 views
in Bug by (510 points)

We noticed in newer versions of Pokémon Battle Spotlight (the most recent version specifically) that the AI has been very notably dumber on playthroughs from the devs and player feedback alike.

Even though the project manager says he raises the difficulty to max, they are still prone to very silly errors that were not as intended (compared to the version that was released on the Game Jam period especially).

Some examples:

- Pokémon with Explosion will use the move even on Ghost-type Pokémon, effectively insta-losing the round for no reason.

- Overall, the AI no longer cares about type-effectiveness, and is seemingly random and not using the 1-2 likely decent effective moves or status effects. For example, Mismagius spam Energy Ball on Mawile.

- They will use status effects (Confuse Ray, Will-O-Wisp) multiple times in a row, even if they had landed the move the turn before or if they have a status effect already. Getting a free turn this way feels unearned.

- Useful moves like Light Screen that need to only be used once in awhile are used in succession, failing and giving the player a free turn sometimes.

Could we be wrong in how we set-up the AI difficulty, or was there a change? Thank you!

1 Answer

1 like 0 dislike
by (28.0k points)
selected by
 
Best answer
The only heuristic the AI has is for the Rest move. All the other moves are computed based on power & effectiveness. I'd like to know your exact AI level to make sure AI is not launching Explosion because it's not seeing pokemon type.

Writing $scene.artificial_intelligences in the console during battle will display the class of the AIs that are running for the current battle. The demo battle in PSDK .25 (random pokemon) has the following AI: #<Battle::AI::TrainerLv4:0x0f54b688>

Type effectiveness is visible starting from TrainerLv2 upto TrainerLv7.
by (28.0k points)
I forgot I had the project file, just tested the AI level is 6 (for the battle with the pink haired girld with a beret). So that's weird but I'm gonna check the AI heuristic and maybe implement stuff for some moves.
by (510 points)
Okay, thanks for letting me know!
by (28.0k points)
Thanks to you I figured out the issue with effectiveness. When effectiveness was 0 heuristic still returned 0.75 * ratio_of_atk_over_dfe instead of 0 * ratio_of_atk_over_dfe.

Regarding the other kind of effectiveness I'm not 100% sure but it's supposed to work even if the number of efficiency is very very tiny. I would need a battle with 4 moves that has the same power but different type to check that. (Unfortunately I don't have time...)

In case you're interested in the fix: https://gitlab.com/pokemonsdk/pokemonsdk/-/commit/8a2585154f885dea9f8f53d4cc9d34f1aa9934cb

If you want to check how AI behave you can type the following in the console:
ScriptLoader.load_tool('AI/DebugWindow')
Debug::AiWindow.run

You will be able to see all AI computation in another window ;)
...