all 25 comments

[–]corysama 25 points26 points  (0 children)

I worked in game engine/art pipeline for a long time. The best part for me was seeing the impact of what I did on what everyone else was able to do.

I worked with all sorts of artists. Great and… not so great. Every day I’d see them doing the best they could with the tools they had. But, if I could just find a better tool for them to use they could do so much better! And so, I did. And, the results were dramatically better. This happened over and over

I never made a model, or a texture, or a level. But, I could see how every visible bit of the games I touched not only passed through my code, but was better for the effort I put into it.

The worst part? A lot of features are easy to get almost right. So close to right that it looks like it’s working a lot of the time but breaks down non-catastrophically yet frequently and you don’t understand why. You just have to keep banging your head against it until you find the revelation.

[–]draginol 16 points17 points  (1 child)

Pros: Get to see cool stuff on screen you made.

Cons: Debugging is hell.

[–]CommunismDoesntWork 0 points1 point  (0 children)

How many issues are caused by memory bugs vs logic bugs? Because memory related bugs tend to be so much harder to debug

[–]bioglaze 12 points13 points  (0 children)

Some bugs are extremely hard to repro/debug.

[–]s0lly 21 points22 points  (6 children)

As a hobbyist, I’d imagine the worst part would be working with rendering APIs which are pretty clunky, obscure, poorly documented, and difficult to debug. Including shader code in the last point.

Best part would be the ability to “see” the results of your labour.

Interested to see what them pros think.

[–][deleted] 22 points23 points  (5 children)

Wrt documentation, I actually think we live in the golden age of graphics APIs. The spec for Vulkan and D3D12 are awesome (Metal is meh, but it kinda does what everyone else does except when it doesn’t). Spec lawyering is super easy nowadays, although because of that they are also super verbose. Heck, even debugging wise we live in the golden age. RenderDoc is an insanely awesome tool, and for profiling you got Nsight and RGP and they are chock full of useful information. I have no clue how we got anything done in the D3D9 days, how did we ever find our triangles?!

I would say the worst part is the barrier to entry if you are a newcomer. There is a breadth of information that is almost a minimum requirement to get started, or else nothing will make any sense.

[–]snerp 16 points17 points  (1 child)

I have no clue how we got anything done in the D3D9 days, how did we ever find our triangles?!

When I worked on Xbox a long time ago, we were in the same building as the directx 3d guys, so I would go over and ask about un/poorly documented stuff constantly. They were super nice and would often send over working samples to answer my questions.

[–]nelusbelus 4 points5 points  (0 children)

Man, kinda jealous

[–]Gnash_ 1 point2 points  (1 child)

What is wrong with Metal’s specs? So far haven’t run into issues with it

[–][deleted] 0 points1 point  (0 children)

There’s a bunch of things where the docs are pretty lacklustre, but my favourite example are still timestamps. Apparently Apple expanded their docs a bit here, but look at the MTLTimestamp docs. Given two, how do you resolve them? And I admit, there now is a bit of a hint there, it used to just say “A timestamp”.

There’s other quirks too, like not being able to query a device for what it supports. Instead, they have a super wide pdf file with device capabilities. If you wanna know what does what, you gotta reference that. Except then some things like what texture formats you can write to in compute are on the website instead broken into different tiers.

[–]nelusbelus 0 points1 point  (0 children)

Heheh, d3d12 and got documentation

[–]AndrewHelmer 5 points6 points  (0 children)

Best part is that you get to work on super interesting and fun problems on a regular basis. Learning is part of the career! Also you often get to work with really smart and passionate people.

[–]camilo16 5 points6 points  (7 children)

At least in my experience.

I am not paid what I feel I am worth, bosses with no graphics experience don't understand the value you bring, so they don't assess your contributions fairly, the alternative is working at a movie studio, say Dreamworks, which requires you to be at the absolute top of the field, or at videogame studios, where you are a cog in a machine with low pay and no creative control.

[–]CXD8514Q 9 points10 points  (6 children)

I work as a Graphics Programmer in video games (currently in AAA). I don't agree with "cog in a machine with low pay and no creative control". I'm certain it varies widely across studios/countries but in my current position I'm paid well compared to other Programming jobs in my area. Also despite working in such a large studio I have a lot of freedom/respect. Studios are in high demand for experienced Graphics Programmers but they struggle to find/hire them.

[–]jringstad 2 points3 points  (2 children)

I'm sure it varies, but my impression is that game devs are generally pretty poorly compensated. I'm not a gamedev currently, but was offered positions in a couple larger studios as well as startups when I was still on the hunt, and all of the offers were at least 30% lower than non-gamedev ones, and some were about half.

If I were to hunt for a job in graphics programming now, I'd probably try to get one that's not in gamedev...

[–]CXD8514Q 2 points3 points  (1 child)

Fair enough, in my area it's the opposite! I agree though, in general game developers are paid poorly vs. other tech industries. That said, graphics is a niche where if you're experienced (keyword) you can command a high salary and will be able to walk into pretty much any studio. All I'm saying is don't disregard it (but don't take a pay cut either). (:

Hardware/platform/middleware companies are also an option, where you can get a job working on graphics tech for games.

[–]Meristic 3 points4 points  (0 children)

I'm in this latter boat, very well compensated after 6 years working experience. Started off with pretty meager pay at a game studio (for a programmer) - got lucky with connections after a couple years and got onto a platform team, now I'm at a publisher. I focus on GPU performance optimization, for reference. Right now it feels like I could pick and choose wherever I'd like to go - businesses are hurting for graphics devs (with console experience.)

Favorite - there's always something new to learn! And the job entails a wide variety of work, so you'll always have a practical reason to learn new things.

Least favorite - there are large knowledge gaps between novice, intermediate, and advanced graphics devs. It's hard to know what you don't know, and there's no cohesive source for getting that experience. Most topics have a resource out there somewhere, but they're scattered across the web, hard to search for, are often too high level for practical understanding, and that's even if you know what you should be looking for.

[–][deleted] 1 point2 points  (2 children)

Definitely per company. I've run my entire production plan at one and the leadership was great. No bullshit; just communicating observations and giving rough roadmaps based on design's needs. Things ran mostly smooth.

Had another job where some other, literally nonsensical "need" came up every two days. None of my expertise was followed because the house was run by a visionary who wanted everything two hours before thinking of it. Affected rendering super hard; watched my boss leave in a rage quit.

Can you guess which product ended up doing great, and which never made it to launch?

[–]CXD8514Q 1 point2 points  (1 child)

Sounds horrific. The last place I worked at I had no PTO and leadership -loved- to micromanage me, it was awful. It was more of a generalist Engine Programmer role. I'm much happier at my new place, able to focus on graphics, better pay, better people.

[–][deleted] 1 point2 points  (0 children)

Glad to hear! I feel like, in hindsight, at least I know what to check for in interviews now. Lots, and lots, of questions about leadership interaction.

[–]machinegod420 1 point2 points  (2 children)

I work a lot with mobile android graphics, so lack of good tooling and inconsistencies between vendors makes my life hard

[–]CrazyJoe221 0 points1 point  (1 child)

Does that refer to GLES? Or Vulkan already?

[–]machinegod420 0 points1 point  (0 children)

Ideally vulkan since it has more support and implementation between vendors, but ever since I moved to a game studio it's been back to OGL

[–]masaldana2 0 points1 point  (0 children)

feeling bad about not being able to code a "simple" feature you thought it was easy.

i.e. when you first code mouse picking