"There is absolutely no design document whatsoever...[it] lives in Sid's brain."
gamasutra.com
gamasutra.com
It does really suck when you work the hardest you can, fail, and you find out there is someone who is just so much better than you who consistently beats you. It often does create a caustic culture and a risky business environment where the company is overly reliant on one person and has no one else on the bench when the Truck Number gets called in.
But, one could easily argue that holding stellar performers back from expressing their talents is worse since they are just so much better. Could you imagine a world without Civilation because it made some people feel inadequate?
It's true that Sid probably doesn't fully understand his own approach, and even if he did, there's a junior designer would be able to absorb and adopt it all instantly. However, Sid would have some understanding, and the junior designer would be able to absorb and start adopting some of it; and simply having a kind and encouraging word from Sid would count for a lot.
If Sid didn't go to the trouble of doing this, or if the junior designer expected to be great without practice, it would indeed be demotivating.
Working in an environment where one never feels inadequate leads to a career stand still. That's what I love about open source too, when I look at the work and productivity of John Resig or Yehuda Katz for example, I feel inadequate but it's also tremendously motivating....
"He knows that just because we can add something to the game, doesn't mean we should."
As for C++, I've looked at some of the Civ 4 source and it seems fairly industry standard "game style" C++. It uses templates, but not heavily, and some boost to provide Python scripting.
Isn't that just the definition of sane code when it comes to C++?
Personally, I despise C++ for a number of reasons that I won't go into in this comment. OTOH, if the subset of C++ you use is roughly "C with classes and namespaces," then I can generally tolerate it.
If you only read one entry, this should be it: http://jordanmechner.com/old-journals/1988/11/november-12-19...
Language designers: Brendan Eich, Joe Armstrong, Simon Peyton Jones, Guy Steele, Dan Ingalls, Ken Thompson
Not language designers: Jamie Zawinski, Brad Fitzpatrick, Douglas Crockford, Peter Norvig, Bernie Cosell
Marginal cases: Joshua Bloch, L Peter Deutsch, Fran Allen, Donald Knuth
which comes to 6/5/4. (Justifications for the marginal cases: Bloch does lots of Java library work, but not AFAIK a lot of language design, and the language itself certainly isn't his; Deutsch did some very important language implementation but that's not all the same thing as language design; Allen, likewise; Knuth's TeX and METAFONT are both, in their way, languages, but that's not primarily what they are.)
I wouldn't call that "mostly language designers".
(For the avoidance of doubt: I think a "Game Programmers at Work" volume could be extremely interesting.)
On one hand you can do amazing stuff, well sid can.
But it doesn't scale. And really successful companies figure out how to scale.
But the ones that do amazing work have a single person who is responsible for it all.
It's too bad there are not more geniuses in the world.
Since I consider games to be works of art: can art even scale, ever? Would 1000 albums by Radiohead be better than 10?
Sickening thought...