My whole background is related to enterprise applications but I've been thinking of switching my career path from enterprise/business to something that I feel is more challenging and interesting. One of the main fields I've checked is game programming and more specifically engine or graphics programming. One of the requirements I've set is that the new domain requires at least some math/computer science knowledge and have interesting problems to research and solve (hopefully even read some white papers). Graphics programming especially seems to have lot's of that in addition to being interesting in general. I've already started studying the related mathematical background via this book and I believe my general experience in developing and releasing quality software (5+ years) will quickly translate, with the right mentorship, putting me at a level of usefulness of a mid-level game programmer at least.

How should I go about proving this to potential employers? I don't feel like creating small sample games really amounts to anything. Familiarizing myself with an engine like Unity or Unreal seems like a good approach but I'm not sure how to go about it in an engine focused way. I'd potentially like to avoid Gameplay development which is why creating games seems redundant.

I don't want to enter subfields such as server programming or any field that is web-appy but under the umbrella of a game company. I'm also looking to transition relatively quickly which is why I don't want to invest in a game company as a web app developer only to hope to be put into game domain later.

TL;DR: I'm looking for ways to enter the "sciency" side of game programming (graphics/engine programming) with a background in enterprise web apps.

  • \$\begingroup\$ Another potential route you may consider is to focus on developing interesting game technology. Oskar Stålberg's work applying Wave Function Collapse, or Iñigo Quilez's raymarching demos come to mind as examples of areas that could scratch the itch for technical challenge, while also being quite showy and interesting to share online, building and impressing an audience, helping you develop a reputation to get your foot in the door at a studio, in the absence of a catalog of shipped games. \$\endgroup\$ – DMGregory Aug 27 '20 at 18:30

This is a bit of a Catch-22, unfortunately.

It's mainly the larger studios who need dedicated engine and graphics programmers, building out, porting, and optimizing custom engine features or rendering pipelines.

The ready availability of flexible, full-featured, off-the-shelf engines like Unreal and Unity means that many small studios are able to get the engine support they need out of the box, or with a much less specialized path of Asset Store plug-ins or modifier scripts. They'll usually have technical artists or general programmers with engine experience, but they don't necessarily need a large staff of full-time engine or rendering programmers.

The large studios, meanwhile, are largely looking for folks with experience shipping (large) games. Especially so for engine/graphics programmers, who have a specialized and often fairly senior role. So hopping straight into a position like that could be very challenging, unless you've already been in such a position, hence the Catch-22.

Even if non-engine code is not your passion, I'd suggest that it can be an easier route into the industry. Studios of all sizes tend to need more gameplay and UI programmers, and as you've found, it's an easier skill to demo in your portfolio to give the studio confidence they're hiring the right person.

Once you're in, you can start looking for advancement paths within the organization into more specialized roles. In the meantime, you'll be building up a portfolio of finished games you've shipped with that team, which can open up doors for you elsewhere, even if advancement in your current team is limited.

This also gives you a way to start earning income in your chosen field while you continue to hone the specialized skills your dream job needs - maybe even benefiting from company-paid training and conferences - instead of having to build all those skills on your own before you can make your move.

  • \$\begingroup\$ Ouch, that's sad since I mostly want to avoid the gameplay/ui programming part which I feel is much more prone to crunch time and other stressful situations in contrast with engine related roles, in addition to not being that interesting. \$\endgroup\$ – PentaKon Aug 27 '20 at 13:00
  • \$\begingroup\$ The best solution to that is to not work at a studio that believes in crunch, which is what I would recommend to every game developer. Gameplay code might surprise you though. Especially if you get to work on 3Cs (character, controls, and camera) or AI, you'll find quite a lot of interesting mathematical and geometric problems to sink your teeth into. \$\endgroup\$ – DMGregory Aug 27 '20 at 13:08
  • \$\begingroup\$ Hmm interesting detail, wasn't aware of the 3Cs \$\endgroup\$ – PentaKon Aug 27 '20 at 13:16

You need to know what game design is. There are many different type of games...and when you know what type of game what type of audience, and many game design related topics you will have no problem with choosing the right engine...and graphics. Ex: I want to make a 2d game... I want to apeal to darksouls audience... I want networking inthe game... I want to be able to scale the game (size graphic updates etc) Mybe godot can do that? Ok I will check godot then unity

  • 1
    \$\begingroup\$ This does not appear to answer the question that was asked, which was about how to transition from programming enterprise applications to graphics and engine programming in games. The question did not ask about game design or about choosing an engine. \$\endgroup\$ – DMGregory Aug 27 '20 at 18:24

Not the answer you're looking for? Browse other questions tagged or ask your own question.