Live data from Hacker News

Finding your home in game graphics programming

alextardif.com

121–128 of 128 posts

Re: Finding your home in game graphics programming

#121
post #72

I've been trying to learn how to make games in my spare time on-and-off for 20 years (wow time does fly). Here's my postmortem to serve as a warning for younger versions of me. My first mistake was underestimating how much math one needs to know. Spoiler: it's all math - mostly linear algebra. That's why any graphics / physics / gamedev book has at least one math chapter. You do need it for everything - from coloring…

this was a grueling read mate. go make them games, maybe something for your kids.

Re: Finding your home in game graphics programming

#122
post #61
post #39

Earlier quoted context omitted.

>The APIs, although they are not easily interchangeable, use the same hardware and can often do the same things with a bit of effort. Actually it's the other way round. GPU architectures can vary wildly especially when you include mobile GPUs which are tiling architectures. Graphics APIs are the least common denominator interface that makes targeting all of them possible.

Not at all, hence why AAA game engines have all been based of plugin architecture for their backends, which allows them to take the best advantage of each hardware, no need for least common denominator interface. Those that try to target everything with a single API are fooling themselves, hence why in the end they all end up with extension spaghetti and multiple code paths, while pretending to still use a single API…

care to elaborate even further?

Re: Finding your home in game graphics programming

#123
post #23

Can we say that modern AAA graphics is way more complex than a single human can handle unless perhaps he started graphics programming many years ago?

If you're not imposing the requirement that someone create a AAA game, then No, I definitely know enough artist+devs who can create a high end engine from scratch as well as the art assets. I can definitely drop into any part of the graphics pipeline from graphics programming, to art creation and AI etc... and have done so on multiple projects. That said, doing it all by a single individual is a massive undertaking a…

> artist+devs who can create a high end engine from scratch as well as the art assets...drop into any part of the graphics pipeline from graphics programming, to art creation

Is there a job title for this role? I'm not stellar at art or programming but I'm 'really good' at both and everything in between.

Re: Finding your home in game graphics programming

#124
post #123
post #23

Earlier quoted context omitted.

If you're not imposing the requirement that someone create a AAA game, then No, I definitely know enough artist+devs who can create a high end engine from scratch as well as the art assets. I can definitely drop into any part of the graphics pipeline from graphics programming, to art creation and AI etc... and have done so on multiple projects. That said, doing it all by a single individual is a massive undertaking a…

> artist+devs who can create a high end engine from scratch as well as the art assets...drop into any part of the graphics pipeline from graphics programming, to art creation Is there a job title for this role? I'm not stellar at art or programming but I'm 'really good' at both and everything in between.

Yep! The catch all term is Technical Artist.

I say "Catch All" because understandably there's a massive variety in types of technical artists (FX, shaders, rigging, generalists, tooling focused etc..) but that's the effective term.

You can join the forum and slack for https://discourse.techart.online/ to learn more.

Re: Finding your home in game graphics programming

#125
post #17

Earlier quoted context omitted.

No, but it is a full time job. It's getting much more complicated. Here's an hour long talk on how Unreal Engine 5's Nanite works.[1] This is a huge breakthrough in level of detail theory. Things that used to be O(N) are now O(1). With enough pre-computation, rendering cost does not go up with scene size. See this demo.[2] You can download the demo for Xbox X/S and PlayStation 5, and soon, in source form for PCs. Exp…

Nanite doesn't do any rendering on CPU and does a lot of work that is traditionally done on CPU (culling) on GPU. Nanite does use a software rasterizer for most triangles, but it runs on GPU.

Oh, I think you're right. The nested FOR loops of the "Micropoly software rasterizer" are running on the GPU.[1] I think. I though that was CPU code at first. They're iterating over one or two pixels, not a big chunk of screen. For larger triangles, they use the GPU fill hardware. The key idea is to have triangles be about pixel sized. If triangles are bigger than 1-2 pixels, and there's more detail available, use smaller triangles.

[1] https://youtu.be/eviSykqSUUw?t=2134

Re: Finding your home in game graphics programming

#126
post #122
post #61

Earlier quoted context omitted.

Not at all, hence why AAA game engines have all been based of plugin architecture for their backends, which allows them to take the best advantage of each hardware, no need for least common denominator interface. Those that try to target everything with a single API are fooling themselves, hence why in the end they all end up with extension spaghetti and multiple code paths, while pretending to still use a single API…

care to elaborate even further?

Sure, OpenGL is portable and works everywhere, right?

Well, first of all OpenGL and OpenGL ES aren't the same thing, so depending on the versions, the set of APIs differ, already there you have some set of alternative code paths.

Then some features are only available as extensions, so you need to query for them, and then programm accordingly what is available.

Some hardware features have different extensions per vendor for the same hardware capability, so yet another execution path.

The shader compilers are quite different across vendors, some more strict than others, or different set of GLSL extensions, so yet another execution path.

Finally, even when everything works, there are driver or hardware bugs to work around, yet another execution path.

In the end it is OpenGL, portable everywhere, yet the engine looks like it is using multiple kinds of APIs just to work around every kind of issue.

Naturally having a rotating cube available everywhere is easy, the problem is having a proper engine with Unreal like capabilities (we are talking about AAA here).

Re: Finding your home in game graphics programming

#127
post #49
post #33

Earlier quoted context omitted.

IMO the article is better advice than the parent comment. Learning from Unreal or even Godot to write a basic renderer is pretty wild. It would be like telling someone who wants to make a model rocket that they should study the Falcon Heavy. Making a basic renderer in c++ is orders of magnitude simpler then trying to deconstruct a game engine that(according to google search) has over 2million lines of code.

If you want to be a rocket engineer indeed the Falcon Heavy is a better study reference than making a fresh design in your backyard. The hard part if learning is figuring out what you do not know. The easy part is reading a tutorial or API documentation.

> If you want to be a rocket engineer indeed the Falcon Heavy is a better study reference than making a fresh design in your backyard.

If you can't yet do so much as slap together some Estes kit and launch it in your backyard, what gives you the impression that you'd have the requisite knowledge to be able to gain anything from studying the Falcon Heavy?

Re: Finding your home in game graphics programming

#128
post #124
post #123

Earlier quoted context omitted.

> artist+devs who can create a high end engine from scratch as well as the art assets...drop into any part of the graphics pipeline from graphics programming, to art creation Is there a job title for this role? I'm not stellar at art or programming but I'm 'really good' at both and everything in between.

Yep! The catch all term is Technical Artist. I say "Catch All" because understandably there's a massive variety in types of technical artists (FX, shaders, rigging, generalists, tooling focused etc..) but that's the effective term. You can join the forum and slack for https://discourse.techart.online/ to learn more.

Awesome, thanks!
Post reply on HN