-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Title: Getting a job in the games industry Author: Harvey Cotton Update: 01/02/01 Mail: harvey.c@lineone.net Http: http://www.netyaroze-europe.com/~harveyc/ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ------------ INTRODUCTION ------------ This document is not going to be some long winded essay, I like to keep things concise and bullet point everything. Although this document is aimed at being a games programmer, if you wish to become an artist or work with sound, some of the information here should still be relevant. Please note, nothing on this document is designed to scare you off, nor does it make any guarentees. The best way to get into the industry is through hard work, there are no shortcuts. ------------ REQUIREMENTS ------------ Here is a list of things that will help your case, although some of it is essential. It is very VERY competitive out there now, so the more you know, the better off you will be. * Fluent in C/C++. This is essential. * Knowledge of optimization. Quite essential, even today. * A passion for games - playing and making! * Knowledge of the industry, Edge is a great publication for this and I highly recommend subscribing to this if you haven't already. * Some knowledge about the console hardware thats out there. * Knowledge of other topics: Mathematics, Geometry, Optimization, 3D viewing system, 3D graphics, 2D graphics Animation. AI and physics help as well. * To have made some sort of 2D/3D game. This shows enthusiasm, you don't want to go for an interview at the age of 23 and tell them you never attempted to learn games programming. ---------- WHATS NEXT ---------- Okay, so you have most/all of the above. Next step is the CV and demo disc. I won't tell you how to write your CV, thats for you to decide but remember a few things: * The style of your CV should be orientated around games development. * Do not lie or twist the truth on your CV, because they WILL ask you questions. E.g. if you have a passing familiarity of assembler, but you don't know how to apply it to anything useful - DO NOT put it on your CV, because they will throw technical questions at you. Demos are possibly the most important thing in my opinion. Reason being, it shows enthusiasm and your games programming ability. There are different ways you can show your demos, but it really depends on what you have access to: * Demo disc. On this disc you can put your source, screenshots, the executable files (more on this later), any WIN/DOS apps you have done and pretty much anything you can think of. * Colour screenshots of your work. If you do not have the ability to make your demo disc, extensive screenshots of you work plus some design documents will do just as well. If you are more resourceful you can put make your demo disc bootable on the demo disc, however I believe this is against Sony terms & conditions so please do not e-mail me asking how. However! All is not lost! Another alternative, if you have a video capture card, is to video capture your demo into an AVI file (like I did) and place it on the CD. The advantage of this, is that ANY interview you go to, all companies will be able to view this AVI as long as they have a PC :) One last thing, when you go to the interview remember to take your CV and demo disc with you. -------------------- GETTING AN INTERVIEW -------------------- There are two ways: * Apply direct. * Go to a recruitment agency such as Aardvark Swift. Generally speaking, applying direct is always better than using a middleman. However my recommendation is to do both. Either way, remember to send your CV and demo disc. When sending your CV to a recruitment agency, give them a copy of the doc file NOT the printout. Once they have the doc file, they can print it out themselves - photocopies tend to look nasty. ------------- THE INTERVIEW ------------- Getting the interview is usually the easy part, getting through it is something entirely different. Some things to remember before hand: * It can take up to 60 interviews to get an offer. Rejection is common, but during the interview never show signs of giving up. * Interviews can take between 1-6 hours, usually 2-3. This depends on both the company (their interview procedure) and yourself (e.g. do you have a lot to say, do you have demos to show, etc). * At the start of the interview they usually begin by telling you about the company, their mission, their products and so forth. Its always best to familiarise yourself first by making notes off their website, etc beforehand. They may also explain the package that they offer - salary, share options, etc but sometimes they leave this at the end. * After an introduction, proceed with a general set of questions, about yourself and ask you opinions on games, games development, industry, the future, etc. * Every company will make you sit a test/exam. You can think of it as a sort of aptitude test, to determine how you think and your abilities. This comes in the form of either a written test or they will throw hypothetical questions at you. This can often represent the bulk of the interview. * Lastly, remember to use plenty of eye contact, speak clearly, do not fidget and most importantly think very careful about what you say before you say it. If in any doubt, imagine you are them and how you would react to what you say. ----------------- GENERAL QUESTIONS ----------------- Most interviews start with general questions aimed at finding out who you are. The very first thing that happens, is with copies of your CV in front of them, they usually brush through it and ask you questions about what you've got written down. During which, they will ask the following: * Tell us about yourself. * Why do you want to work in the games industry? * Why should we employ you? What are your best attributes/strengths? * Favorite game. This is a tough one for me, list a few games or state the most recent games you played that you liked. Saying you don't play games won't impress them. * What is the most important factor in a game? * What is the future for the gaming industry? * What consoles do you own? * What is your opinion on the consoles currently on the market? * How long have you been programming for? * How long have you been making games for? * How good are you at C/C++? Daft question in my opinion, but its best to state you can't judge yourself, so instead tell them how long you have been programming C/C++ for. * What kind of position do you seek? Best answer is anything appropriate for my profile unless you have something in mind. * What salary are you looking for? * When can you start? Soon as possible is usually the best answer. Its best to have these answered before you go into the interview, so you don't fumble or say the wrong thing. -------- THE TEST -------- This is usually where they decide whether they want you or not. How the test is conducted and the content of it can vary greatly, but generally they will give you some sheets with questions and go through them with you. Topics that usually come up (but not always all in the same test): * Pointers, memory allocation, strings, dynamic data structures. This is the most common thing they will ask. * Object orientated programming. Inheritance, polymorphism, encapsulation, etc. They may also ask the difference between C and C++. * Optimization techniques - virtually everything imaginable from duffs device to the usage of macros. * Recursive functions. This appears a lot, not sure why though. * Animation techniques. Double buffering, frame rate, etc. Another popular questions - how do you compensate for changes in frame rate? * General 3D math, such as dot product, cross product, normal, etc. * 3D viewing system and matrices. I.e. steps from getting 3d object to the screen. * 2D/3D geometry. * Data types & keywords. Everything from unsigned long to static variables. * Hypothetical questions, such as how would you render this, how would you clip this, etc. * Debugging/optimize a piece of code. * Writing code. E.g. a function that copies one string into another. When answering questions, do not take too long. If you don't know the answer just say you haven't come across this before. ----- DEMOS ----- Showing them your work can make a HUGE difference. People can often mess up on tests often because they are nervous, but showing them your work will hopefully convince them you are what you say you are, and that you are not an idiot! If you have your screenshots on paper, they will go through them with you usually at the start of the interview whilst going through your CV. If you have a demo disc, they will leave this until after the test. Remember to brush up on the work you done, they will ask you all kinds of crazy questions. ----------- THE VERDICT ----------- One of three things happens after the interview: * They will offer you the job. They usually ask you to come back for a second interview, unless they REALLY like you. * They will say your unsuitable for the job and explain why. Some interviewers won't be afraid to tell you right there and then! * They will tell you they will get in touch with you in a few days. After which they will call you up and arrange a second interview, or they will send you the good old "good luck" letter. During the interview, you can usually tell by their expression and enthusiasm whether you will get the job or not (you will see what I mean). ------- SUCCESS ------- Assuming you don't immediately take the first offer, don't be afraid to go on more interviews and to see what other offers you might get, but don't wait too long either - positions are always filling up. Once you have taken an offer, the next step usually involves posting you a contract and you state when you wish to start (in case you need time to sort out travel to work, or move etc). After that there is a 3-month trial period, whereby they can fire you if they are unhappy with your progress. ------- THE END ------- Well, the rest is up to you. I wish you all the best finding a career in the games industry. If you wish to find out more about the topics I have mentioned, there are a few good books I recommend: 3D Computer Graphics Third Edition - Alan Watt ISBN 0-201-39855-9 This is a great book which starts off with basic 3D graphics and goes on to cover more advanced topics later on. Tricks Of The Windows Game Programming Gurus - Andre Lamothe ISBN 0-672-31361-8 A fantastic book that covers an enormous range of topics, including DirectX, 2D games, optimization, data structures, sound, AI, physics. Includes discs containing source code and 3D tutorials. Finally, if there are any problems or mistakes, or if you wish to add something, don't hesitate to e-mail me.