Becoming a Game Programmer - What to Learn Next?

Started by
8 comments, last by agm_ultimatex 14 years, 8 months ago
Here's my situation: I'm moving to Montreal next year, and plan on scoring a game programming job. I'm a graduate from college Computer Programming, so I consider myself partially qualified already. I have a contact already in the industry who let me know the things her employee looks for in new game programmers (both 2D and 3D). Here are a few of the things she mentioned: -Vector Math -Knowledge of C++ or Java -Knowledge of XML -Knowledge of OpenGL, DirectX and Allegro -Knowledge of sprites (alpha channel and such) -A good demo So far: -I've reviewed alot of my college math (trig and algebra), and learnt about vectors, dot products and such. -I took Java courses in college, so I'm learning C++ on my own. I consider myself past basic level, but I still have lots to work on until I'm satisfied with my skill (I heard intermediate level is desirable). -I did some research on XML and BMP sprites to grow familiar with them (and kept notes) -Working on a portfolio website, which has one Flash Game in it so far I think my next step is to make another game using what I know so far. Perhaps I'll program it using Allegro, in order to gain to experience using it. Is there something I'm missing? Is there something I'm not putting enough importance on? Thanks for your input
Advertisement
Well I asked a few of the game programmers at the place that I work and they said make sure you have a good grasp on the terms and what they mean. Make sure that if somebody asks you about polymorphism you can explain it on atleast a basic level, as well as things like what a dot product is what a cross product is, etc.. That is just what they told me that they were asked at job interviews. Also be prepared for some logic problems, as well as a skills test that is something I've heard quite a few companys will give you at the interview.

Darcmagik

Of all the things I've lost I miss my mind the most.

Make sure that, in addition to knowing pen and paper maths, you've actually used it for something. There's a world of difference between a graduate who can rattle off the textbook definition of a dot product, and one who can actually use them to solve problems.
There are many aspects of game programming. Be it engine design, physics, AI, network, sound & audio, GUI, sprites, 3D models etc.

You may want to figure out which areas you are good at and where you want to work. Unless you are working for a startup, you'll most likely get slotted into a specific section based on your skill level.
Great thread! Thanks for posting this up. I often wonder what translations and requirements game programming companies are looking for when making a transition from theory into real world application.

Quote:Make sure that, in addition to knowing pen and paper maths, you've actually used it for something. There's a world of difference between a graduate who can rattle off the textbook definition of a dot product, and one who can actually use them to solve problems.


This is a very good point. I know quite a few times myself I have been guilty of this. Its one thing to know how to work out the maths on paper, and its another to know why it works and where it can be applied to serve you best in game programming.

IMHO it might be very beneficial to start up a thread covering some of these mathematics and not only showing how the math works, but why they are important and what they are used for in game programming. I think its easier to relate to something and learn it when you know that it has multiple specific purposes in game programming. If there is already something like this then please point me to it, but if not then I would definitely be willing to contribute to something like this.

Michel_Carroll: Good luck on your portfolio. :) Continue to keep us posted on your learning path.
------------------------------------------------------------visit my: homepage
About portfolios, they are the absolutely most important thing when applying to a game programming position. You have to have a solid portfolio with relevant work in it. Most studios won't even call you in for an interview if you don't have something to show. And when you do build your portfolio, don't include "basic" stuff like your own implementations of linked lists and stuff like that. Instead, focus on solving game-related problems. The best thing is to have several small to medium sized working games in different genres. Try to show that you know how to find the right tool for the right job in your demos. Also, make the source code for everything available.
I worked as an intern last summer in a commercial DS game. While this experience isn't very reperesentative of actual full-time work in a gaming company, I did learn a few critical things.

Note that, as cmv had said, you should focus on building a resume rather than experience. I'm still an undergraduate student working at a local company, so I had a lot of leeway. Aside from researching important C++ terminologies (pointers, templates, stack vs heap, etc), there isn't much I can help you with there.

The advice I write here applies after you earn your job:

1) Learn to read someone else's code, especially those poorly documented. Working with an unfamiliar game library is a great way to get you started. Learn to research your code, through "find", Visual Studio plugin, internet, whatever. It's by far the most valuable skill with any software development process, particularly those as rapid and hectic as games.

2) Know how to use your tools. There's a steep learning curve in using IDEs as complicated as Visual Studio and Eclipse, so learn to use those ahead of time. Commonly, companies uses SVN, Bugzilla, and other development assisting softwares as well, so search into that.

3) This applies more to handhelds: learn how to write efficient code. This tends to be as simple as using "int size" for the middle conditional for-loop instead of "vector::size()".

2) Know what you--and others--are good at. Learning what you're good at makes the job fun. And learning who is good at what helps strengthens your weaknesses.
Thanks for all your great advice.

This all gives me a very good idea of where I should be heading for. I'll definitely keep this message board posted on my progress, and the status of my portfolio.
I have one last small question. I thought I would post it in here, since it's very relevant.

How much have the prerequisites for becoming a junior game programmer changed in the last 5 years? I see a lot of articles from around 2005 describing the general demands of the industry, but not a whole lot from 2008-09.
Doesnt hurt to look around at job postings. A lot of them want good problem solving skills, or describe an example of you solving hard problems. Same with being a programmer, being able to apply those skills. Having the skills you listed as well, C/C++, familiarity and a passion for games, a hard worker, etc.

I live in southern ontario, and its something im kind of considering as well, going into the industry, finishing my program soon. Been mainly applying to web developer jobs currently.

This topic is closed to new replies.

Advertisement