Well, I think a lot of people put too much emphasis on the epiphanies. Epiphanies are there, you do get them where you see clearly into something and all that. But it really is true that most great works aren’t a result of epiphanies, they’re the result of lots of hard labor. That is a trap that a lot of people fall into where you think that the epiphany is the important thing. Sometimes it is, but in 95% of cases it’s just a matter of smooth, calm integration of everything you know.
It’s not the one brilliant decision, it’s the 500 smart decisions that really make things good. It’s more a matter of being able to keep making smart decisions. 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. And there’s so many of them that have to be made.
Even at the end of Quake 3, I had a to-do list of a thousand things that could potentially be improved on. So it’s a matter of going through and knowing all these things that could be done, and prioritizing what the "sweet spots" are. Like "This amount of effort would get this batch of things done and it would have this side effect." Or "it would take all day to do this thing but it would probably destablize something else, so I’m not going to do it."
―John Carmack (Firing Squad Interview)
When you hear stories about John Carmack, it's easy to assume you'll never achieve his level of success because he's a genius programmer. Even though Carmack might have quite a bit of "natural" ability, that's not where he credits his success. And I don't think it's because he's being modest either. According to that quote, the qualities he finds most valuable are:
- Hard work.
- Consistently making smart decisions.
- Prioritizing your time and effort correctly.
I think these qualities can be achieved by any developer. Sure, they might not be easy. But as games become more and more complex, they are only going to become more valuable.