Jump to content
  • Advertisement
Sign in to follow this  
Nyrruk

Looking for some ideas for math related books/textbooks.

This topic is 768 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Slowly learning programming on my own, and i know math can be a big part of it later on and i'm working on brushing up my math skills. I did alright in school but never really cared about it back then, almost 12 years ago now. I'm not great at it but i do have the capability to learn. Been browsing my local book stores and Amazon but havent seen much for what im looking for besides the usual "For dummies" stuff which i never much cared for.

 

Ideally i'd like to find a series that goes from essentially basic math all the way up to calculus/physics. A full book for that explains each topic plus a companion workbook would be ideal. I understand Khan Academy is great for this but i do prefer to have a physical book i can take and work in solitude away from my computer.

 

Anyone have any recommendations?

Share this post


Link to post
Share on other sites
Advertisement

whats the highest level of math you've taken and are familiar with?

 

game math more or less starts with 2d Cartesian coordinate systems - AKA analytic geometry

 

you'll need to learn vectors.

 

basic trig.

 

if you want to do physics coding,you'll need to learn physics and engineering mechanics: dynamics.

 

for 3D you'll need to learn linear algebra.

 

some folks may list other math disciplines. calculus comes up often, but i've personally never needed it. i have yet to need the definite or indefinite integral of anything in any game. and i've made a few games....

 

http://rocklandsoftware.net/Previous-titles.php

 

math disciplines from CS would include discrete math and numerical methods.

 

as for books, i can recommend Tipler for physics, Hibbler for engineering mechanics, and Swokowski for calculus.

Edited by Norman Barrows

Share this post


Link to post
Share on other sites

I had Math 30 Pure from High School in Canada, but i barely passed and it was a pure mathematics course, no physics or anything. Back then i didn't really appreciate math like i do now hah.

Share this post


Link to post
Share on other sites

Take a class. Self taught mathematicians don't really compare to one with a formal education on the subject. Even if you only take one or two classes, you are going to be leaps and bounds beyond the you-tuber mathematician.

Share this post


Link to post
Share on other sites

I know you mentioned it, but I wasn't sure if you've tried it or not. If you haven't yet, give Khan Academy a try. It even has a section on learning programming if you need to do that too. Sorry, I don't know of a book equivalent that covers all math from arithmetic to calculus... That'd be a pretty thick book. :)

 

- Eck

Share this post


Link to post
Share on other sites

Yeah i was working my way through grade 6 math and going from there. It's hard to gauge where my math skills are generally so i figured i'd start early and work my way up.

Share this post


Link to post
Share on other sites

Not to bad mouth Khan Academy, but I've found his math videos to be "supplemental" at best. I would hate to have to learn the subject just from those videos. He's got some other stuff that I've been more impressed with. It's free, so the price is right. It's not like he's teaching something that isn't true.

 

I agree that a formal college math class is good. Really, I think it's more important that you work through the text book than attend the class. You can save yourself the headache and just buy the text book for the course if you can be diligent enough to actually assign yourself homework and what not. The class is mostly just there to force you to do the work. But most of the math classes I had in college would probably have been better if the professor had not shown up other than to grade papers. Most of them were pretty much useless. The books on the other hand were stellar. Nothing beats college text books for math and physics.

 

For 2D games, I'm not sure you need any math beyond "How to work a calculator". The computer will do most of the math for you. And you can probably copy and paste the code from somewhere. Physics might help, but that's not math. Well, except you need to know a little algebra and probably trigonometry in order to pass the physics class.

 

For 3D games, trig is the math you need. I don't know calculus. I kind of wish I did for working on electronics and stuff. Plus, most of the non-college text book books on physics are written in calculus. My actual college text book and my text books in high school had exactly no calculus in them what-so-ever. People who write game programming books like to show off what they know sometimes rather than caring whether they actually teach anything. So, calculus might be nice for certain physics simulations in games or something, I don't know. But I've gotten by without knowing it. I've never seen a game programming physics books that wasn't written in calculus. I say "written in" as if it's a language because it basically is. I learned all that stuff without a lick of calculus. They just choose to write all the equations in calculus notation. True, that's probably more correct, but it's a stumbling block to game programmers without a degree in mathematics. Take the actual physics course and there won't be any calculus in first year physics which is what you need for pretty much any game physics I've ever seen. (You probably don't even need second year physics for game programming. It's mostly physics 101 stuff like gravity, force, torque, mass, and acceleration. The physics class will also go into a bunch of stuff you probably don't need like gas law. Although, who knows, maybe you'll want to build a train simulator that uses steam engines.)

 

