Carmack: Lord of the Games
seer writes: "This article on Red Herring is a nice look at the interworkings of id software, most specifically their famous employee John Carmack. It delves deeply into the fact that id has stayed a very small company and dabbles with other topics such as Carmack's tendency to stay away from Microsoft 'standards' and the whole DooM ]I[ debacle. An interesting read."
There was a point in id software's evolution where John Carmack almost adopted Java as the "scripting language" for Quake 3. This got abandoned REAL quick when it wasn't fast enough.
Java is all about interoperability, then ease of design, then speed.
Id software's game engines are all about speed, then interoperability, then ease of use. All the same, they STILL tend to be pretty easy to use, since they aren't motivated by business decisions as much as they are by making a really, really cool game engine [while this has positive business ramifications, obviously, that's not why they do it].
Quake 3 is a SUPERB game engine on all platforms. I can write my own game as a Quake 3 mod, and without any recompiling, have it instantly work, at high framerate and with no bugs or glitches, on three different platforms. Show me how Java can do that.
Id software's game engines ALREADY surpass Java. It's not going to get worse from here; it's going to get better.
-Hentai [in vita non pacem est]
Shrek was always the same
I think that you're confusing Shrek-the-movie with Shrek-the-poster.
Thank you, have a nice day.
--
Damn the Emperor!
This is really an unfair comparison -- you're comparing oranges and apple pie.
From a compatibility perspective, Java is all about cross-platform-binary-compatibility. To do that, it essentially needs to emulate a consistent set of machine-interfaces -- that's where the Virtual Machine comes in. Beyond that, Java is also supposed to be a "next generation" "idiot-proof" language, and to that end it sacrificed speed for safety (of code).
Carmack's code is about source compatibility. So far as I know, the primary language for ID Software's 1st-person shooters is C/C++. That language, to the bane of novice programmers everywhere, has a tendency to make absolutely no assumptions for you, and as a result well-written code can be highly efficent [gaining an immediate speed advantage over comparably well-written Java code]. Of course, it does mandate some level of system-speficic code somewhere in there, but a good programmer (like, for example, Carkack) will encapsulate it behind an #IFDEF or two.
The only thing that really stops people from writing cross-platform code is system-specific libraries (Like DirectX). Once your code is built around something that tends to be as fundamental as DirectX, a transplant to another library for a different platform is no easy task.
Carmack's "common code," is therefore merely smart design. As the article says, he shies away from the system-specific libraries, so porting becomes a much easier task.
"Evil company X is threatening to restrict our rights! Let's all get together to stop--OOOH! SHINEY!!!" -- AC
Having seen Shrek, I know there is more onscreen at any given moment than a single character.
Those apples are nowhere near the size of those oranges.
Take a look at the FTP site: Wolfenstein 3D, Doom, Quake, and Quake 2 are all available. You still have to have the map files and other game data from a "real" copy of the game in order to play it, but all of Carmack and Co's magic is up there for study.
In short, they have quite a history of "giving back to the community." Even for games (such as Q3) where the full source isn't released, id always releases SDK's (for lack of a better term) to allow anyone that wants to the chance to create add-ons, extensions, and "total conversions" -- new games based on the existing code.
Very, very, cool.
...if I can find multiple things they got wrong on things I know about, then I seriously doubt they're getting the stuff right that I don't know about.
Mr. Carmack, cofounder and lead programmer at Id Software, is sticking to his own graphics technology. He is an absolute techno-purist who seeks to produce a common code that can run on Windows, Linux, and Macintosh operating systems--something he can't do with Microsoft's technology.
It's not his own graphics technology, it's OpenGL, which is used by many programmers around the globe. And he doesn't do it because he wants to have portable code. That's a part of it, sure, but he uses OpenGL mainly because it's easier to code, which means less development time and less debugging time. Also, it allows for greater flexibility. Not to mention, with Direct3D, can we say, "namespace pollution"? I thought so.
And by being such a purist, he delights hard-core gamers and graphics experts.
Oh yes, I get every id game simply because he "sticks to his own graphics technology". Did the author actually consider that he delights hard-core gamers simply because he creates realistic games that have fun gameplay and stunning visuals?
The new Doom likely will require a no less powerful chip than the soon-to-be-released Nvidia GeForce3.
Newly released about a year ago...
He told a faithful crowd that the new Doom will have images comprised of 250,000 polygons, compared with only 10,000 or so in Quake III. That's not far away from the 1.5 million- polygon characters in the animated film Shrek, which set a new standard for realism for computer-animated cartoon characters.
Notice he said "images comprised of 250,000 polygons", and "That's not far from the 1.5 million- polygon characters in...Shrek". This isn't like comparing apples to oranges, it's comparing apples to Mack trucks.
No comment.
"It legitimized the shareware movement, starting in 1993 with progressive releases of the Doom franchise, which generated more than $100 million in revenue (even though roughly 15 million copies of the original were downloaded for free). "
Now if only the RIAA and other places would read that and understand that sometimes when done properly that such things do work in a internet world.
-THIS SPACE FOR RENT!
A few corrections to the article:
"My own graphics technology"
is OpenGL.
"Mr. Carmack also plays computer games in the office with his coworkers"
I played Q3 quite a bit, but not much since then. The team focus of TeamArena and Wolfenstein just isn't my favorite type of game.
"Polygon counts"
The Doom engine is not an ultra-high poly count engine, because it is built around dynamic lighting and shadowing, but it is still a large step up from our previous games. Typical scenes will have around 150,000 polygons, versus 10,000 for Q3. There will certainly be other games with higher raw polygon counts, but that is really focusing on the trees, not the forest (image quality). The large numbers that have occasionally been tossed around are the polygon counts for the high detail characters that are used in the generation of normal maps for the real time rendering. Some characters are over 500,000 polygons in their original form.
"It looks like the type of game that is so thrilling to play that gamers will do so over and over again, even though it lacks a narrative plot."
Unlike everything we have done before, the new Doom actually DOES have a real plot, and I think it is going to be presented well. I don't really expect most people to believe us at this point, but wait and see...
"The new Doom likely will require a no less powerful chip than the soon-to-be-released Nvidia GeForce3"
It is designed for full impact on a GeForce-3, but it still runs on a GeForce-1 or Radeon.
They didn't reproduce the graph of our revenues from the print version, but that was also way off base. I guess they estimated them based on our title sales, but while Doom II remains our best selling title, we have much better royalty arrangements now than we did back then, so we make more money today.
John Carmack