A really dumb bug

With our latest Feeback Friday release v0.8b came a really dumb bug. When users clicked the main menu’s “Play” button, nothing happened! This was initially reported by Ronny, our composer and PM, to be happening on his iPhone but not on his iPad. Very odd, especially since the issue wasn’t occurring on my Windows desktop or my Android phone; we chalked it up to his phone having some issue and went ahead with FF release.

Next morning we wake up to a couple of redditors reporting the same bug on Windows and Android, the very same platforms I wasn’t seeing it on. So we hop on a Skype call and run development builds to see if there’s any console errors we had missed. I see none on either platform, Ronny attaches the profile to his USB-connected iPhone – we see a few warnings about some message headers not getting across to the profiler but assume they’re regular debug logs not getting across for whatever reason.

Some context: Just this week I had implemented functionality for players to pick up from the maze they left off at. It writes the maze you just finished to a UML file in the Local AppData folder. Thus, my initial hunch was that this bug was due to different OS filepath systems. But that hunch didn’t make much sense, we realized, because reddit was seeing the issue on the same platforms where I wasn’t seeing it. We debug that code anyway and it’s reading + parsing the file just fine.

At this point we were stumped for a fair bit; we’re basically rubber ducky debugging with each other, repeating the problem out loud and what we’ve already tried to diagnose. Then it it dawned on me and I chuckled out loud because of how dumb it was. The commonality between Ronny and the two redditors wasn’t their OS or devices, it was their fresh install.

First-time users didn’t have that UML file that contained the previous level and I stupidly never accounted for that when I wrote the script. I wasn’t seeing error logs on my platforms because both my desktop and Android had that UML file from previous playthroughs. We didn’t see error logs via the iPhone profiler due to the header messages not getting across. Ronny didn’t see the bug on his iPad because it had a previous version of the game installed, which had this UML file.

I’ve been wrapped up on all kinds of challenging stuff this week; optimizing object pooling, implementing 3 editor tools, a dozen bugfixes (now a baker’s dozen!!) and the one simple, tiny thing I overlooked leads to this really dumb bug.

It’s humbling, albeit frustrating =)

Leave a Reply

Your email address will not be published. Required fields are marked *