Why are game developers STILL unable to prevent ugly glitches? (Blood Money)

I had a thread a while ago about how much I disliked the Hitman: Blood Money demo, but believe it or not, I actually bought Blood Money the other day because it got excellent reviews and I looked through the full game’s strategy guide and looked good. Well, I do enjoy it very much, actually, the graphics are amazing, really classy environments, gameplay is great - it’s a good game.

Except for the fucking annoying graphics glitches.

I’ll never understand how game developers, despite how far games have come, are still unable to catch these annoying shitty little things in games that break the fourth wall and remind you that you’re in a video game just when you were almost so drawn into it that it felt real. For instance:

I’m on a riverboat in a gorgeous, wood-paneled lounge. There is a pianist playing a grand piano. I walk up to him and watch his fingers, and the fingers are actually moving to the melody he is playing on the piano. Both hands, each individual finger, going over the keys as if he were a real pianist. I am absolutely stunned.

Then two seconds later I look over and there is a man with his knee stuck through another man’s ass.

A few feet over, two tuxedoed men merge into each other, the models clipping through. Three women in armchairs have the exact same faces, resembling identical triplets.

Character models becoming invisible, then turning to black shadows, then regaining their form. People teleporting around a room. The barrel of an enemy’s rifle protruding through the door. Constant characters clipping through each other. It’s just so unsightly and seriously detracts from the many good points of the game. Eidos was able to make the environments and graphics SO beautiful, striking, and realistic, and yet they let these minor problems slip by to such an extend that they are distracting and sometimes maddening. WHY??!?!?!

Those errors were inserted intentionally…to draw attention away from that fact that, due to a programming error in the game’s most basic 3D code, the game engine sometimes renders sections of levels in perfect non-euclidian geometry. This was discovered during beta testing after a player suddenly tore his own eyes from their sockets, screaming “The colors! The sounds are changing colors! I can hear it singing—SINGING IN MY EYES!”

Alas, taking the time to fix this fundamental bug would have pushed the launch date too far back, so they threw in some visual decoys to draw your attention away. Just try not to pay attention to it.

“Now you know!”

Working as a game tester very briefly, this is what I learned- When companies know a game will sell X amount of copies within the first week of release… Quality Assurance and testing is on the back most burner. They don’t care about, honestly, pretty minor graphics glitches.

Misread as: Why are game developers STILL unable to prevent ugly bitches?

Speaking as a game developer, some of those bugs you mentioned are just laziness and must-ship-the-game-syndrome. Some, however, are genuinely very difficult to solve. Gun barrels sticking through doors, for instance, are not going away anytime soon.

The issue is that the game needs to run physics and collision math on lots and lots and lots of things in the world. Thus, the only practical way to do that is to simplify things. Generally, people walking around in the world will be treated, for purposes of physics and collision, as upright cylinders. So, if you’re trying to approximate a person as a cylinder, you can make a narrowish cylinder, so the person’s body is properly enclosed, but things like gun barrels and feathers on caps (or what have you) stick out of the cylinder. Or you can make a wide cylinder, so gun barrels won’t stick out, but then the person won’t be able to fit through doorways, etc. Neither way is perfect, but in general, I’d rather see graphical glitches than things which impact my ability to run around the world and interact.
Some games will put in extra-special code, particularly for the main player character, to minimize such problems. I recently saw a really nice demo where when the main character was standing near a railing, his hand would automatically rest directly on the railing. But not putting in such code isn’t necessarily developer laziness, but a necessary tradeoff. The computer can only do so much math each frame. Would you rather that extra math be spent checking for gun-barrel-door collision, or allowing other things which actually have a more concrete and direct impact on gameplay?

I’m also a game developer. Imagine that every time a movie studio wanted to make a new movie they started by redesigning the camera. That’s what game development is like.

Because the technology changes so rapidly almost every game has at least some new technological hurdle that it’s trying to leap. Even if a particular feature is ripping off something that someone else did two years ago there’s a pretty decent chance that whoever is implementing that feature has never done it before and is learning as he goes.

Breaking the trend, I’m not a game developer, but I have worked on some simple games, and sophisticated collision detection is hard. I don’t mean the coding of it (although that’s a bitch, too. And all I ever had to deal with were rectangular blocks and spheres), I mean that, given two arbitrarily defined polyhedrons, determining if one intersects with the other is not a trivial mathematical operation to make. And when you have to do that for every single object in the game on every single frame rendered, it can get computationally expensive. Modeling things as cylinders, on the other hand, is very easy, and works quite well most of the time.

