Becoming a game engine programmer

Started by
11 comments, last by Tom Sloper 8 years, 5 months ago

How do you become one? What do you need to show in your portfolio in order to qualify as a competent engine programmer?

Also, if you're an engine programmer, how did you get there?

These questions have been on my mind for quite a while now, and I'd be highly grateful if engine programmers here in GDNet would share their experiences.

Thanks!

Jam

Advertisement

How do you become [an engine programmer]? What do you need to show in your portfolio in order to qualify as a competent engine programmer?


You usually become one by first working in the game industry as a programmer. I guess what I'm saying is, engine programmer isn't an entry-level position.
Your portfolio should include a game made with an engine you programmed or helped program (if the latter, the game should demo the aspect of the engine that you worked on).

-- Tom Sloper -- sloperama.com

How do you become [an engine programmer]? What do you need to show in your portfolio in order to qualify as a competent engine programmer?


You usually become one by first working in the game industry as a programmer. I guess what I'm saying is, engine programmer isn't an entry-level position.
Your portfolio should include a game made with an engine you programmed or helped program (if the latter, the game should demo the aspect of the engine that you worked on).

True, I guess I'll have to work my way up from a programmer to an engine programmer when I gain enough experience.

But, are engine programmers still relevant today? I mean, seeing that there's already a plethora of game engines like Unity or Unreal, I don't know how much *in-demand* a programmer experienced in developing game engines would be.

I'm asking because I see a lot of demand for programmers who know how to use a ready-made engine, say Unity with C# or Unreal with C++.

I've tinkered around with Unreal engine but have found no interest in pursuing learning it for making games, as I'm more interested in creating myself the underlying layers that make up a game. But if being skilled in using these engines is useful as a programmer then I'm ready to do it. Still, I'm confused as to what I should be doing right now in order to be skilled as a game programmer. My interests lie more into graphics, which is the core part of a game engine. So making one as a part of my portfolio sounded like the right thing to do. unsure.png

Engines like Unity still need people to add in whatever new features are needed. Small studios are going to almost never roll their own but a fair number of AAA studios still create and maintain in-house game engines. Even then if a studio uses something like Unreal there is a fair chance they will have to tailor it for their specific needs. So it probably isn't as easy to get a job as it was 10 years ago when it seemed like even every indie studio was making their own engine there is still a demand. But as Tom mentioned it is generally not an entry level position so it will be something you will have to work up to.

What do you think an engine programmer is?

Game development studios are nontoriously fast-and-loose with their titles. An engine programmer at one studio may be focused entirely on graphics, in another studio they may be focused on core technology like memory management and crash reporting, in still another they may do some combination of both, or may be the programmers responsible for the shared technology across all games whereas "game programmers" are working on specific titles (even if both programmers do the same basic work in the same basic domains).

So what is it you want to do? That's more important to the issue than what you want to be called.

What do you think an engine programmer is?

Game development studios are nontoriously fast-and-loose with their titles. An engine programmer at one studio may be focused entirely on graphics, in another studio they may be focused on core technology like memory management and crash reporting, in still another they may do some combination of both, or may be the programmers responsible for the shared technology across all games whereas "game programmers" are working on specific titles (even if both programmers do the same basic work in the same basic domains).

So what is it you want to do? That's more important to the issue than what you want to be called.

Thanks for replying!
Now that I think of it, I guess it's graphics programming that I'm interested in, though I don't mind working on other core technologies (probably not physics and a maybe for networking) but I find my interest mostly in the rendering engine right now.

Tinker with unreal engine more but also make modifications to that engine. Add new graphical features. Just learn how big engines are made and try to reason why those are made like they are. Most of the time engine programmers make the existing engine better and not just roll new one from ground up.

@Op - how did you get there?
I'm a graphics/engine programmer. I did mod programming as a hobby on the GoldSource engine for 4-5 years, until I'd basically read and tinkered with every line of gameplay code behind HalfLife 1. At that point I was a fairly decent game programmer and level designer, which is important as game programmers/artists are the clients of engine programmers - and a business that doesn't understand the needs of their clients is doomed to fail.

About here I started writing my own engine as a hobby.

Then I got a job doing game programming on Unreal, then a job doing tools programming at a company that wrote their own technology. Then because I knew what a shader was, I was able to transfer internally to an opening on the graphics engine team, and end up doing customisation on top of Gamebryo. Then I got a job at a big games company as a special effects programmer (using their proprietary engine) so I got to see what being a game-side (not engine-side) graphics programmer was like.
Then I applied to be a game programmer again, but going by my resume they assumed I was applying to be an engine programmer and they put me in their engine team, where I ended up being in charge of rewriting their low level APIs, and implementing game-specific effects.

