When Bethesda parent company ZeniMax acquired id Software
two years ago, it freed John Carmack to go back to what he loves best: closing himself off in his office and engulfing himself in code.
"I don't even have to pretend to be an executive anymore," the legendary programmer told Gamasutra
. "I don't have to go to board meetings. I don't have to do anything! I can just sit in my office and work."
As Carmack explains it, the very core of his being is defined as being an engineer.
"I take resources and a goal, and I try and put them to the best use to get us there. That's what I do. I don't want to be doing anything else."
For id's upcoming Rage
, Carmack oversees a large team of between 15 and 18 programmers. As part of this, he's been paying a lot of attention to static code analysis.
"One of the humbling things that you find is that, no matter how good of a programmer you are, you write code, and you make stupid mistakes," he says. "And I am getting to be a huge proponent of really, really rigorous code analysis, because I have been going through pioneering these things, just squeegeeing through our code base, and every single programmer -- from our best to our worst -- they all make stupid mistakes, and they are unavoidable. So, we need to have more automated checks on these things."
One tool his team is using frequently is the professional edition of Microsoft's Visual Studio, a tool that is expensive for PC developers but, interestingly enough, is free for Xbox 360 developers.
"So, Microsoft has got some pretty good static analysis tools, and normally they make you buy, like an $8,000 professional edition of Visual Studio, but they give it for free to all Xbox developers -- which I think says an interesting thing about this stuff. Where Microsoft figures that, well, nobody blames them for crappy software on Windows, but they do blame Microsoft a bit for crappy software on 360, so it's in their best interest to put more static analysis tools available there," he says.
"I swear, any 360 developer that's not using that is making a mistake. It will find problems in your code base. But after we got through all of that, we made it so it's warnings as errors, nobody can check in anything that doesn't pass that. We've been going on adding additional tools like PVS Studio and PC-Lint."
More insight and anecdotes are available in today's Gamasutra cover story