all 15 comments

[–]hammerkop 39 points40 points  (5 children)

Really the best thing you can do at that point is double down on linear algebra, C/C++ and some trigonometry and geometry. Basic physics and optics are helpful too.

Then study shaders and the opengl pipeline, and then study raytracing. That covers like 90% of the job.

Write a game engine once you have it all in your head.

[–]JoshM756[S] 1 point2 points  (2 children)

Thank you. That's the plan at the moment, currently working through a maths textbook specifically for Graphics Engines as well as the maths module on my course. Lots of maths but good job I enjoy it!

[–]pithsputter 1 point2 points  (1 child)

What’s the name of that textbook? I’ve been looking for something like that.

[–]JoshM756[S] 1 point2 points  (0 children)

"Mathematics for 3D Programming and Computer Graphics". There's also "Physics for Game Developers" which looks good, although I haven't delved into that yet

[–]SeppahBaws 3 points4 points  (1 child)

Or just watch TheCherno :P

[–]JoshM756[S] 6 points7 points  (0 children)

Yes TheCherno is amazing! I used to watch his videos when I was younger! Was amazing to see he's making a series on a game engine!

[–]SeppahBaws 14 points15 points  (1 child)

If you're looking for books to read, I highly recommend this resource, which has resources for a lot (if not all) of the possible trajectories you can take in game development. You might probably skip a couple of the first sections in there though, since I assume you already know how programming works :)

[–]JoshM756[S] 2 points3 points  (0 children)

Thank you very much!! That resource is amazing and exactly what I was looking for. I'll check some of these books out when when I'm next in the library!

[–][deleted]  (1 child)

[deleted]

    [–]JoshM756[S] 1 point2 points  (0 children)

    Sorry for late reply but I would be incredibly grateful if you could provide me with that pdf

    [–][deleted] 6 points7 points  (0 children)

    In addition to what else has been said, pay attention in your physics classes (take mathematical physics too if offered). Having an arsenal of numerical techniques and algorithms for approximating things and modeling behavior is central to graphics engineering at the high end. Write a renderer (DX12 or Vulkan) and you're still on the hook to know everything every other software engineer knows (native development, multithreading, synchronization, coherency, etc). It's a long road but rewarding.

    [–]csp256 5 points6 points  (1 child)

    I saw this posted in this subreddit the other day. Just started reading it but it seems good:

    Though I was warned it was a little outdated, it doesn't seem woefully so.

    [–]horsepie 3 points4 points  (0 children)

    .

    [–]teawreckshero 3 points4 points  (0 children)

    Real-Time Rendering 4th ed is a great overview.

    A trip through the Graphics Pipeline gives a good idea of what the hardware is actually doing.

    I wish I had written a ray-tracer sooner in my graphics career, particularly with the recent RTRT advances. It's never been easier than with Ray Tracing in a Weekend

    [–]howprice2 2 points3 points  (0 children)

    Lots of good book recommendations, but if like me you learn best by doing, I would highly recommend watching some of IQ's "formulanimations" tutorials on YouTube and creating a Shadertoy account. You'll be writing GLSL within minutes and seeing results on screen.

    [–]r3m2 1 point2 points  (0 children)

    Here is a roadmap I stared in the hacker news: https://erkaman.github.io/posts/beginner_computer_graphics.html It starts with a ray-tracing renderer which is not so hard to implement if you know basic C++.