This whole time I had still been building my own engine as a hobby. By now it was quite packed full of features and contained lots of code... But here I abandoned it. All my new professional experience made the underlying architectural flaws too obvious to ignore now. So at this point I started on my own engine again ;) and now I'm making an Indie game with it and licensing the engine libraries.

@Op - how did you get there?
I'm a graphics/engine programmer. I did mod programming as a hobby on the GoldSource engine for 4-5 years, until I'd basically read and tinkered with every line of gameplay code behind HalfLife 1. At that point I was a fairly decent game programmer and level designer, which is important as game programmers/artists are the clients of engine programmers - and a business that doesn't understand the needs of their clients is doomed to fail.

About here I started writing my own engine as a hobby.

Then I got a job doing game programming on Unreal, then a job doing tools programming at a company that wrote their own technology. Then because I knew what a shader was, I was able to transfer internally to an opening on the graphics engine team, and end up doing customisation on top of Gamebryo. Then I got a job at a big games company as a special effects programmer (using their proprietary engine) so I got to see what being a game-side (not engine-side) graphics programmer was like.
Then I applied to be a game programmer again, but going by my resume they assumed I was applying to be an engine programmer and they put me in their engine team, where I ended up being in charge of rewriting their low level APIs, and implementing game-specific effects.

This whole time I had still been building my own engine as a hobby. By now it was quite packed full of features and contained lots of code... But here I abandoned it. All my new professional experience made the underlying architectural flaws too obvious to ignore now. So at this point I started on my own engine again ;) and now I'm making an Indie game with it and licensing the engine libraries.

Thanks a lot for the insight! It's really very appreciated biggrin.png

Right now I'm in my Junior year of undergrad, and I haven't really made any mods of any game so far, though I did tinker around with the Quake 2 gameplay code for a bit, which was quite fun. I also liked the Wolf3D mod scene, and played around with the level editors when I was a kid biggrin.png

So, currently I'm learning graphics programming, and already at the level where I could get a basic 3D scene up and running with lighting and textures. But your insight has raised a question in my head - should I continue learning graphics programming? Or should I just work on game/gameplay programming instead for my portfolio, then learn graphics/engine programming while working as a game programmer?

All these options sound really exciting, that's why it's difficult for me to make a decision.


Right now I'm in my Junior year of undergrad, and I haven't really made any mods of any game so far, though I did tinker around with the Quake 2 gameplay code for a bit, which was quite fun. I also liked the Wolf3D mod scene, and played around with the level editors when I was a kid

So, currently I'm learning graphics programming, and already at the level where I could get a basic 3D scene up and running with lighting and textures. But your insight has raised a question in my head - should I continue learning graphics programming? Or should I just work on game/gameplay programming instead for my portfolio, then learn graphics/engine programming while working as a game programmer?

All these options sound really exciting, that's why it's difficult for me to make a decision.

It's hard to give advice because we're not in your situation, and our situations won't necessarily apply to yours biggrin.png

My general advice is that by the time you graduate, you should have at least a small standalone-game or a total-conversion-mod, or a collection of small mods, or a research project demonstrating a new innovation. Generally I would say that you should have made this in your own time (not schoolwork) however there's always exceptions, e.g. many "game schools" allow you to do a large group project during final year, which often results in quite an impressive/large game... or if you're doing a thesis you might have some great innovation/research to show off.

In your case, if you're interested in graphics, then making a small game (even an 80's arcade game remake) would be great if you can say that it's running on your own graphics framework instead of an existing engine. In an interview, you can then have deep conversations about how this framework works.

It's usually short-sighted (and frankly a bit sociopathic) to base decisions just on the state of the market, but at the moment, there is huge market demand for graphics programmers. e.g. I have companies in the USA offering to double my salary if I wanted to move to that country and do senior graphics programming work. So assuming that this demand sticks around, that's a good incentive to follow your interest and keep learning in this area.

It's hard to get into a graphics job as a junior/graduate, but you might get lucky if you're in the right place and the right time. Otherwise, it's always a plus to have on your resume if you're trying to get a junior/graduate gameplay programming job - it might make you stand out more against other candidates if you can write gameplay code but also have demonstrable knowledge of graphics stuff. It means if they invest the time in taking you on, then they'll have the option of moving you into the engine team later. It's nice if in an interview you can express an interest and show a bit of knowledge in engine/tools/tech-art areas as well, to show your value as a generalist and a strong self-learner.

So basically, try to learn gameplay and graphics if you're interested in both wink.png

This topic is closed to new replies.

Advertisement