Earlier quoted context omitted.
This is a really bad take, sorry. 1. Engine choice is only a factor in performance. If you build an unoptimised game it will run poorly. Doesn't matter if you do it in Unity or your own engine. 2. Terraria, etc did not succeed because they use their own engines. 3. Those bad performance games have bad performance and happen to use an engine, not the other way round. 4. The quality of your game has a lot more to do wi…
I always argued for custom game engines not for performance but so your game “feels” unique. I can spot a unity or unreal game from miles away. They have a smell if you will that is very hard to escape. Every game that has a custom engine just feels unique and interesting in a different way. I think this is why people likely push the custom engine. Any game that passes the finish line on a custom engine often has a l…
What to learn to be a graphics programmer
221–230 of 251 posts
Re: What to learn to be a graphics programmer
#222Re: What to learn to be a graphics programmer
#223Earlier quoted context omitted.
This is like saying being a cashier prepares you for a job in high-finance because both involve arithmetic on dollars and cents. I've been in ML for ~5 years in multiple FAANGs and I have never seen a rotation matrix .
TBF, I bet any graphics programmer would be a boon for a ML shop for their GPU/performance optimization knowledge alone.
Re: What to learn to be a graphics programmer
#224Today, I would not recommend anybody to go into graphics programming: I started in 2001, when NVidias first Geforce 1 ("the Gigatexl shadercard") was first announced: The field developed since then with so much speed and innovations, it blows my mind of. Compared to what we could do 25years ago, the tech today is just fu*ing impressive. Though, with this impressiveness comes a big "but": The space is developing at a…
Huh? Just because you're not going to become the next graphics programming legend you think it's not worth getting into graphics programming at all?
If you're an expert as a particular programming language, for example, you may have a good mental model for what optimizations the compiler and/or runtime are able to do, and the way you write code in that language may be influenced by that deep knowledge. You may have written so much code in that language that you know all of the corner cases and foot-guns, and how to deal with them--or better yet, how to avoid them in the first place. You may even develop new/uncommon patterns or idioms that other people end up adopting.
But, if that programming language totally changes its own semantics and compiler toolchain every few months, nobody would have time to build deep intuition and expertise like that.
I think that was the point.
Re: What to learn to be a graphics programmer
#225Earlier quoted context omitted.
Not necessarily, some folks advocate that with modern compute APIs we are better doing "software" rendering, but on the GPU. By the way, this is what renders like OTOY Octane do.
Sadly you can't access RT cores with CUDA, you need to use a graphics API like Vulkan or D3D12. You can make a fast ray tracing based renderer using pure GPU compute, but it'll still be slower than using RT cores. And even with GPU compute, you benefit from HW acceleration with the HW texture unit.
Re: What to learn to be a graphics programmer
#226Earlier quoted context omitted.
Sadly you can't access RT cores with CUDA, you need to use a graphics API like Vulkan or D3D12. You can make a fast ray tracing based renderer using pure GPU compute, but it'll still be slower than using RT cores. And even with GPU compute, you benefit from HW acceleration with the HW texture unit.
Not everything is about ray tracing, and still it beats any software rendering, while being able to use mostly regular C++.
If you do GPU-based software rendering, I would highly advice using RT instead of raster for visibility. It's simpler and likely also faster. But HW acceleration there also beats compute, in both, although you can achieve good results without acceleration too.
Re: What to learn to be a graphics programmer
#227Earlier quoted context omitted.
Agree with almost all of that. Unless you are targeting some obscure or old platform, I don't even know how you'd justify trying to write a 3D engine from scratch in 2026, except as a fun learning experience. Also, think about tooling. Last time I wrote an engine from scratch, the tooling to support it probably took way more time than the engine did.
AI changes this a lot. You can realistically get a featured 3d engine+editor up and running in a couple week with AI, working solo. Probably better than what Godot or even Unity gives you. Also AI is very good at editor/tooling stuff, I've even found it getting better at graphics programming stuff, just telling it to 1-shot implementing gpu occlusion culling, ddgi probes, taa, etc. type of features. Also for stuff li…
(A: there be dragons)
Re: What to learn to be a graphics programmer
#228Do you want to make games, or do 3D engine programming? If you want to make games, use an existing engine. Unreal Engine, Unity, Godot, and Bevy are good choices. You'll learn the higher level issues of graphics, not how to push pixels around. The real problem is making it fun. If you want to do 3D engine programming, be aware that there are too many bad game engines. In Rust land, where I am, there are three failed…
I think you assume most people want to compete with Unreal on visuals. That's of course borderline impossible. But getting a basic renderer and game loop going isn't really that hard, and likely won't be the majority of your game's code. Just doing drawObject() in a for loop is good enough, you don't have to think hard about optimizng if your game is simple enough, or all the concerns about resource streaming, bindin…
i'd assume it means fully understanding what you're building, if you already know 3d graphics or are just copying example code around, sure you can build something quick, but to fully understand the concepts from a background without previous graphics knowledge takes time and dedication
Re: What to learn to be a graphics programmer
#229Do you want to make games, or do 3D engine programming? If you want to make games, use an existing engine. Unreal Engine, Unity, Godot, and Bevy are good choices. You'll learn the higher level issues of graphics, not how to push pixels around. The real problem is making it fun. If you want to do 3D engine programming, be aware that there are too many bad game engines. In Rust land, where I am, there are three failed…
I think you assume most people want to compete with Unreal on visuals. That's of course borderline impossible. But getting a basic renderer and game loop going isn't really that hard, and likely won't be the majority of your game's code. Just doing drawObject() in a for loop is good enough, you don't have to think hard about optimizng if your game is simple enough, or all the concerns about resource streaming, bindin…
Re: What to learn to be a graphics programmer
#230If anyone needs a quick tutorial on linear algebra, you can check out this printabale four pager that I wrote: https://minireference.com/static/tutorials/linear_algebra_in... I also have some notebooks with SymPy code examples here: https://github.com/minireference/noBSLAnotebooks
The visualizations made things click in a way my Linear 101 course didn't.