About this blog
Getting Hired as a game developer
Entries in this blog
[size="3"]If you are reading this then many times you have read or have written, "I am a beginner and I want to make games..." followed by "What language is best?" or "What should I major in?" or something to that affect. The simple answer is:
[size="3"]There is no spoon! (oh just wait there is going to be major geek-dom here) When it comes to the hiring of prospective game programmers, I have seen people make it through the phone screen, the programmer test, only to fail the in-house interview. Then there were people (like myself) who totally bombed the programming test and shipped two games AAA games. Now that wasn't a bragging point, it was to show that there is no path to follow, just your heart (dude, cliche - fail).
[size="3"]On average, the software engineers I have worked with have started programming around the age of 12-14,and never looked back. That is not to say that if you haven't by then you're behind the eight ball, but when you do get infected by the code bug, it just grips you. Passion! Something that all my employers looked for in their engineers. Code, and code often, code anything,and in any language to start. The more you code the sooner you hit the n00b milestones / classic program bugs. I can't tell you how many hours I have wasted debugging C/C++ stuff like if ( objectPtr =NULL).
[size="3"] HEAVY_SIGH . The milestone for 3D programmers - Gimbal Lock, have fun with that. Though if you can fix it using only matrices you will probably have a good career in the game industry. Finally the sooner you start programming the sooner you will get a feel for what you are good at. General game programming, UI programmer, or tech programmer.
[size="3"](please do not leave comments on why you should or shouldn't use matrices for gimbal lock no one is impressed nor does anyone care.)
[size="3"]The more languages you know the better chance you have at getting hired. We never hired any engineers withone language under their belt. We generally hired people with astrong C/C++ background, and strong math skills. C#, java, any scripting language were bonuses. There was one time when myself and two other engineers were asked to judge a "Senior final project event" at college that offered a game programming program. We saw many projects some good, some bad, some very bad. We started to speak to the teams with good projects and the discussion went something like this:
[size="3"]"This isn't bad how long did it takefor you guys to get this running ?"
[size="3"]"Pretty much the semester"
[size="3"]"Wow all this in four months? What did you guys use?"
[size="3"]"We used XNA and C#"
[size="3"]"Not bad, did you guys consider C++?"
[size="3"]"We tried to write it in C++ to begin with, but our pointers kept crashing so we just went to C# It was so much easier"
[size="3"] HEAVY_SIGH .
[size="3"]We were so deflated when we found out this was the sentiment of the entire senior class. We have yet to hire anyone from this college. Not because C# is inferior, but because we could not waste the time and resources in teaching fundamentals. Entry level employees are unproductive for the first six months learning the ins and outs, to compound that with teaching basics, is just a waste of time.
[size="3"](All programming languages have a place in the game industry I believe there is a correct tool for a specific programming problem. Currently C++ is the work horse of the console/PC industry. I am not happy about it. I would prefer to use C, but even I can not deny the design benefits to OOP. So don't label me a fanboy now, moving on.)
[size="3"]Computer Science, is a favorite item to see on a resume, it is not a complete deal breaker if its missing. In those four years you will be exposed to many principles used ingame design / programming. So that's why would we look for it. If you gained that exposure elsewhere then you still have a shot at getting hired just sell it and sell hard at the interview because dude, it's your chance to make games.
[size="3"]Sooner or later you are going to realize that all that coding is starting to pay off. You're programming forum posts go from "Can someone tell me why my code won't compile" to "Anyone have experience with bicubic-up sampling for less blurry textures?" (ok, not quite but you get my point). When you can look at a game and figure out how they probably put a feature in place, or understand articles discussing how that feature works then it is probably about time to consider your place in the industry. Because it is the type of discussion you are likely to have during your interview. "Oh you like the smoke effects in our game? How would you improve it?" (better not BS your way through it).
[size="3"]For the studio I worked for your technical ability weighed 50%. Another 25% was whether or not you we liked you personally. We had you come in around 10am sign the (non-disclosure agreement) brief introductions, small tour, show the project you are being considered for, give you a programming test ~1.5 hours and then take you to lunch. There we got to know you the best we could for an hour. [size="3"]Things we looked for were can you hold a conversation, do you have interests outside work? Or are you going to burn yourself out in your work. We are looking to see what kind of personality you have? After we were done with you at lunch we just passed you along from team to team, to see what they thought of you and to see if you can handle being asked the same question 6-7 times. You see, once your are in the illustrious game industry you get all that comes with it. That means, E-3 builds, console demo release builds, Beta, Alpha, then gold submission TRC/TCRs resubmission (wash rinse repeat). CRUNCH BABY CRUNCH! You see, you and your team will spend many hours together, possibly more hours than you spend with your family, and you love them (maybe?) We want to make sure that we as a team are going mesh well and fire on all cylinders because we are going to be grumpy at 2am hunting your bugs because you thought it was a good idea to sleep(10); in the render thread because without the game crashed. (REALLY?! N00b that was yoursolution to the crash!?) If we like you, we are more likely to forgive stupid decisions like that. If you were a tool for the last 12-18mos then more than likely sleep(10) is the last bug you caused for us. Many extremely smart individuals never got a call back after the in-house interview, it was that important to us. The other 25% was split among other factors, your passion, your individual needs, salary requirements, relocation issues, the list goes on[size="2"].
[size="3"]If you were fortunate (or unfortunate however you want to look at it once you) make it into the game industry, you are going to realize one thing. You know nothing! Your feeble skills are no match for the power of the dark side (dude I am game programmer nerddom is right of passage). I was fortunate enough to sit with some of the finest minds in the industry. When you think about it the physics guys probably have a masters or higher in physics others in mathematics. Most of your co-workers could go off to make six figures at JPL but instead they make games. Learn as much as you can from these people because the game industry is now a revolving door. Once you finish your first game count how many team members find new jobs.
[size="3"]I hope this helps answer the "What need I do to.." question. The answer is Nike! Just freaking do it.
[size="3"]The only advice I have for you once you're hired is.. for the first year of work never say "It's easy all you have to do is... " because it is never all you have to do. Good luck with your future endeavors.