View Single Post
Old 11-05-2005, 07:14 PM   #15
After a brisk nap
Elegantly copy+pasted
 
After a brisk nap's Avatar
 
Join Date: Jan 2005
Posts: 1,773
Default

Quote:
Originally Posted by NikolasFigaro
It is true that a computer game has a very complex structure, and for that reason it is almost impossible to avoid some mistakes. The thing is how do you minimize those mistakes. And the answer is: Through thorough and extent game testing. Why would you not test the game before its release? Because either you are too lazy to do so, or the publisher is putting pressure on you, so the game can be released to public. Right?
You talk as if testing by itself is going to fix bugs. It does not.
  • First you have to test the game in order to find the bugs (itself a complex process once you realize that you usually have to find repeatable ways to trigger the bug, otherwise there's no way to know whether it's fixed or not).
  • Then you have to find the part of the code that causes the bug. This is difficult! Often more difficult than writing the code in the first place.
  • Finally, you have to fix the bug, ideally without creating new bugs. In practice, it's impossible to know for sure that fixing one part of the program won't break another part, so the only thing for it is to test everything again.

If you wait till the end to start testing for bugs and fixing them, therefore, it's almost certainly going to be too late. You simply won't be able to fix most of the bugs without basically starting over on the programming. (Which isn't to say that some extra time spent in beta can't drastically improve the stability of a game, or any other application. However, it's the games that are of a fundamentally sound construction that have the most to gain.)

The way to avoid this kind of disaster, you have to test each bit thoroughly before you start putting them together (unit testing), and you have to have a clear idea of how each piece is supposed to fit. To achieve this, it's often very helpful to create a carefully designed framework that takes care of the basics and allows you to focus on the game itself. That's essentially what an "engine" (3D engine etc.) is. The problem, of course, is that you have to convince the project managers that you're making progress even though you have no bit of the game to show for it. This is what Ron Gilbert did when he created SCUMM for Maniac Mansion, and it allowed LucasArt to churn out adventure games with remarkably few bugs. Sierra, on the other hand, kept tinkering with and making ad-hoc changes to their poorly designed SCI engines, resulting in games that are notoriously buggy.

Quote:
SO, do you truly believe that a game like Law & Order Criminal Intent is a game that the whole world is waiting for and its gonna sell millions of copies, and the developers are trying to meet the deadline, trying not to disappoint the hordes of fans who have preordered the game? Don't think so...
Every extra month you spend making the game is a month you're paying rent on your office space and salaries to your employees. If you can't make the game on time and on budget, you'll have a harder time convincing a publisher to fund your next game.

Let me be clear: I think it's completely unacceptable to ship a game that is riddled with bugs. However, the reasons why it keeps happening are lot more complicated than simple laziness or impatience.
__________________
Please excuse me. I've got to see a man about a dog.
After a brisk nap is offline