🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Professional Game Programming

Started by
3 comments, last by Vega185 5 years, 9 months ago

I wanted to ask a question that I can't seem to find a good answer to wherever I look. If I'm looking to pursue game programming professionally at a large AAA company, what level of programming should I be focused on? Should I be working at higher level like in Unreal or Unity, somewhere in the middle like SDL, SFML, Monogame, etc., or at a level even lower like directly with OpenGL, DirectX, etc? Obviously, if we're talking about a job like a graphics programmer or engine programmer then interfacing directly with OpenGL makes sense, but for something like an junior gameplay programmer would I get more mileage by working with a framework like SDL? To put it another way, what level of depth are companies looking for in a general junior programmer?

Advertisement

No answer yet? That's quite rare.
 

Take the following with a grain of salt. No warranties.

As you've already figured out, there is nothing like a universal qualification to get you into AAA game programming. Depending on the programming tier/level/field you want to work on, different experiences are required.

Quoting EA (the *insert what you want* development studio) for a Software-Engineer position: "Bachelor degree in Computer Science or related field, or equivalent training and professional experience".
If you already study, or have studied, Computer Science: You're good to go.

 

If not, the second part comes into play: "equivalent training or professional experience".

The following doesnt care what engine or framework you use, or whether you've written everything yourself. What matters is that you have something to show.

This could for example mean that you have

  1. already released games, either as a solo, or part of a group (where your work is noticeable), the more successful the better, not necessarily monetized
  2. absolved an internship at the same or another game dev studio, including indies
  3. contributed source-code to open-source projects (e.g. via merged pull-requests) of significance (only changing variable names or adding comments for readability is not enough)
  4. written code in a field closely related to the position you want to join (Should clearly not be a simple rewrite of something already existing like the OpenGL tutorial):
  • a Renderer, or a wrapper API for multi-backend rendering
  • a collision framework
  • platform abstraction layer
  • ...

Another very realistic option is having connections to workers in the industry. Those can either come from family and friends, from game-jams or hackathons you've participated in, or something simple like leaving an impression on the online lecturer of a programming tutorial or a professional roaming the forums, visiting an exhibit, ....

 

Should you already have a company in mind that you would like to join, try to find out which programming languages, frameworks or engine they use. The easiest example would be Epic, which uses its own UE4 and mostly C++. Working for a company like square enix or nintendo as a non-japanese might prove more difficult than joining an american contendor such as EA, or the french Ubisoft.

There's also companies like Havoc, that do not make games themselves, but provide necessary frameworks used by game companies. Landing a job there could eventually allow you to switch over to a partner company.

 

Since you're looking to be a programmer,  be the best programmer that YOU can be.

Companies are looking for whatever they are looking for and that is completely out of your control. If you develop skills at a graphics API because you love the field that is wonderful for you, but you'll be skipped if the company is looking for a tools engineer, or an audio engineer, or a network engineer, or a gameplay engineer.  Similarly if you are the guru of audio programming, the company may not hire you if they're looking for a graphics engineer, or a network engineer, or a gameplay engineer, or a backend server engineer.

 

For all workers I look for two questions.  Can they do the job we need? Will they fit in with the company?  Regarding the first one, at the junior level that USUALLY means a 4-year degree since that requires some broad study, and it requires that I can see you write code that is reasonably bug free.  Regarding the second one that requires in the interview you appear passionate rather than bored or disinterested. It also means matching things you have no way to predict, we may be looking for someone who is highly energetic and boisterous or someone who is reserved; we may be looking for someone who is assertive or someone who is more modest; we may be looking for a potential leader or a potential follower; we may be looking for someone who is similar to past hires, or for someone who has opposite traits from a bad experience who was recently fired.

In all those cases you cannot affect what the company is looking for.   One interview may demonstrate precisely what a company is looking for, but exactly the same interview could be strongly against what another company is looking for.

So don't worry about getting a specific technology or a specific skill or a specific tool. Become the best developer YOU can be.

Thanks for both of the lengthy replies! It clears up a lot. I was always so confused looking at job descriptions for game programmers since they tended to be so vague and broad compared to job descriptions in other areas of programming.

This topic is closed to new replies.

Advertisement