3D Math Primer for Graphics and Game Development
gamemath.com
gamemath.com
It's rare to find resources written by good teachers. I'm excited to dig in more!
I read it as a high school student, because I wanted to get into game development back then. Thanks to this book, I started to really understand 3D mathematics. It helped me write my first 3D engine in OpenGL, with help of some other resources including some advanced rendering techniques.
Normal math books explain this very differently, making the connection between 3D and math super unapproachable.
Looking at this decades after it was written, I'd suggest that a modern book needs more on how light behaves and what physically based rendering is trying to do. Because today you write shaders.
On the other hand, game physics is such a specialized area that it may be worth omitting entirely. Nobody writes their own physics engine any more. Send people to "Physics for Game Developers" for that.
There are also definitely people writing their own physics. I did so myself not that long ago for a project. For our constrained problem it only took a week to get going. Then you have the case where you want to write a controller that has physics like behaviour that isn’t readily achievable with middleware easily. A good understanding of the principles behind physics engines helps a lot here.
For example the ship motion here is a rigidbody sim I wrote from scratch: https://www.youtube.com/watch?v=bs1p22oI_V4
Whereas all the locomotion of individual players including them jetpacking around is hand written behaviour with a simpler Euler integrator for linear motion only. You can try that directly: https://dotbigbang.com/game/3772901474b3423fa21e20bdf0a84cf4...
Then the good old damped spring is an amazingly versatile tool to have available in all sorts of weird places.
Citation needed
On the other hand, if you’re going on a journey to write a general-purpose rigid body physics engine like PhysX for your games (without using any middleware), it’s a lot harder but still doable. For example, Overwatch has its own specialized physics engine (although probably possible because Erin Catto is there...) Roblox also has its own physics engine, and their GDC talks about it are pretty interesting.