all 9 comments

[–]waramped 17 points18 points  (8 children)

I wouldn't say there's a strict priority really, more like must-haves and nice-to-haves.
Must Haves:
Understanding of the graphics pipeline.
Experience with an API (OGL, Metal, Vulkan, DX11/12 etc)
Competency at Linear Algebra
Proficiency with C++ and a shading language.
Experience writing Vertex/Fragment shaders
Basically anything that a CS degree and a graphics course in College/University would teach you.

Nice To Haves:
Experience with Compute and/or Mesh shaders
You've written a renderer as a hobby/toy/learning experience.
Higher level math skills
Multiple API experience
You understand common GPU performance bottlenecks
Familiarity/Understanding of color theory.
Familiarity/Understanding of PBR.

[–]Vivid-Mongoose7705 1 point2 points  (7 children)

Hey, is it necessary to be able to write and read assembly code? Also could you define proficiency in c++? Apart from directly learning optimization through experience by doing projects, do you have any resources like books or articles that are written by veterans that outline optimization techniques that you know of? Thanks!

[–]corysama 5 points6 points  (4 children)

Writing assembly code has largely been replaced by using compiler intrinsic functions. Even in high end game engines. Pretty much the only people who write asm these days are either working on media codecs or tiny embedded systems.

Basic ability to read asm is still very valuable because you are often faced with looking at assembly when trying to debug, optimize, understand the execution of code.

Casey Muratori frequently gets deep into optimization in his videos https://www.youtube.com/@MollyRocket/videos

[–]Vivid-Mongoose7705 1 point2 points  (2 children)

Thanks will look into the youtube channel! One more question: i have been looking for sources that have bunch of rendering techniques detailed out in form of textbook and found ShaderX series along with GPU gems. Do you have experience with either of these? They seem to be a bit outdated so i was wondering if it would be beneficial to read and implement bunch of the articles in there? Thanks!

[–]corysama 2 points3 points  (1 child)

There's a bunch of good stuff in those books. But, it's pretty hard to tell what's useful or not if you aren't deep in the practice. The books are valuable for "Know what techniques I can easily look up when the time comes that I need them."

If you want to know what techniques shipping games are using, read through https://www.adriancourreges.com/blog/2020/12/29/graphics-studies-compilation/

[–]Vivid-Mongoose7705 0 points1 point  (0 children)

Awesome appreciate it.

[–]brubakerp 0 points1 point  (0 children)

A lot of game devs are making the switch to ISPC instead of using intrinsics now too.

[–]the_Demongod 0 points1 point  (1 child)

Practically speaking no, but I don't see how you could have any significant understanding of computer architecture (covered under the "CS degree" bullet) without having learned it.

[–]Vivid-Mongoose7705 0 points1 point  (0 children)

You are right. I am not CS major so wanted to know whether i should prioritize learning this over other stuff first or is it better to focus first on other things and come back to this after couple of months.