A tale of bugs (Patreon)
Content
Hey everyone,
I thought it would be useful to get an insight into why development slows down when a game gets towards the end. I’m going to take this opportunity to vent as I decide the best course of action.
So while testing some very basic put characters in the crib and sleep sequence I had two nearly identical pieces of code. One would fail completely. Instead of waking up the player would simply half get up then lie down again. You’d then be stuck in this animation and the game would soft lock.
Looking over the code I changed several small things to fix it. But wouldn’t you know it, my fix very literally broke the entirety of the sequence code. So lately the game has been entirely broken while I slowly pick through the code to figure what’s going on.
Thankfully I maintain pretty strict version control so no changes I make would break anything permanently. But it exposed a huge issue in the event code. After at least 16 hours I’m no closer to working out what’s going on.
As far as I can tell the issue lies within animation code. When a sequence involves multiple blended animations playing one after the other (which is most of the events) slight variations in timing can cause the blends to fail to complete.
The fix I implemented was designed to clear out any old animations or blends that might be unintentionally retained. But here is the fun part. That’s what breaks all the old graphs. This bug will have wildly different results depending on timing so even the distance traveled to the event locations can change how this breaks.
In the short term I have found what I think is a fix. I revert all the systems to the old potentially broken way. I’m using a few bandaid systems that can be applied to any new events that suffer from this bug. But this is hardly an ideal way to fix it.
So I spent all week working only to make no progress and only just claw the game back to working like it used to but maybe with a little more stability. Working on any of these core systems is so dangerous at this stage. Even minor bug fixes can have an impact that radiates far beyond expectation.
That’s partially why I’m keen to finish the main story line. The main quest is like one long sequence that any failure might stop a player's progress. I hope side quests and mini stories will be easier because they will be self contained.
That’s all for now. Sorry for the bad news but I assure you with my face pressed up against this bug I’m more annoyed than you. I think the bandaid is the best solution for now. With so many sequences fixing / updating the event system would require I then go and test every single sequence in the entire game.