Postgame Supervised Testing, Days 2-3 (Patreon)
Content
ah, now we have Content ™
in our latest episode of supervised testing, cass and autumn join the fray!
ika whites out to a normal wild-ass virizion, and autumn engages in high effort gameplay while getting lost in rhodochrine, and cass and i comment back and forth on whether or not delibird is broke or broken.
but we'll explore some other things today.
Firstly let's get one thing straight
I'm aware of the etymology of the term 'bug' in computer programming. However, I also hate insects ! They are gross ! Squashing them is arguably cathartic, but still pretty gross!
So, effective immediately, for personal reasons, I am no longer referring to glitches and unintended behavior as bugs. I am now referring to them as cats. Instead of squashing them, I am catching them-- corralling cats. I find the imagery to be much cuter and more humorous, and this brings me joy.
It also has the side effect of making others post cute cat pictures in our cat-reporting channel. It is a passive source of healing, and we take those where we can get them. <3
now, let's explore today's cats:
Stop hitting yourself, stop hitting yourself--
One of the things we're doing with the catchable legendaries is making sure their generating movesets don't spawn in with, say, things like Explosion. Because nobody wants that.
Do you know how many legendaries come with moves designed to kill themselves at a high level?
Lots of them!!
Why!!!!
Gamefreak, stop it!!!
We noticed that the genies were coming with things like Thrash, and Outrage, and so, among the storm of Ultra Balls so eventually ended themselves with confusion.
no !!!!
volcanion had an entire explosion!
wrong!!!!!
it also had flare blitz!
stop !!!!!!!!!!
Meloetta was up some time later! It had perish song !!!!
nostop!!!!!!!!!!!!!!!!
so anyway I added a patch to get those moves out, and let Ika get back to Ultra-Baseball-Simulator.
He tried Meloetta again after that. It was shiny!
nice!
The patch didn't work. It used perish song twelve ultra balls in.
why !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(its ok now, but if you find self-destructing legends in testing, please tell me)
A stuck-on surprise!
Meteor Tanzan Base-- you fend off two grunts while Saphira busts down a security system. Then she spooks them into running away.
So...
This was happening:

They fled the room, but left their exclamation points behind.
I had an understanding of this right away. So, at some point in our myriad engine and script changes, something changed with the way events process overworld animations. Some examples of those: the screens in shade's gym, medicham at pyrous mountain, the grass rustle effect, and the "!" box when trainers notice you and used in scenes.
I'm not really sure why, but I saw two things happening a while ago. First, all of the animations shifted like... 12 px up or down from where they were aligned in previous episodes. Weird flex, but okay. It was probably possible to fix script-side. I think Jan mentioned the same thing happened in Rejuv. But we've used few enough animations that I just went and adjusted them all.
The second thing I noticed is that animations stopped playing if the target was an event with no graphic. This was, and still is, obnoxious. It means I had to go find every instance of an animation targeting an event in the game, and put an invisible graphic on that event. It's because MKXP ties the animation to the sprite update loop. So if there's no sprite to update... we do not update the animation.
so, I thought I got all of the instances of this. And as far as I know, I did. However, I didn't think about cases where an event starts with a graphic, and then loses it mid-animation... which doesn't happen very often, but it's exactly what's happening above. The grunts leave the room, so we drop their sprites, so we can't updated their exclaim bubbles anymore.
Now, the solution should be obvious-- instead of having them change to no graphic, we change them to an invisible graphic. That's what I've done for every other case of this and it's worked. ...But this time, it didn't work...? Because the invisible graphic I was changing them to...

