🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

What makes a standout programmer?

Started by
29 comments, last by Wan 14 years, 4 months ago
Carmack also is attributed the square root trick iirc. The thing to remember there though is he actually shipped product. His code has always been speedy, and from what I remember, bug free. I've known a number of Cowboy Coders. If anything, rockstar (or excellent) programmer's code is a lot easier to read than your run of the mill good programmer (especially in languages not known for their beauty). Cowboy Coders tend to have the worst looking code, even if it works well.
Advertisement
Quote: Original post by Telastyn
Carmack also is attributed the square root trick iirc.
He's often attributed as coming up with that for Q3, but he actually just borrowed the code from someone else. It had been used in 3d graphics for ~10 years before Q3.
Quote: Original post by Hodgman
Quote: Original post by Telastyn
Carmack also is attributed the square root trick iirc.
He's often attributed as coming up with that for Q3, but he actually just borrowed the code from someone else. It had been used in 3d graphics for ~10 years before Q3.


*nod* I thought it was used before then by carmack. And I'd forgotten if that was a misattribution or not.
Quote: Original post by ricardo_ruiz_lopez
Quote: Original post by SpriteChild
The one I've typically heard with the term is John Carmack; I was reluctant to drop the name only because....he's Doom and everything -- you could think wonders of him for breaking open 3D gaming or any number of other things that would distort the term. I can totally see designers being more recognizable (because they are), but even so, I feel like most studios would have that programmer they trust with their life... Not so? Every senior programmer is basically equal?


Very interesting thread.

BTW, has anyone downloaded and (tried to) read quake or doom code?

Am I the only one who believes Carmack is not a genius? He only reads papers and implement them in a not very clean way. As far as I know, he only invented a shadow algorithm (that was already implemented)

Must read: http://c2.com/cgi/wiki?CowboyCoder

In a large company (I mean, with a lot of people) somebody who is a very well programming but only he/she understand what he/she is doing is not very good for that company.

Is software developent a team or an individual activity? Usually first one.

Well I think you'd be in the minority since he has delivered time and time with each game he puts out.
If you read his blog postings you'll see he's an army of one when it comes to programming if he's telling half the truth:
" As usual, my off the cuff estimate of "Two days!" was optimistic, but I did get it done in four, and the game is definitely more pleasant at 8x the frame rate. "-John Carmack

This was his response to EA and it's developers came telling him it would take two months and exceed their budget to port Wolfenstein to the iPhone.

And of course like his usual self he's always apologetic about his ugly but fast and bug free code LOL:
" I'm still not positive if this was the right call, since the codebase is sort of a mess with lots of vestigial code that doesn't really do anything, and I don't have time to clean it all up right now.

Of course, someone else is welcome to do that."-John Carmack
[size="2"]Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe
Quote: Original post by ricardo_ruiz_lopez
He only reads papers and implement them in a not very clean way. As far as I know, he only invented a shadow algorithm (that was already implemented)
Almost everything in graphics these days is "copied" from papers written back in the 70's and 80's. Shadow mapping, for example... you think that's new? In fact, it was first described back in 1978. Even "new" shadow mapping techniques like Parallel-Split shadow mapping was based on ideas first introduced in 2001.

The thing is, the theory is actually pretty easy. The hard part is implementing it on hardware and getting it to run fast enough that you can still have your game running at the same time...

Of course, I don't think Carmack is the kind of guy I'd want working for (or with) me, either. His style of programming is perfectly suited to how he works, though - as a single developer writing the entire engine.
I personally think that 1 words qualifies a stand-out programmer: simplicity. When I look at basic algorithms that are simple they often solve 2 very basic problems: 1- speed, 2- code size... (#2 still exists, I have love for those demoscene coders hehehe)

I would be more impressed at the code from 1 programmer who tells me:

"Hey look I solved that problem we had last week with this simple algorithm, going to take 5 minutes to show you" (In your heard pops: speedy (yay!) simple (longer lunch break, yay!)

But if someone tells me:

"Hey look I optimized the shadow mapping technique after reading this 128 pages paper, then this one... 256 pages... and finnaly this one... 1024 pages"

The first programmer shows pure genius to me. The second is verry good indeed, but verry smart (imho)... But too much geniuses at one place bad? Well you need people with different forces too, design, optimization, etc... If you can find one that's good in all of them, I'd like to meet him ;-)
__________________________Lovens "CAPONE" WecheProgrammer
Quote: Original post by Codeka
The thing is, the theory is actually pretty easy. The hard part is implementing it on hardware and getting it to run fast enough that you can still have your game running at the same time...
I agree with that. The ideas I've seen by far are pretty straightforward. I mean, you simply copy real word. The big idea is when you can come up with a better-than-straightforward method.

For example: ray casting. You can't be more straightforward than that. I implemented ray-casting with no tutorials, no net, only I knew how to make a rotation matrix. It ran with 0.05 fps. My brightest idea was re-inventing the ray-triangle test. Big deal. But it had shadowing, phong-shading (I learned it a year after), reflection/refraction, texture mapping, alpha test (affected shadows too).

The last great idea I saw (seemed a genius idea then), was the "mid-point" circle algorithm. But I learned that it's straightforward too, just the guys went trough the whole thing, to come up with the final, pretty abstract stuff.

I think a standout programmer simply doesn't get scared of the task, and recognizes the straightforward way to do it. You have to realize: you don't need bright/genius ideas to solve a problem. Just use paper and pen.
Quote: Original post by Tom Sloper
Quote: Original post by SpriteChild
"What makes a rockstar programmer?"

Outstanding problem-solving skills and a bulldog tenacity to solve them. Work ethic (doesn't slough off, works on what's expected, achieves objectives) and good helpful attitude. Clean well-written code and a low bug rate.


I should get that printed on a t-shirt :D Rather than my usual "I can't brain today, I have the dumb"

Andy

"Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile"

"Life is short, [the] craft long, opportunity fleeting, experiment treacherous, judgement difficult."

The best programmers I've worked with were experts in their domain field, had a natural intellect for it and were dedicated and experienced, but they were not the smartest. The smartest people were the outliers, extremely intelligent but quirky. Not the best programmers but very necessary for their domain knowledge and depth of that knowledge.

A great programmer imo has a balance of natural programmer intuition, deep domain knowledge of their chosen field and of programming in general and a humble and approachable attitude.

-ddn

Quote: Original post by ddn3
The best programmers I've worked with were experts in their domain field, had a natural intellect for it and were dedicated and experienced, but they were not the smartest. The smartest people were the outliers, extremely intelligent but quirky. Not the best programmers but very necessary for their domain knowledge and depth of that knowledge.

A great programmer imo has a balance of natural programmer intuition, deep domain knowledge of their chosen field and of programming in general and a humble and approachable attitude.

-ddn


Yup. What is the brightest mind, when the enclosing body is totally untalented at the act of "working", and when that body/mind has no stamina.

This topic is closed to new replies.

Advertisement