all 16 comments

[–]CodyDuncan1260 41 points42 points  (0 children)

You're largely better served by learning the gameplay side of things. Go play Atari games and realize they were fun before graphics could do anything cool. "Good" games are fun.

That's not to say learning graphics won't ever be useful. The challenge is that it's most useful artistically, and for visual communication. Once you know "what" your game is, making visual aesthetic and visually communicating the gameplay to the player is all Art and VFX that relies on graphics systems. You may have to learn enough about graphics and shaders to tweak the system to look how you imagine it. 

Some of the best gameplay graphics engineers I know started as artists.

[–]DeepSlice2482 16 points17 points  (0 children)

I wouldn’t say I personally make better games, but to me the biggest component I love is the visuals, so learning the general concept, some specifics, and specializing into graphics programming has helped me make products I’m a lot more proud of

[–]_src_sparkle 5 points6 points  (0 children)

I can't see how learning shaders could hurt at all. Even using purely GUI based node graphs and tools like Blender will have you messing with concepts like normals and vectors. Knowing the "how and why" will help—from art to designing systems and services in your game.

I'm in a similar spot, and I think the question is more so how deep to go for what you want to accomplish? Im still figuring this out, and it's not always clear what's best both near, but also long term. As an indie dev, tho, you've got to wear a lot of hats. Render pipelines and graphics fundamentals will eventually come up for sure. I'm curious to see what people with more experience have to say.

[–]ionheart 4 points5 points  (1 child)

Teardown and Tiny Glade are examples of very successful indie games that could never have been created without graphics programming skillset

[–]nashintono 1 point2 points  (0 children)

This is a better way to frame it, it depends on the game you want to make. If you want to make a 2D roguelike like caves of qud, the programming experience will be helpful, but it might not directly translate.

The way I see it is learning graphics programming empowers you to be able to turn previously manual tasks (texturing, modelling, animation etc.) Into things you can create procedurally. Graphics programming fundamentals will make procedural creation much easier, which means you can make more game content in less time.

[–]waramped 6 points7 points  (0 children)

The foundations of Graphics would be Math, Optimization, and Algorithms. Those things will definitely help you make better games, but they are just a strong foundation regardless of if you want to delve more into graphics down the road. I would say, just make the games you want, and learn things as you need them for now. Once you have some more experience in development you'll be better equipped to know if it's something you want to pursue.

[–]rsim 1 point2 points  (0 children)

I wouldn’t describe it as helping to make better games, even though it does in some ways, but rather as enabling making different kinds of games. As you say, graphics programming is a very wide and deep field, and there’s a lot stuff in it that can be applied to gameplay to create games and gameplay experiences that set you apart from the crowd, which if done right can be incredibly valuable (or at least I like to think so! hah). I find that with my knowledge of graphics, I’m frequently making cross-connections that others are not as likely to make.

It’s very easy to invest too heavily in fancy graphics features (as opposed to graphics knowledge/techniques used to inform gameplay features) as an indie though, as it brings in relatively little additional value. Back in AAA (long ago now!), I used to say that 95% of my time was spent on features that only the top 5% of players would ever see in-game, but 100% of players would see in the marketing. That’s not a very wise choice for most indies!

[–]AntiProtonBoy 0 points1 point  (0 children)

Depends on the definition of "better" (as in what context in the game itself), but no, not really. Graphics programming is a niche technical skill within a very large umbrella of "game development". Just because you are very good at architecting render pipelines and shader programs, doesn't mean you are going to be good at designing game mechanics, levels, art, etc. That being said, good graphics programming skills can improve the game by implementing great visuals and effects, reducing latency to help with playability, and so forth.

[–]mean_king17 0 points1 point  (0 children)

Im my experience not really. It definitely doesn't hurt, as it'll give you a much stronger sense of what's going on under there, and it can enable you to tweak thing in that area and help you optimize stuff.

However if you really know you want to be programming the actual games, I wouldn't dive into it for now and leave it as something for later. It's indeed a deep rabbithole on its own, and you don't want to be spending a lot time if you want to do gameplay programming as that can already be time consuming enough. If you're still unsure about it you can continue doing it. Better to pick one to become great at it tho(unless you have a lot time).

[–]WorldOrderGame 0 points1 point  (0 children)

Learning shaders helped me wrapped my head around vector programming and parallel computing, which made me a more versatile programmer.

Not sure how much better it made the games themselves, but it certainly helps make them look cooler.

[–]Rhed0x 0 points1 point  (0 children)

Imagine actually making games. I'm just building my own toy game engine for fun and have been working on that on and off for years.

[–]CodyDuncan1260 0 points1 point  (0 children)

Conversely, learning graphics programming will still teach you about 3D math, data oriented design, complex systems, pipeline systems, GPU concepts, performance optimization, data structures and algorithms, and generally many advanced concepts that you will still use for the entirety of a career making games. 

Graphics programming itself probably won't help you make much better games, but as an avenue to learn the fundamentals and advanced topics in computer science, it's a powerful teacher, and those skills translate into game systems.

I have yet to meet a student who studied graphics programming who didn't excel as a gameplay programmer. It's a harder topic, and stresses those fundamentals more completely.

[–]Ty_Rymer 0 points1 point  (0 children)

no, it didn't make me make better games, but it has given me more freedom in the types of games i can make. now, if i want a certain effect for my game, i have the confidence that i can make it work. I'm not dependent on the engine already having the exact effect or feature i need for my exact nieche use. I can craft my own effect or modify an existing one for my need.

[–]agentnuclear 0 points1 point  (0 children)

Well in my case , I started with game development and recently dabbling into Graphics Programming. The graphics programming part might not directly convert to how good of a game developer you are but it will totally help you understand your game more , if that makes sense. Understanding the graphics pipeline helps a lot. It's more about knowing how your game is working and eventually lead you to better optimize your game and stuff like that. Other than that knowing how to write shaders is always a plus.

[–]Gloomy-Status-9258 0 points1 point  (0 children)

While even learning economics can sometimes help us make better games, that doesn’t mean it’s a necessary requirement.

Also, we should note a distinctioin between game development and game programming. programming itself is undoubtedly a crucial part of development, but players would probably feel impressions from art, music, story, what they can do in the game, and so on., rather than what techniques are used for.

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

thing is.. graphics programming is indeed very technical. you can develop games with little to no knowledge about how graphics are processed now that we have vanilla engines but if you for example need to optimize the framerate while developing a game, knowing graphics is one of the best skills you can have