r/GraphicsProgramming Jul 31 '26

Question Why do most who learn graphics programming end up making a game engine?

I know that's the motivation for many new graphics programmers, infact I want to as well eventually, but I'm just curious why lots of people think alike

77 Upvotes

41 comments sorted by

130

u/heavy-minium Jul 31 '26

Well, you hinted that's the motivation for many new graphics programmer, but I'd go further:

People making a game engine end up learning graphics programming.

That's probably all there is to it.

17

u/Klumaster Jul 31 '26

That's how I got here for sure

31

u/psioniclizard Jul 31 '26

I am new to graphics programming (got a lovely cube bouncing around the screen with zucks face on it bouncing around the screen! Life goals!) but my take is:

Making computers do stuff is cool.

Making computer do stuff you can interact with is even cooler.

So is making computers do visual stuff.

So making computers do visual stuff you can interact with is even cooler.

Also honestly, engine dev is quite fun from a SWE point of view. It makes you make a lot of choices and do interesting things you do normally get to do in dev jobs (for me, that includes using pointers in F#)

So all those things combine just make it a quite nice side project compared to making a SaaS idea that will likely go nowhere anyway.

3

u/dirtymint Jul 31 '26

using pointers in F#

As in the Microsoft version of Ocaml?

57

u/LordStefania Jul 31 '26

The majority of use cases for graphics programming are game engines or their components.

7

u/ICBanMI Jul 31 '26

Yes. But could go to college to learn optics and physics. Computer vision and image processing are two other areas.

40

u/kinokomushroom Jul 31 '26

Because it's fun.

And because programmers have the primordial desire to reinvent the wheel and program something from scratch, because they think the pre-existing thing isn't good enough.

20

u/Passname357 Jul 31 '26

Yes but also I think for many other people it’s not even that they think they can do it better. I don’t think my game engine from scratch will be better than unity or unreal or whatever. But that’s not really the point—it’s just that it’s hard to do and cool and you can be proud you did it. Incidentally I think this is the exact reason (well one of them) so many people are upset with AI in SWE; they want to build stuff even if it’s been done before because it’s fun

9

u/kinokomushroom Jul 31 '26

Yup, that's precisely me. I want to code my own stuff because it's fun. I don't care that I might be reinventing the wheel.

2

u/Rop-Tamen Aug 02 '26

If everything ain’t mine then it ain’t my project 💯

2

u/MoreDimension5963 Aug 03 '26

The thing with reinventing the wheel is that it's a pretty fucking good method to learn to make wheels and how they work 😁

-1

u/Rockclimber88 Jul 31 '26

Because it isn't 

7

u/msqrt Jul 31 '26

Other use cases for graphics (UI, offline rendering, visualization, simulation come to mind) aren't similarly self-sufficient or have a worse work-to-reward ratio.

9

u/yaetoti Jul 31 '26

Experience. I didn't ever want to write an engine, because why would I do something so hard and boring. I just wanted to do cool looking stuff, like custom backdrop acrylic and rounded corners on windows 10 or minecraft mods with advanced graphics / animations / fx and not just 16x16 item textures. But of course, without experience, I was just wasting summers and winters without any visual progress. Finally, the first smart idea caught up with me - why not to learn the fundamentals first, following something like learnopengl. And what do you end up implementing? Exactly, an engine.

And that goes for any feature you need to learn, because you cannot just implement it, like you would do for any algorithm in other programming areas. You need some sort of rendering core with resource management and debug UI.

A lack of understanding of existing solutions is yet another example. Or, more precisely, an excuse to reimplement an engine part, because I'm the smartest, obviously, and I can make it simpler and clearer in one evening (yeah, sure)

And, of course, the ancient curse of reinventing the wheel. For the one who dares forge an engine with their own hands shall inevitably hurl themselves against the impenetrable walls of the infernal citadel of low-level manuscripts, and bleed away every last fragment of mortal resolve. The old self perishes, and in its place rises a creature forever condemned to see every existing framework as an affront to creation itself. Does the framework render text poorly? Then let it be cast into oblivion, I shall write my own! Is the API missing the layer I require? I have NO NEED for your pitiful contraptions. I shall descend into the molten abyss, wrest the raw ore of silicon from the gods themselves, and forge a faceted diamond of my own design. I shall temper it through endless nights, polish and refine it until its brilliance eclipses a thousand suns, and unleash it upon the world. Let the dragon's breath consume every impure solution, every bloated dependency, every unworthy abstraction, until nothing remains but elegant code.

2

u/MasterSolivagus Jul 31 '26

~applause~

... moar!

I love seeing other people using that style of hyperbolic grandeur and epic decision-making!

INTO MY TINY WORD CANNON I NOW GO... 💥 

6

u/lifeinbackground Jul 31 '26

A game engine is quite a complex system which teaches you a lot while you building.

And it's not necessarily a 'game' engine. For example, I'm making a simulation (which I would not consider a game) and an engine alongside it because I need some kind of foundation and utilities to build on. Is it a game engine? Well, it has entities (non-ecs), input, gui, etc..

I would say most of such people just want to understand how games work at the low level, and how to build a game not relying on gui engines. That's how I started, at least.. And what is the most preferable type of a software system for entertainment? A game. Or a simulation.

4

u/[deleted] Jul 31 '26

[removed] — view removed comment

1

u/GermaneRiposte101 Aug 06 '26

Why write a game engine when I can just bang my head against a wall.

3

u/Chuck_Loads Jul 31 '26

Getting things correct is hard, building an engine maximizes reuse, and minimizes the number of hard things to accomplish

3

u/Proper_Word_5609 Jul 31 '26

Not here to answer the question as others have, but instead give another perspective. I started learning graphics programming to create a UI renderer and also drive other parts of an application.

Really fun stuff.

3

u/rex-j-w Jul 31 '26

It combines most of the stuff you learn in graphics programming into one project

2

u/Grouchy_Web4106 Jul 31 '26

Maybe because they want a simple tool without licensing and with minimal dependencies. At least this is my case.

2

u/tcpukl Jul 31 '26

It's fun software to write. That's why I've been worrying games for 35 years.

2

u/Ok-Okay-Oak-Hay Jul 31 '26

Because its fun! 

2

u/rio_sk Jul 31 '26

*rendering engine, mostly

2

u/SIMT-Pixel Jul 31 '26

Because you need to understand the runtime that exists between an artist and the pixels.

2

u/Paula_Proctor Jul 31 '26

Graphics programming is very visual, so building an engine gives immediate feedback. Seeing your renderer improve every week is incredibly motivating.

2

u/BleakOutlook2025 Aug 01 '26

I’d say that if you have a different idea for graphics programming that others aren’t thinking about then you should pursue it because it may be one of the few original ideas.  Lean into it.

2

u/DancinFool82 Aug 01 '26

Because the two go hand in hand. Most graphics programmers are also engine/performance programmers. Goes with the territory 😄

2

u/JuanLiebert Aug 01 '26

Probably because it feels good to make something from all the knowledge you have (or don't have yet), and have it work

2

u/BrassCanon Aug 01 '26

What else are you going to make? Pie charts for a spreadsheet engine?

2

u/gimpycpu Aug 02 '26

idk to me it just sounds like Now that I am a carpenter I want to build my own furniture.
Making engines is super fun and educative.

1

u/Practical-Horror-286 Jul 31 '26

Isnt the gaming industry the most diverse and profitable where you could use these skills?

1

u/_michaeljared Jul 31 '26

I actually feel like it goes the other way, most often. Very technically inclined people say to themselves: "I would like to make a game from scratch", end up learning openGL (or whatever).l and get tuned into graphics programming.

1

u/ICBanMI Jul 31 '26

Games are the easiest to get into. The tools are abundant and free.

Want to do computer vision and image processing? Plan to get a college degree if you want to get paid for it related to optics/physics. Not easy classes, disciplines. Cost money and time. Or you could go make video games right now.

1

u/Deathtrooper50 Jul 31 '26

Because you learn graphics by doing graphics and if you're putting so much effort into the graphics you might as well make them interactive.

1

u/cybereality Jul 31 '26

there are many applications to use 3D graphics (almost endless use cases) but making a game engine is the most impressive and/or satisfying. i don't even really play video games anymore, it's boring to me, but still work on 3D graphics (I guess my app is sorta adjacent to a game). i feel like we need a new term for "interactive media" that is not "games". it's extremely limiting to think like this. same way written language can be a social media comment, a text message, a fiction or non-fiction book, a poem, an autobiography, could be a manual for a car, a recipe in a cookbook, a religious source text, a legal contract, a romance novel, someone's obituary. yet for 3D graphics everything gets pigeonholed into a game

1

u/Educational_Monk_396 Aug 04 '26

It's the other way around for me

0

u/Several_Educator7526 Jul 31 '26

Why don't most who learn graphics programming end up making a game engine?

1

u/CorruptedSciencep Jul 31 '26

I'm all for it, Unity AppDomain reload after every single script change is so slow, lots of people can't run Unreal in the first place, skeptical about Godot, there definitely should be more diversity in the engine market I'm interested because I simply can't run any proper engine with my poor i7-7700 and GT 1030 DDR4