Thursday, July 9, 2009

What sort of knowledge is needed in order to get a job into the game programming industry?

Hello, hopefully game company recuiters. I am an aspiring game programmer. I've dipped my heels into code and have a some-what novice, if almost under developed sense of programming in C++. I'm curently trying to find good reading material on how to program but am having trouble figuring out what sort of knowledge is needed to actually write good code/algorithems. I know a good foundation in C is needed and a degree in Computer Science is a plus to getting a job, but I need to find a way to prepare my mind for this difficult and challenging road ahead. And so I ask all of the Yahoo! members their advice on my situation. I need to know what sort of math is involved and maybe even what sort of physics I should learn before I even thinking about sending my first demo and resume. I know calculus, algebra, and all forms of the suffix -ometry are a must. But there has to be something I'm missing. So please send me anything that might help. Promise to cut you a deal on a personalized demo ;)

What sort of knowledge is needed in order to get a job into the game programming industry?
It sounds like you are on the right path, but you have a ways to go. You will definitely need to get a Bachelor's degree in Computer Science. This is a requirement, not a plus.





A major in CS will teach you most of the skills that you need to know. Being able to learn new languages is very important. Along with the suggestions of others here, I would suggest becoming well versed in databases and AI, as both are used extensively in game programming.





Don't stress too much over a game demo, since that is usually not needed to get hired as a programmer. If you have a degree in Computer Science from a good college and have good code samples, you should be able to get an interview with a game company that is looking to hire programmers without much trouble.





To give you an idea, these are from a couple of job postings on Gamasutra.com, looking for programmers:





Requirements:


-Expert knowledge of Java, our primary platform.


-Familiarity with Unix environments and SQL (mySQL).


-Knowledge of good software engineering practices and the willingness to learn.


-A strong educational background, not necessarily in Software Engineering.


-Game development experience or a demonstrable interest in creating games.





Bonus Points:


-Experience with realtime 3D rendering technlogies and techniques.


-Experiece with Flash and Actionscript.


-Leadership and/or ownership roles on complex, major projects.





--





Qualifications:


-Bachelor degree in Computer Science or related field, or equivalent training and professional experience


-Proficiency with C++ (Visual C++ or Visual .NET recommended)


-Experience in object-oriented design and implementation


-Demonstrated knowledge of good software engineering practices


-Understanding of memory management, multiple processor use, and runtime optimization


-Strong math skills including trigonometry, calculus and linear algebra


-Good verbal and written communication skills


-Ability to work in a dynamic team environment





Assets:


-Prior experience shipping a console (i.e. PS3, Xbox 360, PS2, GameCube or Xbox) product


-Experience with assembler (MIPS, VU Code), scripting languages (Perl, Python, Lua) and C#


-Experience with graphics tools such as Maya, MotionBuilder and Photoshop


-Ability to test, debug, and extend other Software Engineer's code competently
Reply:Well, since you already have all these knowledge all you really need is experience.





The best place to start getting experience is to join a team who Mod games, or create your own team.





Pick a game to mod and when you've finished the mod, this can be your solid reference about your ability and knowledge.





Don't start making your own games since you'll never gain the epxerience you need from it. Besides, when you Mod an existing game, you'll be expose on how they made their battle calculation and dealing with many random factors.





Don't rush, take your time, get a good grasp of what you're doing and you'd learn faster than going to school. But you still need to go to school if you want that flashy degree.





Good luck.
Reply:I feel that to succeed in game programming you need a strong background in Linear Algebra and a good understanding of General Physics. If you can add that to your resume, i.e. claim a strong grasp of these basics, then that will get them to look at your demo.





I'm not in the industry, but know people who are in it. I took courses in Image Processing/Graphics as part of my graduate degree. What I really struggled with in completing the projects was not programming with C/C++ (which anybody can do well with enough practice), but the underlying mathematics in which I never really built a strong enough foundation.
Reply:If your planning on programming a game engine for a company then being VERY well versed in


C++


computer optimization techniques


trigonometry


calculus


the application of math to game programming


DirectX programming





However there is more to game programming than just programming the engine. In fact MANY game companies DON'T program their own engines. So just being able to understand the above well enough to be able to modify code is a good place to start. I'd recommend download one of the many open source 3d engines and start familiarizing yourself with them.


No comments:

Post a Comment