30 comments

  • Animats14 hours ago
    Do you want to make games, or do 3D engine programming?<p>If you want to make games, use an existing engine. Unreal Engine, Unity, Godot, and Bevy are good choices. You&#x27;ll learn the higher level issues of graphics, not how to push pixels around. The real problem is making it fun.<p>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 renderers, one unfinished one, and the one inside the Bevy engine. Those are the major projects. There are many other &quot;I&#x27;m going to build a game engine&quot; projects. Building a game engine takes about two years to get to the My First Renderer point. Getting to big, highly detailed, dynamic scenes is a much bigger job. Be aware of the scale difference between the first demo and a useful engine.<p>If you want a job, be aware that the game industry sucks. Pay is lousy, hours are lousy, jobs end when the project is completed, and, like Hollywood, there&#x27;s an army of wannabees wanting in. Also, right now, because of the collapse of the Metaverse thing, there&#x27;s a glut of experienced people.<p>Then there&#x27;s mobile. Everything is a cram job. Not enough screen, not enough compute, not enough GPU, not enough battery.<p>This is why most indy games now are 2D. That&#x27;s do-able. Often in HTML&#x2F;JavaScript.
    • torginus1 hour ago
      I think you assume most people want to compete with Unreal on visuals. That&#x27;s of course borderline impossible. But getting a basic renderer and game loop going isn&#x27;t really that hard, and likely won&#x27;t be the majority of your game&#x27;s code. Just doing drawObject() in a for loop is good enough, you don&#x27;t have to think hard about optimizng if your game is simple enough, or all the concerns about resource streaming, binding optimizations or parallelism can come later if necessary.<p>&gt; Building a game engine takes about two years to get to the My First Renderer point.<p>I wonder what starting point and success criteria do you assume for that 2 year timeline. About a year ago I wrote a deferred renderer with dynamic lights, and shadow mapping, and few post effects in about a month of free time (Less than a week of full time work).<p>&gt; This is why most indy games now are 2D. That&#x27;s do-able. Often in HTML&#x2F;JavaScript.<p>I don&#x27;t think that should count against them. Most serious works is done on 2D interfaces. And both WebGL and plain old 2d canvas are very capable nowadays. And quite a few hit indies are 2D.<p>&gt; If you want a job, be aware that the game industry sucks<p>Sure but basically everything uses the GPU nowadays. Writing and debugging ML workloads, data visualizations, HUDs and just user interfaces in general requires some understanding more often than not.
    • deliciousturkey2 hours ago
      Games industry might suck on average, but I&#x27;d argue that graphics programming niche does not. There are lots more users of graphics than games, like visualization, simulation, etc. Coupled with the fact that good graphics programmers are extremely rare, it&#x27;s a surprisingly good career. This is in very stark contrast to game developers, artists and so on, which seem to have much harder time getting good quality jobs. Of course, both job market supply and demand is small, so changing jobs might not be easy.<p>I&#x27;d very much argue against somebody making game development their career, at least from job security grounds. But graphics programming is different.
    • the__alchemist29 minutes ago
      Related to graphics programming in rust: One reason to get into graphics programming is if there aren&#x27;t any engines that suit your purpose that are available for your programming language of choice.<p>If I wanted to program a 3D game, I would choose UE5. I&#x27;m not, however: I made my own engine (`graphics` crate) and own vector&#x2F;quatrnion lib (`lin-alg` crate), used by no one other than myself, to view chemistry and molecular bio visuals, with convenience controls etc. And it&#x27;s suitable as a general purpose engine for rendering simple, non realistic scenes. I&#x27;m surprised I had to do this, but didn&#x27;t find any suitable existing solutions.
    • opan13 hours ago
      The amount of otherwise decent games that run poorly due to Unity or UE is very unfortunate. I wish people would stop recommending this stuff. I do hope Godot and Bevy are better, but I&#x27;m not sure if they are.<p>To name some games with very bad perf issues that I&#x27;ve played in the last couple years: Core Keeper (Unity), WORMHOLE (Unity, mostly see the lag in endless mode), Crab Champions (UE4, have to use nonsense upscaling stuff that makes the game hideous just to maintain 60fps at 1920x1200).<p>Meanwhile Terraria, Necesse, and Barony use their own engines and run great, they have aged like wine.<p>Out of fairness, I&#x27;ll say Tiny Rogues (Unity) usually ran pretty well from what I recall, though the dev is actually working to move off Unity in the future, so he has clearly found issues with it himself.<p>I know there is the argument of making a game vs making an engine, and actually getting a game done and shipping it, but when you put out garbage you aren&#x27;t gonna have a very positive legacy. I think it would be better to take the long way and ensure some level of quality. Games are often played for decades after release and if they are buggy or laggy, people will continue to run into that forever.
      • TheRoque6 hours ago
        &gt; The amount of otherwise decent games that run poorly due to Unity or UE is very unfortunate. I wish people would stop recommending this stuff. I do hope Godot and Bevy are better, but I&#x27;m not sure if they are.<p>Games don&#x27;t run poorly &quot;because of unity or UE&quot;, those engines are highly optimized for the graphical fidelity they provide, It&#x27;s super easy to find examples of games that run flawlessly with these engines (UE5: Arc Raiders, Unity: Arknights Endfield). Seriously, this narrative is ridiculous and needs to stop.<p>Some games with those engines run poorly because no matter the engine, if the developers don&#x27;t take the time to optimize their games, the result will be an unoptimized mess. Is Unity engine responsible for the fact that Cities Skyline 2 devs decided to render the full polygons of every individual&#x27;s teeth no matter the distance ? There are a ton of tools built in to handle level of details and they didn&#x27;t use them...<p>I doubt those unoptimized games would do any better and in a shorter time if the studio had to build their own engines, or with any other available engine. Bevy is too barebones to be compared, and Godot is not as capable as Unity&#x2F;UE.
        • ben-schaaf1 hour ago
          Arc Raiders is a great example for why UE5 <i>is</i> the reason games run poorly. It neither uses Nanite nor Lumen. Valorant goes even further and uses a custom forward renderer. The studios that care about performance avoid using the big headline features of UE5.
        • vvanders5 hours ago
          As someone who&#x27;s worked professionally with these engines I&#x27;d largely agree.<p>The other thing to keep in mind is that engines are build towards certain strengths&#x2F;game-types. Trying to do open-world in UE3 required making some fairly invasive and substantial changes as the engine was built more for somewhat on-rails shooter. It didn&#x27;t support geometry streaming and a number of other things that are needed to seamlessly transition between large open areas. I remember a number of MMO-style games used UE3 purely as a rendering front-end and mostly built the game tick, physics and netcode back up from scratch.<p>There are &quot;tells&quot; for engines if they aren&#x27;t tuned properly(i.e. it was really easy to tell UE3 by the 30s frame hitch as the periodic GC ran) but a fair bit of that can be addressed if the team wants to put in the time to enhance or rework the systems involved.
      • raincole10 hours ago
        &gt; The amount of otherwise decent games that run poorly due to Unity or UE is very unfortunate<p>The amount is approximately zero. If someone write badly optimized code with Unity they have 200% chance to write badly optimized code with their own engine.
        • smallstepforman2 hours ago
          The thing about custom engines is that by the time it supports all the features you need, you’ve worked your mindset into optimal engine usage, so you end up being more performant on a hacked engine vs suboptimal code on commercial engine. Home grown always has some unique flavour.
          • raincole2 hours ago
            It might be true in some very special cases, but if a programmer can&#x27;t make games like Crab Champions (the example used in the grandparent comment) performant with Unity&#x2F;UE, they should be nowhere near to a custom engine.
      • Waterluvian11 hours ago
        Today I discovered, fell in love with, and returned Tainted Grail because it is horribly, terribly optimized. Apparently the PS5 version is so bad that it’s an offense to nature. Which is sad because it’s apparently a phenomenal game.<p>Though maybe it wouldn’t have even existed if it wasn’t for Unity.
      • patch_dev12 hours ago
        This is a really bad take, sorry.<p>1. Engine choice is only a factor in performance. If you build an unoptimised game it will run poorly. Doesn&#x27;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 with effort, care, etc than the engine you choose to use. You can create a buggy piece of crap no matter how you make it 5. Performance alone is a bad reason to roll your own engine. &quot;Existing engines are not performant so you should roll your own&quot; is a very bad piece of advice. 6. Making a good engine is HARD and a lot of effort. There is no guarantee that you produce anything better because you chose that path.
        • rustystump11 hours ago
          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.<p>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 level of craftsmanship you dont see in standard engines.<p>Oblivion remake while looking good only works because the underlying logic is the same. I personally do not like the visual feel of the remake as it screams asset pack to me.
          • patch_dev8 hours ago
            I have to disagree again sorry. I can&#x27;t speak to being able to &quot;spot a unity or unreal game from miles away,&quot; but if you want to make a game, make the damn game not an engine.<p>I get the feeling there is a serious survivor bias happening here. Individuals who are talented and knowledgable enough to roll their own engine, make it well and quick enough, maintain motivation AND cross the finish line to actually make a game likely make a pretty good game. Now consider all the other people who tried this path and got stuck along the way. Now you&#x27;re gonna recommend all that complexity and difficulty to someone because you think games should &quot;feel&quot; unique. Like, its just not based in reality sorry.<p>I think there are 2 reasons to roll your own game engine<p>1. Making a game isn&#x27;t your top priority and you&#x27;re interested in game engines<p>2. No existing game engine does what you need it to do and you have enough experience&#x2F;knowledge to know where you&#x27;re going<p>If you&#x27;re decision is based on &quot;I want my game to feel unique&quot;, &quot;it might not be performance enough&quot; or some other immaterial and ethereal concept I fear you&#x27;re gonna be set up for failure.<p>Noita is a perfect example of when to roll your own. They push the boundaries so much that they absolutely need a custom engine. Path of Exile, another example where their vision REQUIRED a custom game engine.
          • raincole8 hours ago
            &gt; I can spot a unity or unreal game from miles away. They have a smell if you will that is very hard to escape.<p>Confirmation bias. Are you saying Hollow Knight, Cities: Skylines and Escape from Tarkov have the same kind of &quot;smell&quot;?<p>It&#x27;s as ridiculous as saying that you can spot a SaaS written in Rust from miles away.
            • JoeyJoJoJr3 hours ago
              For 2D games I can usually tell if it is made in Unity, and I don’t even develop with Unity. Hollow Knight for instance does not get me immersed like I do for Celeste or Bolatro. When I look at Hallow Knight I see moving animated sprites instead of characters, and it’s like that for the majority of 2D Unity games for me.
              • Chinjut2 hours ago
                When you look at Super Mario World, do you see moving animated sprites?
            • lowbuzz6 hours ago
              Yeah, there are some unreal &quot;slop&quot; games, even big ones, that just look like UE5 looks with kinda default settings, but there are also games made with these engines that look nothing like that.
    • purple-leafy11 hours ago
      I don’t agree necessarily that if you want to make games to use an existing engine in every case. For most cases it’s good advice.<p>But existing engines are so “general purpose” and full of assumptions about your game. Maybe your game requires different constraints?<p>Especially for 2D. For instance I’m building a game, powered by my custom game engine, that specifically focuses on performance and compression and no server or database in the loop.<p>My engine has very specific structure and assumptions about how my games must be structured, to reach pretty extreme performance and compression scenarios based on the constraints I set for myself and my game. (Hackernews post about it soon, I’m hoping next week)<p>I tried building my browser game so many times previously - first with unity, then godot, then react (lol!) - but having to learn the apis sucked, and the engines were not able to meet my extreme constraints (also attributed to me not being good with the engines). But looking back, I still don’t think what I’ve achieved internally would be possible without a custom ground up engine.<p>But I’ve learnt so much building my own engine and game.<p>Especially now with LLMs, I think it’s reasonable for experienced devs to try build their own custom game engines, it’s suddenly in reach for most developers.
    • nnevatie1 hour ago
      There&#x27;s also plenty of us creating our own engines for the games we develop. Whether the mentioned games ever get finished is another topic...<p>If it&#x27;s all for a hobby, creating your own engine is a lot of fun by itself.
    • raincole10 hours ago
      &gt; This is why most indy games now are 2D. That&#x27;s do-able. Often in HTML&#x2F;JavaScript.<p>Most indie games are definitely not in HTML&#x2F;JavaScript unless you count vibe coded ones.
      • Twisol7 hours ago
        I can&#x27;t speak to &quot;most&quot;, but the incredible CrossCode displays the HTML5 shield on startup, so indie games on the web stack do exist and can be amazing.
        • torginus2 hours ago
          Yeah the browser is sadly underused, especially for indie games. Js is plenty fast for most indie games, there are a ton of libraries, dev tooling is good, and all the APIs you could ever need are wired in. There&#x27;s also an &#x27;escape hatch&#x27; with WebAssembly for better performance when you need it.
        • echoangle3 hours ago
          I would be surprised if you can find any platform with graphics output that someone hasn’t published a game for. Having one game says nothing.
    • TeMPOraL3 hours ago
      &gt; <i>Do you want to make games, or do 3D engine programming?</i><p>Yup. If you start making an engine, you probably won&#x27;t make a game - especially if you&#x27;re learning along the way. It&#x27;s technically possible to succeed at both, but having gone through this process many years ago, and having watched dozens of others in our Polish hobbyist gamedev community do the same, chances are under 5%.<p>&quot;I&#x27;ll do an engine for my game first, so it&#x27;s easier to make the next game&quot; - it&#x27;s a surprisingly strong trap, because you <i>are</i> actually learning important things and winning small victories every day. There&#x27;s always another win around the corner. Just one more unroll so the scene looks smoothly. Just one more logic layer to the config format, so it&#x27;s easier to make the scene. Just one more SIGGRAPH paper.<p>There&#x27;s always something important to improve. None of that adds up to a complete game. In retrospect, I&#x27;d say, writing your own engine is a perfect way for technical people to procrastinate on the hard but necessary parts of making their dream game - &quot;making it fun&quot;, as you mentioned. You end up mastering all the skills that add up to coding an impressive video game. You never learn how to make a game.<p>(Subtrap of that: you learn a hundred ways to make beautiful visual effects that run smooth in real-time. You never learn how to use that to make art.)<p>--<p>(It just occurred to me this is very similar to the trap of &quot;Enterprise Java&quot; - except more insidious, because you&#x27;re working with concrete terms. Your Scene Graph has no Factory Factory Interface, so you think you&#x27;ve dodged that bullet, missing that it&#x27;s just unnecessary for the task of putting a bitmap on the screen and making it react to keys.)
      • deliciousturkey2 hours ago
        At least personally, the point of graphics programming or making &quot;engines&quot; is not to make games. It is to make real-time graphics, implement interesting approaches etc. If you are making a game instead of an engine, you will probably never focus on the graphics &#x2F; rendering part, and instead need to focus on gameplay, 3D modeling etc. For many people this is explicitly not what they want: They want to make engines, not games.
    • qingcharles14 hours ago
      Agree with almost all of that. Unless you are targeting some obscure or old platform, I don&#x27;t even know how you&#x27;d justify trying to write a 3D engine from scratch in 2026, except as a fun learning experience.<p>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.
      • charlie9013 hours ago
        AI changes this a lot.<p>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&#x2F;tooling stuff, I&#x27;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 like animation, I just told my AI &quot;clone Unreal&#x27;s animation blueprints&quot; and I have a pretty featured animation system now. &quot;clone Unity&#x27;s particle system&quot; and it 1-shots it in an hour with the runtime and nice editor tools. With the advantage being you can just implement exactly what you need.
        • Chinjut2 hours ago
          What is the advantage of asking AI to build an engine cloning these existing engines, vs just using these existing engines.
        • sfn424 hours ago
          Oh man I can&#x27;t wait until you release a fully featured game engine less than 2 weeks from now that&#x27;s better than both unreal and unity.
        • someonebaggy5 hours ago
          I&#x27;d like to see evidence for this claim.
      • rustystump11 hours ago
        While the sister comment is down voted, they are not necessarily wrong. AI absolutely makes custom 3d engines easier to make because the math is very well understood.<p>Most games do not need 90% of the features 3d engines have. A simple geometry batcher with a bog standard rendering equation and simple single directional shadow map will go a very long way. I can confirm AI has been able to one shot this for well over a year.<p>However, dont expect to churn out nanite overnight
        • qingcharles10 hours ago
          You can definitely get it to make a custom 3D engine easily. I asked Gemini 3.1 Deepthink (or whatever the Ultra version is called) to make me a 3D engine that ran in CGA on 8086 XT in x86 assembler, and it one shot it perfectly with filled polys, backface culling etc.
    • Negitivefrags7 hours ago
      I am not a fan of this take.<p>It&#x27;s possible to not make an engine, or use a 3rd party engine. You just make a game. Use SDL or something. It&#x27;s honestly easier and more fun. Definately don&#x27;t use Rust.<p>It doesn&#x27;t take two years.<p>The more you focus on making gameplay, and not making an engine the better. Which sounds like similar advice to &quot;use an existing engine&quot;, but it&#x27;s not, because using existing engines is also a pretty sad time. You can waste just as much time farting around in Unreal as you do making your own engine.<p>At the end of the day, most people are just not serious about making a game. Using someone elses engine, building from scratch, both will work if you are actually making a game and not just wasting time.
    • kleiba25 hours ago
      <i>&gt; Pay is lousy, hours are lousy, jobs end when the project is completed, and, like Hollywood, there&#x27;s an army of wannabees wanting in.</i><p>Well, in that case, I&#x27;m going to go into academia!
    • andai13 hours ago
      Two years? Why does it take two years?
      • flohofwoe6 hours ago
        Because 90% of the work on an engine goes into the tooling (DCC tool exporters, asset pipelines, editor tools, ...), e.g. the &quot;actual&quot; engine runtime is just a small (and frangkly: quite trivial) thing dangling off the end of the asset pipeline. And game engine tools development is a never ending rabbit hole that&#x27;s never quite finished (UI tools development got much easier though thanks to Dear ImGui).<p>IME two years sounds about right starting from scratch until getting everything into a state that can be called a basic game engine (if a bit optimistic). You can start earlier building a game on the in-progress-engine of course and tbh that&#x27;s the only way to not develop an entirely useless engine. But that way you&#x27;ll also end up with an engine that&#x27;s mostly only useful for that one game, and progress on the game will be atricious in the first year or so. And of course developing both side by side means spreading the butter even thinner.<p>In the end though I have seen at least as many game projects fail using an off-the-shelf engine (in that case: Unity) compared to using an inhouse engine. The decision to use inhouse tech versus off-the-shelf engine doesn&#x27;t make or break a game, in the end the failure always lurk within the team (but the engine is usually blamed first when things went south heh).
      • TheSamFischer13 hours ago
        Unless you’ve written one before, it’s the natural learning curve.<p>You can always generate one using LLM if you don’t care about how it actually works.
        • dahart8 hours ago
          And if you have written one before, it might take five years. ;)<p>At least, that was my actual experience at a game studio. The engine team wanted to rewrite the engine but underestimated how much was there, how much was worth keeping, and how much work needed to be done. But that was a long time ago, and the studio’s now on Unreal.
        • flohofwoe6 hours ago
          &gt; You can always generate one using LLM if you don’t care about how it actually works.<p>Lol, right. That might work for some of the runtime parts of a very simple engine, but not the other 90%, especially when you &quot;don&#x27;t care about how it actually works&quot;.<p>A game engine (like UE or Unity) easily exceeds the complexity of an entire desktop operating system (not necessarily in line count, but in number of features, their diversity and complexity).
      • legends2k7 hours ago
        Two if you&#x27;re lucky, and work full time on it. More like 5+ plus if you are inexperienced&#x2F;part time.
    • imtringued6 hours ago
      Yeah if someone wants to do 3D engine programming they should consider reviving rend3 [0] instead of starting their own project.<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;John-Nagle&#x2F;rend3-hp" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;John-Nagle&#x2F;rend3-hp</a>
      • EnnEmmEss5 hours ago
        Isn&#x27;t that GP&#x27;s own 3d engine?
    • bmitc12 hours ago
      I want to do something different. I want to make desktop applications that utilize 2d and 3d graphics. These aren&#x27;t games, and so while game engines can work, they are a heavyweight fit. And this is certainly not game engine programming, although there may need to be a way to program a 2d system rather than relying on the litany of 2d graphics libraries that all have major limitations.
      • flohofwoe2 hours ago
        Godot is actually a good choice for that use case and compared to Unity or Unreal Engine fairly lightweight:<p><a href="https:&#x2F;&#x2F;docs.godotengine.org&#x2F;en&#x2F;stable&#x2F;tutorials&#x2F;ui&#x2F;creating_applications.html" rel="nofollow">https:&#x2F;&#x2F;docs.godotengine.org&#x2F;en&#x2F;stable&#x2F;tutorials&#x2F;ui&#x2F;creating...</a>
  • KellyCriterion19 hours ago
    Today, I would not recommend anybody to go into graphics programming:<p>I started in 2001, when NVidias first Geforce 1 (&quot;the Gigatexl shadercard&quot;) 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.<p>Though, with this impressiveness comes a big &quot;but&quot;: The space is developing at a speed which is really really scary. Nvidia came up with AI-based effects to influence scene &amp; assets on their own - back then, we wouldnt have even thought about that this will be possible some day in realtime.<p>I do not know if its possible at all to be a &quot;decent pro&quot; in this field now - let me use other words: &quot;Where is todays Jon Carmack?&quot; - he was famous for squeezing everything out of the hardware, using ideas very hidden in the community etc. - today, there is not any competitive moat for people like him (he actually lives on his legacy), and that is because the field is so vast and evolving so fast that there is no chance to become the next one
    • sph18 hours ago
      I really dislike people that got into a thing and then try to discourage others. “Don’t be like me! I wasted my entire life” which is bullshit from a jaded person that lost passion. Telling people to stay away from graphics programming is not how to entice tomorrow’s John Carmack.<p>So here’s another perspective. If all you have done is web apps and Kubernetes, for example, do get into graphics programming. The feedback cycle is exhilarating, and you get to appreciate how mind boggingly fast your average computer is. You’ll get to optimize things that are ultimately unimportant because you have never learned how quick things are at the low level. There are a ton of resources and the maths is not too bad. You might find that 3D modeling is a creative outlet you didn’t know you needed. Even if completely inapplicable to your day job, you’ll find new ways to appreciate the art of programming computers, and might just decide to never touch Kubernetes again and spend the next 5 years writing your own game engine in your spare time. There are a lot of crazy people like that, and the community of hobbyists that are not ground down by life and game dev as a career is larger than you’d think. The Graphics Programming discord is a welcoming place if you want to check it out.<p>Go for it!
      • modeless18 hours ago
        &gt; Don’t be like me! I wasted my entire life<p>That&#x27;s not the argument being made here. The field is changing. I had a good career in graphics, my life wasn&#x27;t wasted at all. That doesn&#x27;t mean a college student would have the same experience starting today.
        • sph17 hours ago
          Well, of course not, unless you are claiming that a future career in graphics is a bad idea, and there is no way you could say that with any reasonable certainty, I do not get the argument at all.<p>The field is always changing. You could find people in the 80s saying ‘I had a good career in graphics, a college student would not have the same experience starting today’
          • reactordev15 hours ago
            100% this. My dad told me not to get into it because of the web (he was a C guy) and instead I went head first into it AND did graphics programming (using C#, ewwww) just for the fun of it. Never discourage from someone wanting to learn, discourage the ego that thinks we need another John Carmack.
        • xboxnolifes17 hours ago
          Getting into a field that is changing is the best time to get into that field. The playing field gets equalized and you have more opportunity to be established as a strong expert.
          • kansface15 hours ago
            That is not a universal because the incumbents may hold the institutional reigns. See Academy for a counter example.
        • readme17 hours ago
          I mean, there&#x27;s other problems with OPs argument.<p>For example, &quot;there&#x27;s no chance to become the next one&quot; implies it&#x27;s only worth it to do something if you can become the absolute best person in the field.<p>It&#x27;s a big world. Most of us will not be the very best at what we do. There are millions of fun games that were not written by John Carmack.
          • rustystump11 hours ago
            Who is John Carmack? That old dude from the 90s?<p>I kid, but there are many other modern Carmacks and id argue even more impressive contributions. The guy has done little since he left gaming.<p>I wish more people praised Alex Evans. Dreams rendering tech is still unmatched to this day and was my inspiration for graphics, not Carmack.
            • pixelpoet4 hours ago
              My man :) Alex Evans has been my gfx coding hero since the 90s with his demoscene work, and I had the privilege of working briefly with him at Lionhead.
        • michaelchisari17 hours ago
          Seems like a great field to get into if you can make it to the top 5-10% skillset.<p>The rapid advances, in a trend replicating throughout society, push out the middle in favor of the top.
          • readme17 hours ago
            Out of curiosity, which fields would you say are the best to just be mediocre in?
            • michaelchisari17 hours ago
              Nepo baby.<p>Joking (sort of).<p>I can&#x27;t say I know of any in the fields I&#x27;m familiar with. I&#x27;ve watched tech get increasingly top-heavy since the covid hiring boom and bust, although it was already trending that way.<p>There are a lot of fields dominated by boomers on the verge of retirement that are the safest bet for people who want to be good and make a good living but don&#x27;t care to be extraordinary.<p>I&#x27;ve heard that from arborists, water treatment specialists, actuaries, a few others.
              • pfannkuchen15 hours ago
                Has tech really gotten more top heavy?<p>I feel more like people kept flooding into the middle and bottom, and companies that used to focus on top talent got watered down with those middle and bottom types.<p>A lot of the people getting laid off from Google and Meta would not have been hired at all in those places 15 years ago, for example.
                • rustystump11 hours ago
                  Press C to doubt. This doesnt explain all the stories of long time og people from both getting let go. I have worked in big tech and little tech finding banger engineers in both. Comp != quality.
              • dakolli16 hours ago
                Nobody who has ambitions of being the top of their field in engineering wants to be a water treatment specialists, arborist or actuary (maybe actuary if you&#x27;re a stats nerd). What you&#x27;re saying is go do something on the based on the potential for you to be professionally successful.. What about people doing things they love?<p>I hate these people telling people who love to do a certain thing that they should just become a plumber or an electrician. Not everything is about spending your life to make as much pieces of paper the govt tells you are worth something.<p>I&#x27;d rather be in poverty working with computers everyday and doing what I love than make 10k a month being a plumber. I actually can&#x27;t stand you people.
                • michaelchisari16 hours ago
                  The question I answered was:<p><i>Which fields would you say are the best to just be mediocre in</i><p>&gt; <i>I actually can&#x27;t stand you people.</i><p>Unnecessary. People who want a basic middle class existence are not greedy and should not receive disdain. Many have responsibilities to their elders or others, have kids or want them, etc. so avowed poverty is not realistic.<p>Especially when bohemian poverty is an increasingly vanishing option on a practical level.
                • fn-mote8 hours ago
                  &gt; I&#x27;d rather be in poverty working with computers everyday and doing what I love than make 10k a month being a plumber.<p>Other people choose a job that pays enough that they do not have to live with the stresses that poverty brings. Even if they do not love it.<p>When I hear statements like yours, I think that they come from not actually having lived with very little money.
            • witos216 hours ago
              [dead]
      • KellyCriterion44 minutes ago
        No, I said something different:<p>I said the technology is accelerating at such a scary-high speed, that it is no more fun and very hard to earn any merits today, which was quite possible over the last decades.<p>(and for me personally: Yes, Im happy to be no more involved, though I profit from this experience very often, even if Im in a completely different sector today)
      • xpct5 hours ago
        Is it so wrong to be doubtful of whether the field is still lucrative? We live in times of great change, it&#x27;s only natural to be less assured when recommending a career path to others.
        • JsonDemWitOster4 hours ago
          Who clicked on this thread looking for career advice??? This discussion is not what I was expecting when I clicked on this thread. What&#x27;s with the sudden obsession about the field having to be lucrative first? Where&#x27;s the &quot;hacker spirit&quot; of just wanting to know how stuff works?<p>Academia was never a lucrative field. For the sacrifices it requires, it will never be financially viable for me to work there. Am I wasting my time going through the Feynman Lectures nonetheless? Keeping my calculus decent? I clicked on this for the same reasons; not looking for career&#x2F;financial advice, I just have a morbid curiosity about how the sausage is made.<p>Not to mention, of course, that skills are transferable. Philosophy students don&#x27;t study Plato because his ideas are relevant to everyday life. His way of thinking&#x2F;reasoning about problems given his limited means is a timeless skill. I will probably never have to use any direct fact in the Feynman Lectures in my dayjob but learning to think like Feynman is useful when reasoning about large obscure systems which I do encounter daily. FL is not so much an exercise in physics but in the application of the scientific method in general. For software engineering, it nicely compliments Skiena&#x27;s &quot;The Algorithm Design Manual&quot; IMO.<p>What I expect to learn from graphics programming:<p>- it&#x27;s a good practice for applied maths&#x2F;vectors&#x2F;linalg - it&#x27;s a good practice to learn lowlevel APIs&#x2F;programming tricks - maybe I&#x27;ll make a cool game<p>All of which can also find application elsewhere in computing.
      • bashmelek17 hours ago
        Yeah, like I imagine they mean that as a career it is competitive and demanding while having few openings so you shouldn’t stake your education and future on it, but I’m with you. This is something I really want to learn well enough to contribute the world.<p>Another staple of HN I abhor is “don’t bother learning this cool thing unless an official IQ test says you are over 150.”
        • sph17 hours ago
          I live after the motto of &quot;always disregard the naysayers.&quot; If someone tells you a thing is a bad idea, you can safely ignore their advice.<p><i>“The reasonable man adapts himself to the world; the unreasonable man persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man.”</i><p>— George Bernard Shaw
      • YeGoblynQueenne48 minutes ago
        What was that quote about chess... ?<p>Ah yes:<p>&quot;The ability to play chess is the sign of a gentleman. The ability to play chess well is the sign of a wasted life&quot; [1].<p>I&#x27;m not a graphics programmer so I&#x27;m not in a position to gatekeep but I fully agree with the sentiment in the OP (I mean KellyCriterion&#x27;s post). Do you really want to dedicate your life to an industry that will chew you up and spit you out just to release a borken AAA game that will go down in review flames for ripping its players off?<p>Side projects, sure. But, professionally? There&#x27;s gotta be better ways to pay the bacon and bring home the bills.<p>____________<p>[1] <a href="https:&#x2F;&#x2F;www.chess.com&#x2F;forum&#x2F;view&#x2F;general&#x2F;favorite-chess-quotes-1" rel="nofollow">https:&#x2F;&#x2F;www.chess.com&#x2F;forum&#x2F;view&#x2F;general&#x2F;favorite-chess-quot...</a>
        • KellyCriterion43 minutes ago
          Dont forget funny &quot;perks&quot; like &quot;crunch-time&quot; and &quot;pre-crunch-time&quot; :-D
          • YeGoblynQueenne30 minutes ago
            Yeah. Luckily I learned about those things at my first year at university in a &quot;Computer Science with games design&quot; course. I switched to straight CS in year two and I&#x27;ve always thought I dodged a bullet, there.<p>Sad though. The most fun you can have with programming is maybe the least fun programming job of all.
      • CrociDB16 hours ago
        Chill down. It&#x27;s just someone who has a lot of experience in the field making an analysis of the current landscape of the career, using their own as an example.<p>&gt; Telling people to stay away from graphics programming is not how to entice tomorrow’s John Carmack.<p>John Carmack was one of the _first_ graphics programmer to ever exist. The next John Carmack can&#x27;t be in the same field. The same way we can&#x27;t expect the next Beatles to be playing rock music. :)
      • zerr16 hours ago
        Isn&#x27;t it mostly shaders programming nowadays?
        • yunnpp13 hours ago
          Modern APIs make synchronization and resource management a lot more complex. Used correctly they result in better performance; used incorrectly...<p>That being said, &quot;nowadays&quot; most studios just throw shit at UE5 and get it over with. It&#x27;s obvious from how terrible many games run that they don&#x27;t have a rendering engineer on the payroll.
      • tayo4214 hours ago
        That sounds nice, but we need to make money and there aren&#x27;t alot of opportunities. I&#x27;d love to get away from web and infra nonsense but,in The right domain id even do it for a pay cut. Hobby work won&#x27;t get you a job
      • fastball16 hours ago
        &quot;These annoying, jaded horse-drawn cart builders, cautioning youngsters from getting into the field in 1908.&quot;
        • howLongHowLong4 hours ago
          If that jaded horse-cart builder worked at Studebaker (or Peugot or Durant-Dort which became General Motors) it would be bad advice, bc they turned into a car company. Many cart companies did, bc the people with the knowledge of suspensions, etc developed those skills in cart making
        • imtringued6 hours ago
          Except the point of the jaded person is that building transportation vehicles is a bad industry to get into, because there is a massive switch from cart building to automobile and truck building on the basis that it has become impossible to build a full automobile as a single person.
      • bsder17 hours ago
        &gt; I really dislike people that got into a thing and then try to discourage others. “Don’t be like me! I wasted my entire life” which is bullshit from a jaded person that lost passion. Telling people to stay away from graphics programming is not how to entice tomorrow’s John Carmack.<p>Given that almost everyone who wants to be a &quot;graphics programmer&quot; is also somehow gaming industry adjacent, it is <i>extremely</i> fair to ward them off from the folly. I do the same for anyone wishing to do &quot;VLSI hardware engineering.&quot; If you have the skill to do either of those, you almost CERTAINLY have the skill to do something else that is almost as interesting and not saddled by garbage employers.<p>The primary problem with being a &quot;graphics programmer&quot; beyond a tyro is that the biggest consumer of graphics programmers is the game industry which is a <i>notoriously shitty and wretched</i> industry. Every ... single ... employer. So, from the point of view of future potential, &quot;graphics programmer&quot; has very little upside over pretty much ANY other type of programmers.<p>Second, &quot;learning graphics programming&quot; is like &quot;learning phone programming&quot;, you spend more time fighting godawful software infrastructure more than you do actual programming. AI actually kind of helps this, but it doesn&#x27;t completely remove the fact that 80% of your knowledge has a half-life of 18-24 months.<p>Finally, saying &quot;I want to learn graphics programming&quot; is like saying &quot;I want to learn engineering.&quot; What &quot;graphics programmer&quot; means is vastly underspecified. 3D game rendering and 3D&#x2F;2D CAD rendering and 2D vector rendering are <i>completely different skillsets</i>. GPUs are great at the first and kinda okay at the second and kinda lousy at the third. Which kind of &quot;graphics programmer&quot; are you even going to be?
        • Animats15 hours ago
          &gt; 3D game rendering and 3D&#x2F;2D CAD rendering and 2D vector rendering are completely different skillsets.<p>Actually, no. Autodesk acquired Alias, and got the Maya animation system, in 2005. Soon after, the CAD tools had cinematic quality output. The architectural people loved this - good looking, accurate architectural renders came out. They especially liked that lighting worked, and you could use the CAD system to place real-world light fixtures.
        • Toqoz_14 hours ago
          &gt; Second, &quot;learning graphics programming&quot; is like &quot;learning phone programming&quot;, you spend more time fighting godawful software infrastructure more than you do actual programming. AI actually kind of helps this, but it doesn&#x27;t completely remove the fact that 80% of your knowledge has a half-life of 18-24 months.<p>What kind of knowledge are you talking about here? learnopengl.com is still relevant today for its technical knowledge of fundamental graphics techniques, in spite of OpenGL itself slowly dying. The knowledge itself is overwhelmingly transferable to whatever modern graphics API you’re using.<p>With mobile development, I can see that you’re mostly learning surface level tools and APIs, which get changed frequently as a new iOS version comes out. But with graphics it’s actually the opposite — most large features come with new hardware, and because most of your customers are generally using older hardware, you can’t even use those new features until the majority of users have upgraded and support it (usually with a new console generation).<p>Regardless of what you think of the games industry, graphics programmers are highly in demand and paid relatively very well. It’s hard and there’s a lot of surface area to cover to really be excellent, but the knowledge is relevant, longstanding, and rewarding IMO.
        • sph17 hours ago
          &gt; Which kind of &quot;graphics programmer&quot; are you even going to be?<p>If one follows OP&#x27;s advice, none at all.<p>&gt; it is extremely fair to ward them off from the folly<p>I completely disagree with this. It is a damaging and unproductive attitude to teach beginners and young people. Who are you to say their future career prospect is a folly? The only thing that defines the talents of tomorrow is that they have ignored such advice and then pushed forward the state of the art in ways you couldn&#x27;t even imagine. This is how progress works.
          • bsder16 hours ago
            &gt; Who are you to say their future career prospect is a folly?<p>Someone who watched an industry chew up and spit out far too many young people. That&#x27;s who and that&#x27;s why I&#x27;m qualified.<p>&gt; The only thing that defines the talents of tomorrow is that they have ignored such advice and then pushed forward the state of the art in ways you couldn&#x27;t even imagine. This is how progress works.<p>You would encourage an individual to walk a path that is 90%(95%&#x2F;99%) likely to damage their life horribly in the name of &quot;progress&quot;? Really? That&#x27;s ... more than a little inhumane.<p>Would you encourage someone who likes writing to be a &quot;journalist&quot; right now? I should hope not. I wouldn&#x27;t tell them to not write, but I sure would try to find a better way to channel that skill.<p>Or perhaps, if we substituted &quot;pro basketball player&quot; for &quot;graphics programming&quot; perhaps you could see the folly? Although, at least the individual playing basketball would gain the immediate benefits of being quite fit while the graphics programmer would enjoy no such side benefit.
            • sph9 hours ago
              &gt; You would encourage an individual to walk a path that is 90%(95%&#x2F;99%) likely to damage their life horribly in the name of &quot;progress&quot;<p>Are we still talking about graphics programming? Damage one’s life horribly, really? Those poor kids you saw ‘spat out’, are they irretrievably broken? You speak as if people are single-purpose machines, and that there is nothing to learn from adversity and challenge. That skills are not transferable and there is nothing new is there to be discovered.<p>Turning this around, would I discourage a kid from seriously pursuit a career as an astronaut or racing driver? That has a higher likelihood than most to ‘damage one’s life horribly’.<p>I honestly cannot understand nor subscribe to this pessimistic worldview, the one that would tell a kid to abandon their dream and go do what they believe society needs. Bollocks to that.
              • StefanBatory8 hours ago
                Dreams are fun but they don&#x27;t pay. And then you are earning scraps, and you realise that you&#x27;d prefer to be rich than to follow the dream for nothing.<p>I get that. In the time you&#x27;d learn about graphics programming, you could learn something else that would be able to give you a boost in the hiring market.
                • StefanBatory5 hours ago
                  Rereading that, my comment has been needlessly rude. For that I apologise, even if the point stands a bit still.
                  • sph3 hours ago
                    I appreciate the apology (wasn’t necessary) but I am a dreamer at heart and I subscribe to Buckminster Fuller’s idealism: <a href="https:&#x2F;&#x2F;www.goodreads.com&#x2F;quotes&#x2F;133403-we-should-do-away-with-the-absolutely-specious-notion-that" rel="nofollow">https:&#x2F;&#x2F;www.goodreads.com&#x2F;quotes&#x2F;133403-we-should-do-away-wi...</a><p>After all, he liked polyhedrons so much he made a living out of it. Following his dreams literally saved his life.
    • fasterik14 hours ago
      Computer graphics is intrinsically interesting and rewarding. It sits at the intersection of several important fields, from computer science to mathematics to theoretical physics to low-level programming.<p>Maybe steering away from it is good advice for someone who&#x27;s looking for a career transition but doesn&#x27;t care about what they&#x27;re actually doing. But that&#x27;s not a good way to go through life; my advice to such a person would be to follow what they find interesting and valuable, and constantly challenge themselves to learn new things. Then deciding whether or not to learn computer graphics is relatively straightforward and it will be a net positive for the right kind of person. Even if they don&#x27;t make it a career, the skills transfer well to many other areas.
    • bsenftner19 hours ago
      Graphics programming has this one very, very useful aspect, exponentially more valuable today: the matrix algebra pipelines, and then the requirement to &#x27;think in matrix transforms&#x27; is a wonderful and visually engaging way to get your foundation for machine learning math.
      • eichin18 hours ago
        I don&#x27;t really see this with <i>modern</i> graphics programming, but I was highly amused that my 1980s-1990s graphics skills (in particular, coordinate transform math) were very useful when I started working in robotics in the 2010s-2020s (because forward and inverse kinematics are <i>exactly the same thing</i> as 2d&#x2F;3d projections.)<p>The trick there is that they both have related physical analogs, and machine learning math doesn&#x27;t really (in that while you <i>can</i> visualize them spatially, it doesn&#x27;t seem to help solve any problems in that space.)
      • mathisfun12319 hours ago
        This is like saying being a cashier prepares you for a job in high-finance because both involve arithmetic on dollars and cents.<p>I&#x27;ve been in ML for ~5 years in multiple FAANGs and I have <i>never</i> seen a <i>rotation matrix</i>.
        • bsenftner16 hours ago
          A <i>rotation matrix</i> is but one of dozens and dozens of different types of basic transforms. It gets really fun with jacobian 12x12 matrix operations, and free form deformations. Which maps to ML far better than most imagine.
        • cognoboffin18 hours ago
          Doesn’t RoPE use 2D rotation matrices ?
          • mathisfun12318 hours ago
            congrats you&#x27;ve found literally the only example (&quot;the exception that proves the rule&quot;).
            • bsenftner15 hours ago
              Your fixation on the rotation matrix == 3D graphics is not right
            • cognoboffin18 hours ago
              SVD, and PCA are also examples.
              • mathisfun12317 hours ago
                there is absolutely no sense in which the SVD&#x2F;PCA decomposition is <i>just</i> a rotation matrix. you should probably review your linear algebra textbook (hint: scaling is extremely important).
                • moregrist15 hours ago
                  PCA is an orthogonal transformation of the covariance matrix, so like all orthogonal transformations, it’s _literally a rotation_ in N-dimensional space.<p>SVD is more complex but ultimately it’s just another useful decomposition of a matrix.<p>I’m not sure why you’re both negative and dismissive. Transformation matrices in graphics are a good and approachable way to get used to linear transformations, which turn out to be useful pretty much everywhere.<p>Whether or not that helps you with ML depends more on what you’re doing in ML. FAANG doesn’t have a monopoly on ML or on interesting work in ML.
                  • mathisfun12315 hours ago
                    &gt; PCA is an orthogonal transformation of the covariance matrix<p>Yes you&#x27;re now the second person the literally repeat the same thing I&#x27;ve already stated extremely clearly and succinctly: PCA is not just rotation (hint: you also need to understand covariance).<p>&gt; I’m not sure why you’re both negative and dismissive. Transformation matrices in graphics are a good and approachable way to get used to linear transformations, which turn out to be useful pretty much everywhere.<p>I&#x27;ve already literally drawn the analogy&#x2F;metaphor that I&#x27;ve drawn: if you think 2d&#x2F;3d rotation matrices <i>as they are used in graphics</i> is any kind of introduction to the matrices in ML (modeling linear transformations or otherwise) then you&#x27;re probably the type of person that believes that cash registers any kind of introduction to finance.<p>My point is not that hard to understand. Graphics in no way, way, shape, or form prepares you for ML. I don&#x27;t understand why this is so controversial.
                    • moregrist15 hours ago
                      &gt; My point is not that hard to understand.<p>Have you done any serious graphics programming? Even at the OpenGL 1.x level? What you’re saying just doesn’t make sense.<p>Just because you’re rotating and translating things in 3-space doesn’t negate that you have a stack of transforms that relate a point in world space to one on screen space and you want to be able to project from one to the other.<p>Nor does it make it any easier when you need to think about how to stack transforms to achieve effects like rendering a mirror.<p>I honed a lot of useful practical skill with linear algebra trying to get graphics to do what I wanted. And I say this as someone who’s spent the bulk of my career using linear algebra in the context of quantum mechanics, physical simulation, and ML-adjacent areas.
                      • mathisfun12314 hours ago
                        &gt; negate that you have a stack of transforms that relate a point in world space to one on screen space and you want to be able to project from one to the other.<p>no it doesn&#x27;t &quot;negate&quot;, it&#x27;s all completely orthogonal (pun) or irrelevant. like for real just please take a look at<p><a href="https:&#x2F;&#x2F;docs.pytorch.org&#x2F;docs&#x2F;2.12&#x2F;nn.html" rel="nofollow">https:&#x2F;&#x2F;docs.pytorch.org&#x2F;docs&#x2F;2.12&#x2F;nn.html</a><p>and tell me which operators you&#x27;re imagining have any resemblance with typical graphics linear algebra.<p>like when you people make such claims do you really have anything concrete in mind or just hype?
                        • dahart8 hours ago
                          &gt; tell me which operators you’re imagining have any resemblance with typical graphics linear algebra<p>FWIW, since it seems like you’re unaware: most of those are used in graphics in general, and have been used since long before Torch existed. Convolution’s extremely common. Pooling is just a type of image resampling to graphics people. Non-linear activations are just response functions that graphics people use for colors for example, also volume rendering. Normalization, linear, distance, vision, and shuffle layers are all absolutely standard common operations in graphics, on everything from images to meshes to volumes to matrices.<p>BTW, most of those Torch layers aren’t “linear algebra” per se, they are just convenient building blocks for neural networks, many of which are also convenient building blocks for graphics… and for similar reasons.<p>Was your point implicitly limited to rotations or a raster pipeline’s model-view-projection matrix? That certainly does not amount to all “graphics”, right?<p>&gt; Graphics in no way, way, shape, or form prepares you for ML. I don&#x27;t understand why this is so controversial.<p>This isn’t really controversial, it’s just not particularly true as stated. Graphics is much more than 3d rotation matrices, and doing real modern graphics involves all kinds of linear algebra, with immense amounts of overlap between the linear algebra that ML and computer vision use.<p>Perhaps missing from this conversation is any thoughtful consideration to the history of today’s ML and the cross pollination between the fields we call graphics, vision, and ML. The implicit assumption you seem to be making that they are distinct fields without a shared history and co-development and without a shared foundation is not a good assumption.<p>I personally know enough ex-graphics people that transitioned to ML and were well prepared by graphics and are wildly successful in ML that it makes your claim sound somewhat ignorant of what’s happened and is happening in both graphics and ML from my perspective, for what it’s worth.
                • srean11 hours ago
                  Cognoboffin is exactly right. SVD decomposed matrix into a sequence of rotation, scaling and unrotation matrices.<p>If anyone needs a review it&#x27;s not cognoboffin.<p>You led with the claim you have never seen a rotation matrix in ML. I am having doubts about whether you have the ability to recognise one.<p>I suspect new hires get a free pass as long as they can talk a storm about backpropagation these days.
                • cognoboffin17 hours ago
                  SVD is the decomposition of a matrix into two rotation matrices and a scaling matrix, by definition:<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Singular_value_decomposition" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Singular_value_decomposition</a>
                  • mathisfun12316 hours ago
                    i don&#x27;t understand who is having trouble reading the dialogue here you or i;<p>&gt; there is absolutely no sense in which the SVD&#x2F;PCA decomposition is <i>just</i> a rotation matrix... (hint: scaling is extremely important)<p>...<p>&gt; SVD is the decomposition of a matrix into two rotation matrices and a scaling matrix, by definition:<p>yes that&#x27;s exactly what i was implying when i said SVD more than <i>just</i> rotation, scaling is also important.<p>my point, which is my same original point, is that if you think learning about rotation&#x2F;euler matrices is going to prepare you in any way, shape, or form for ML (vis-a-vis SVD&#x2F;PCA or RoPE or anything else) you&#x27;re in for a very rude awakening.
                    • yunnpp13 hours ago
                      You opened with this:<p>&gt; I&#x27;ve been in ML for ~5 years in multiple FAANGs and I have never seen a rotation matrix.<p>Presumably you&#x27;ve used SVD, but you&#x27;ve never seen a rotation matrix. So something is cooked.<p>Maybe corollary: that FAANG job wasn&#x27;t that interesting.
        • srean18 hours ago
          ... and I have been both situations for longer and have seen tons and tons of them (*)... So?<p>Not so hypotheticals -- Heck the inputs that you want labelled could be rotation matrices. The desired output could be a rotation matrix. Generating more convenient features could be via a rotation matrix. Dimensionality reduction could be through a reduction matrix. Sparsity could be encouraged by proper use of rotation matrices. Shows up if you want to build in group theoretic invariance in your predictive model.<p>(*) If you consider Householders then even more
        • kilpikaarna18 hours ago
          I mainly learned linear algebra via hands-on 3D graphics, and have a hard time thinking about a matrix as anything other than 4x4 and representing a linear transform...<p>How much do you even think about explicit matrix math when doing high-level ML?
          • bsenftner15 hours ago
            3D graphics is so much more than the basic transforms. Add in all the deformation systems blending together, and those often being physics driven off the animation. You all have seen modern VFX, right? That is not basic 4x4 transforms.
          • skydhash18 hours ago
            I’ve not done high level ML, but I’ve done introductory ML and the truth is while the input space and the output space can have N and M dimensions, there’s not a lot of constraints involved. The matrix there are more randoms.<p>The whole ML field is basically about starting from random points and trying to find useful shapes and constraints. Basically like trying to get object likeness in clouds
        • jplusequalt19 hours ago
          TBF, I bet any graphics programmer would be a boon for a ML shop for their GPU&#x2F;performance optimization knowledge alone.
          • KellyCriterion23 minutes ago
            AFAIR, the guys at DeepSeek with their PTX-assembly approach didnt have any graphics programming experience
        • pascahousut18 hours ago
          Is the linear algebra of machine learning more complicated than that of graphics?
          • dahart9 hours ago
            Both are large fields with <i>many</i> varied applications of linear algebra (and non-linear math too), and many people trying a lot of interesting &amp; complicated ideas. The question is way too vague to answer meaningfully, it depends on what you mean by ‘graphics’ and by ‘machine learning’ and by ‘linear algebra’ and by ‘more complicated’. ;)<p>The linear algebra used in the basic raster pipeline to manage drawing a 3d unshaded mesh is pretty simple, and you can get by knowing just a little bit of linear algebra, like dot products and how to multiply matrices, and maybe what homogeneous coordinates are. But that is by no means the extent of linear algebra in all of graphics.<p>The linear algebra used in a basic neural network is also pretty simple, and you can get by knowing dot products and matrix multiply <i>if</i> you’re writing your own inference, and maybe just a tiny bit of derivative calculus <i>if</i> you’re writing your own backprop, but otherwise you don’t need anything else.<p>Students in both fields have to learn some basic linear algebra, but most people working in ML &amp; graphics generally don’t use any linear algebra day to day, because most people aren’t writing inference&#x2F;backprop and most people aren’t writing the graphics pipeline.<p>BTW, matrices and linear algebra are pure convenience for neural networks, and maybe for the graphics raster pipeline too. You can do both of these things without using matrices per se (though you might re-invent something equivalent and&#x2F;or less efficient by avoiding matrices).
          • ekholm_e18 hours ago
            I&#x27;m a data scientist and not a graphics programmer, but my guess is that it&#x27;s just abstracted away more. If you&#x27;re using ML&#x2F;DL libraries, you&#x27;re mostly just calling APIs that handle the linear algebra and calculus for you. Unless you&#x27;re actively contributing to those libraries, you likely don&#x27;t ever need to &quot;touch&quot; any of the underlying operations. Up to a point, it&#x27;s useful to understand how things work under the hood, but where that point is kinda depends on your job. For instance, I could write code to do &#x27;naive&#x27; matrix multiplication, but I couldn&#x27;t, like, contribute to BLAS.
          • molybd3num18 hours ago
            i think so
        • rustystump11 hours ago
          5y multiple fang? Dont you know it is MANGOs now and has been for a while. Are you sure it is FAANGs?
    • Profan18 hours ago
      How about people like Inigo Quilez? I&#x27;d say they&#x27;re still quite high profile in today&#x27;s landscape. And the main thing is I think there&#x27;s just way more people in the field overall today too, not everyone can be famous! It&#x27;s totally fine to not be as high profile as literally one of the most well known people in a field, it&#x27;s fine to just do it because you enjoy it! The math and art of graphics (and games in general) programming is beautiful in and of itself.
    • qingcharles14 hours ago
      Right. Most of the clever stuff that Carmack is famous for moved from software into hardware.<p>By argument about not getting into graphics programming is different -- are 3D engines, with their vertices and textures, going to even exist a few years from now? Or will everything be rendered directly by an AI world model? How much code will a game contain, or will it simply exist in a series of cleverly-worded prompts?
    • ossgamesnoexist11 hours ago
      &gt; &quot;Where is todays Jon Carmack?&quot;<p>Where are today&#x27;s games with sufficient insight on their technical aspects, to the level we got with Commander Keen, Wolfenstein and Doom?<p>Dwarf Fortress solved some outstanding lag issues involving tracking owned objects. But if you ask a random person HOW, we don&#x27;t actually have a serious clue.<p>Think of well known instances of big developers having their code exposed and we have... I dunno, Valve&#x27;s TF2 leak and their incredibly rare Dota 2 between the lanes posts?<p>There is no John Carmack now. You&#x27;re saying its because there&#x27;s no large space to improve on like how early people had to. I say it&#x27;s not because the struggles and unique problems disappeared, but because there isn&#x27;t a benefit to that type of transparency anymore.
    • cjk16 hours ago
      Couldn&#x27;t disagree more. I&#x27;ve only recently started digging into graphics programming and I&#x27;ve found it incredibly rewarding. It&#x27;s the _one_ area of expertise that I don&#x27;t yet have that has been preventing me from solo-developing a 3D game engine.<p>It takes five minutes of trawling through the videos on the GDC Vault to see all of the clever and interesting ways modern graphics engineers are eking every bit of performance out of modern hardware. Is it as clever or innovative as Carmack&#x27;s fast inverse square root? I don&#x27;t know. I&#x27;m not sure how to compare those things. But there is still plenty of room for that flavor of work for those that are interested.
      • bsenftner15 hours ago
        Well, then: &quot;merry Christmas&quot; so to say: <a href="https:&#x2F;&#x2F;flipcode.com&#x2F;archives&#x2F;" rel="nofollow">https:&#x2F;&#x2F;flipcode.com&#x2F;archives&#x2F;</a>
        • KellyCriterion13 minutes ago
          Ha! Didnt now its still online!<p>It was THE ressource back then! :-)
        • cjk14 hours ago
          This is brilliant. Thanks!
    • hoistthesales19 hours ago
      JC was a bit of an anomaly but also his image is mostly coming from players and journalists. Developers struggled to use the later id software engines (partly why UE won that war).<p>You don’t need to be JC to earn a decent living as a graphics&#x2F;game programmer.
    • dylan60414 hours ago
      &gt; &quot;Where is todays Jon Carmack?&quot; - he was famous for squeezing everything out of the hardware,<p>Spinning that another way, there&#x27;s Bill Gates (not sure of the authenticity though) saying something along the lines of why would he pay to spend that kind of time when CPUs&#x2F;RAM&#x2F;HDDs are getting faster&#x2F;cheaper; users can just upgrade. If we determine which method is more successful based on their worth...
      • skotobaza9 hours ago
        &gt; users can just upgrade<p>That used to work, but not anymore. Not because of hardware prices, but because of small gains that upgrading gets us nowadays.
    • groundzeros201518 hours ago
      There is more to graphics than AAA games or blockbuster movies.
    • jayd1618 hours ago
      You can still read a bunch of papers and be first to market using exotic tech. The main issue right now is that games are so incredibly high budget and the bar is so high that you really need to stand out in many ways.<p>We see folks posting photo real, Gaussian splat FPS maps here every now and then but without also innovating on gameplay its just a tech demo. Those don&#x27;t cut it these days.
    • psygn8917 hours ago
      I think the people that go into this field today (and for a while now) probably do it for the love of it, not the pay or widespread fame of doing something extraordinary in the field. Not that you can&#x27;t have it all, but not being some legend I, well, I think that&#x27;s a strange reason for someone already interested in game dev not to step into the field?
    • markus_zhang18 hours ago
      What if I just want to program some rendering engine for a game that looks like DOOM 3 and its predecessors? I think that’s still quite doable?
      • corysama17 hours ago
        Old 3D engine guy here. I highly encourage folks to make a 3D engine for fun and learning. Shipping a game with it would be a cherry on top. Come join us in r&#x2F;graphicsprograming, r&#x2F;gameenginedevs and the graphics programming discord.
        • markus_zhang15 hours ago
          Thanks. I have 3 days of vacation ahead so will use the time to sort out the math first. Code shouldn’t be too hard for a very simple 3d demo.<p>I tried my hand on hand a while ago and found out I couldn’t make out how many pixels to draw, say, a line in the 3d world. It involves a transformation to the world and another transformation to the camera, so I couldn’t make it out without any study.<p>This is probably very trivial so hopefully 3 days is good enough.
          • corysama12 hours ago
            I recommend <a href="https:&#x2F;&#x2F;gamemath.com&#x2F;book&#x2F;" rel="nofollow">https:&#x2F;&#x2F;gamemath.com&#x2F;book&#x2F;</a> as a good starting point.
            • markus_zhang12 hours ago
              Thanks a bunch. I purchased a book &quot;Mathematics for 3D game programming &amp; computer graphics&quot; so figured they are pretty similar. But it is still very good material so I&#x27;ll take it as reference.
        • shermantanktop16 hours ago
          Seems like a lot of people work for a long time perfecting their special flavor of ice cream and never quite get to the cherry on top.<p>A lot to be learned from building a 3D engine, no doubt, but anecdotally the chances that it will lead a working game that anyone wants to play seem low. That&#x27;s not a bad thing, unless they tell themselves they are going to ship a game any day now, just as soon as they do X, then Y, then Z, ...
    • halestock19 hours ago
      Huh? Just because you&#x27;re not going to become the next graphics programming legend you think it&#x27;s not worth getting into graphics programming at all?
      • JasonSage18 hours ago
        It&#x27;s also a great way to not become the next &quot;graphics programming legend&quot; --I think a fast-moving field with lots of new developments is actually an exciting place to be a pro.
      • alexashka18 hours ago
        The moment you realize most people&#x27;s thinking is no better than a hallucinating LLM :)
    • jzer0cool11 hours ago
      Any insights? If not traditional Computer Graphics due to change, where might be the good to spend your attention within the field. Or is OP saying to stay away?
    • lp4v4n14 hours ago
      Very interesting insights, thanks for this.<p>Indeed &quot;be a graphics programmer&quot; nowadays sounds like &quot;be an assembly programmer&quot;.<p>A kind of time waster for a nerd with too much time in their hands.
    • nicebyte16 hours ago
      Ridiculous justification.<p>&quot;Where is todays Jon Carmack?&quot;<p>Where is the &quot;John Carmack&quot; of ML? Where is the John Carmack of physics? This hero worship crap needs to be left in the past. There isn&#x27;t a singular active researcher you can point to and say &quot;this person has made the field what it is today&quot;. There are very influential papers, but they all have multiple contributors. Is that really a valid reason to not engage in a particular area of research or engineering?<p>And who cares anyway? No matter what you choose to do with your time, chances are that you will not have that much of an impact on your chosen discipline. You should choose how to spend your time based on whether an activity genuinely interests you, not on whether you think it would be easy to get recognition.
      • OkayPhysicist16 hours ago
        Physics is a weird one to bring up, because even compared to other fields, it&#x27;s one where breakthroughs <i>are</i> frequently the result of relatively singular genius. Newton, Faraday, Planck, Einstein, their discoveries were generally not incremental progress along existing lines of inquiry like most physics research is, they made pretty radical changes to our understanding of the world writ large.<p>In comparison, Carmack is grossly overhyped. He&#x27;s like the Feynman of CS: A significant contributor to relatively young field, and a pretty influential communicator, but their contributions were moreso being the first to make a certain type of incremental progress than a paradigm shift.
        • nicebyte15 hours ago
          No, that is exactly the reason I am bringing up physics. There used to be a time when a singular person could make an outsized impact. In the recent past though, this has not been the case: significant breakthroughs are usually the result of coordinated effort of many individuals. Is that really a valid reason to not do physics?
      • nicebyte16 hours ago
        now, if you said &quot;don&#x27;t get into it because your primary employment prospects would be games or film industry, which are known to be less than stellar towards their workers&quot; - that would be a different story.
    • redlewel15 hours ago
      Boooooooo<p>Keep learning yung ones
    • anthk16 hours ago
      Fabrice Bellard.
  • ivansavz18 hours ago
    If anyone needs a quick tutorial on linear algebra, you can check out this printabale four pager that I wrote: <a href="https:&#x2F;&#x2F;minireference.com&#x2F;static&#x2F;tutorials&#x2F;linear_algebra_in_4_pages.pdf" rel="nofollow">https:&#x2F;&#x2F;minireference.com&#x2F;static&#x2F;tutorials&#x2F;linear_algebra_in...</a><p>I also have some notebooks with SymPy code examples here: <a href="https:&#x2F;&#x2F;github.com&#x2F;minireference&#x2F;noBSLAnotebooks" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;minireference&#x2F;noBSLAnotebooks</a>
    • Rendello13 hours ago
      That is extraordinarily beautiful aesthetically! It&#x27;s always a shame when beautiful mathematics is presented with bad typography and ugly spacing.
      • ivansavz3 hours ago
        Thanks! I&#x27;d like to take the credit for the design, but it&#x27;s just the LaTeX defaults of the IEEEtran document class.
    • SilentM6818 hours ago
      Good Books :)
  • SoleilAbsolu20 hours ago
    Somewhat surprising there is no mention of basic design principles, or understanding the quirks of human perception. My brother was a production artist for some well-known computer games in the &#x27;90s-&#x27;00s, and continually complained about programmers and managers with zero visual sense, or curiosity about understanding the artists&#x27; side.<p>Graphics aren&#x27;t my specialty, but as a musician, sound designer and producer, by far the most effective&#x2F;influential audio DSP coders I&#x27;m aware of understand the basics of music, the physics&#x2F;acoustics of sounds, and the gotchas at the interface between discrete digital processes and how we perceive and interpret stimuli.
    • shikshake19 hours ago
      There’s a separate role that is more along the lines of what you’re saying, called a Technical Artist (that’s what I do)<p>I think graphics programmers benefit from having an artistic mindset, but they usually work so low level that it isn’t necessary to be successful.
      • bsenftner19 hours ago
        I was a technical artist for a series of feature films during the early &#x27;00s. At a good studio they&#x27;ll have art and design classes for the tech origin staff and scripting and bash classes for the art origin staff. I was both, and that was a ton of fun.
      • doodlesarefun14 hours ago
        Any suggestion for paths into tech art? I&#x27;m very strong in traditional media, I know my way around photoshop &amp; blender very well[0] and I&#x27;ve self-studied programming to a level where I can read lower-level (c&#x2F;c++) code and know what it&#x27;s doing. I even got a PR merged into blender once!<p>But I have no industry connection and my public portfolio is mostly charcoal and oil. The company that flew my drone animations is small &amp; didn&#x27;t get good video of them (there&#x27;s a cellphone video or two from the audience, but that&#x27;s not very good for a showreel). I&#x27;ve been thinking of just getting some good footage of a field &amp; using blender to render &amp; composite the designs, but doing that well will be time consuming and I feel like I might be better off doing something else.<p>Any advice on breaking in?<p>[0] I made a small blender workflow &amp; add-on before AI to coordinate droneshow animations that I was selling to a small company, used renderdoc to insert gl.readcolors into the renderloop in a very ugly so I could get the benefit of the shader engine, which no commercial drone-animation software could do at the time. Almost worked for a bigger drone company but the contract was untenable.
      • gambiting19 hours ago
        Exactly, Technical Artist is a distinct position that normally bridges the gap between pure programmers and artists and their needs. All TAs I&#x27;ve ever worked with had this incredible skill of knowing exactly what tech thing they need to achieve the outcome that the artists want.
      • tayo4219 hours ago
        Is this a viable field for employment?or did it collapse like alot of other digital art?
        • harulf17 hours ago
          Good Technical Artists are one of the most sought after professions in game dev. But it&#x27;s also an annoyingly broad role that means different specific things at different places. The one common trait is being able to bridge the gap between art and code in a way that makes both parties happy.
    • thewebguyd19 hours ago
      This applies outside of creative industries too. I&#x27;ve seen my fair share of B2B&#x2F;enterprise software where its clear the vendor has no clue how the industry they are selling to works, or how the users of that software think.<p>AI changed the calculus a bit (or at least, it has the potential to) but I think that was a huge part of the whole &quot;learn to code&quot; movement in the mid 2000s, to start treating software development as a &quot;feature, not a product&quot; of existing experts in their field so that the people most familiar with their domain are actually the ones making the software instead of having to translate the requirements down to a dev team.
      • mghackerlady19 hours ago
        the learn to code movement was a psyop by big tech to get more javascript monkeys for cheap
        • pipes19 hours ago
          I doubt most JavaScript monkeys would have got through their leet code style interview process ! :)
        • elzbardico19 hours ago
          Think more code monkeys for enterprise software consultancies, like Accenture, Tata, IBM Global Services, etc.<p>They needed warm bodies for their projects, as the usual source of manpower was grinding leetcode to work on bigtech at salaries that would make an accenture business type vomit in disgust.
    • Atrix25618 hours ago
      (author of the article) 100% agree. As others have said, a good graphics programmer works with tech artists and artists. Frankly, graphics programming is largely a role of service to enable those people to do what they want to do, or help create what they envision. People mentioned Inigo Quilez as an example of a graphics programmer who is also an artist. He is a power house and a unicorn. I personally like playing music &#x2F; programming audio more, which is a good ground for learning DSP things - useful when for instance, you want to push your rendering noise into the high frequencies, so a low pass filter is more effective at denoising.
      • at_compile_time10 hours ago
        &gt;Inigo Quilez<p>I came across this guy&#x27;s channel the other day and it was an immediate subscribe.
    • milesvp18 hours ago
      I see this all the time with audio too. The amount of bits you need to reserve a
  • legends2k7 hours ago
    Here&#x27;s my created list I maintain: <a href="https:&#x2F;&#x2F;legends2k.github.io&#x2F;note&#x2F;cg_resources&#x2F;" rel="nofollow">https:&#x2F;&#x2F;legends2k.github.io&#x2F;note&#x2F;cg_resources&#x2F;</a> Do learn if it piques your curiosity and have the time. You&#x27;re in for a blast and a lot of learning, that&#x27;ll make you a better engineer, in many other fields of computer science too (you understand hardware, system programming, programmer&#x27;s machine model, etc.).<p>Don&#x27;t learn if you do it with a monetary end goal as it&#x27;s fleeting, ephemeral and not guaranteed in this day and age.
    • optymizer7 hours ago
      I&#x27;ve been using this one, maybe others will find it useful as well: <a href="https:&#x2F;&#x2F;owlcat.games&#x2F;learning" rel="nofollow">https:&#x2F;&#x2F;owlcat.games&#x2F;learning</a>
  • satnhak2 hours ago
    Should also include be under 25 and have lots of time to dedicate to it. I&#x27;ve always been interested in the idea of graphics programming and a few years ago I started teaching myself vulkan. Not sure quite how long I spent in total, 6 months of free evenings, maybe a bit less. I&#x27;m close to having a rendering framework. But it&#x27;s one of those things where the further you get with it the more you realise how little you know. You feel like you&#x27;re sort of happy with how things work and then you discover, no that&#x27;s not the right architecture. I guess it&#x27;s basically the mathematics of applied lighting. That&#x27;s what your doing. The rest of it is the plumbing. Oops, why do my spotlights shine straight through the cube? Oh, I need to calculate shadows. Spend a couple of weeks working out how to get that into the render pipeline. But it is a lot of &quot;fun&quot; if you&#x27;re into that sort of thing.
    • deliciousturkey2 hours ago
      Sadly, Vulkan is really painful way of learning graphics programming. Doing almost anything requires large amounts of boilerplate. Almost everything you need to do, for example to make shadows, requires just 10x more code than the technique fundamentally requires.<p>For learning graphics programming, in my opinion, writing software renderers is much more enjoyable path. Code is less, the code you write touches fundamental and not boilerplate. Downside is that code will be slower as you will lose HW acceleration.
      • pjmlp1 hour ago
        Not necessarily, some folks advocate that with modern compute APIs we are better doing &quot;software&quot; rendering, but on the GPU.<p>By the way, this is what renders like OTOY Octane do.
        • deliciousturkey2 minutes ago
          Sadly you can&#x27;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&#x27;ll still be slower than using RT cores.<p>And even with GPU compute, you benefit from HW acceleration with the HW texture unit.
  • Mierenik3 hours ago
    Depends on what you want to do.<p>If you just want to make a game, use a game engine like Unity, Godot or Unreal.<p>If you want to do graphics, like making engines, simulations, renderers then you should learn a low-level language and a graphics API. For the language I recommend C++, you can also use C or Rust but C might be a bit too difficult and you don&#x27;t want to fight the language since graphics APIs are already hard. Rust might also be a good choice but I personally find the compile times very slow and the syntax to be ugly.<p>As for the API, go with OpenGL, it&#x27;s cross-platform, old (which is good and bad at the same time) and is the easiest of them all.<p>learnopengl.com is by far the best tutorial on opengl, so I suggest following that.<p>After using opengl for a while you can branch out and use something like Vulkan or a graphics library that implements all of them, or even keep using opengl if its fine for you.<p>It&#x27;s definetly not easy but it&#x27;s one of the most fascinating parts of CS imo
  • Cthulhu_1 hour ago
    I just opened up that ray tracing tutorial and am slowly going through it, I&#x27;ve always been interested but never got around to it. Today I learned about the PPM image format, very accessible for this kind of thing! I mean writing a bitmap isn&#x27;t rocket science but PPM is even easier.
  • dmarcos18 hours ago
    I created and still maintain A-Frame (aframe.io). It’s been a gentle gateway to learn 3D graphics for a decade. Cool community if I can say so ha ha. Web is a great way to share stuff as you learn, collect feedback and get visibility. Many cases in the community of people that ended up doing 3d graphics professionally.
    • dapper_w0lf16 hours ago
      Wow, I wrote my master&#x27;s thesis using A-Frame! Honestly, I&#x27;d love to give you my deepest gratitude for what you did with A-frame. I wasn&#x27;t a programmer at the time and had <i>very</i> little experience but A-Frame helped me realise my idea in a really intuitive way. I occasionally look back at the repo and cringe from how bad my code was back then but if it wasn&#x27;t for that project I doubt I would be where I am today. Thank you.
      • dmarcos16 hours ago
        Thanks so much! Really happy to hear. It makes all sweat, blood and tears of open source maintenance worth it.
    • utopiah17 hours ago
      Can definitely recommend it!<p>Start with just &lt;a-box&gt; and &lt;a-sky&gt;, add some animations, then add some community components if it&#x27;s not enough. Still not enough then modify via ThreeJS, all the way to shaders. A-Frame is amazing so thanks for creating and maintaining it!<p>PS: Oh, and you can even do AR and VR with it.
  • mawadev19 hours ago
    Feels like we try to turn anything we do into a career or job, especially with the odd ML angle. How about you &quot;do graphics programming&quot; instead of &quot;being a graphics programmer&quot;? Like start doing simple stuff until it clicks and you see it for being logistics to the GPU, then you can layer on top all the crazy concepts. Its like a small mountain you climb and suddenly everything clicks and you think like &quot;oh my&quot;... the possibilities and things to experiment with...
    • xboxnolifes17 hours ago
      I don&#x27;t think the wording implies a career or job. It&#x27;s more implying an identity. &quot;I&#x27;m a rock climber&quot;, &quot;I&#x27;m a gamer&quot;, &quot;I&#x27;m an artist&quot;, &quot;I&#x27;m a mother&quot;, &quot;I&#x27;m a father&quot;, &quot;I&#x27;m a gym bro&quot;, &quot;I&#x27;m a graphics programmer&quot;. None of these necessarily imply career or job, though they do tend to imply more than just a passing, casual involvement.
  • dvrp9 hours ago
    I love @Animats comment!<p>I come from reading about CRDTs from Evan Wallace and also having built a product used by &gt;40M users.<p>It applies to software products too!<p>In their words…<p><i>If you want to build products, use React or even vibecode; you will learn higher-level issues of solutions to problems (i.e. people problems rather than machine problems), not how to push data&#x2F;state&#x2F;computation around. The problem is solving a need.</i><p>Neither is good nor bad; just be clear about your goals and then it’ll be easy to decide if you want to follow Zynga’s cofounder, Jonathan Blow, or Notch! And before you rush to answer… consider whether any of them are <i>happy</i>.<p>For people who recommend against learning these skills because “what Carmack did is not possible anymore.”… well, if what you look for is money then yeah! But, if you just want to learn for the love of the game, then that would be a very bad advice!
  • ivanjermakov15 hours ago
    I had some difficulties making sense of _color_ in context of graphics programming, especially transfer functions (sometimes misleadingly called tone mapping).<p>Good article on color management in general, which has a great intersection with foundations needed for graphics programming: <a href="https:&#x2F;&#x2F;chrisbrejon.com&#x2F;cg-cinematography&#x2F;chapter-1-color-management&#x2F;" rel="nofollow">https:&#x2F;&#x2F;chrisbrejon.com&#x2F;cg-cinematography&#x2F;chapter-1-color-ma...</a>
    • qingcharles14 hours ago
      Color is <i>so</i> difficult. That&#x27;s a good article. A graphics programmer should absolutely have an understanding of color. It&#x27;s getting really hard now that games also implement HDR features, which few can understand. Great video on the problems here:<p><a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=6hAVA6_Sczs" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=6hAVA6_Sczs</a>
    • ivanjermakov6 hours ago
      Update: and this one, with more on display transforms<p><a href="https:&#x2F;&#x2F;chrisbrejon.com&#x2F;articles&#x2F;ocio-display-transforms-and-misconceptions&#x2F;" rel="nofollow">https:&#x2F;&#x2F;chrisbrejon.com&#x2F;articles&#x2F;ocio-display-transforms-and...</a>
    • yunnpp13 hours ago
      &gt; sometimes misleadingly called tone mapping<p><i>sometimes</i> is an understatement there. It took me like a decade to get that shit right. Graphics in general seems to suffer from bad explanations repeated everywhere. We need more authoritative textbooks.
      • ivanjermakov6 hours ago
        I think the problem is that terminology for graphics programming was reinvented without asking color scientists. Unfortunately common in our industry where solutions are created without proper research of existing alternatives.
    • teddyh12 hours ago
      I again feel compelled to link to the quite excellent <i>Color FAQ</i>: &lt;<a href="https:&#x2F;&#x2F;poynton.ca&#x2F;pdf&#x2F;ColourFAQ.pdf" rel="nofollow">https:&#x2F;&#x2F;poynton.ca&#x2F;pdf&#x2F;ColourFAQ.pdf</a>&gt;
  • love09721 hour ago
    Is it okay if I only learn Python?
  • sudo_cowsay19 hours ago
    I think that Khan Academy has a lot of graphics programmers that you might be interested in seeing. They use processing js. <a href="https:&#x2F;&#x2F;www.khanacademy.org&#x2F;computing&#x2F;computer-programming&#x2F;browse" rel="nofollow">https:&#x2F;&#x2F;www.khanacademy.org&#x2F;computing&#x2F;computer-programming&#x2F;b...</a><p>This guy has some good art: <a href="https:&#x2F;&#x2F;www.khanacademy.org&#x2F;profile&#x2F;kaid_101904269317089495055459&#x2F;projects" rel="nofollow">https:&#x2F;&#x2F;www.khanacademy.org&#x2F;profile&#x2F;kaid_1019042693170894950...</a>
    • sudo_cowsay19 hours ago
      unfortunately, khan academy has been deleting old accounts: <a href="https:&#x2F;&#x2F;kap-archive.bhavjit.com&#x2F;view?p=6177161966469120" rel="nofollow">https:&#x2F;&#x2F;kap-archive.bhavjit.com&#x2F;view?p=6177161966469120</a>
    • sudo_cowsay19 hours ago
      And this person: <a href="https:&#x2F;&#x2F;www.khanacademy.org&#x2F;profile&#x2F;kaid_9428127706426004539463954&#x2F;projects" rel="nofollow">https:&#x2F;&#x2F;www.khanacademy.org&#x2F;profile&#x2F;kaid_9428127706426004539...</a>
  • stefangordon2 hours ago
    I would learn both Claude and ChatGPT just to be safe.
  • playorizaya19 hours ago
    1. Familiarity with all GL APIs, but deep focus on 1 or 2.<p>If you want to work with Windows, probably DirectX.<p>2. Make awesome shaders. Check this out: <a href="https:&#x2F;&#x2F;fragcoord.xyz" rel="nofollow">https:&#x2F;&#x2F;fragcoord.xyz</a><p>I would say being a long-time user of Photoshop and Blender helps a lot. It&#x27;s not a main tool, but supplemental. Maybe AI will take over some of this though.<p>Hell, maybe that other stuff too, hahaha!
    • SirHackalot19 hours ago
      Why outsource my learning to Al? The whole point is the joy of the process. I could easily take a photo of a scene (since the inception of photography) instead of learning to paint it, but I would gain no skills through that. People still paint. I&#x27;m just tired, boss... I yearn for a past when we didn&#x27;t have to end every conversation with a disclaimer about Al taking over.
      • playorizaya16 hours ago
        Yeah depends what&#x2F;why you wanna do.<p>As a kid I wanted to make games when I got older, I always saw learning to program as a means to that end.<p>It wasn’t until I was deep into my career that I started developing all these preferences and ego and suddenly caring about the craft of the craft - specializing in work I never imagined spending so much time and energy on, career aspects I never meant to work into my personal identity.<p>Part of me feels a huge sense of relief with LLMs and image gen - because finally <i>I</i> don’t have to be the maniac anymore! The machine can be the machine again, I don’t have to sit at an IDE for 13 hours grinding out tedium.<p><i>Now</i> I can make games, <i>now</i> I can do art.<p>In that sense it’s a lot like the early arts and literature movements - a renaissance - where the printing press, canvas, international finance, and the enabling of the rapid production of ideas paid off tremendously in the following decades and centuries.<p>We’ll get great films, games, stories, and research because of this stuff. And then great innovation - stuff we could not do without it at unimaginable scales.
        • jplusequalt14 hours ago
          &gt;We’ll get great films, games, stories, and research because of this stuff.<p>If you were the kind of person who could create great art, then you would have found a way to make that art happen before LLMs were made.<p>Sorry if that comes off as harsh, but it&#x27;s true. Too many people are convinced that an AI is suddenly going to skyrocket them from the ground floor to the ceiling of a craft. It won&#x27;t.<p>Accept that there are no shortcuts to mastery. Accept that ideas are cheap, and execution is what matters. Accept that a large portion of people find it repugnant to engage with generative art.
          • playorizaya12 hours ago
            &gt; If you were the kind of person who could create great art, then you would have found a way to make that art happen before LLMs were made.<p>I did some fairly pioneering product and visual design work (early to the trends sorta thing) long before AI, over a decade ago:<p>• <a href="https:&#x2F;&#x2F;dribbble.com&#x2F;shots&#x2F;1649274-New-Message-flow" rel="nofollow">https:&#x2F;&#x2F;dribbble.com&#x2F;shots&#x2F;1649274-New-Message-flow</a><p>• <a href="https:&#x2F;&#x2F;dribbble.com&#x2F;shots&#x2F;3019741-Get-a-ride" rel="nofollow">https:&#x2F;&#x2F;dribbble.com&#x2F;shots&#x2F;3019741-Get-a-ride</a><p>• <a href="https:&#x2F;&#x2F;dribbble.com&#x2F;shots&#x2F;1800476-Los-Angeles" rel="nofollow">https:&#x2F;&#x2F;dribbble.com&#x2F;shots&#x2F;1800476-Los-Angeles</a><p>• <a href="https:&#x2F;&#x2F;dribbble.com&#x2F;shots&#x2F;3039672-New-message" rel="nofollow">https:&#x2F;&#x2F;dribbble.com&#x2F;shots&#x2F;3039672-New-message</a><p>And I would disagree with that sentiment.<p>Generative tech just makes it easier to create more things at much greater scale that would be possible without it.<p>I&#x27;ve used Photoshop and Blender for like 25 years. Lens flare and Filter Gallery - the original &quot;one shot&quot; have always been around. Just because Photoshop and Flash existed it didn&#x27;t make everyone great at it.<p>Same is true with this stuff. Some of the best people doing video right now are unbelievably good at it. To your point - they were likely great video editors before AI, but to my point they are being supercharged by it now.
  • raincole10 hours ago
    I still have a gripe over the fact The Book of Shaders which never gets finished [0].<p>Perhaps I&#x27;ll write such a book... after I finish my game (dry laughter).<p>[0]: <a href="https:&#x2F;&#x2F;thebookofshaders.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;thebookofshaders.com&#x2F;</a>
  • psram198619 hours ago
    trigonometry-&gt;Coordinate Geometry -&gt; Linear Algebra applied to graphics<p>Once you have that intuition, the rest is all figuring out the stages of the graphics pipeline and the frameworks like opengl and their constituent data structures.
  • pcmaffey12 hours ago
    I think the advent of world models is going to open up a lot of interesting 3D applications with related graphics &amp; rendering challenges. That intersecting with WebGPU general availability across browsers IMO makes graphics programming a very interesting domain to get into now. I certainly see the need in my dayjob.
  • gafferongames12 hours ago
    Graphics programming in games is like playing the guitar. It&#x27;s cool, but everybody wants to do it.<p>Make the bold choice. Be a game network programmer. Nobody wants to do it, it&#x27;s really hard and it kinda sucks.<p>Play the accordion :)
    • mcmoor6 hours ago
      Any resources? It actually sounds more interesting to me since hearing about Rollback Netcode. Any front-end thing always gives me headache anyway.
      • gafferongames2 hours ago
        This is a good place to start: <a href="https:&#x2F;&#x2F;github.com&#x2F;0xFA11&#x2F;MultiplayerNetworkingResources" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;0xFA11&#x2F;MultiplayerNetworkingResources</a>
  • purple-leafy15 hours ago
    I’m not a graphics programmer but had alot of fun building a raycaster in C. Fun math and actually really simple relatively.<p>I’m going to revisit raycasting with a browser based raycaster from scratch.<p>I’m just finishing up a webgl + canvas game engine and game for a 2D top down grid strategy game first
  • smetannik14 hours ago
    For some reason, graphics is one of most popular topics for recreational programming.
    • purple-leafy10 hours ago
      Because it’s fun as hell and a super deep rabbit hole?
      • StefanBatory8 hours ago
        And you get feedback almost instantly.
  • dimitrios112 hours ago
    My focus area in college was Computer Graphics. There is not enough focus about the math in this article, it just kind of passively mentions it. &quot;Well you can get by with just a little bit of this and that&quot; -- Linear Algebra is huge! So is an Engineering style Calculus course -- not your business calc. Those two require a year of their own to gain mastery. IMO, pick up:<p>Linear Alegbra Done Right Calculus Better Explained Concrete Mathmetics.<p>Then you can move on to the low level APIs.
  • nicebyte16 hours ago
    My only additions to the article would be to study your probability&#x2F;statistics (can&#x27;t do efficient path tracing without it) and get comfortable with integrals, especially integrals on a sphere (physically based rendering will be a lot easier to understand).
  • VaporJournalAPP11 hours ago
    [flagged]
  • vnext10 hours ago
    [flagged]
  • jplusequalt19 hours ago
    I&#x27;m a graphics programmer.<p>The most useful resources I&#x27;ve found for graphics are scratchapixel, UC Davis&#x27; graphics lectures, songho&#x27;s articles, and Essential Math for Games and Interactive Applications. I highly recommend you read this last resource front to back. Seriously, its the best freaking math reference for graphics out there.<p>But knowing theory is not sufficient. You also need to get your hands dirty by writing code: learn how to build a software rasterizer (check out Tiny renderer) and a ray tracer (Ray Tracing in One Weekend series). Preferably in a language like C++. Then move onto APIs. I recommend you learn OpenGL, but if you&#x27;re okay with being confused as all hell try Vulkan. Or WebGPU if you&#x27;re a hipster (&#x2F;s).<p>Finally, try to build some stuff. A simple engine. A non-trivial technique. A game. Whatever.<p>Unfortunately, you&#x27;re unlikely to get hired working as a rendering engineer without having serious connections, or by having adjacent experience in the industry. Doubly so now that everyone is convinced junior engineers are unnecessary.
    • sph18 hours ago
      Thank you! I started recently as a greybeard engineer, and I found SDL3 GPU to be modern enough yet not too low level for a newbie compared to Vulkan. SDL in general is a fantastic framework. And if you use it from Odin, the dev experience is so smooth and enjoyable as everything you need to create graphical applications is builtin.<p>I will definitely check out Essential Math for Games and Interactive Applications, I feel I need some solid understanding of theory to see how it all fits together.
  • 72568617 hours ago
    Claude Code
  • conartist619 hours ago
    Immutability. Semantics.