This update is going to be so short, I’m not even going to do that “read more” thing. It’s been a long day, tomorrow will be another long day, it’s late, and likely not many are interested in reading a devlog anyway.
Yesterday I left off with the final ball drop sometimes stalling out, stopping any further balls from dropping even though they should. After some digging around and fixing a couple of other unrelated bugs, I discovered that the issue was as simple as the rewritten code for ball reaping stopping 1 column short from the right side of the maze. So any ball that stopped in that column would vanish but never be reaped and so the notification for the next ball to drop was never posted.
Along the way I fixed a (non-issue) with the code not being able to proceed to dropping the final balls if there are no gray bricks to remove (which can only happen during debugging since otherwise there is always at least one bug) and the final ball drop starting a couple of frames early for each ball by not checking that a ball is fully vanished before selecting the next ball.
This testing also uncovered another bug. Due to the step by step nature of the ball drop, the final ball drop will start moving any ball that stops on an arrow by pushing it, when that should not happen. I knew this was going on but had sort of glossed over it until now. However it makes the game unfair because it allows more balls to move than it should.
My ultimate decision is to vanish away all balls that have no possible chance of moving further (anything blocked on something other than a gray brick) before the final ball drop. I have some prototype code for this but I haven’t included it yet because I think it needs a bit more work.
Tomorrow I’ll finish that and add scoring, and we pretty much have a simple playable one-round prototype to continue polishing on for the last week of Devember.