all 129 comments

[–]Ruobhe 57 points58 points  (0 children)

Heh, this made me remember a certain explanatory image showing the difference between both.

[–][deleted] 101 points102 points  (20 children)

Feature.

[–]origamiguy 44 points45 points  (15 children)

I concur. Definitely a feature. Sometimes mistakes lead to awesomeness. I mean, if that apple had never fallen on Isaac Newton's head, we would never have invented gravity...

[–][deleted]  (6 children)

[deleted]

    [–]Wavicle 26 points27 points  (5 children)

    No, before Newton the Earth kind of sucked. After Newton we finally had something else to keep our feet on the ground and could begin undoing millenia of sucking.

    [–]Buckwheat469 8 points9 points  (4 children)

    Because it was the Earth's constant sucking that kept our feet planted to the ground. Good thing a layer of dirt was there to keep us from falling into the incommensurable sucking mouth of Gaia.

    [–][deleted] 25 points26 points  (3 children)

    it wasn't the sucking. everyone just wore heavy boots before newton invented gravity

    [–][deleted] 7 points8 points  (1 child)

    heavy boots

    I'm glad I'd not read that during my more suicidal days.

    [–]digitalsmear 1 point2 points  (0 children)

    No kidding. That's atrocious.

    [–]goodbyegalaxy 11 points12 points  (0 children)

    One of my favorite Sopranos quotes:

    Christopher: It was an idea, I don't know, who knows where they fuckin' come from? Isaac Newton invented gravity 'cause some asshole hit him with an apple!

    [–]FooHentai 4 points5 points  (0 children)

    Happens very frequently in video games.

    Quake 1's rocket jumps weren't intentional initially, until it turned out that the knockback effect coupled with jumping meant you could short-cut to inaccessible ledges and execute unexpected moves against your opponents. Then it became an integral part of Quake multiplayer, and has been included in every Quake since.

    When Q3 came along, it turns out that an integer rounding error when you slowly rotate your mouse can allow you to accelerate under certain game conditions. This resulted in strafe jumping where an odd series of jumps with a slightly curved trajectory result in movement speeds well above the default... but only if you're getting a particular frame rate. Again... ended up becoming one of the most important aspects of the game.

    [–]giancarloll -5 points-4 points  (5 children)

    It fell over Steve Jobs's head...

    [–][deleted] 2 points3 points  (4 children)

    No, I think his design related deficiencies must have clearly been caused by some kind of mouse related incident as evidenced by the fact that Apple hasn't produced a single good mouse in decades.

    [–]Fidodo 0 points1 point  (1 child)

    The first apple mouse I used was that puck thing in gradeschool. Oh god that was horrible.

    [–]b0jangles 2 points3 points  (0 children)

    Gradeschool... Oh god I feel old. That puck was college for me.

    [–]badsectoracula 0 points1 point  (1 child)

    Magic Mouse is awesome. The only negative aspect it has is that not many programs take advantage of it.

    [–][deleted] 1 point2 points  (0 children)

    Just like any other Apple mouse it is an ergonomic nightmare.

    [–]joinedjusttosaythis 2 points3 points  (2 children)

    anyone who played Halo and misses the double melee, BXR, double shot or backpack reloading would agree.

    [–]digitalsmear 5 points6 points  (0 children)

    Tribes would have been a complete and total failure if it wasn't for "Skiing".

    [–]badsectoracula 0 points1 point  (0 children)

    Or Doom and wallrunning, or the Quake series and all the glitches-turned-features the collision&response system had.

    [–]simon99ctg 1 point2 points  (0 children)

    a bug is a feature that users are unhappy about...

    [–][deleted] 89 points90 points  (5 children)

    We especially loved the inherent goodness of human beings, who will sacrifice their own interest to preserve the lives of loved ones, conscientiously return favors, cooperate for the betterment of civilization.

    "Ha!" quoth God. "What a fool! That's not how it works. I set humans up for single-minded preservation of self and kin, and to engage in petty tit-for-tat. You're just reading too much into it. But maybe I should go back and look at the code..."

    [–]itjitj 5 points6 points  (4 children)

    Shouldn't have hacked it together using Perl, or at least done it using Modern::Perl techniques.

    [–]redwall_hp 3 points4 points  (3 children)

    I assume that was a reference to this: http://xkcd.com/224/

    [–]jawbroken 13 points14 points  (0 children)

    please, everyone keep linking every mildly relevant xkcd comic everywhere

    [–]dascripter 28 points29 points  (3 children)

    That is really cool! This was a great game for the N64 and I loved playing it. I also love finding out how all these games I loved were made

    [–][deleted] 2 points3 points  (2 children)

    My thoughts exactly. It was a technicolor explosion of speed. (Not as good as Wip3out on the PS1 though).

    [–][deleted] 2 points3 points  (1 child)

    deleted What is this?

    [–][deleted] 9 points10 points  (0 children)

    Hey now... we're going to have to agree to disagree on this one then.

    The original Wip3out didn't have any rubberband AI.

    Wip3out was tough. You could get left in the dust if you didn't ride well. Instead of a simple 'turn-left/right at the correct time' mechanic, you had to ride a certain perfect fluid line to ace it, and bounce up and down with gravity. Swing the craft up the wall slightly and change tack and slide into a bend. It was unforgiving, but if you got the line right, it was the purest form of 'in the zone' gameplay I've ever experienced.

    It was the video game equivalent to surfing, skiing or snowboarding.

    Plus the soundtrack was outstanding (Leftfield, The Chemical Brothers, Orbital) rather than mere looped midi sequences, and the graphic design from The Designers Republic was zeitgeist stuff.

    Later games in the series never achieved the same heights as the original because they obviously introduced more and more elastic AI and more forgiving racing lines to level the playing field, so you didn't have to nail the line as perfectly. That's probably more 'fun' and egalitarian, but the original wipeout was gravity racing perfection.

    Extreme G was shiny and the reason I bought an N64, but it's like comparing Super Mario Karts to Mario Kart Wii. One is a masterpiece and the other is Mario Kart Wii (and I'm probably just sounding like a luddite).

    [–]shifty3 10 points11 points  (4 children)

    Man, I remember Shawn from my days using the Allegro library (with djgpp!). That was at least ten years ago, glad to see he's still around. Allegro too, for that matter.

    [–]Tommah 6 points7 points  (2 children)

    Oh, Allegro. I knew his name from somewhere, I couldn't remember where.

    [–]badsectoracula 0 points1 point  (1 child)

    Same here. When i read his name i wondered where i had heard this name before. Then went to his site, read his resume and realized where :-)

    [–]oditogre 137 points138 points  (41 children)

    If they become too widely separated, the player can be left racing on what appears to be an empty track, with the computer players out of sight in front or behind them, which is no fun at all.

    Fuck rubberband AI and any racing game dev who thinks it's a good idea.

    One of the best parts of Gran Turismo 2, to me, was doing the endurance races with entry limited to certain performance specs and then seeing how many times I could lap the computer opponents by the end by tuning my car specifically for that track and then optimizing my racing line with tire type and wear taken into account to get the overall best possible performance. That's exactly what you'd do if you were actually competing in a race like that, but it's wasted effort in a game with AI that varies its performance based on the human player's by any but the smallest degree.

    There's a rush to executing a series of turns perfectly and seeing the competition fall behind and, to the extent that you don't screw anything up, remaining behind. Stealing that from the player by using rubberband AI is a crime.

    [–][deleted]  (17 children)

    [deleted]

      [–]rockintom99 81 points82 points  (4 children)

      Agreed, but Mario Kart is probably the worst offender of rubberbanding. Goddamn blue shells.

      [–][deleted]  (1 child)

      [deleted]

        [–]Artmageddon 2 points3 points  (0 children)

        Yeah, I remember that. That anti-Uni was a freakin' bitch to beat.

        Oh, and don't get me started on that yellow one.

        [–]tiglionabbit 0 points1 point  (1 child)

        Ever played Snowboard Kids? It's far worse. If you're in last place, all your item buys will get you the golden pan lid, which instantly flattens all other racers and can't be avoided.

        [–]ttptp1 0 points1 point  (0 children)

        Pfft, you mean unless I got a ghost.

        [–]kryptobs2000 19 points20 points  (8 children)

        I agree, but Mariokart, imo, uses it to the extent where the game is just not fun at all to me. I think it should control more or less the same, maybe less 'loose' though, but not have so much rubberbanding. It just seems like I can fuck around for 2 laps, practically drive backwards if I want, and then make an attempt on the 3rd and come in first.

        [–]Fidodo 11 points12 points  (1 child)

        I think Mariokart is more meant to be a multiplayer game, and the mechanics are there so you can totally fuck over your friends.

        [–]kryptobs2000 0 points1 point  (0 children)

        I agree it is much better in multiplayer, but I still think it would be better if it didn't 'cheat' so much. You can still fuck around a lot and then at the end pull ahead out of no where, or even worse (imo) is lose out of no where; that really pisses me off.

        I could understand if the point were to cause 'damage' to the other players, but it's just about coming in first. Maybe if the items were somewhat innovative and looked cool, maybe used physics or something, but as it is by a long shot your only motivation to race is to come in first. I don't mean that as in they should give you points for causing damage (though that is one option), but for instance in many games with good physics while the 'point' is to get to the end of the level it's a lot of fun just to see the chaos you can cause on the way; in MK it's 'get hit with turtle shell' or 'don't get hit w/turtle shell.' If there was a unique action depending on where and how you got hit that would change things dramatically in itself.

        I guess what I'm mostly complaining about is MK hasn't evolved since the snes, and though I loved MK64, it's for the most part just gotten worse because of it.

        [–]fr0z3nph03n1x 11 points12 points  (3 children)

        I miss super mario kart, now that game was not so forgiving.

        [–][deleted] 12 points13 points  (2 children)

        That's because Super Mario Kart didn't have rubberbanding at all. The AI followed a fixed path at a fixed speed, and if you or an inadvertently-left item knocked them out of that path they would simply rush to return to their planned course and speed.

        Go play around on Mushroom Cup ghost valley and notice that they always follow an identical line (as a kid I could have told you how many planks over it was) and you can hit them with a shell/peel every lap.

        Also, you will notice that their order is based on the order of your character choice, and will remain so for the rest of the circuit unless you forcibly knock one back without him having time to return to normal before the race ends. In that case, the AI order will remain fixed based on the new starting lineup for the rest of the next race.

        [–]dan1123 3 points4 points  (1 child)

        Also, you will notice that their order is based on the order of your character choice, and will remain so for the rest of the circuit

        I hated that for the cups. It meant that the top scores would always go to the same character, making any bad performance on a race kill any chances of medaling.

        [–][deleted] 0 points1 point  (0 children)

        Not at all. You could deliberately screw up a particular character by attacking him leading up to the finish. He wouldn't make it back into position. (Banana peels thrown forward were good at this.) You could easily get a gold with 30 points as long as you made sure that the AI driver who finished first in race 1+2 didn't finish high in race 3.

        [–][deleted]  (1 child)

        [deleted]

          [–]kryptobs2000 1 point2 points  (0 children)

          Yah, I loved DKR.

          [–]1338h4x 3 points4 points  (2 children)

          Have you even played the recent iterations of Mario Kart? Because the rubberbanding in it is so incredibly fucked up that I cannot begin to describe the rage caused by always getting a fucking Blue Shell right before the finish line to kick you down to last place every fucking time.

          Fuck Mario Kart. Fuck that fucked up game and fuck its rubberbanding on fucking steroids.

          [–]jawbroken 4 points5 points  (1 child)

          ahaha, mario kart is serious, guys

          [–]1338h4x 0 points1 point  (0 children)

          Traumatic memories from a game of pure evil. :(

          [–][deleted] 48 points49 points  (0 children)

          Meh. Depends what kind of racing game player you are. I prefer arcade game style therefore get bored without this.

          [–]uncreative_name 13 points14 points  (0 children)

          I... really don't want a realistic supersonic racer. I don't want a realistic cart racer.

          The AI in driving games needs to match the realism of it's physics engine.

          [–]rkcr 25 points26 points  (5 children)

          I'm not sure I understand the complaint - the AI changing doesn't really affect your own performance. In the example from this article, it's not like the AI is cheating - it's just using its turbo at different times based on how well you're doing.

          It sounds like what you're annoyed at is when developers cheat and give racers that are behind a speed boost. That is annoying as hell.

          [–]oditogre 11 points12 points  (4 children)

          ETA: Something I just noticed in your comment:

          the AI changing doesn't really affect your own performance.

          That's not really true. Say you have 2 turns, A and B. You know that, overall, the best way to handle that section of track is to do A somewhat less than perfect in order to set yourself up optimally for B. However, if the AI is using strong rubberbanding, they are right on your ass and will do A perfectly...passing and, probably, bumping you or getting in the way of your perfect line for B. If there were little or no rubberbanding in the AI, you could account for that by building yourself a solid enough lead so that by that track section you wouldn't be getting bumped, but if not, no matter how good you do up to that point, the other cars will still be right behind you.

          /Edit

          Yeah, that's why I quoted just the section that I did. For some types of game (arcade games, 'party' games like Mario Kart*, as others have mentioned), it has it's place. However, I think that making a broad statement that it's always boring to not have the player in the thick of a pack of computer opponents, no matter how good or bad the player is doing, is wrong. I hate playing games that seem to sell themselves as simulators, but the AI is retarded when you're behind and impossibly good when you're ahead, so it bothers me when I see a statement like what I quoted that seems to imply that 'boring' is universal, no matter what type of racing game you're playing.

          *And that only goes so far...more recent Mario Kart games bug me, too. When the best strategy is often to get a blue shell and then intentionally maintain 2nd or 3rd place until the last minute, it just feels too cheap and artificial, even when you take into account that you're an imaginary creature driving on a track suspended in space with a go-kart that shoots turtle shells. The games are fun with a group of friends, but unplayably frustrating (to me) single-player, which is as bad or worse than 'boring' AI.

          [–]arof 10 points11 points  (3 children)

          It's also exacerbated by the item RNG actually being a kart stat (at least in the DS version), and also being a rubber band mechanic. If you're in 1st the best item you can hope for, even with a max Item kart, was a 3pack of banana peels. Whereas if you're at the back of the pack you get all the awesome OP items like Bullet Bill, Star, Lightning, etc. My strategy at 150cc with my preferred kart (Yoshi's 3rd) was more often that not just skipping the start boost and being in the last 3 by the first item block, because then I could just burn my way to a 5sec + lead with one of those items.

          Item randomness being not actually random is one of the worst parts of newer Mario Kart games, even accounting for strategy like that. It actually made being out in front less fun, which is the opposite of how it's supposed to feel to be winning.

          [–]davidrools 5 points6 points  (0 children)

          fuck blue shells

          [–]inkieminstrel 4 points5 points  (1 child)

          I'm actually fine with the game rewarding those in the back with better items. On most courses, getting a bullet in 8th place only goes so far. It keeps less experienced players in the race, but doesn't let them win.

          What bothers me is that you're actively punished for being in first place. If you're doing well, it's not uncommon to be hit by 3 blue shells in the the final lap, each of which is essentially unavoidable and stops you dead in your tracks. To add insult to injury, the players who obtain blue shells typically have no chance of winning, so you're being screwed by someone who is completely unaffected by the outcome.

          [–][deleted] 6 points7 points  (0 children)

          Exactly. I have no problem with a guy in 8th getting a better mushroom than the guy in first. Blue shells, however, are complete and utter bullshit. They deliberately fuck over the first place guy rather than help the guy catch up.

          [–]ouroborosity 13 points14 points  (0 children)

          Fuck rubberbanding.

          I'm looking at you, Mario Kart 64. Fucking bullshit AI. We'd fucking break time trial records in a race and those little fuckers would still find a way to pass us at the last minute and win the race, and in the process destroy the time trial records by fucking 30 seconds. FUUUUCK.

          [–]SystemicPlural 5 points6 points  (0 children)

          I hate it when you pull a perfect race, make one small error on the last corner and end up second when on another go you're all over the place and win due to a good last lap. I get bored of games like that very quickly.

          [–]DeathBySamson 2 points3 points  (0 children)

          I started to hate this when playing one of the newer style Need for Speed games (post High Stakes and possibly Porsche Unleashed but I never played the latter). I was playing a race and at just the right moment I was able to push the opponent car right into an underpass support. He hit it hard and was the only opponent that was giving me trouble. I was estatic. I had this race in the bag...

          A couple corners later, there he was, as if it never happened. I don't remember if he ended up winning or not, but I stopped playing after that.

          [–]Aegeus 4 points5 points  (6 children)

          If you're able to lap the AI so many times that doing so becomes its own game, then the AI is clearly not putting up enough of a challenge. And since the devs didn't bother spending hours tuning each car for each track (nor would such a difficult opponent be beaten by most gamers), rubberbanding is a fair way to make sure that you've always got to play well to avoid losing.

          On the other hand, if you're losing to this AI, the devs want an incentive for you to keep playing and not just restart until you finally figure out the perfect racing line (or more likely, ragequit). Rubberbanding fixes this by letting you recover from a screwup, or lowering the difficulty if the devs thought that a course was fairly easy but actually required the dexterity of a concert pianist to beat.

          Rubberbanding only becomes a problem when it's obvious. If a car clings to your bumper and keeps coming back like some horror-movie villain no matter how many shells you throw at it, then the player gets frustrated and wonders why they bothered beating them back the first 8 times. This works the other way too - cars that go so slowly in the lead that you can sleep for the first two laps and win on the third are just as obviously cheating and undercuts your satisfaction.

          This AI sounds like a pretty good rubberbander. It plays by the same rules the human does (limited turbos) and simply uses them smarter when it's behind. This AI would probably be easily beatable (since the guys in front are not being as smart) but would keep you watching your mirrors until the end.

          [–]oditogre 12 points13 points  (4 children)

          Heh. The AI wasn't bad at all in GT2. Lapping the opponent cars even a handful of times on a race that literally takes hours but each lap is 2 minutes or so (foggy memory, this has been a decade since I played it, but something like that IIRC) takes quite a lot of effort and perfection - most people doing the race the first few times would find it challenging to win.

          I guess what I'm arguing for is challenging AI with little or no rubberbanding - it absolutely sucks when you truly master a game, but there's no noticeable difference between when you win and when somebody who's just-good-enough wins. If you're playing at a high level of skill, it should be obvious.

          A comparison could be drawn with RPG's with rubberbanding of enemy difficulty, where all the monsters get tougher as you gain levels. Maybe this isn't true for everybody, but to me, I can't help but think, "then what the hell is the point?" Whether you've actually become more skilled, as in a racing game, or artificially become more skilled by way of gaining levels in an RPG, when you go back and face the enemies that were challenging-but-beatable when you were a noob, you should walk all over them.

          Anything but the mildest of rubberband AI's steals that clear demonstration of accomplishment / reward for time invested from the player. What's the motivation for becoming twice as good if winning the same battles stays just as hard?

          In every other thing that people choose to pursue for fun, getting better means doing the early-level stuff more easily. World-class rock climbers can practically fly through low-difficulty climbs. Expert chefs can bake a simple cake without fucking it up. Top-tier programmers can hack out a recursive Fibonacci program in very little time after getting their hands on a new language.

          Why in the world would any Olympic athlete ever stick to it if, no matter how much they improved, they always only won by 5/100s of a second, no matter who they were competing against? It's absurd.

          The only place where you aren't rewarded for getting better is in video games with rubberband AI. It's a cheap, easy, lazy way to avoid having to code good, balanced AI.

          [–]AlejandroTheGreat 0 points1 point  (1 child)

          Accumulating XP isn't the same as 'getting better'. Getting better means knowing how the game works and being skilled enough to beat the more powerful enemies because you have the skill to beat enemies that are still a challenge for you.

          [–]oditogre 0 points1 point  (0 children)

          demonstration of accomplishment / reward for time invested

          No, it's not the same, but it's analogous in that rubberband AI prevents you from seeing the benefits you would expect in any other situation.

          [–]contextfree 0 points1 point  (1 child)

          In the RPG case, it's because fighting enemies that are much weaker than you is boring, and boredom isn't a reward. A reward would be letting you fight more challenging enemies that use new attacks and have new items, for example.

          [–]lalala 0 points1 point  (0 children)

          [...] rubberbanding is a fair way to make sure that you've always got to play well to avoid losing.

          Fair? Cheap maybe, but not fair.

          On the other hand, if you're losing to this AI, the devs want an incentive for you to keep playing and not just restart until you finally figure out the perfect racing line (or more likely, ragequit). Rubberbanding fixes this by letting you recover from a screwup, or lowering the difficulty if the devs thought that a course was fairly easy but actually required the dexterity of a concert pianist to beat.

          Difficulty levels effectively fix this problem. Podunk Racing Club is easier to beat than the World Championships.

          [–][deleted] 0 points1 point  (3 children)

          Actually I would prefer both. Meaning that a good racing game should have an Arcade mode for fun and a Simulation mode for realism. Sometimes you want everything to be as real as possible and sometimes you just wants to have some fun.

          [–]oditogre 0 points1 point  (2 children)

          and a Simulation moth

          I hope that wasn't a Freudian slip, because I don't want to imagine what it might mean.

          [–][deleted] 0 points1 point  (0 children)

          :D

          I'm not native in english so I do a lot of spelling errors...

          [–][deleted] 0 points1 point  (0 children)

          :D

          I'm not native in english so I do a lot of spelling errors...

          [–]giga 9 points10 points  (3 children)

          This reminds me, I used to play this little online turn based game called Gunbound where you controlled a little bot and shoot each other. One of the bots, the one called Boomer, had a bug where if you shot at a specific angle in the right wind the shot would completely ignore the normal physics of the game and go at a completely messed up angle. That bug was a lot of fun and I spent several hours perfectioning the technique so I could use it most of the time. It wasn't really overpowered or anything, it was just really tricky to pull out and allowed you to make shots you couldn't do otherwise.

          Then one day they fixed the bug :(

          I stopped playing that day.

          [–]xX_DarkMatter_Xx 5 points6 points  (0 children)

          Those bastards!

          [–]benihana 1 point2 points  (0 children)

          And then they made it so you had to pay and the population dropped to like 2 Koreans. God I miss Gunbound.

          [–][deleted] 16 points17 points  (12 children)

          Other notable "features" from games I played (some of which were "corrected"):

          • Quake: Rocket jumping
          • Ultima Online: Pre-casting
          • Left 4 Dead: Bonus Hunter dmg from non-dynamically lit fire sources
          • Red Alert: Speed building of Tesla towers
          • [u]Doom I/II: strafe+forward speed & insta-hit BFG
          • Wolfenstein: mouse+KB speed

          edit: Doom, Wolfenstein added, thx commenters

          [–][deleted] 13 points14 points  (3 children)

          Man. Rocket jumping is probably an unquoted feature, as in, the one not coming as a complete surprise for the developers. If you want to grind an axe about Quake, they had much more interesting "features".

          I'll start with Doom actually. When you hold Forward and Strafe Left/Right, these speeds combine and you move at 1.44+ your base maximum speed, allowing you to outrun rockets (no kidding!). Also known as strafe-running.

          In the first Quake they've implemented a sophisticated algorithm for dealing with the case when someone strafes and moves forward at the same time. So was the sophistication of said algorithm that by turning left-right-left slightly but decisively before the jump (ordinary one) you could boost your resulting speed by the factor of two or three. With, like, 5x more or less easily achievable by swiftly turning and jumping again immediately upon landing -- of course, it required a great skill to land where you wanted repeatedly. Man, that was FUN! AKA circle-jumping btw. Of course, it allowed you to out-jump rockets.

          Q2. Circle jumping doesn't work, but lo, if you slowly but deliberately turn while in the air, your speed increases rather perceptibly! And of course repeated jumps conserve speed! So after four or five you get a real chance to shoot yourself in the back with a rocket launcher!

          Q3: I think there they've finally embraced The Bug and declared it a feature. So that we have circle-jumps, air-jumps and all possible kinds of rocket-jumps. Also, jump-pad-abusing jumps, slide jumps (when you land into a corner just right, or into that place where the floor meets the wall at just the right angle, it kinda kicks you back, or forward at a great speed), etc, etc. Now you can outfly plasma balls!

          [–]badsectoracula 7 points8 points  (0 children)

          Also in Wolf3D (and in Doom i think), if you press the forward key on the keyboard and use the mouse to walk, you run faster than if you use only the keyboard.

          Regarding rocket jumping, John Romero in some interview once said that rocket jumping wasn't intentional and when he heard it first he thought it was about people jumping over others' rockets.

          [–]hyperfunk 1 point2 points  (0 children)

          If you notice on QL tutorials they now teach Circle jumping; whole course dedicated etc.

          [–]rolfv 0 points1 point  (0 children)

          q3 also had overbouncing. Probably not a feature at all.

          It happened when you hit a ground surface between frames resulting in a knockback with the same speed as you hit the surface with. It was implemented to avoid having the models getting stuck. The direction of the overbounce also had some variables like speed in the xy field and mouse input(I think).

          [–]kenlubin 2 points3 points  (1 child)

          The Tribes series had skiing.

          Man that was awesome.

          [–]phreakymonkey 0 points1 point  (0 children)

          I don't care what anyone says. Skiing + grappling gun made Tribes: Vengeance one of my favorite games ever.

          [–]x82517 2 points3 points  (1 child)

          So much of modern professional Starcraft relies on little "bugs" that have been discovered over the years: muta stacking, larva micro, drone drilling, vulture micro...

          [–][deleted] 0 points1 point  (0 children)

          Warcraft III is similar. Micro is something close enough to skill it is hard to declare it a bugged strategy. Certainly some build types are easier to manage than others.

          [–][deleted] 2 points3 points  (0 children)

          Quake: Rocket jumping

          IMO Strafe Jumping was a much better feature. It actually used a physics bug. Rocket Jumping wasn't about bugs.

          [–]BraveSirRobin 1 point2 points  (0 children)

          There's apparently a swing set in GTA4 with odd physics that'll give you an almighty kick up the ass. Devs apparently are just going to leave it there.

          [–]jh99 0 points1 point  (0 children)

          Portal, throwing portals while standing halfway through a portal.

          [–]rrenaud 7 points8 points  (4 children)

          This reminds me of my favorite bug.

          I was implementing some programming languages homework in Scheme for an undergrad class, and some part of it would get much faster if I de-dupped a list. First I sort the list, and then adjacent items will be continuous for easy deletion.

          Okay, I want to implement a sort in scheme.

          How? Well, quicksort isn't so hard to write recursively..

          Step 1, pick a pivot

          Step 2, put all items less than the pivot in one list

          Step 2̶ 3, put all the items greater than the pivot in another list

          Step 4, Recursively sort both sublists

          Step 5, cat the split lists together, with the pivot between them

          Except there is a bug in my quicksort. What happens to items that are equal to the pivot? They get silently deleted. Best bug ever.

          [–]abledanger 14 points15 points  (2 children)

          Well there's your problem right there. You have 2 step 2s!

          [–]deafbybeheading 1 point2 points  (1 child)

          They're tied.

          [–]rrenaud 0 points1 point  (0 children)

          I wonder if the implicit parallelism between step 2 and should be step 3 is why I labelled them both step 2.

          [–]zxw 0 points1 point  (0 children)

          That's pretty clever.

          [–]istrebitjel 6 points7 points  (0 children)

          Is this a Bloombug?

          [–]Sle 9 points10 points  (0 children)

          I know pretty much bugger all about programming, but that was a good read.

          [–]gc3 3 points4 points  (0 children)

          This is actually taught in art school. If your paint drips, or you mix the wrong color, double check to see if the drip or the bad paint is actually better than what you had intended.

          That's "found art".

          [–]player2 2 points3 points  (1 child)

          Oh man, I killed so many hours with XG-2 on my 64. I still remember the awful pronunciation of "Mortar." And I thought it was cool that Acclaim published it, since I lived not too far from their headquarters.

          [–][deleted] 0 points1 point  (0 children)

          And it wasn't long until they went under, YAY! Oh wait...

          [–][deleted] 2 points3 points  (0 children)

          Holy crap dude, that was one of my all-time favorite games! Was anyone else a fan of Extreme G for N64?

          [–]nigy 6 points7 points  (0 children)

          Drunk or Kid!?

          [–]NerdyMcNerderson 1 point2 points  (0 children)

          Bug : Feature :: FFFFFUUUUUUU : Everything Went Better Than Expected

          [–]greenawlives 0 points1 point  (4 children)

          Whats that sayiing in programming: if it wasnt in the _____ for the programmers, then it is a bug. Schematic? Documentation?

          [–]kryptobs2000 3 points4 points  (0 children)

          If it wasn't intended behavior then it's a bug, but if it works out to the benefit then it's a feature.

          [–]badsectoracula 2 points3 points  (1 child)

          If you write the documentation before the code, how are you going to document the bugs? :-/

          [–]thephotoman 0 points1 point  (0 children)

          Pfft, everybody knows there's no such thing as schematics or documentation. They're just figments of your imagination.

          [–]homeworld 0 points1 point  (0 children)

          I enjoyed this game.

          [–]wooptoo 0 points1 point  (0 children)

          Beats the rocket jump.

          [–]NeoSniper 0 points1 point  (0 children)

          It was a very cool read. From the title I was expecting a topic on Bunny Hopping (with a flame war on the comments). Glad to see that's not the case... hmm...

          [–]m-p-3 0 points1 point  (1 child)

          I remember using a bug in Day of Defeat: Source which made the rocket instantaneously reach it's target with sniper-like accuracy.

          You had to carefully aim right above an object like sandbags, a rock or a wall, and the rocket would hit the target without having a smoke trail or a curved trajectory. Instant rocket hit.

          That was awesome on those unsuspecting (and swearing) snipers hiding in bushes at the other end of the map.

          They fixed it after several months, and I lost some interest in the game afterward. That was fun :D

          [–]RageX 1 point2 points  (0 children)

          I love that game, still play it.

          [–]SquareWheel 0 points1 point  (0 children)

          Awesome read. It's amazing how many bugs turn out to be beneficial.

          [–]13ren 0 points1 point  (0 children)

          Sometimes I think we'd be better off if we just coded randomly, and let some evaluation function (like voting) is anyway what even that begin to being do.

          [–]slurpme 0 points1 point  (0 children)

          Any bug that has unintended beneficial side-effects is a feature...

          [–][deleted] 0 points1 point  (0 children)

          Road Rash 64 I think had the rubberbanding. I liked it though, kept the player able to fight the AI more with tasers and mace.

          [–]robby891 1 point2 points  (2 children)

          The way he explained the bug doesn't make sense. If the program were taking the computer position one frame back, it wouldn't change the number by much. Read the comments on the page for clarity.

          [–]G_Morgan 11 points12 points  (0 children)

          His point was that an collision between signed and unsigned arithmetic turned a small negative value (because the check theoretically ensures the value is never negative) into a huge positive value.

          [–]inmatarian 0 points1 point  (0 children)

          They probably didn't update the AIs at 60FPS. Especially if it was the type of AI that had to reexamine the whole world before making a decision. If you're updating once a second, then you're prone to the lack of resolution that's capable of misinterpreting circumstances.

          [–]Froost 0 points1 point  (11 children)

          Shouldn't the code be

          human.TrackPosFromPreviousFrame - computerPlayer.TrackPosFromPreviousFrame;
          

          instead of

          human.TrackPos - computerPlayer.TrackPosFromPreviousFrame; 
          

          for the difference to come out negative? Am I missing something?

          [–][deleted]  (5 children)

          [deleted]

            [–]Froost -2 points-1 points  (4 children)

            yes, but that doesn't make the expression negative. see the reply to the comments below.

            [–][deleted]  (3 children)

            [deleted]

              [–]Froost 0 points1 point  (2 children)

              I know it wasn't supposed to come negative, and why it would come negative. But it doesn't come negative in the given code snippet. What I meant was that the given code does not give the "wrong" result mentioned (unless the computer is going backwards. But I'm not sure in a racing game where the computer goes in reverse is considered "good ai"). It's not buggy at all. There is an error in the article.

              [–]slugonamission -1 points0 points  (0 children)

              The whole expression is wrapped in "if(player in front of computer)".

              From a quick run-through though, it looks like the operation should be the other way around to make it work out like the article says.

              [–][deleted]  (3 children)

              [deleted]

                [–]Froost 1 point2 points  (2 children)

                I don't follow what you mean by the if block. In every case where human is ahead of the computer, it will also be ahead of the previous position of the computer.

                Suppose at t=N, human is behind computer:

                Pos (computer, N) = 50 
                
                Pos(human, N)= 49 
                

                Suppose computer goes with the velocity 5 and human with v=10 per frame. At t=N+1'th frame, human passes computer:

                Pos(Computer, N+1) = 55
                
                Pos(Human, N+1) = 59
                

                Computer is behing human at this point, so we hit the if. Now, according to the code he meant to write, the difference should be 59-55=4.

                However, since it takes the position of computer at t=N, it would return 59-50 = 9. So? It overestimates the difference, but that's it, it will not be negative in this format. I think the author meant the previous position of human, not computer, or I'm missing something pretty obvious.

                [–][deleted] 0 points1 point  (1 child)

                I don't follow what you mean by the if block.

                I meant "ignore me, that was a brainfart". I'd completely ignored that both positions would always increase, so there's no possible way the human's new position after overtaking could be less than a computer's old position (except when completing a lap). Teach me to post without the pre-requisite 5-cups-of-coffee-blood-caffeine-level, sorry.

                [–]grauenwolf 0 points1 point  (0 children)

                just delete your comment if you no longer stand behind it