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."
he is a god amoung men and is the main contributing reason as to why i no longer have a social life.. long live john carmack
... are you still dating him ?? :)
so
Please, somebody, mod this as funny for the first time on my life !!!!
Life isn't like a box of chocolates. It's more like a jar of jalapenos. What you do today, might burn your ass tomorrow.
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]
You may be missing the bit that says "Mr. Carmack, a multimillionaire."
Once you're able to buy just about anything you want, the ability to buy more stuff isn't that attractive. Beyond that, "more money" would come with an inevitable loss of control -- to take ID Software to a large company would mean hiring legions of programmers and managers.
At that point, it becomes what most large buisnesses become -- merely brand names. When that happens, it's no longer Carmack's baby, and it probably wouldn't be something he enjoys.
Ergo, ID Software stays small.
"Evil company X is threatening to restrict our rights! Let's all get together to stop--OOOH! SHINEY!!!" -- AC
If money isn't the motivator, why does Id make the same, market-proven games again and again? I mean, I can respect the technical achievements of Quake III, but beyond the graphics it's not much different than Quake II, Quake, Doom II, or Doom. It would be nice to see Id actually take a chance on a game, rather than churn out the same thing year after year.
To this reporter, Carmack isn't using OpenGL, an existing 3D graphics standard which Microsoft refused to adopt in favor of their (for years inferior) attempt to lock programmers in to DirectX, he's using "his own graphics technology" which is "almost like a religious thing for him".
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 article is the most motivating article I have ever read. He not only tries to write code that will port well in order to insure his product gets to as many people as possible, but unlike other stupid software companies he refuses to overextend his company to more the 17 people.
I've worked at alot of companies and one thing is for sure. Everything starts to go to shit when you can't walk over and talk to all the other developers.
This would be the ideal company to work for and they make the ideal product. Then they let the community do the beta testing. I love this man. His ideas are harsh on the MS way to do things which is probably why they work so well. Instead of employing rediculous amounts of people inefficently turn a mediocre product and then either market it to hell and back to make everyone think they need it, or force all of their existing customers onto it.
They keep a small number of really smart people in one room and turn one of the best products out, and let the product practically sell itself. This is how things would be in an ideal world, but the idea of making the best product so that people will pick it over others is wearing thin, esspecially now that Microsoft has bought most of the GL patents from SGI.
He obviously wants other things more than he wants to get richer than he already is. I'm not a mind reader, but I'm guessing those things include personal satisfaction, public recognition, love, health, and probably the ability to maintain his current standard of living. This is just an example of how money can only take you so far on the road towards happiness.
Make love, not sigs
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.
From what I hear, the last piece of code Bill Gates wrote was gorilla.bas .. I don't know about you, but I think that's MUCH slicker code than any of John Carmack's inventions...
By the time Quake 3 Arena came out, I think a lot of people realized that id had basically become a brilliant game engine company that should just cast off the illusions that they were experts in creating innovative gameplay. Because I think, while you can debate the merits of the technology behind id's products until the end of time, it became clear to many that the innovative gameplay was happening somewhere else. While the engine was brillaint, Quake 3 the game was the same old, same old. Deathmatch in a brown castle.
While many people had not-so-kind things to say about the multiplayer aspects of the origional Unreal, when Unreal Tournamnet came out, Epic was pushing the bounderies of online gameplay, while id was left in the dust, cranking out the same thing yet again.
Not to say Quake 3 was a crap game, a hell of a lot of people enjoyed it then and enjoy it to this day. I'm just saying that it was part of a downward trend at id, one that they seem to have addressed, and I commend John Carmack for that.
Even thou FPS games dont make the level of sales of everquest or pokemon, ID game engines are the best for FPS shooters.
The norm at Lan parties are mostly ID engines based games. RTCW, MOHAA Demo, Q3A, Q3A Urban Terror, Action Quake2, the only 2 games that wasnt, where Counter Strike and Ghost Recon. The main game for money was CS, but we had so much fun playing Q3A UT, we had to push back the CS tourney.
-
Amiga OS is out for your x86
But as the article stated, Id makes roughly $1 million per employee... hell, at that clip, Carmack can buy back John Romero's car.
I'd have a personalized plate on my car, but "toxic bachelor" won't fit into 7 letters.
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.
You are uninformed why John Carmack did not use Java. FlipCode had the following pertaining to Carmack's view on Java: John Carmack considered using Java in id's Q3. He discusses several pros and cons. His biggest problem with Java was (believe it or not) portability -- It seems that Linux's and Solaris' implementations of the JVM are lacking (with respect to JNI) as compared to Windows'. However, John does say at the end of this interview, "As for embedding... If I did want to go off and start fresh, I would likely try doing almost everything in Java." John Carmack considered using Java in id's games for quite some time, "... I want Quake 3: Arena running on every platform that has hardware- accelerated OpenGL and an Internet connection.... I had been working under the assumption that Java was the right way to go, but ... The programming language [used in Quake3] is interpreted ANSI C. The game will have an interpreter for a virtual RISC-like CPU." (Unreal followed a similar approach.) ...
"When it comes around to the next development cycle, I will make the Java decision again." As for embedding: "We are still working with significant chunks of an existing code base. If I did want to go off and start fresh, I would likely try doing almost everything in Java."
-- Game Developer Magazine, July 1999 issue. As more and more developers start taking advantage of all that Object-Oriented Programming (OOP) has to offer game development, extensible Java game objects may become the norm. More advanced players may even start to demand it - who wants to learn a proprietary script syntax for each new game they want to extend? If Sun delivers what they've promised, Java may (in time) become the de facto standard. Or not... 8-)
" I mean, I can respect the technical achievements of Quake III"
You just answered your own question: Carmack is a programmer, so probably he just enjoys the "technical achievements". No small thing to me.
It's sort of what OS people does, but making a bit more money.
When his defense asked, "Which computer has Jon Johansen trespassed upon?" the answer was: "His own."
Well, I think the article alluded to Carmack being more focused on building a great game ENGINE, rather than a great GAME. In theory, if someone licenses the next-gen Id game engine, then all their development time is spent building a good game, and not something that puts shapes on the screen (which, to do well, is itself a major project).
It's about specialization, people doing what they are really good at, instead of trying to do everything and selling mediocrity.
-If
Run a pencil-and-paper RPG campaign with your far-off friends: Gametable!
Its obviously a tease, sheesh. Gates probably does not code much, John does every day. If you ask me (not that you did) it shows that Mr. Gates has a pretty good sense of humor. Yeah he may have billions in the bank but its an obvious jest. Heh, I would feel pretty good if the leader of the commercialized software world complimented me so.
Jeremy
I quote, "Thanks to profit sharing, some employees make $450,000 to $600,000 in a good year. With such pay, the company expects employees to put in long, hard hours, says Todd Hollenshead." That's why no one ever wonders why John Romero no longer works at id.
"Catacomb Abyss Released: Dec 1991 The first FPS."
;)
:)
Not really. The game Dark Side for the Commodore 64 was a fully polygonal, first person shooter, that was released in 1988, i think. The only problem was that it had a framerate of about 3 or 4 fps.
On a sidenote, the engine Catacomb Abyss used was written by John Carmack, and share alot of code with the younger Wolf3D.
Carmack and Torvalds should have a child...
I actually thought Adrian Carmack was Johns brother as I remember reading it somewhere, one of the articles was obviously wrong. I'm sure someone will give an autoritive answer on that one.
A journey of a thousand miles starts with a brutal anal raping at airport security
"Mr. Evil..."
"Dr. Evil. I didn't spend four years in evil medical school to be called Mr., thank you very much."
^_^
N4st0r, trixx0r h0bb1tz0rz! Th3y st0l3 0ur pr3c10uzz!
Good point, but do you know who made Catacomb Abyss?
That's right, id Software. Seems it all keeps coming back to them. Sp00ky, eh?
[PowerPoint] is a tool for capitalist presentation
Anyone want to make guesses at how many hours Bill Gates has spent playing Carmack's games?
Tarsnap: Online backups for the truly paranoid
The last major code Gates wrote (so I've read) was the software for the Radio Shack portable Tandy TRS-100 (which had a rather long battery life, built-in modem, and was widely used by journalists in its day).
Gates' claim to being able to write tight code is not without support: he did, after all, write much of MicroSoft's original code, which were BASIC interpreters that ran on systems with very very little RAM.
Java, on the other hand, is a GENERAL PURPOSE PROGRAMMING LANGUAGE. You could use it to write ANY of the above kind of games, or a client-server application, or a spreadsheet, or pretty much anything else.
You also need to remember that the Java Programming Language and the Java Runtime Environment (JRE) are totally and completely different things. Java source code can be compiled into native machine code, which will run as fast or faster than comperable C++ code. Other languages ( like Python) can be compiled into Byte Codes and run under the JRE
Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
...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.
Money not a major motivator? I wonder how honest that statement is.
You left out a word there. It's not that money isn't a major motivator. He said that "more money" wasn't a major motivator. There is a difference.
Carmack is already a multi-millionaire. More money would only make him more of a multi-millionaire. Which is better, being a multi-millionaire or a bigger multi-millionaire? How are any of your basic needs being fulfilled any better if you have $40 million in the bank versus $20 million?
It sounds to me like Carmack has already realized that Id gives him all the freedom and financial security he could want. The thing that he seems really interested in is writing "better code" and a "cooler 3D graphics engine." How does having more money help him there?
Uh, NO.
BattleZone in the arcade, and Stellar7 on the Apple ][. same thing.
Feed the need: Digitaladdiction.net
"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!
Money not a major motivator? I wonder how honest that statement is. More importantly, where can Id be going with Carmack's other "attitudes?"
No, money isn't a major motivator for Mr. Carmack, and as for his attitudes, I've found him to be one of the most even tempered people I've ever met.
Less Talk, More Beer.
And so the poor man who just wants to be left alone, and not a cult icon...
... is written about, and posted on slashdot.
I can agree that a business publication would want to avoid technical discussion, I think you're missing the tone that the article presented. Read it again:
The message is plain. Carmack avoids an industry standard developed by Microsoft called DirectX. Everybody else uses it. Instead, Carmack is some kind of technological religious zealot who uses his own system.
Granted... the article does go on to point out that his decission allows his software to run on many platforms. Something Microsoft's technology does not allow. But its possible that someone unfamiliar with the industry might miss this message and attribute Carmack's refusal of microsoft as another aspect of his ecentric personality.
It would be different if the writer had reported Carmack has adopted an open graphics standard over a more restrictive standard provided by Microsoft... despite Microsoft's professed incredulity over the choice.
For my graphics class in college we had to write an Asteroids program in OpenGL. I decided that it was kind of lame to do all the work to render asteroids and ships in 3-D only to shoot them in a 2-D plane. So I implemented a 3-D space shooter involving asteroids. It soon became apparent that in order for there to be enough asteroids to hit you there had to be A LOT of asteroids. The number that sticks in my head is 400. Since shooting 400 asteroids was pretty dumb I added some Tie-Fighters to the mix and had the objective be to shoot the Tie-Fighters.
All the work in this class was done on Macintosh computers. I was the proud owner of a Mac Performa 6200. It ran at 66 MHz, with no 3-D graphics card. I actually got my little game to run at a reasonable speed on it. Everybody else in the class wrote games that were played in a 2-D plane and many of them didn't run fast even on the brand new G3s that were showing up around campus.
Now for the point of my story. After graduation I went to work for a certain company and they gave my a nice laptop. It ran Windows. I decided it would be nice to try to play my game on it. The port was EXTREMELY easy. I had to add a crappy Win32 main and I had to replace the keypress codes since I hadn't used GLUT for kepresses since it didn't work with multiple keypresses. I also yanked the sound code out since it was Mac specific. But it took only a few hours to have the game up and running.
If you want to see the result you can get it here. Source is there too.
I later loaded Linux on my laptop and ported the game to Linux. It took a bit longer to find working keypress calls. I ended up using SDL without porting the whole game to SDL. The result was a little ugly but the game worked just fine. I haven't invested the time needed to polish up the Linux version is all.
Looking back I know that it would be very easy to write this OpenGL based game in such a way that it would run on all three of these platforms with a simple recompile if I had used #IFDEFs. Being lazy and busy with other things I haven't done that. But it is impressive how portable a game written in OpenGL can be.
Lasers Controlled Games!
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