John Carmack

John Carmack
John D. Carmackis an American game programmer, aerospace and virtual reality engineer. He co-founded id Software. Carmack was the lead programmer of the id video games Commander Keen, Wolfenstein 3D, Doom, Quake, Rage and their sequels. Carmack is best known for his innovations in 3D graphics, such as his famous Carmack's Reverse algorithm for shadow volumes, and is also a rocketry enthusiast and the founder and lead engineer of Armadillo Aerospace. In August 2013, Carmack took the position of CTO...
NationalityAmerican
ProfessionScientist
Date of Birth20 August 1970
CountryUnited States of America
It is not that uncommon for the cost of an abstraction to outweigh the benefit it delivers. Kill one today!
The situation is so much better for programmers today - a cheap used PC, a linux CD, and an internet account, and you have all the tools necessary to work your way to any level of programming skill you want to shoot for.
An interesting question: is it easier to motivate a learned individual that never does anything, or educate an ignorant individual that actually produces things?
It's a good thing Doom 3 is selling very well...
I really think, if anything, there is more evidence to show that the violent games reduce aggression and violence. There have actually been some studies about that, that it's cathartic. If you go to QuakeCon and you walk by and you see the people there [and compare that to] a random cross section of a college campus, you're probably going to find a more peaceful crowd of people at the gaming convention. I think it’s at worst neutral and potentially positive.
The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.
The cost of adding a feature isn't just the time it takes to code it. The cost also includes the addition of an obstacle to future expansion. ... The trick is to pick the features that don't fight each other.
Making one brilliant decision and a whole bunch of mediocre ones isn't as good as making a whole bunch of generally smart decisions throughout the whole process.
Some cynical people think that every activity must revolve around the mighty dollar, and that anyone saying otherwise is just attempting to delude the public. I will probably never be able to convice them that that isn't always the case, but I do have the satisfaction of knowing that I live in a less dingy world than they do.
Programming in the abstract sense is what I really enjoy. I enjoy lots of different areas of it... I'm taking a great deal of enjoyment writing device drivers for Linux. I could also be having a good time writing a database manager or something because there are always interesting problems.
It is difficult to make good scalable use of a CPU like you can of a graphics card. You certainly don't want 'better or worse' physics or AI in your game
I recognize that I possess a very special intellect, but at the same time, I recognize that I'm lacking in a lot of areas. But being well-rounded is greatly overrated.
The important point is that the cost of adding a feature isn't just the time it takes to code it. The cost also includes the addition of an obstacle to future expansion. Sure, any given feature list can be implemented, given enough coding time. But in addition to coming out late, you will usually wind up with a codebase that is so fragile that new ideas that should be dead-simple wind up taking longer and longer to work into the tangled existing web. The trick is to pick the features that don't fight each other.
It's nice to have a game that sells a million copies.