I worked on basic FPS camera controls today in a game I'm prototyping. While implementing WASD, I accidentally tried to normalize a zero-length vector and ended up setting the velocity to NaN, kicking my camera into the void. When these bugs appear while you're working on the code, I guess it isn't *that bad* (in the Stockholm syndrome sense). At least it was obviously incorrect in this case. Still, I would have preferred a backtrace pointing out the bug.

And it's is my first day on this project. I wish I was joking. It's way too easy to get caught off guard by these issues and suddenly one NaN becomes an avalanche of uselessness.

That really doesn't help. Division by zero is meaningless. Do you also propose that an operation is only meaningless until someone finally gives it meaning? Supposing someone could prove that multiplying any real number by 0 results in infinity, then yeah, sure, they can define `n / 0 = infinity`

.

Eh, this is behavior of a bizarre specification. As a corollary, using fixed point math inherits all of the behavior of integer math and all of its poor precision. On the bright side it wouldn't have obviously dubious behavior like allowing division by zero or allowing math operations with something that isn't even a number!