When you realize how dumb a bug is...

Started by
150 comments, last by Juliean 7 years, 4 months ago

Since some months ago we have been trying to hunt down some bug in my game. Basically, the invincibility theme got cut off early in gameplay, which hinted at a timing issue. The game was obviously taking up 1200 frames (20 seconds) as usual, so I wondered if the framerate system was failing on his (the musician's) system. First I reworked the framerate system so it literally stayed in sync with the timer instead of trying to count on its own, but that didn't work. I went as far as looking up hardware bugs (which I had assumed would be dead by now but I wanted to make sure) and trying to set the thread's affinity to avoid them. Nope.

...then I look at the OGG file again, just in case. It's 0.4 seconds longer than it should. Nobody noticed for months. *headdesk*

Don't pay much attention to "the hedgehog" in my nick, it's just because "Sik" was already taken =/ By the way, Sik is pronounced like seek, not like sick.
Advertisement

It is amazing to me how easy it is to get off on the wrong track and take so much time before you realize your mistake. But you didt the right thing: always assume it's your code. Except it wasn't. Damn.

I just went through this. Weird bug that could never happen. There is it, right on QA's screen. They were using an older version before the bug fix. Never even crossed my mind.

I think, therefore I am. I think? - "George Carlin"
My Website: Indie Game Programming

My Twitter: https://twitter.com/indieprogram

My Book: http://amzn.com/1305076532

Happened to me today. Ran a video export simulation using dummy images. Transferred to a different computer to eliminate unknown inter-dependencies, and moved all folders along.

Didn't work.

Debug log didn't specify anything meaningful.

Was stressed.

Spent an hour fixing it to no avail.

Then, looking at all files I had copied over, I realized that though I had moved the 'Frames' folder from which I drafted the dummy images, it was somehow empty..........

Part 2

Composer was trying to test the WIP of one of the level themes and he complained that it played in the sound test but not in-game (!?). Then I checked myself and it worked on my end. Cue being completely clueless, especially since nothing at the code hinted at a possible bug. Some minutes later he makes a comment about the game and I realize he was making the theme for another level and because of that he was using the wrong filename (thereby the game of course not playing it).

Don't pay much attention to "the hedgehog" in my nick, it's just because "Sik" was already taken =/ By the way, Sik is pronounced like seek, not like sick.

I just went through this. Weird bug that could never happen. There is it, right on QA's screen. They were using an older version before the bug fix. Never even crossed my mind.

I do that myself occasionally.

Tweak -> build -> run and view changes
Tweak -> build -> run and view changes
Tweak -> run previous build accidentally -> wondering why the changes didn't take place -> starting reading the code to make sure I wrote it correctly

I lost the count of times I press build multiple times just to avoid that (I'd rather waste time building too many times than not build and go crazy figuring out what went wrong). Not really a big problem with C since Code::Blocks will just say it's already built, more of a thing with assemblers which will build the entire thing from scratch (but then again it's rather quick anyway).

EDIT: I suck at proofreading...

Don't pay much attention to "the hedgehog" in my nick, it's just because "Sik" was already taken =/ By the way, Sik is pronounced like seek, not like sick.

Reference data does not match data from new code.

Checked again, again, again and again.

Did I forgot an offset?

Reference data comes from a different project. It's basically a for(...) <do stuff> and I'm interested in a certain loop iteration.

In a certain loop iteration. Not in two different loops iterations. Changed iteration to debug to same value. Realized there was no problem to fix. Called it an intense day.

Previously "Krohm"

I do stuff like this more often than I'd like to admit. I'm actually trying to train myself to suspect resources sooner, since they're generally easier to check.

I did it in my recent course project, where there was a problem with my map file that was obscuring an oversight with my pathfinder, and then I just did it a couple days ago when I was fixing a bug in a KSP mod, but no matter what changes I made the game behavior wouldn't change. It turned out that the dll I kept dropping in the KSP folder didn't have the same name as the original, so I wasn't actually overwriting the correct file. -.-

void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.

Exporting a tree-structure as a visual output to another tool from a tool that doesnt provide positional data...

So yeah... Calculate them from the structure. Not that hard to do, right?

But i wasted like a shitton of time because the target tool had the undocumented feature to set everything with a x or y coordinate of 0 (totally valid value...) to 100 / 100. Searched for ages in my code and then just tried adding 1 to everything... and suddenly it worked.

Biggest derp in my recent programming carreer. :/

You aren't a real programmer if you didn't have the AH! effect a few times.

It's once you find that nasty bug that has always eluded you.

In an older company I wrote a small tool that sat in the notification area. Once clicked it squealed like a pig and increased your personal score. It's quite relieving to hear a few squeaks every now and then :)

Fruny: Ftagn! Ia! Ia! std::time_put_byname! Mglui naflftagn std::codecvt eY'ha-nthlei!,char,mbstate_t>

This topic is closed to new replies.

Advertisement