Trig actually covers vectors, although my last college trig class covered vectors in about 2 weeks and I think even the professor didn't understand it. That's the kind of stuff that makes 75% of the students drop the class by the drop date. They went through that section really fast and everyone just kind of learned enough to pass the test. Fortunately, I already knew vectors from game programming by that point and I breezed right through that section... really that whole class. (It's a long story but it was my third time taking trig.) The only part of 3D game programming math that wasn't covered in my college trig class was matrix algebra. And they taught us matrix algebra in about the 8th grade although I paid absolutely no attention and didn't learn it and had to go through it again in game programming.

 

Matrix algebra, again, is not something you really need to learn for game programming (not the entire subject - just 4by4 matrices and matrix multiplication, maybe how to multiply them with a 1by4 vector). Here's a crash course in the matrix algebra (linear algebra) that you need for 3D game programming:

 

Matrices hold the position, orientation, and scale of the objects in your games. There are two exceptions to this. The first is the view matrix which holds the position and orientation of the camera (and is an inverse matrix). The second is the projection matrix which holds all the math necessary to project what's in front of the imaginary 3D camera onto a 2D rectangle so that it can be drawn on your actual computer monitor. You multiply matrices together in order to combine the information in them. An identity matrix is an empty matrix. It's position is the origin. It's orientation is pointed straight down the Z axis (or whatever the main axis is). It's scale is 1 (normal). The order you multiply matrices in maters. Rotation, and especially scaling must occur at the origin. So, you do a translation (move) to the origin, rotate, and translate (move) it back to rotate something. If you don't it will orbit the origin instead of rotate (do it between frames and the player will be none the wiser that it changed position). A translation matrix holds a change of position. A rotation matrix holds a change of orientation. Multiply the object's matrix times the change matrix and store the value back in the object's matrix and it will now have a new position and/or orientation. Congratulations! You now know enough linear algebra to write 3D games. (Well, except you need to take my one paragraph course on vectors also, but you could have learned that in trig class if the professor actually knew what a vector is.)

 

Anyway, trig is a good math class to take for game programming. You work with angles a lot, and that's a big part of trig. Plus things like radians and pi and such. It's all good game programming stuff.

 

For most of my tutorial stuff, I assume you know trig. It would take me too long to teach it that I haven't taught anything on it. But my video tutorials are otherwise designed to teach pretty much all the math you need to do 3D game programming other than trig.

 

Keep in mind that the computer actually does all the math for you. All you need to know is when to tell the computer what to do. Like learning actual matrix multiplication is pretty much useless, but knowing that multiplying two matrices combines the position, orientation, and scale information is priceless. That's key to any 3D game programming. I've done DX11 and OGL4.5. DX11 has a math library. OGL uses GLM as it's math library. No point in learning the actual math as long as you can know when and how to use a matrix and a vector. I would consider learning the actual math to be an "intermediate" subject. In other words, after you have a fairly solid understanding of vectors and matrices and how to use them in game programming then go learn the math for an even deeper understanding.

 

Learning the math first is probably more harmful than helpful because it takes the focus off the real point which is how to actually use vectors and matrices in game programming. The way we use them is not something you will learn in a math class. We're using a small subset in a way that you probably won't even get into until maybe a linear algebra course (which you will probably never take unless you are getting a degree in mathematics or engineering). We do matrices for rotations and translations. They probably don't even cover that in matrix algebra. So, you spend a year learning matrix algebra and only 5% of it's stuff we even use and they failed to teach you the important parts of how it applies to game programming. Same with quaternions. We use an extremely special case and small subset of quaternions in a very specific way. I don't even know what math class they actually teach quaternions in, but they are hyper dimensional imaginary numbers, if that gives you any idea of what course they might be taught in.

 

Books I recommend are:

https://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231/ref=sr_1_1?ie=UTF8&qid=1465747023&sr=8-1&keywords=game+math

https://www.amazon.com/Physics-Principles-Applications-Douglas-Giancoli/dp/0321625927/ref=sr_1_18?s=books&ie=UTF8&qid=1465747074&sr=1-18&keywords=physics+in+books

 

That was my college physics text book. There is probably a newer version of it. There's probably a lot of good college text books on physics and math although with math it seems like they sometimes tailor it to fit a semester rather than teaching what needs to be taught. One of my first text books on trig was a lot better than my more recent text book on trig because the first one taught trig and the last one tried to teach trig and how to apply it to algebra and get it all squeezed into a semester. (And the older books may be a lot cheaper. Physics hasn't changed much since Issac Newton invented it. Neither has trig.)

Edited by BBeck

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!