So You Want To Be A Game Programmer? How to get out of college and into games9
Matt posted in Getting into Games on October 9th, 2006
This article originally appeared in the 2005 Game Developer’s Game Career Guide.
By Matt Gilgenbach and Daniel Sass
How do you get started in the game industry right out of college?
This task is not a particularly easy one mostly because a lot of people want to do the same thing and there are only a limited number of junior positions available for fresh college graduates.
From our years in the game industry, and from what we observe of junior-level programmers and designers today, we’ve put together some basic information on how you might break into the industry straight out of college. If you want to make yourself stand out in the sea of inexperience, you need four things:
• a tight demo
• a clean and professional resume
• some experience
• a pragmatic idea of what to expect.
The demo
Finish your game or demo. When something is finished, it shows persistence, a trait that’s absolutely crucial to have to work in this industry.
“Finished” doesn’t mean the demo meets your original goal of creating a complete game that rivals the current latest and greatest game. What “finished” does mean is that the game is fully functional and relatively bug free. Hence, this usually means you have to scale back your vision.
If your original vision was to create a 3D platformer with many levels and bosses, and your final product has only one level, that’s okay. As long as that one level is totally complete and shows off your programming skills, it will be fine for a demo.
If you don’t have an artistic inclination or know any artists, it’s difficult to make a game or even a level. However, you can still work on technology. The one thing that’s important to prospective employers is that you have a demo that shows off your programming prowess and technology (and that you have the persistence to finish it). But even if you write an engine that’s better than the hottest game out there, no one is going to pay any attention to it if you only send them the source code or a demo that displays just five polygons.
Make your demo impressive. Most people who will evaluate your demo have a very short period of time to look at it, so make sure they will immediately know what’s cool about it. If you write a complicated object modeler that rivals a professional 3D modeling package, no one will invest the time into seeing the features unless you point them out. If you want to show off your modeling program, then make sure the demo starts with an impressive model that was created in your package.
Make your demo as easy as possible to view. Something that should be obvious, but that a lot of people overlook, is to make it as easy as possible to get at your demo.
The whole point of having a resume is to convince the potential employer that your demos are worth looking at—and once you’ve convinced them to view the demos, you need to make them as easily accessible as possible.
The people who receive your resume also receive hundreds of others, and they aren’t going to give you much time. Don’t waste the precious time they do give you by making them navigate a bunch of pages or folders to get at something that might impress them. Often, snail mailing your demo on a CD is the easiest way to get your demo viewed. When job screeners have an actual CD sitting on their desks, it’s quite easy for them to pop it in their computer and view it, unlike job candidates who direct them to a web site to download a potentially large (and potentially infected) file.
If you don’t want to mail your demo on CD, make sure your resume has a direct link to download the demos, as opposed to making the reviewers navigate your page to find it.
Do not show off standardized class projects. Your demo should not be a class project for which everyone did the same thing. If your class project was to create the Utah Teapot from splines, then your work isn’t particularly impressive; anyone who passed the class did the job just as well. Standardized class projects often downplay your unique talents and skills.
However, if you encountered more open-ended assignments, like “make a good video game” or “complete a project involving computer graphics,” then your project—by its very nature—has an opportunity to express something about you and your abilities.
Specifically tell the screeners what code in the demo is your own. Here’s one of the worst scenarios that can occur during an interview: You play a demo, which only shows off graphics, and you proudly say you were the game designer.
You can only impress the people looking at your demo by showing them the work you did. It isn’t impressive if you (as aspiring programmer) show a great looking demo from a graphics standpoint if you either used an existing graphics engine or had someone else write the graphics code. They will assume you aren’t very good with graphics, thus marking a point against you where you shouldn’t even have been assessed.
Instead, try to write at least a few, if not all, of the important components of your demo—graphics, animation, collision, physics, and AI—to show that you have expertise in various aspects of video game development.
Remember, you will be asked about your specific contributions to the demos you show. Be prepared to answer questions about them. And never, ever say, “I don’t remember how I did that.”
Experience
Have relevant work experience. Getting that first job in the industry is hard. Many people inside the industry feel like it’s completely different from all other software development jobs and, to a certain extent, it’s true. However, you still need to have experience to land your first gig. And there are many types of positions you can pursue.
First, if you are at a big university, there’s probably a graphics research project at your school. Try to become a research assistant, which will help you gain basic work experience, like project management skills, a deadline-oriented attitude, and, most of all, a professional reference. If there isn’t a graphics research project, then find a different research project and convince the professor that the project will benefit from 3D visualization. Computer graphics are very useful for a lot of different types of research because the same experiment can look much more successful with good data visualization—and if you can convince a professor of this point, you’ll also gain experience at persuading others of the value of your talents.
Get an internship with a game developer. Some larger game development companies will provide internships for eager students. Don’t expect to do glamorous work or even to get paid. However, this internship experience will both get you real world game programming experience and help you network with game developers.
The Game Career Guide from last year (2004) contains some valuable details about internships in the development community. Gamasutra.com also hosts listings for available internships (as well as part- and full-time positions).
Get professional team experience. Software development experience at a commercial software developer is also very useful. You may not be working on something exciting like graphics, but you will earn good and valuable work experience. Completing an internship in software development demonstrates that you have some level of general programming competency.
And I know what you are thinking: “My demos should show that and more!” Well, having commercial software development experience can also show that you can function well on a team, which is something a demo can’t prove. We are long past the days when one person can create an entire console game, so a lot of your time in the game industry will be spent dealing with other people. Commercial software development experience is useful because you deal with managers, schedules, and ship dates, all of which are totally relevant in the game industry. Even if you created your demo with a team, everyone else you worked with was more or less on the same level, so that experience doesn’t really show how well you interact with different people of various levels of expertise, people who are unmotivated or determined, flexible or stubborn, and so forth. Sometimes people who can put together the most impressive demo on their own are no good in a team environment because they can’t take orders from someone else.
An ideal internship for an aspiring game developer nowadays would be one in which you would develop commercial software that has artificial intelligence or 3D graphical components. You may not think there are many of that nature, but keep looking. You may be surprised at what you find.
While it’s good to have software development experience, don’t be fooled into believing that years of non-game experience translates into an equal number of years of game development experience, as most companies do not treat them the same. Even if you manage to get two years of non-game experience during your college years, don’t expect to enter into a company at the same level as someone who has two years of solid game programming experience. While an internship can help you get in the door, it won’t get you higher up the ladder or allow you to skip taking an entry-level position.
Learn on your own. Even if your college has the greatest game programming classes of any school in the world, you are not ready to get an entry-level programming position with this background alone. You need to learn to program on your own.
Being a self-taught learner is important for many reasons. First, it separates you from your classmates. Your classmates may have just gone through the curriculum, but ideally you went through it and much more since you were actively pursuing your interests in game development in your spare time. Supplementing your education with self-taught knowledge will separate your resume instantly from your classmates’—even if you’re all from a prestigious school. Second, learning on your own shows you are personally motivated to learn about game development—the reason you’re learning game development goes beyond getting good grades. People who work in this industry don’t have teachers or curricula. Often, they are asked to do something for their jobs that not one person in the company has experience doing. Hence, if you can prove in your resume, cover letter, and interview that you are an avid, self-taught programmer, you should.
Resume
If you don’t want to be asked about it, don’t list it. Do not put classes or skills on your resume that you don’t want to discuss in an interview. If you get a phone screening by a game development company, usually they start by discussing your resume. If you took a class and didn’t succeed at it, didn’t like it, or didn’t understand it, do not list it on your resume. The class you dreaded could be your interviewer’s pet interest, and he or she might want to ask you all about it. Not knowing much about something on your resume looks much worse than if it wasn’t there to begin with.
Don’t lie … really. Do not say that you were “project lead” or “CEO” of a company. In college, many people create a “company” or lead a small team of people who are making games.
While you may be very proud of your accomplishments, the people looking at your resume could very well be CEOs and project leads—and they know you don’t have the same kind of experience they have. In fact, an over-exaggeration on your part might even be perceived as slightly insulting on their parts.
Lying, over-exaggerating, or including too many self-promoting titles on your resume makes it seem like you have a big ego and think your accomplishments are more substantial than they really are. For example, don’t list that you’ve been programming since you were 10 years old; even if it’s true, you won’t be taken seriously.
To avoid over-exaggerations and egotism, separate your resume into multiple sections, such as work experience and personal projects—that way, you can still list your personal achievements, but they are just that: personal, not professional. Games that you worked on for fun in college should go into personal projects, unless you actually made a decent amount of money selling them as shareware. If you were part of team management and you think that the experience will help you, then describe your accomplishments in a less direct way by saying, for example, “carried out some managerial tasks on project” to avoid giving the impression that you have a big ego.
Don’t waste space with non-relevant experience. You want to fill as much of the paper with experience that you think will get you into games, so don’t put non-technical jobs on your resume. If you’ve never had a technical job, then you likely need more experience before applying to a job in game development.
Do not pitch. Do not under any circumstances say you have great game ideas that you would like to sell. Everyone thinks they have great game ideas, but no company is interested in buying them from a job applicant. Your resume will go right to the recycle bin.
Also, you don’t need to tell the screeners and potential employers that you are a “fast” programmer at a software development job—you had better be fast in a regular software engineer position because the standards in game programming are much higher. Remember that a large portion of your graduating class wants to work in games. The competition is intense. Game development jobs go to those who can get the job done accurately and quickly.
Don’t tell the screeners that you can quickly learn new programming languages, libraries, or SDKs—that’s another basic requirement, and not just in game development, but in software development as a whole, and your resume experience should show it.
What to expect
Programmer test. Sometimes a company will give you a programmer test before they’ll bring you into an interview. Usually designed to see if you are worth bringing in for an in-house interview, these tests vary from company to company, so there’s no standard way to prepare for them. If the interviewer informs you that you are required to take a programming test, don’t ask him or her what to study for it. The idea of a programming test is to see what you know and what you don’t know, not what you can cram into your head for a short period of time.
Weighty interview. The interview is going to be harsh. While you might have made it through an initial screening, you still may not be up to the company’s standards. Whoever is interviewing you will grill you to try and squeeze every last drop of information out of your mind.
Needless to say, you’d better have a lot of knowledge. Recent college graduates are not expected to be experts on every aspect of game development (though the questions they ask might make it seem otherwise), but you still need to know a good deal. If you’re asked questions that you don’t know the answers to, try to answer them logically and calmly anyway. Part of what interviewers look for is how you work through a question that’s probably above your head.
If you’re asked a question and respond, “I don’t know,” it’s a huge strike against you. If you’re the type of person who immediately gives up when presented with a problem or challenge, then you aren’t an ideal employee for a job in game development.
Here’s a strategy for how to handle the above situation: Start by saying what you do know about the problem and indicate what information you’d need to solve it. Interviewers want to see your thought process. They might even offer you hints to help you solve the problem if you’re headed in the right direction.
If, in an interview, you’re presented with a math or physics problem, never say, “I’d just look the formula up in a book.” If looking things up in a book is all you’re good for, then the company can just purchase the book for a lot cheaper than they can hire you! Try to deduce the answer instead. You should also definitely bring up relevant information that you learned in your last two years of college; so if you have trouble with your assignments from then, review them before an interview.
Your first gig
You will begin at the bottom. You have to get your start somewhere, and that place is usually at the bottom. You may work for a company that pays way below the industry standard, which is already significantly below what your friends with traditional software development jobs will make. You’ll probably have to work long hours for a small company making a sub-par game. Don’t expect to get a job working on the next title in your favorite game series just because you’re a huge fan. Your favorite game series probably got that good by hiring experienced people, and experience is something you lack coming right out of college.
Smaller companies working on lower budget games will be more willing to give you a chance—and you’ll probably have more room to grow and experiment with new techniques in that type of environment. It may not offer you the best financial rewards, but you’ll learn a lot and get experience, so you can move up.
Word of mouth. The game business is still extremely small compared to other high-tech industries. Word-of-mouth still goes a long way here, so your boss at a five-person studio may be a prime reference for (and personal friend of) the CEO at the next company you move to.
If you have the right experience and resume and have reasonable expectations regarding your interview and first job, you can definitely get your foot in the door of the game development industry. If you read this and are reluctant to work your butt off for low pay, then you should consider a field other than video games.
If you find math and physics confusing or you aren’t a hardcore coder, then game programming probably isn’t for you. If you still want to be involved in the game industry, there are many other positions for which a technical background also helps. Programmers make for great game testers because they understand the game’s implementation, so they will be better at guessing what will break. Producers who have a good understanding of programming can have more reasonable expectations from the programming team. And game designers with a background in programming won’t be intimidated by the task of scripting.
If you read this article and are still enthusiastic about doing what it takes, then there’s a position in the industry waiting for you. Now all you have to do is find it.
