today's devblog comes straight off of discord, where i was very angry at some things earlier.
i had noticed while playing a certain pokemon desolation
that in four-person double battles (you and a partner vs two opponents)
the AI phase of the turn would occasionally lag just a bit.
deso uses the reborn ai (because they're not, y'know, animals), and so earlier today i took a peek at its inner functionality.
it is, uh, something.
firstly, it makes the "movescore" calculations (the ai's entire claim to fame) three times per round instead of, y'know, one.
this was kind of an oversight on our part. silly, really. with some restructuring, it was patched out and now runs a lot smoother.
however, upon further investigation, it became clear that fixing this issue did not yield the expected improvements. i identified a culprit: the hasWorkingAbility function.
this function does two things:
it checks to see if you have an ability
and it checks to see if it functions (not moldbroken, etc)
it's not very good at those things.
and that frustrated me.
in a fit of righteous fury at this function that had wronged us all, i prepared to re-code all 1002 calls inside the move scoring system.
what follows is a direct transcript of my angy in its purest form.
(for reference that 15.8s -> 14s thing is just how long it took to profile- so by the end of this the profiler ran about 20% faster)
what i'm trying to say here
is fuck essentials.
Edited by andracass