.........wasn't invisible.
even though i told to be invisible.
i told it very specifically several distinct times to be invisible.
and it wouldn't.
also, because they had a solid event graphic?
they softlocked the player into the room
super.
(don't worry about what that graphic actually is btw it's not important and won't hurt you* <3)
anyway I still have no idea why these punk-ass grunts refuse to change to the invisible graphic I ask them to, but I worked around it by just making them turn 100% transparent as and passable as well, which is effectively the same thing, it's just stupid that this was even an issue.
*as long as you don't get hit lmao
Typos Can Be Cats Too
listen this isn't interesting as un-intended behavior, but we rebuilt the field notes so they don't drain my entire soul to edit one (1) small thing on them (ty perry !!) and there was a lot of data entry to be done with those.
and as with any manual data entry, there's bound to be typos.
but these.
these are our favorites:
when you go to europe and they treat you like a stupid foreigner:

digestive system working as intended:

these are cats because they are also funny and also bring me joy.
what

pokedex what r u doin'
excadrill more like axecadrill
this is way overdue.
listen, i always knew excadrill was the most busted mystery egg pokemon. but i figure that, like with blaziken, that's fine. some easier options aren't so bad, and it's not going to dominate every team comp because it's not reliable to get.
...and i know in my head all of the reasons that this pokemon is ridiculous, right?
but somehow
it just doesn't hit the same way
as watching autumn roll into the drillbur mystery egg
and proceed to win literally all of the next like two episodes of story battles by mindlessly clicking 'dig' at every opportunity
like i knew it was good, but i didn't know it was that good, you know?
like i knew it was bad but i didn't know it was that bad, you know?
and i just can't anymore.
it has to go, i'm sorry
we've decided trapinch is probably a better fit for the mystery egg, sorry not sorry
Nerfs, nerfs everywhere
so postgame teams are proving to, predictably, generally be pretty brutal. PULSE2 on anomalies makes this unsurprising, but so far the most annoying one wasn't even PULSE2. still, there's like ~10 or so postgame teams so far that our initial testers (i.e the dev team, hi) seem to be frequently having trouble with, so we're opening up with a round of light IVs nerfs to a handful of those teams...
fwiw IV cuts are effectively like taking a bit of the PULSE2 out, it's just way easier for us and we take practicality where we can get it. we'd be several more days behind if we wanted to make proper EVs for every postgame team, so I prefer to wait for a larger scale of feedback before making more refined revisions.
still, this is like, good? I'd rather things be too strong than too weak by now, because it's much easier to nerf things than buff them at this stage. I feel like we're going to have a solid amount of freedom to tune everything to a satisfying point, or at least die trying.
And now for something completely different
Despite the huge amount of content in postgame and early game changes, I feel like we're a little ahead of schedule compared to previous testing cycles. In the past we had supervised testing (i watch ika play) and internal testing (dev team plays on their own) in separate phases, but god bless git, how did we ever survive without it? Having the team around to help make fixes has kept us on top of the catpile, and them having access to all latest changes means they can test more freely than ever before.
As a result, I'm feeling very good about how we're shaping up!
Which means,
let's burn it all to the ground, woo!!!!
So cass mentioned this in her big ai post from, uh, 90 minutes ago, but one of our final projects is to try our best to get Rejuv, Reborn, and Deso on reasonably compatible scripts so we can stop all re-inventing each others' wheels.
But this is a pretty big leap! In the first place, Rejuv runs v16 Essentials-- we run v15. There's a lot of game-specific code, and a lot of challenges in trying to get them to all play nice together that cass has had to work hard to overcome. And she has! She has spent many day meticulously combing and merging diffchecks so as to preserve the purity of each project's programming while also taking a step forward for her sanity as Fangame Empress collecting bingo along with crim on the community's three most major games.
And now it's time to see how it's run. We're frankly relatively cat-free until now, but as of The Great Merge there's a lot of potential for new cats and old changes to get reverted. I am spooped! but cass does great work on the large scale and perry is like glue keeping all the cracks from falling through each other, so it will probably be fine. just rocky. Best to get that in and de-rocked ASAP.
We've already had some funky stuff happen as a result; for instance the "what" entry up there is an example of that. Also, Cass had to try like four times to catch a goddamn sunkern in the early game because it kept crashing on catch. I suspect she never wants to see a sunkern again ? it would be understandable.
But on the plus side, Fern can probably get swept by Delibird, so that should make it all worth it, I hope.
meow meow, loves