It’s pretty common to have graphics settings in games that allow you to adjust the resolution, the level of detail and lighting effects, anti-aliasing, and other things that balance performance with appearance. Be honest: if there were a checkbox in that window called “Really Accurate Collision Detection”, would you enable it at the expense of higher resolution or higher detail? Would you go out and spend more money on a graphics card so that your games could have all the settings turned up? I certainly wouldn’t, and I doubt most other gamers would, either.

Plus, you answered your question with your first sentence. :wink:

I get what you guys are saying but I think most of the problems in Blood Money are of the ship-the-game variety. Far Cry doesn’t have these problems anywhere near as badly.

Another factor to consider… good game design and good level layout will mean that, even if those problems still exist in the algorithms, you just never notice them. If a game has problems with guns sticking through doors, then layout the levels such that there never happen to be doors that you can easily see from the bad angle. Presto, problem solved.

As a games developer, what’s your professional opinion of this whole Physx PPU malarky?

It seems that Ageia have put out some nice demos and videos for their PhysX physics processor, but the only game to implement it so far (Ghost Recon 3) has definitely been lacklustre and left a lot of people (myself included) underwhelmed.

I know the two big titles are UT2007 and Cellfactor, but they’re not due before Christmas.

Are PPUs going to do for physics what GPUs did for 3D graphics?

It’s not particularly my area of expertise, but I’m skeptical. Graphics can be optimized because lots and lots of games use the same libraries (directx and openGL) to do their graphics, which do the same kind of underlying things. Physics code is a LOT more ad hoc between different games. Even if there was a piece of hardware that would make physics 90% faster, you run into a chicken egg problem where not enough people have it to justify porting games to it, and not enough games are ported to it to justify people having it. And of course, that all depends on the thing doing what it says it does in the first place.
10 years down the line? maybe. Now? I highly doubt it.

I’m not a game developer… But I am a physicist. And I can tell you that computer gaming has been a huge boon to the professional physics community, because the sorts of calculations graphics cards are designed for are also very useful for many real-world physics problems. So in effect, graphics coprocessors are physics coprocessors. I can’t imagine what a PPU would do, other than parallelized vector arithmetic, which the GPUs already do.

They’re trying to establish standard libraries that will be analogous to directx for the physics processors. Ideally, one format or another will be adopted into the major engine developers.

It was sort of like the early days of Glide - 3d acceleration (for the home market) was a very new technology and they were feeling their way and trying to settle a standard. Games had to figure out what to support, etc.

Hopefully the market will make up its mind soon, so we can start seeing a standardized physics library within a year or two.

Well, Aeiga have done a fairly clever thing by releasing an SDK for thier PhysX that works for both PPU enabled and non PPU enabled cards. So if a developer is looking for a new Physics engine to build thier game around, then their thinking is they can choose PhysX or they can choose something else and if they choose PhysX, they can list it as a selling point so as long as PhysX is not horrendously worse that other cards, they should try it.

IMHO, the biggest mistake they made was not putting a feature in GRAW that used the physics processor but without the highly detailed physics. People look at the graphs and see that PPU is slower and non PPU and wonder whats the point without actually reading the full article.

I’m not sure about what exactly the PPUs do, but I do know that City of Heroes/Villains are using it now, as in, the patch that incorporates Aeiga physics will be released next week. By all accounts, the test server has been coming back with glowing reviews.

Apparently, you will not actually NEED an PhysX card, but the number of physics calculated objects will be drastically reduced if you don’t.

It’s being used for things like ejected shell casings, which can then be pushed around on the floor… neat stuff, but honestly? I could do without the candy… (of course, that’s me saying it without seeing it, so I may change my mind in the next week or so).

I’m not sure how this could work, in an online game… Are the objects present on the server or not? If they’re not, and only the player with the card sees them, they’re not really what one might call “objects”. If they are, then they would have to be equally real for all players on the server, regardless of whether they have a physics card.

I think they’re talking not about weapons and bricks and pickupable things, but about fragments and sparks and purely visual/noninteractive things. Otherwise it makes no sense, at least for an MMO.

So rendering some extra particles on the client side, maybe? That makes sense to me, but then again I’m no computer expert. I barely even know what I’m talking about.