XaiJu
Shattered Pixel
Shattered Pixel

patreon


V3.3 Beta Bugs | Patreon Weekly #339

Hey Patrons! In this weekly I’m going to go over some of the bugs that were in the initial beta for v3.3.0. Bugs in betas are normal, but this one had a few more interesting ones that I thought would be interesting to explain in more detail.

Firstly, a bug that was caught in Alpha and so very few people got it. The Skeleton Key has a little buff that it uses for tracking how many locks of a certain type are left on a floor. Those counts or locks are then used to determine if keys should be discarded. However, for every floor that’s not initialized these counts are set to -1. The intention is for logic to handle -1 as a special case, but for one bit of logic I forgot to check for that. So, when that logic was called first on a new floor (e.g. when a player descends and picks up a key), rather than initializing the counts the buff instead deleted all the player’s keys for that floor.

Next was probably the bug most people know about, gnoll brutes got a little unintentionally tanky. Previously whenever the game checks if a brute is alive (which happens often when drawing a new graphics frame) it checks to see if any of the brute’s buffs were an instance of brute rage. This check was a bit unnecessary, so brutes were tweaked to cache the buff rather than searching every time. The problem is the new logic checked to see if the buff had shielding left, not whether it was still attached to the brute. Effects like assassination just force-removed the buff, leading to a brute that was effectively immortal. I’ve fixed that now by ensuring that shielding in the buff is set to 0 if it gets removed from the brute.

Lastly is probably the highest-impact bug. Many items have invisible buffs that they attach to the hero, such as recharging for wands, or buffs to your stats for rings. Generally these items manage their buffs properly, and clear them when unequipped. Before the imp quest, the only time items were force removed was as a part of the hero dying, which clears almost all buffs anyway. I tried to add logic to properly handle the removing of item buffs, but forgot about rings. This meant that players who already had rings would keep their buffs inside the new area AND upon returning, and this would stack with the buffs granted by the game re-equipping those rings. This could be used to stack ring buffs basically forever, as long as the player never quits to the menu. The fix was easy, but a few people managed to try out effectively having a +1000 ring of wealth in the meantime.

Comments

Yeah, I get it. I never realized game development was that complex, eh? After watching some videos on YouTube, I understand developers a lot better now — how stressful it can be, even when you're totally passionate about the project. It makes sense that sometimes the pressure to find solutions and meet deadlines can put you in a rough mood. I guess adding new content can sometimes create unexpected problems in other parts of the code. Wishing you all the best and lots of success.

Rainer


More Creators