Best C++ Jobs?

Apr 8, 2011 at 3:09pm
What I really want to do is work on video games, it sounds like a blast where I would love going to work every day and hate leaving. But I've read a couple places that game programmers get paid next to nothing? Obviously having fun on the job is extremely important, but let's be honest.. so is money! So do video game programmers really get paid next to nothing? Are there any similar, higher paying jobs? What do you think is a fun programming job? What are the highest paying programming jobs? Sorry if this isn't the right section, I don't think it fits criteria for being in the jobs section.
Apr 8, 2011 at 3:14pm
I think you are overestimating the fun game programmers have. Sure, it is somewhat fun for many, but it's hard work.

BTW: The salaries aren't that low. According to wikipedia, the average salary for a game programmer is about $80,000/year (http://en.wikipedia.org/wiki/Game_programmer#Compensation )
Apr 8, 2011 at 3:22pm
Thanks! I suppose in the end it doesn't really matter, I'm working on learning programming (then going to school for it) regardless. If I can't find a high enough paying job in the video game field, I could just look somewhere else.. or start my own business (my eventual goal anyway.) One more quick question was should I focus 100% of my efforts on learning C++ right now? I'm only 20 years old and after college I will probably be around 25 years old (still saving up.) So is C++ still the primary programming language or is C#, Java, etc., beginning to take over?
Last edited on Apr 8, 2011 at 3:25pm
Apr 8, 2011 at 4:18pm
For games, C++ is definitely still the primary language. Still, it won't hurt you to look into other languages (and tools) as well. It's more useful to think about the concepts that you are trying to implement before you think about the actual implementation, for that matter the language doesn't matter anyways.
Apr 8, 2011 at 4:47pm
A couple of things... the salaries range from 50-150k. It depends on numerous factors including experience, the company, the type of position, education, etc..., but 80k average is probably pretty accurate for someone with a few shipped titles. 10 years ago however it was VERY low. This kept the industry from attracting quality candidates honestly and is why you'll find so many game developers without degrees. The guys with CS degrees took business app jobs that pay well.

As far as getting employment in game development, you can't just apply and get a job. Your experience as a programmer and education are a small portion of what is considered. The most important part of your application is your portfolio. If you don't have one, you won't even be considered. And I'm not talking a tic tac toe game. You need something significant and impressive. Only the best programmers get into game development now due to the advanced mathematics, physics and programming. You aren't writing simple gui apps, your developing high performance simulations.

While the job may seem like fun, realize that the average game developer works 60+ hours a week as opposed to a typical developer that averages around 50. Granted the type of work is much more enjoyable. Most programmers would much rather write an inventory system and collision detection than work on an accounts payable enhancement!

The other thing to take into account, and I see this happening constantly, is you don't just apply for a game developer position. Game programming positions are typically broken down into the following:

1. Tools Developer - Responsible for developing support tools for the project team, whether it's a level or object editor, a Maya extension or some other tool. You'll find that these positions are usually easier to obtain. Typical skill sets include C++, C#, Java, various APIs, MEL or MaxScript, lua/python, and often database programming.

2. UI Developer - Responsible for UI development. You'll find a lot of human interaction specialists and web developers falling into this role. Another position that is easier to get in. The skill set is the same as a tools developer with the exception that you need competency in whatever API they are using.

3. Engine/Game Play Developer - This is what everyone refers to when they say "I want to be a game programmer." This is core development where a CS degree is quite essentially. You are expected to have excellent mathematics skills (linear algebra, trig, etc...), some exposure to other languages, multi-threading experience, physics, code optimization, etc... Usually you are only required to be high proficient in C, C++, or both since you really only work on the game engine.

4. Web Developer - Responsible for a lot of the customer facing applications. Standard web dev, nothing special unless its a browser based game.

5. Graphics Developer - All 3d programming in OpenGL or Direct3d. This is a highly specialized position.

6. AI Developer - All the artificial intelligence in the game. Another highly specialized position.

There are a few other types of positions but those are the main categories. So the question is, which do you want to do? Which ever you choose, you should pursue a Computer Science degree which will equip you the most. Don't bother with a CIS degree unless you want to just program business apps. You'll find the education that is sought after is CS, Physics, and Mathematics. Computer Information Systems isn't a waste of time, you'll just be missing out on a lot of concepts that are heavily utilized in game programming. I'll stop here for now... hope this helps.
Apr 8, 2011 at 4:56pm
@Return
That was a TON of help, thank you so much for that long write-up and all that information. I am definitely most interested in being a CLIENT game engine developer (not server) at this time. Right now my plan is to continue studying C++ continuously at home by reading books and (mostly) writing my own small programs to put my skills to the test.

Then in a year or two, when I can afford it, go to college for computer sciences and business. I suppose I will take more advanced math classes as well since, as most people know, this field is EXTREMELY competitive right now. Finally, I plan on getting a job as a game engine developer and eventually working on my own software and starting up my own business.

Any tips/advice on specific courses that would be extremely helpful to me, types of programs I should self write for a portfolio, or any other advice at all would be helpful. I would really like to have some sort of edge when the time comes to apply! ;)
Apr 8, 2011 at 10:24pm
You should be comfortable with matrices, matrix manipulation and transformation, so you'll want to take the appropriate math courses. Also, any graphics programming courses.

You should write graphics-oriented programs that demonstrate your ability to manipulate matrices, paying close attention to writing code that is fast (you want the highest framerate you can get).
Apr 9, 2011 at 3:09am
I just started my career as a software engineer and I think there's something to be said here about work environment. One of the things I love about being an engineer is making my own hours, wearing jeans to work and being left relatively alone. When you go to interviews be thinking about your interviewers as you talk to them and consider "do I want to be working with these guys every day?" All I'm saying is sometimes work environment makes the work subject more enjoyable, so dont restrict yourself to video games, there are plenty of other interesting software projects to work on.

Oh and focus on c++ because c++ engineers can basically apply their knowledge to any other language and not the other way around.
Last edited on Apr 9, 2011 at 3:12am
Apr 9, 2011 at 3:40am
ceruleus wrote:
One of the things I love about being an engineer is making my own hours, wearing jeans to work and being left relatively alone.


This does not at all represent the typical work environment.

ceruleus wrote:
Oh and focus on c++ because c++ engineers can basically apply their knowledge to any other language and not the other way around.


I disagree, you need to know what other technologies are available. It's unlikely you'll find employment where you work with one specific technology and while programming concepts in general can be applied across all technologies, you still need to be familiar with what's out there and competent in a few.
Apr 9, 2011 at 2:41pm
This does not at all represent the typical work environment

My point exactly. Lol @ code tags
Last edited on Apr 9, 2011 at 2:42pm
Topic archived. No new replies allowed.