Ask the Experts: Programmer Applicant’s Checklist
Dear Experts,
I read the article "She Blinded Me With Computer Science". I found it to be useful in terms of what to study, but how do I go about entering the game industry, assuming I have all that and more? I've been programming professionally in C++ for more than 7 years. I have a B.S. in computer science, a B.S. in math, and a master's in software engineering.
Almost every article I read gives the same advice you gave, but what is the next step? Should I start coding games at home? If so, how would I start? It seems like I need to know several graphics programs. Or can I simply apply to a company and show them my awesome programming skills? Entering the field seems like a mystery.
- Applicant-in-Waiting
Dear Applicant,
It sounds like you are very close to being ready to apply for a job in the game industry. Your educational credentials and C++ experience certainly make you stand out as a fairly qualified candidate for a programming position, provided you find a vacancy that doesn't require you to have at least one shipped title on your résumé.
I will explain in a little more depth what it means to "start coding games at home" toward the end of this article, exploring some of the many options that are available, but first, let's assess and review what we know so far.
Between the article "She Blinded Me with Computer Science," a few others on this site, and your question, Applicant, I'm beginning to see that we have covered a lot of ground--but the information is dispersed. Let's consolidate it here and now and come up with a checklist of what one needs to do before applying for a job as a video game programmer. Maybe some of you readers can use this checklist to gauge where you stand now while also prioritizing what steps you need to take next on that journey into the game industry.
Game Programmer's Pre-Job Application Checklist
❑ Fluency in C++
❑ Knowledge of basic linear 3D algebra
❑ Sample code, preferable the code to a completed and playable game (more on this below) and its executable
❑ Team experience of some kind
❑ An impeccable and up-to-date résumé that can be tailored to each position applied for
❑ Face-to-face experience with a real life game developer
This checklist does not include any of the personality requirements, such as "must have strong ability to self-teach," nor does it go into additional detail about what kinds of things would look best on the résumé. But these are the basics.
Fluency in C++. "She Blinded Me with Computer Science" definitely explained why it's important to know C++. It's the foundation of any game programmer's know-how. Moving on...
Knowledge of basic linear 3D algebra. I borrowed this suggestion from Noel Llopis's Jan. 23, 2005 article "So You Want to Be a Game Programmer?" on Games From Within. Llopis, who is now part of a new start-up called Power of Two Games but formerly with High Moon Studios, shares in that article what makes a game programmer candidate stand out from the pack, and having a clear understanding of linear 3D algebra is no. 2 on his "skills" list, right below C++. That said, if words like "dot product" (sometimes called the "scalar product" or "inner product") and "interpolate" leave you in a cold sweat, you probably need to take (and pass with a B or better!) a couple of math classes. If you can hang with vector products, you can tick this item on your list.
Sample code. Okay, Applicant. I'm pretty sure that understanding sample code is at the heart of the matter for you. What kind of sample code should a programming applicant have before seriously applying for a job in the game industry?
First let's make sure we have clear terminology. According to Mick West, one of the founders of Neversoft who is now a contributing editor to Game Developer, "‘Sample Code' refers to the actual lines of code, in whatever language they are written, like C++ or Ruby. The people hiring look at sample code to gauge the professionalism of the applicant. ... Coding style, naming conventions, and even stuff like how consistently the code is indented can make quite a difference. They will also use it to get a brief gauge on how familiar the programmer is with whatever techniques are being used in the code sample. It would be kind of like a "writing sample" for, say, a television show. The end product is the show (the game), but you need to have a script (the code), and a code sample is analogous in function, during the hiring process, to a script sample."
I also emailed with Peter Lee at GameLab because he is currently in the process of taking résumés for a C++ developer position. I thought I might ask him what he'd like to see along the lines of sample code from his applicants.
The job description is for someone with three years programming experience and two years in the game industry, which isn't exactly entry-level, but it's a close enough comparison to your situation. Lee says, "My advice is to write a game code from start to finish even if it's as small as a Tetris or Pac-Man clone."
As an experienced C++ software developer, Applicant, do you think you're able to code a Pong look-alike at home in a couple of weeks? Your sample code would be the actual lines of code for the game, but to really impress the committee, it's best to have the executable too. The game you make and the sample code you show does not need to be graphic-intensive unless the job description says otherwise. A small web-based game would be just fine, provided you wrote the whole thing from start to finish.
"I see too many recent graduates lacking the capability to create a complete application no matter how small it is," says Lee. This is a complaint I have heard time and time again from people in the industry who interview and hire new recruits. The have job applicants who do not have a single example of something they've seen through to completion. Imagine how that must appear in the video game industry, where the most rigorous portion of development is the homestretch -- seeing the thing through to the bitter end. I've even heard people on the hiring end say that college dropouts are less appealing candidates, not because they lack a degree, but because they weren't able to "see to completion" a two- or four-year endeavor.
If you have multiple code samples, pick the best one you've got and toss the others to the side for now. Blizzard Entertainment has an advice page on its web site about applying for jobs and gives would-be programmers this tidbit: "[M]ake sure to send your best stuff. It is better to send us one cool program than lots of mediocre ones. Pick the one best thing you have done and show it to us. We can read about the rest in your résumé."
In quick web search, I found this exhaustive list of programs that allow a non-programmer to create small games, mostly text-based and adventure games. You'll notice that most of these programs run on Windows.
The majority of people who work in game development studios will be able to review your work if it runs on Windows. If it's a web-based game, test it on several machines and browsers before sharing it on a professional level. And for any materials you put on the web, such as your demo reel or even a downloadable copy of yourrésumé, test that you can easily grab the files and open them on a few different machines. Ask your friends for help: "I'll spring for pizza if you download my files."
Some programmers coming out of game development institutions are being encouraged to produce a demo reel alongside their code sample. Mick West assured me that a demo reel is not necessary for programmers (though artists and animators will definitely need one) and could even been seen as "over-the-top self promotion." The code sample and possibly an accompanying executable are most important, says West.
Most importantly, the more intelligently you can talk about your code sample or demo reel, the better. Brian Kircher went through the whole job application process a few months ago right before finding his first industry at Petroglyph Games. Kircher, a DigiPen graduate, notes, "A person should make sure they understand what they did and why they chose to do it that way. Being able to clearly explain your code knowledgeably can show employers you actually know your stuff." In other words, you can't just show the demo reel, you have to expound upon it verbally, too.
Because game development is usually a collaborative process, you must point out, specifically, what work is expressly yours in a demo reel; you should have at least one collaborative project somewhere on your demo reel. If you can identify specifically how you contributed to a team project, you'll be cruising through your demo reel while also ticking off the next box on the checklist.
Team experience. By and large, games are born in collaborative environments. All developers need to be able to work well with others, and it's in a job applicant's best interest to point to that fact directly somewhere on his or her cover letter or résumé. There are a number of things that can count as "team experience," from team sports to volunteer work to frequently planning and throwing elaborate house parties with your roommates. If you don't have anything to put on your résumé that would include the words "with a group of X number of other people," you're not ready to apply for a job.
An impeccable and up-to-date résumé. Most importantly, the content should be tailored to each position applied for. Lest I risk opening the résumé-and-cover-letter-writing can of worms, I'll let this item speak for itself.
Face-to-face time with a real life game developer. In this business, your chances of getting a job increase dramatically if you know someone who already works in games. If you don't know anyone in the industry coincidentally, you have to make the effort. You have to! Do you have to? Yes. Is that clear?
There are multiple ways of meeting developers, such as:
1) Attending local IGDA chapter meetings.2) Finding a game studio in your area and writing or calling them with a request for an "information interview," which means you chat with a developer for anywhere from 20 minutes on the phone to 90 minutes over lunch, while asking questions like, "How did you get into the industry? How much overtime do you work? Do you like your job?" It's all off the record.
I hope I've helped you iron out some of the details, Applicant-in-Waiting. I'd like to also encourage those of you who already have checkmarks next to many of these checklist items to head over to our forums and share your success stories with the community. And hey, if you have a forum dialogue with a few people who then find jobs, you'll have a few industry connections!
3) Go to an industry conference, like Game Developers Conference (GDC) or Montreal International Game Summit, or another gathering that's likely to attract developers, such as Comic-Con or Penny Arcade. If you can't afford to attend, you often can apply for scholarships to major conferences. That failing, find a large, multi-day event and hang out at the lobby of the hotel that's closest, especially around happy hour time. Many conference attendees will still be wearing their name badges, and you're sure to find at least a few people who will be willing to talk shop. Brian Kircher told me he found his job by attending the job fair at GDC. "The career booths at GDC are a great way to get out your résumé and talk with people actually working at the company, as opposed to sending your résumé off into the void online," he says.
Tuesday, May 7, 2013
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment