• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
SpriteChild

What makes a standout programmer?

30 posts in this topic

Recently, the former head of a studio mentioned to me that each studio really only has 1 or 2 "rockstar" programmers; companies like EA bulk hire out of college, because they're essentially fishing for these stars. This surprised me, because from everything I've heard, the industry is difficult to get into. The ones that do enter, I presume, are extremely technically proficient. Looking over the portfolio analyses in this forum, I feel pretty safe in that assumption. I'm going to deprecate myself here, but as an IT programmer, I feel like most game programmers could code circles around most IT programmers, even if they weren't doing games. In an industry that already seems to take the best-of-the-best, what more is implied by "rockstar" programmer? What can we focus on to stand out from our peers? (And yes, I would have titled this "What makes a rockstar programmer?", but I think we all know a little about what it takes to be a Rockstar programmer these days...)
0

Share this post


Link to post
Share on other sites
Off the top of my head, I can't really think of any standout game programmers. Games are made by big teams with tons of programmers, and group code review. You can't pinpoint anyone's contributions from the outside.

I can think of lots of standout designers though.

Shiguru Miyamoto, Hideo Kojima, etc...
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
Quote:

I'm going to deprecate myself here, but as an IT programmer, I feel like most game programmers could code circles around most IT programmers, even if they weren't doing games.


I might not go that far. Even in the gaming industry, a lot of the 'hard stuff' is done by a few core developers. The main difference is that bizdev tends to get more of the 'professional' programmers. They only do it for a paycheck, and don't really think about programming or work to expand their knowledge. The difficulty in getting into the industry isn't so much the skill required as the volume of competition.

I've known a few rockstar programmers in my time, but they were all in bizdev. A guy who could debug linux gigabit ethernet drivers from a hexdump, by sight. A guy who wrote an entire kernel level solaris virtualization engine, in a week. A guy who, without a computer, would debug the policy processing engine (in COBOL) for a national insurance firm by telling the guy on the phone what line number the error was on.

These are of course the far end of the scale [edit: and that's of course in addition to doing well all of the simply 'difficult' stuff that other devs could do]. There's been studies that show that good programmers get orders of magnitude more things done than an average programmer. Great programmers, orders of magnitude more than those. Rockstar programmers are just the ones with enough experience and talent (knowledge is less important) to just be in the top tier of that productivity, even for decidedly hard problems.
0

Share this post


Link to post
Share on other sites
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?
0

Share this post


Link to post
Share on other sites
Quote:
Original post by SpriteChild
Every senior programmer is basically equal?


Not in a million years.
0

Share this post


Link to post
Share on other sites
Thanks for that response Telastyn. I'm not sure if "giddy" is the word for those programming examples, but I have a big smile on my face now.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by SpriteChild
what more is implied by "rockstar" programmer? What can we focus on to stand out from our peers?

The creative spark to come up with something new. I worked with a really good programmer at Virgin Interactive. Great but not rockstar. Every time a new piece of tech came out (Doom engine, Fractal landscapes etc) he looked at it and said "I could do that". He was right he could work out how they had done it and make a version - but he couldn't invent it in the first place.

However, being a rockstar isn't the only way to stand out. Developers don't need an office full of rockstars - in fact it would be a disaster. Many of them are great at coming up with new tech, but not very good at the production work needed to push that tech from prototype through to finished game. One rockstar per team is about all you need, which means there are more jobs out there for people able to get projects finished.
0

Share this post


Link to post
Share on other sites
To me, the guys that stand out are the ones who've been in the job for 20 years, and aren't 19 years out of date. Having worked in corporate and games programming, I've seen a lot of guys who've been in the job for a decade, and not cared about learning anything new over that whole time period (beyond what they had to in order to fulfil their day-to-day duties). Then there's the guys who've been in the job for a decade and can discuss the latest tech/fads/ideas with the youngin's and still be a mentor in those emerging fields (without just being arrogant / dismissive / etc).
Initiative to learn, I guess.
Quote:
Original post by Obscure
Many of them are great at coming up with new tech, but not very good at the production work needed to push that tech from prototype through to finished game. One rockstar per team is about all you need, which means there are more jobs out there for people able to get projects finished.
On that note, there was a saying going around the office recently - "Real artists ship". So basically, no matter how great your creation is, it doesn't count one bit unless you ship it! (which means there's no such thing as a "starving artist", if you don't ship, you're not an artist ;P)
So perhaps the "roadies" are just as important as the "rock stars" ;)
0

Share this post


Link to post
Share on other sites
Whoever told you the industry was difficult to get into was exagerating. If you want to be a programmer then learn to program and then you can get a job as a games programmer. It's that simple.
As for what makes a rockstar programmer it depends on what is good for the company. For a lead programmer I think being able to know your limits is an important one.
I've lost count of the times I've worked on projects where we could of licenced an engine but, the lead programmer has insisted that we could write our own multiplatform engine in 6 months and save money. Once the engine has been written it usually does its job but turns out to have cost more to develop in the long run and lacks most of the features that the designers wanted in the game.

