Home Creators Posts Import Register Favorites Logout

Content

if you've been around for a few episodes you probably know all about how the AI sometimes just doesn't. and sometimes it does, but does very very wrong. and it's a huge headache and everything is suffering and sometimes AI bugs can break the rest of the game and screeeeeeeeee
and if you haven't been around for a while yet, now you know.

however, over the last three years, cass and perry in particular have done a lot of work on the AI. some of that has showed up in rejuv v13 already, but most of it has not because they also have their own thing going, and part of their work was to completely refactor the AI. when we started our big AI project back in E16, the goal was to complete the existing structure, but that came with some flaws. the biggest one is that it limited how well we could make decisions with switching. the refactor was intended to solve these structural issues and add other functionality.

personally, i feel like we're in a much better place than we were last test cycle. for instance, if something goes wrong, the AI doesn't just silently lay down and accept death in a catatonic state-- remember inaction errors? instead, now it will actually throw a crash message like a reasonable  program so someone can go resuscitate it. we've also done some automatic and systemic testing for funsies that's helped, and in addition to that, perry has built us some new tools to help see decisions in realer time. 

that is all to say, we're in a much better place than the past.

but, the AI is still the AI and we still have plenty of bugs. most of these bugs are a backlog from existing reports before the rebuild that carried over. a few of them were introduced by human error during the refactor. this is only normal. this weekend, we're taking some time to knock out as many of our backlog as possible. 

here's everything perry and i fixed today:

  • fixed a bug where the AI would quit using attack-lowering moves when it still could, because it had lowered the target's attack so much that it now believed it was a special attacker all along (and visa versa)
  • added some surely-incomplete handling of edge cases when the AI only has bad moves, causing it to choose randomly even when some moves would activate lightning rod, etc. it now can prefer moves that do nothing as opposed to moves that advantage the opponent.
  • discouraged AI from using potions mid-rollout
  • added some additional handling to prefer screens based on opponent's attacking stats. 
  • added handling to prefer mirror coat/counter harder based on opponent's attacking stats.
  • mixed mirror coat up with light screen at least twice and was very deeply confused for twenty minutes why editing light screen wasn't making mirror coat work OTL
  • added handling to priority sections to make near-death pokemon panic-spam priority if their opponent is asleep or frozen
  • tweaked wish+protect scoring to be a little more choosey about when to panic-spam wish
  • cleared several outstanding and since-fixed bugs to do with not switching out when choiced or struggling
  • fixed a bug with encore causing it to not be used in clearly advantageous cases
  • added scoring to encourage the AI to use defense-dropping damage moves more
  • fixed a bug where the AI would pass up on power up punch boosts after hittting +3 attack
  • fixed a bug where stat boosts
  • fixed a bug where the ai was allergic to super fang
  • fixed a bug where whimsicott, when faced with a scizor, chose honorable death by encoring scizor into bullet punch
  • fixed a bug where the AI was allergic to most Z-moves

...and that was about half of our backlog!

we are going to do the other half in stream on the patreon server tomorrow! i plan to start around the usual ~3p MDT, but we'll see what happens. you can come hang out with us, watch us code, test, tear our hair out, and wonder why the AI ever worked in the first place!

Comments

No comments found for this post.