Live data from Hacker News

Books for Game Developers

mrelusive.com

51–60 of 62 posts

Re: Books for Game Developers

#51
post #41
post #35

Earlier quoted context omitted.

Did you know where the idea of crouch sliding came from?

I ... hmm. My memory is really, really dusty on that. I remember I had a handful of conversations with Bryan Dube during development about Q4 deathmatch. He was a super sharp game programmer / technical designer who had done a ton of the work on Soldier of Fortune 2 deathmatch previously, and had worked on the Urban Terror mod for Quake 3 before that. And he was much more focused on multiplayer than I was. We talked…

    // RAVEN BEGIN
    // bdube: crouch slide, nick maggoire is awesome
https://github.com/bc85/quake4/blob/master/game/physics/Phys...

Re: Books for Game Developers

#53

Circa 90s and early 2000s. I like how there's a whole book on quaternions. I've never understood them and I'm convinced every definition I've read was written by someone who also didn't understand them. I might try to find a copy if I ever dabble in 3d again Edit: To clarify, I understand the need for quaternions (to avoid gimbal lock), just not how to use them manually. Euler angles are simple enough, I can change w…

We used quaternions in our engine back in 2005-2008. Compared to matrix multiplications, multiplying quaternions was cheaper so we could save a few instructions here and there. But I never used them since.

One reason being, I suppose, processors are now much more superscalar-friendly so a matrix multiplication doesn't take much more time than a quaternion multiplication does. And with matrices, you get the whole package: not only rotations, but translations, scalings, and even projections, - all in one go. So you have simpler code, simpler data structures, and you don't lose performance so... why bother?

I didn't even include quaternions in my book. Well, not that I didn't want to. We had a whole discussion with the publisher about whether we should keep the whole chapter (complex numbers, conformal transformations, non-commutative 3D rotations, and quaternions) and I lost.

Re: Books for Game Developers

#54

Circa 90s and early 2000s. I like how there's a whole book on quaternions. I've never understood them and I'm convinced every definition I've read was written by someone who also didn't understand them. I might try to find a copy if I ever dabble in 3d again Edit: To clarify, I understand the need for quaternions (to avoid gimbal lock), just not how to use them manually. Euler angles are simple enough, I can change w…

> I've never understood them and I'm convinced every definition I've read was written by someone who also didn't understand them

This seems about correct. The book in the list also seems to fall into that category.

Quaternions are actually really simple and pretty once you understand them. The idea is that you specify and axis and an angle. The axis alone gives you a 180° rotation. 1 is the identity and gives you no rotation. If you interpolate between those on a circle (cos/sin) you can get any rotation around that axis.

One may wonder why one needs the sandwich product to rotate a vector when simple multiplication is enough for complex numbers. The reason is that in 2D there is only one plane of rotation and all vectors lie in it. In higher dimensions vectors can be decomposed into a part that lies in the plane of rotation and a part that's orthogonal to it (parallel to the axis in 3D) that is untouched by the rotation. With the sandwich product the quaternions cancel out for the orthogonal part but combine for the part in the plane. This also makes it obvious you have to take half the angle.

Finding the quaternion that rotates between two vectors is also easy. You just multiply them, then take the square root to get the half-angle. Taking the square-root is extremely simple: assuming your quaternion is normalized, you just add 1 and renormalize! Obviously this doesn't work if that quaternion is -1 (can't normalize 0), but it makes sense geometrically: a 360° rotation (-1) is the same around any axis so no axis can be recovered, but for its square root (180°) you have to pick one. It's just not well defined.

Of course all of the above can be shown with a few lines of algebra, and with geometric algebra the whole thing becomes even cooler.

Re: Books for Game Developers

#55
post #51
post #41

Earlier quoted context omitted.

I ... hmm. My memory is really, really dusty on that. I remember I had a handful of conversations with Bryan Dube during development about Q4 deathmatch. He was a super sharp game programmer / technical designer who had done a ton of the work on Soldier of Fortune 2 deathmatch previously, and had worked on the Urban Terror mod for Quake 3 before that. And he was much more focused on multiplayer than I was. We talked…

// RAVEN BEGIN // bdube: crouch slide, nick maggoire is awesome https://github.com/bc85/quake4/blob/master/game/physics/Phys...

Ah, yeah. If you go through the code there, Bryan had to change that file in quite a few places to implement crouch sliding.

Nick Maggoire is an animator. Super nice guy. No inside voice at all. I shared an office with him for a while :) I haven't kept up with him, but after Q4 he left for Valve where he's been ever since, it seems.

That comment strongly suggests to me that Nick did the animations for players crouch sliding. Or, that's my hunch anyway.

Re: Books for Game Developers

#56
post #37

Earlier quoted context omitted.

I am going to be the HN pedant here, and for that I apologize. Quaternions don't specifically need to be unit vectors or points on a 4-D hypersphere. They are any number with 3 imaginary parts and 1 real part. Being a unit operator is a property of a rotation (this holds true even if you aren't using quaternions or if you extend to n-dimensional rotations), not a property of quaternions.

In the context of game development, "quaternion" almost always refers to a normalized one that represents a rotation. Many engines aren't even capable of representing anything else with their quaternion types and enforce this automatically.

That's probably because pretty much all uses of quaternions in games are for rotations, which involve normalized vectors. As a mathematical concept, quatetnions are far broader and more applicable than just rotations. This is a generic mathematical concept, not something specific to graphics.

Re: Books for Game Developers

#57
It took awhile, but I finally found all of the books in the 'Game Development Essentials' series by Jeannie Novak

• Game Development Essentials: An Introduction (3rd Edition) • Game Interface Design (2nd Edition • Mobile Game Development • Game Industry Career Guide • Game QA & Testing • Game Audio Development • Game Level Design • Online Game Development • Gameplay Mechanics • Game Simulation Development • Game Artificial Intelligence • Game Project Management • Game Story & Character Development

Re: Books for Game Developers

#58

Circa 90s and early 2000s. I like how there's a whole book on quaternions. I've never understood them and I'm convinced every definition I've read was written by someone who also didn't understand them. I might try to find a copy if I ever dabble in 3d again Edit: To clarify, I understand the need for quaternions (to avoid gimbal lock), just not how to use them manually. Euler angles are simple enough, I can change w…

There's an alternate concept for rotations called a rotor that is just as capable as the quaternion concept but does not require reasoning in higher dimensions: http://marctenbosch.com/quaternions/

Re: Books for Game Developers

#60
Amazingly, this thread was posted on what would have been Jan Paul's birthday.

Care was taken to ensure his website would remain active, and it's heart-warming to see that people are still finding it useful.

Johannes Marinus Paulus van Waveren was absolutely brilliant and the kind of person who left a lasting impression on those who knew him. He is sorely missed.

Post reply on HN