Also I think you'll find that there's more "Rockstar" programmers outside the games industry. The reason for this is cold hard cash. Games programming salaries suck. Banking and financial firms offer top doller for the best graduates and then pay for them to continualy improve their skills and knowledge throughout their career whilst the games industry will hire anybody who knows a little C++ and what a Cross Product is and then give them a low salary and expect them to just get on with it until they burn out and end up hating the industry they used to be so passionate about.
0

Share this post


Link to post
Share on other sites
Quote:
Real artists ship
I should frame that on my wall.
Quote:
Developers don't need an office full of rockstars - in fact it would be a disaster.
Basically, the programming equivalent of a supergroup band? :)
0

Share this post


Link to post
Share on other sites
Just to chuck in my tuppence:

  • Perversely obsessive attention to detail. You want the kind of guy who walks into a crowded room and notices that the throw rug on the floor has an irregular pattern.

  • Ability to think across a spectrum of perspectives. Seeing things from someone else's point of view is critical to working on a team, especially if you need to interact with (or mentor) less skilled colleagues. Someone with significant interests and knowledge outside of gaming is, believe it or not, far more useful for development than someone who has a myopic world view - because they know how to change the way they think, and, more importantly, are willing to change the way they think.

  • As a corollary, ability to think across a range of scales. You need the guy that can look at assembly code and debug the associated C++, as well as looking at the overall game's code architecture - and see problems there too.

  • Patience to do the job right, and laziness to do the job more efficiently.

  • Creativity. Someone who can think up a new way to approach a problem will do a much better job at writing good, cutting-edge code than someone who can only emulate what they've seen in a textbook.

  • Humility. If you can't happily admit you're wrong (and learn from being wrong), you're doomed to become obsolete in a matter of a few years, because you'll never truly learn to keep up with the pace of the business.

  • Last but not least, communication and interaction skills. As my father was once fond of reminding me, it does you no good to be the smartest person in the world if you can't communicate your ideas and express your knowledge. You want the guy who can walk into a crowded room, notice that the throw rug has an irregular pattern, and then strike up an interesting conversation with someone five seconds later.



(Bonus points for working the rug pattern into that conversation, btw [grin])
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Daaark
Basically, the programming equivalent of a supergroup band? :)


Worse... a ballet company full of Prima Ballerinas!
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Obscure
Quote:
Original post by Daaark
Basically, the programming equivalent of a supergroup band? :)


Worse... a ballet company full of Prima Ballerinas!


Is this worse than a house full of so-called super models?
0

Share this post


Link to post
Share on other sites
"real artists ship" is supposed to be a Steve Jobsism, used to get the Mac development team to stop trying to make it perfect and just get it to work well enough to be released.


It isn't hard to start looking like a rockstar. There's a LOT of very very very poor developers out there. It's amazing how many five and ten year experienced people can't do fizzbuzz properly. Who just can't design software in an organised way.

If you can write code from scratch and get it to run reliably, you're a long way off the background dullness of this industry.

Here's a story; I worked for a bank some years back. It's a bank that UK will have heard of. They used to hire "developers" off the street. Open interviews. No experience needed. Each hire was given a copy of "Learn C++ in 21 days". 21 working days later, they were assigned to development teams. If they were crap enough they were moved into being dev managers. You can picture that even five years spent in that environment isn't going to produce gems. That's the sort of level of people against who you have to look good to be in the top 10%.

0

Share this post


Link to post
Share on other sites
When I did my music A-level back at school I was surprised and disappointed to find out that of the 16 or 17 people on the course, only 2 or 3 actually enjoyed composing music. The rest found it a chore.

I shouldn't have been surprised therefore when I got to university and found that about 80% of the people on the Software Engineering course didn't like programming. People would do as little of it as possible and refer to themselves as being "not so good at the programming" as if that was just a minor part of their course and that they were fine at the rest.

Some of those 80% can find their way into simpler stuff, eg. the less technical end of web development, but I think most just end up in IT support or completely unrelated careers. Game developers and other places requiring skilled programmers are fighting over that 20%, not all of whom are actually any good. Many of those people will focus heavily on the things that interest them to get an impressive portfolio together but will have no wider interest in algorithms or coding style, and these people will be the useful workhorses of most software companies, churning out working-but-flawed software. The guys who stand out are the ones who go beyond that, furthering their own skills and knowledge and taking pride in what they produce.
0

Share this post


Link to post
Share on other sites
Wow.
The more I read those lines, the more my confidence is growing.
But I don't have a degree, and I don't want to do programming for a living.
I wish it was as easy to stand out as an engineer, as a programmer.
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
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
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0