Overview #
The Graphics Programmer/Rendering Programmer is responsible for making the game look as good as it possibly can, while also making sure its within the performance budget for the target hardware. This involves working closely with artists to understand the target look and quality of the game, and working to find computationally cheaper solutions that still maintain that level of quality.
As a graphics programmer you’ll become familiar with the GPU (Graphics Processing Unit) and writing programs for it, known as shaders. These come in different flavors depending on what stage of the rendering process they’re executed in. Two common shaders are vertex shaders that run for every vertex being rendered and fragment/pixel shaders that run for every pixel being rendered. You’ll find that the GPU has different strengths and weaknesses to the CPU and will learn to write code to make use of that, such as avoiding branching (expensive on the GPU!).
I asked Keith O’Conor, CTO at Romero Games and Graphics Programmer on multiple titles, for his insight into the role.
Pros #
Why might a student want to pursue this role?
It’s a really rewarding role for those who are both strong in coding and have a good artistic eye. There is certainly an element of mathematical understanding needed, but it’s not as advanced as you might expect (certainly not compared to a physics programmer for example) - you can go a long way with relatively basic understanding of geometry, algebra and trigonometry. You can single-handedly make a big difference to how good any game looks!
Cons #
Why might a student want to avoid this role?
Graphics programmers usually have very little interaction with the gameplay side of a game - it’s all about how a game looks, and how it performs. If the student wants to be involved in the actual game design, or the implementation of the design, it might not be the right role for them.
Example #
Something you did in this role as an example of the kind of work you get to do?
So many cool things, that what I love about being a graphics programmer!

- Working with technical artists on Far Cry Primal to get the mammoth fur looking good while being cheap to render
- Making dynamic rain, lightning and puddle rendering for Prototype 2
- Optimizing particle effects rendering and tools on Prototype 1 so we could show many more fire, blood and explosion effects
Lots more that I’ve already forgotten!
Student Projects #
What kind of student projects would you recommend doing to prepare for this role?

Ray Tracing in One Weekend is a perfect starter project.
After that, a right of passage for any graphics programmer is writing a C++ program from scratch to use any graphics API (but focus on DirectX and Vulkan) to simply put a coloured triangle on the screen. Sounds easy, right?!
Resources #
Resources/Websites/Books you would recommend.
- Ray Tracing in One Weekend - every programmer should do this, even if they don’t want to be a graphics programmer, it’s a great project to learn about coding for 3D in general, and you end up with pretty pictures!
- Physically Based Rendering - excellent book that goes into the mechanics of graphics, lighting, and materials. Essential reading for any graphics programmer.
- Real-Time Rendering - another excellent book, but more focused on game/real-time rendering (the PBRT book is more about the theory).
- Game Engine Architecture - a great book about general engine architecture. Graphics programmers also need to have a really good grasp of engine architecture, as they touch many different parts of the engine.
- Graphics Codex - A great searchable reference for all graphics topics
- ShaderToy - great for inspiration, seeing some mind-bending shaders, and making your own with the built-in editor.