+ Reply to Thread
Results 1 to 27 of 27

Thread: Tell us about your best Bugs...!

  1. #1
    Senior Member
    Join Date
    Mar 2005
    Location
    London
    Posts
    395

    Default Tell us about your best Bugs...!

    Inspired by the Easter Egg thread: what impressive/ funny bugs have you had in your games?

    The monkeys poo in Gibbage, which is hilarious enough.

    But there's a bug whereby sometimes they jump up and down and poo at the same time, and so the poo flies everywhere. It was so funny that I made no effort whatsoever to remove the bug.

    I'm professional like that...

  2. #2
    Senior Member
    Join Date
    Jul 2004
    Posts
    799

    Default

    This isn't a really a bug, but it's a funny little story...

    I was working on some smooth scrolling for one of the games I have in development. One day I made big changes-- maybe 2 hours of work without a compile, just listening to music and coding. When I finished, horrors! The formerly smooth scrolling now had an irregular stutter that looked, for all the world, like a floating point error.

    Over the next couple hours, I slowly tore out everything I had just added, trying to find out where the stutter had been introduced. I finally got it back to where I was before I started... and still a stutter! Figuring I broke something fundamental, I used a backup version and... still stuttering! Utterly terrified now that I had some basic problem with the smoothing routines that just became apparent--and those routines had been a monster to get "just right"-- I shut myself in my office, closed all the blinds, took off the headphones, and, to prepare for some hard-cure fury debugging... turned off Comcast Rhapsody so I could concentrate.

    Stutter gone.

  3. #3
    Senior Member
    Join Date
    Mar 2005
    Location
    England
    Posts
    531

    Default

    back in the days of having a seperate 3dfx card for development, i had mine hooked up to a seperate monitor.

    I came into work one morning to discover that my 3d code had stopped working and was no longer displaying anything on the 2nd monitor. It took an hour of tinkering with code, unplugging and reconnecting cables and cards then general howling at the moon, cursing things etc....until i realised the monitor wasn't switched on.

  4. #4
    Senior Member
    Join Date
    Sep 2004
    Location
    Netherlands
    Posts
    849

    Default

    My favorite bug is writing a whole bunch of new code, then wondering why nothing seems to happen, and finally realizing that even though the new code is present, you forgot to actually call it. Happened more than once...

  5. #5
    Administrator
    Join Date
    Jul 2004
    Posts
    3,401

    Default

    This one didn't happen directly to me, but it happened where I used to work to some of the people that worked with me.

    We use to install these atm like devices in stores and they had voice instructions on them. We hooked up to a number of devices to the system, like a printer, a magnetic card reader and so on.. stuff you'd find on an ATM.

    Well anyway.. got the device to a store and hooked it up and suddenly all the sound had loud audible clicking in it. Regular loud audible clicking. The machines wouldn't shut up. This was never noticed back at the shop because we tested with the at a low enough volume that you couldn't tell.

    Well anyway.. it turned out the bug wasnt in the code at all. It was that the techs had installed the multiport board that connected to the printer and other devices, near the sound card board. The board caused some interference when it accessed a port and the the printers were polled for status at regular intervals. So everytime we checked printer status in the code... CLICK! Solution was just to shuffle the boards internally.
    Steve Verreault - Twilight Games
    http://www.twilightgames.com --- http://www.indiegamer.com

    "Do you really think it is weakness that yields to temptation? I tell you that there are terrible temptations which it requires strength, strength and courage to yield to.” - Oscar Wilde

  6. #6

    Default

    My first gaming job was on a low-budget 3D drag racing game. Every morning we could download and install the build from the night prior. One morning I came in, downloaded and installed the build... the rail cars were automatically aligning themselves at the starting line, engines roaring, the lights counting down to green... I was getting ready to hit the gas... 3...2...1...

    Then all of a sudden both cars lifted off the ground and began softly and quietly floating upward. One of the physics guys had failed to hook back up, or broke, the gravity. Apparently there was enough force in the suspension to push them off the ground. Together they peacefully floated up, the camera pointed upward following close behind, into the cylindrical skybox... slowly tumbling end over end, with nothing to stop them.

    I'm not sure how long a sat and stared at this, but it must have been a long time. I fell into a hypnotic state and watched them float endlessly and pointlessly and thought it was the most surreal and amazing thing I had ever seen. Simple pleasures.

  7. #7
    Senior Member
    Join Date
    Jul 2004
    Location
    Austria
    Posts
    968

    Default

    @last: Sheer beauty!
    Karl Hofer
    Blueskied Games (main site), Gratis Spiele (german site)

  8. #8
    Senior Member
    Join Date
    Sep 2005
    Location
    Citizen of the Universe
    Posts
    492

    Default

    I don't say I don't make bugs, but often they end up being a compiler or OS bug, and every time this happens I don't really know if because it's not my own code's bug I should be happier or angrier instead.
    The latest one was about VC2005 (which otherwise I think is a very good compiler, IMHO the very best program MS ever developed) inline asm:

    MOV FS:[4],0x7FFF0000

    this line of code clearly belongs to my stack handler. Anyway, my proggies were crashing in some machines with some drivers, and after weeks of trials I couldn't discover the damn bug.

    While doing a disassembly, I discovered by accident that the above asm line was being assembled as byte size instead of dword size. Now, I don't pretend the compiler to be intelligent enough to understand that 0x7FFF0000 doesn't fit into a byte and thus choose the 32bit form of the instruction.. but I would expect at least that it should report a warning (or even better an error) if it pretends to default to byte size and the coder wants to poke a big big 0x7FFF0000 in it. Yes, it should report a warning at the very least.

    That costed me a lot of wasted development time.. but I've had even worse experiences of the same kind (notably some Windows bugs that contraddicted totally the official documentation, like the QueryPerformance* and others).
    Greets,
    Fabio

  9. #9
    Senior Member
    Join Date
    Jan 2006
    Posts
    144

    Default

    Quote Originally Posted by Fabio
    I don't say I don't make bugs, but often they end up being a compiler or OS bug,
    Conversely, every single time I'm convinced that a bug is a compiler bug, it's always me.

  10. #10

    Default

    When I was working on Brickout, I mistyped a for loop. It was supposed to be:

    for(i=1;i<255;i++){

    but I typed:

    for(i=j;i<255;i++){

    It caused a random drop to the desktop whenever the ball left the playfield. I literally had to go through the program line by line to find it. The best part is the fact that the code was in one of the first functions I had written, and it only caused the crash later in development. I fixed the line and the problem went away.

    I have a screenshot of my favorite bug of all time...

    Dr.Watson takes a dive

    That was caused by a while loop that never stopped. I use that picture as my email signature at my new job.

    In the turn-based strategy game I'm working on now, the AI generates a threat list based on several factors. The threat list has a large influenece on the AI's decisions. The threat list code worked great, but I made a simple mistake. The code was pretty generic, so every AI player could access the data. I forgot to tell the AI to ignore it's own threat rating. So, a particularly agressive AI would eventually decide that IT was more of a threat to itself than anyone else. So, it would launch an attack against its own country,which would increase its threat level some more. Eventually, the country would nuke itself out of existance.

  11. #11
    Senior Member
    Join Date
    Jul 2004
    Posts
    2,186

    Default

    In Cletus Clay, the sprite routine has a fallback to prevent the program from crashing and alert me to the problem - if it attempts to use a graphics set that isn't loaded in, it falls back to graphics set 1.

    Graphics set 1 is a bunch of animation frames for Cletus himself, standing, turning and punching. If I don't initialise the UFOs properly, they will appear as a great flying Cletus, flanked by multiple rotating Cletuses, all punching in unison. It looks really weird, and then it hunts you down.

    I also briefly had a bug where he would throw a crate, but the game did not reset his "holding crate" status. So you could stand there and pump out great streams of crates, smashing them all and creating huge piles of bonus items. It was a totally obvious and trivial bug to fix, but I had a good go on it first...

    Bugs that make things spawn like crazy are the best.
    Anthony
    www.squashysoftware.com
    A slave to the ideal

  12. #12
    Senior Member
    Join Date
    Oct 2004
    Location
    Belfast
    Posts
    342

    Default

    Quote Originally Posted by delsydsoftware
    In the turn-based strategy game I'm working on now, the AI generates a threat list based on several factors. The threat list has a large influenece on the AI's decisions. The threat list code worked great, but I made a simple mistake. The code was pretty generic, so every AI player could access the data. I forgot to tell the AI to ignore it's own threat rating. So, a particularly agressive AI would eventually decide that IT was more of a threat to itself than anyone else. So, it would launch an attack against its own country,which would increase its threat level some more. Eventually, the country would nuke itself out of existance.


    That reminds me of the story about the guys producing the battles for Lord of the Rings. They wrote complex AI routines to handle every single warrior on the battlefield so they'd act appropriately.

    Except they accidentally emphasised "safety first", so at the start of a battle everyone ran in opposite directions.

  13. #13

    Default

    I know that this is pretty much off-topic - it's not my bug, and it's not even an indie game - but I had to post this video, it's just too good. The game is Oblivion, Xbox 360 version.

    http://video.google.com/videoplay?do...56445634741451
    "It's often uncomfortable, but in the long run it makes more sense to deal with reality."
    - Michael Abrash
    "The more discipline you have, the more freedom you have."
    - Björk
    Visit my blog to hear talk about game design and programming, and cute stories about my kids!

  14. #14
    Moderator
    Join Date
    Jul 2004
    Location
    Birmingham
    Posts
    2,118

    Default

    We had a good one on one game. There was a PS1 game that had a 2 player co-op mode and the characters were about the size of the sensi soccer men. If both players went to opposite sides of the screen all the aircraft took off and hovered. You couldn't then complete the level as there was no-one in the craft to land them.

  15. #15
    Senior Member
    Join Date
    Sep 2005
    Location
    Citizen of the Universe
    Posts
    492

    Default

    Anyway, the most stupid bug I wrote ( not the compiler ) has been when I was setting up some structs with multiplayer in mind (no networking, all local), but wasn't really sure if I would ever really implement multiplayer in the end, so I left it as an array but dimensioned to 1, something like:

    struct {
    ...
    } Player[1];

    Well, here comes the bug, which was more in my mind than anywhere else: when accessing the struct, I was always doing Player[1] instead of Player[0], going out of bounds.

    Since I was overwriting what came next in memory, notably some vars that controlled the display, the weirdest things happened. When I was moving the player, it wasn't moving but the landscape was, etc.. it was very funny, but I learnt the lesson to sleep before coding. And also that C compilers should really report an error at least when you go out of bounds using literals.

    Why do I always end up blaming the compiler.. argh.
    Greets,
    Fabio

  16. #16
    Senior Member
    Join Date
    Nov 2005
    Location
    Tucson, Arizona
    Posts
    351

    Default

    I wrote an Air Hockey game many years ago, and it had a bug where the puck would hit a corner and in some rare cases animate off the table, instead of bounce back into play. I never did figure out the bug, and we had a bad deadline. So I just checked for the puck location problem, and put up a dialog "Your puck has bounced off the table."

    So basically the Bug became a Feature!

    Tom

  17. #17
    Member
    Join Date
    Jun 2005
    Location
    Pretoria, South Africa
    Posts
    55

    Default

    Back in my VR days we were working with a tool called EON, we found so many bugs and subsequent workarounds that tech support started forwarding questions to us

    One of my favourite bug stories has more to do with a new modeller that came into the company and thought he knew everything because he was older than us (welcome to South African office culture). We'd just discovered that we could force EON to have 8bit alpha transparency instead of just colour keyed transparency (which left a wonderful halo around objects when we turned on bilinear filtering) by using png files with their own alpha channels... Suddenly our simulations could look way better, so we made liberal use of this windfall.

    Pretty quickly we realised that any alpha'd objects were sorted by their centre points, which meant that some meshes would pop horribly when we moved them around the simulation. We got round the problem by simply splitting things up intelligently so that they never shared centre points: 2 plane trees became 3 plane trees, etc. The new graphics guy just didn't believe that explanation, so he spent ages looking into the "real" cause of the issue. A week later he proudly gestured to a "revolutionary primitive he'd invented" in Max called a "sailors hat" (resembling an origami hat) which we were supposed to use scaled very thinly instead of planes... I told him that we'd already fixed the problem and he'd wasted a week. He called the boss and proceeded to wax lyrical about how I was ignoring his genius. Twenty seconds later I had two sailors hats sharing the same centre point and merrily popping away.

    He's hated me ever since

  18. #18
    Senior Member
    Join Date
    Nov 2004
    Posts
    2,432

    Default

    I ran a small text mud with about 80 regular players several years ago and for a long time there was a command which allowed you to give gold to each other. One of my very first attempts at coding was a small MUD and for the newer one I literally just copied and pasted the old code, which went like this:

    Player.Gold = Player.Gold - amount
    Target.Gold = Target.Gold + amount

    Without any checks for negatives.

    It tooks a few months before anyone discovered this, but when they did all hell broke lose... and thats what led to the demise of the game as I had to restore a backup from a few weeks ago. People were not happy.

  19. #19
    Administrator
    Join Date
    Aug 2004
    Location
    California
    Posts
    1,769

    Default

    I like that story about the gold because it is one of the few bugs mentioned here that was ever experienced by the end users.

    Everyone has written hundreds of bugs that had to be fixed before the product launched. How about more bugs that you didn't catch and actually shipped in the product.

    Big Kahuna Reef has a really stupid one. If you install 200 player created add-on packs the game will crash when it tries to display the list of installed add-ons. We didn't find this until weeks after the game shipped when the player community created enough add-on packs to make this happed (thousands of levels in packaged into hundreds of add-on packs)

    The stupid part is WHY 200 items caused the game to crash. Most would assume it had something to do with a fixed sized array that didn’t adjust to more than 200 items. The array of level was handled in memory dynamically just fine. But the list box that displayed them on screen had a stupid bug in the arithmetic that calculated the size of the “thumb” on the scroll bar. The more items there are in the list the smaller the thumb gets. When 200 items were in the list the size of the thumb was rounded down to 0 pixels and the drawing code crashed when trying to draw 0 pixels.
    James C. Smith - Producer/Lead Programmer - Costume Chaos, Build in Time, Ricochet Infinity, Big Kahuna Reef, CasualCharts.com

  20. #20
    Senior Member
    Join Date
    Jul 2004
    Posts
    543

    Default

    Released bugs - I added a kiddie mode that reduced all alien attacks to 1 hit point. Unfortunately, when making the changes to the load from save code, I forgot to special case the player entity, so the players attacks after loading a saved game also did only one point of damage, the result of which was nearly invincible enemies fighting a nearly invincible player. Hard to make any progress that way.

  21. #21
    Senior Member
    Join Date
    Oct 2004
    Location
    Belfast
    Posts
    342

    Default

    One of the first games I ever wrote, a football management game for the Amstrad CPC, had a rather silly bug. For some reason, I was unable to get the CPC to set the random seed to the clock time using RANDOMIZE TIME, which the manual told me to do (yes, I wrote it in BASIC).

    With no other way to do it and certainly no memory to write a routine of my own, I decided that whatever sequence of events the player does will eventually produce a random sequence thanks to a series of chain reactions. So it's not really a problem.

    The major side effect of this was that if you plunged into the game without dabbling in the transfer market or the squads, you always lost the first game of your career 5-3 to Exeter City. You even knew when the goals would go in and who would score them.

    Of course, if you swapped the players around you'd get a different result, but through repeated play you could find a winning "tactic" that was guaranteed to produce a specific result. And if you extrapolated that, you could theoretically go the entire season winning every game if you found the right order to do things.

    The other bug was that the game didn't save properly, which I noticed ten years later. This baffles me. Ten years?

  22. #22
    Senior Member
    Join Date
    Oct 2004
    Location
    Belfast
    Posts
    342

    Default

    Quote Originally Posted by Mark Fassett
    Released bugs - I added a kiddie mode that reduced all alien attacks to 1 hit point. Unfortunately, when making the changes to the load from save code, I forgot to special case the player entity, so the players attacks after loading a saved game also did only one point of damage, the result of which was nearly invincible enemies fighting a nearly invincible player. Hard to make any progress that way.
    I am utterly convinced that's how Deus Ex: Invisible War works on the Xbox. I played through the game on Medium and was frustrated that I couldn't do headshots no matter how accurate my aim.

    I upped the skill level to Hard, and lo and behold I scored a headshot. Instant kill. Switched back, couldn't do it.

    Lousiest difficulty system ever.

  23. #23
    Senior Member
    Join Date
    Sep 2004
    Location
    London, UK
    Posts
    230

    Default

    A game I wrote in PASCAL at college that had *really advanced AI* according to my lecturer, but infact it was a bug as the computer controlled character was supposed to be unbeatable

  24. #24
    Senior Member
    Join Date
    Jul 2004
    Location
    San Mateo, CA
    Posts
    359

    Default

    My worst bug was not in a game, but 1000's probably noticed it. Helped write the original software that inserts the virtual 1st down line for US football TV broadcasts. After a solid test game, we went to air on ESPN. As the game progressed, the line started to jitter more and more. Turns out I had used a float for time code and it slowly ran out of precision. Never noticed it in tests because we not synced to time of day.

  25. #25
    Senior Member
    Join Date
    Jul 2004
    Location
    Netherlands
    Posts
    243

    Default

    I once had a bug that would let people using a shareware version play levels from the registered version. While the screen was fading away after selecting a (shareware) level, you could still quickly move the cursor to another level and then it wasn't blocked anymore.
    Mike Wiering
    Wiering Software - http://www.wieringsoftware.nl/

  26. #26
    Senior Member
    Join Date
    May 2005
    Location
    San Diego, CA
    Posts
    653

    Default

    In Venture Africa, flamingoes are so easy to breed that people were making so many of them the game would crash. So in the first patch I released for the game, I limited the number of flamingoes by causing them to stop breeding after there were a certain number in the level.

    Unfortunately, Level 3 required that you create more flamingoes than this limit. Level 3 (part of the trial experience) was thus unbeatable.

    That old version is still drifting around out there and I still occassionally see sales from it. Amazing what people will buy!

  27. #27
    Senior Member
    Join Date
    Jul 2004
    Posts
    1,216

    Default

    Quote Originally Posted by Fry Crayola
    I am utterly convinced that's how Deus Ex: Invisible War works on the Xbox. I played through the game on Medium and was frustrated that I couldn't do headshots no matter how accurate my aim.

    I upped the skill level to Hard, and lo and behold I scored a headshot. Instant kill. Switched back, couldn't do it.

    Lousiest difficulty system ever.
    Ah yea... most likely "magnetic" aiming is to blame, which makes you hitting the torso if you aim at the head (or if you dont really aim directly at the npc in question). Its a commonly used trick in console first person shooters for making the slightly awkward and imprecise controls a bit more accessible. In Goldeneye (n64) you could turn it off in the options tho.

+ Reply to Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts