I used to work with a programmer who loved 3D graphics. He had a mantra which I’ve often repeated: "It’s Just Math." We shortened it to IJM and it became our secret acronym. I used to think the phrase was comedic — it’s exactly the opposite of what a math student would say. Math is hard, isn’t it?
However, I’ve come to realize that IJM is a worthy mantra. It bears repeating. Much of game programming is math. Take game audio. It’s just math. Physics. Collisions. Just math. 3D programming. Yup, more math. The good thing about math is that you can reason about it. It’s logical. It makes sense. 2 x 5 = 10. When so many things about game programming aren’t logical (schedules, content bugs, art leads), it’s nice to have some math around. In the big picture, math is the easy part of shipping games.
However, one of the most difficult things to reason about when it comes to math is floating-point. Because floating-point numbers cannot always be perfectly represented in fixed-length binary notation, 2.0 x 5.0 may not be equal 10.0. That’s why, if you write any code at all that deals with floating-point, What Every Computer Scientist Should Know About Floating-Point Arithmetic is a must read.