Math Subjects

Started by
14 comments, last by EndersGames 13 years, 1 month ago
I've read a lot about needing Linear Algebra, Cal II or III and all that, but is that really needed for a Game Programmer? Say, on the professional level.

I'm a Computer Science Senior/Math Minor and I should graduate in December. However even though I'm a Math Minor, my degree plan does not require Cal II/III or Linear Algebra. I have taken Discreet I, Cal, and a few other things that aren't really that important.

The problem is, that I don't do so well in the Math classes. It's not the coursework or how hard they are, it's mostly test taking. The only tests I really stress about, are my math tests and I do terrible on them because of this. I study for long hours during course of the lessons, and even up to 12-14hrs in a single day before some tests, and I understand the material on the level I need to for the test, but not on the level where I'm confident taking the test which is where my high stress levels come from. I don't really have a complete and full understanding of the material until AFTER the entire class is over and I let it sink in for awhile. I don't have this problem in any of my other classes. My CS classes I usually get right away or after a couple hours of studying, but Math it seems that no matter what I do I can't go "oh ok that makes sense" and truly mean it, until after the course is over.

I'm not really interested in working on developing engines, but I'm pretty much interested in every other facet I know about (all the way down to networking and tool design). I haven't really worked on any games yet (besides some very simple C++/C# stuff), but I plan to set one up for a Independent study over the summer. Hopefully, using a 3D Engine. Maybe not, but we'll see how it goes. I understand that I'll need to understand how engines work on some level, which is kinda part of my main question.

I'm not a bad programmer, I'm not bad at Math, I just do terrible in the Math courses and I'm terrified to take Cal II or Linear Algebra (which has a Cal I and Discreet PreReq at my school).

Now, I'm perfectly fine if I land a Software Developer job pretty much anywhere after I get out of school. But, I am really hoping I can find a place at some sort of Game Development studio. I love games, I love game theory, and I really want to find a good creative environment. When I was a kid, I was hoping to be an artist, then I found out they really can't find jobs very easily so I went towards my other passion: Computers. lol (my art skills have declined rapidly over the years, due to a complete lack of practice)

[size="2"]"Success consists of going from failure to failure without loss of enthusiasm."

[size="1"]

~ Winston Churchill


Advertisement
Complex math will be needed. The amount and difficulty does depend on what you're coding. I'm porting a game for a local game company and I had to make some bezier curve functions for it. It's built into javascript, but not into C#/XNA... I knew NOTHING about bezier curves and the math was a bit above my head. I got help here to perfect my functions on adding thickness to the bezier curve. I eventually found a way to do that but that's thanks to a decent mathematical understanding.

I'd say what you need to focus on is concepts for mathematical programming. If you don't know the distance formula off the top of your head but you know what it does and how to use it then you'll be fine. Just think, you'll have a computer with google ;) Also, take a physics course or two or three. That stuff is useful. ^^
The linear algebra stuff is definitely required. Games use affine transformations for everything. You need to know your vector and matrix math for most parts of game development. Graphics use it for transforming stuff to the screen (especially stuff in shaders). AI uses it to determine stuff about where other things are in relation to an entity (dot products / cross products / relative matrix transformations).

Other areas focus on different math. Graph theory stuff comes up alot in AI work. Physics comes up alot (not everything needs a full physics engine, knowing equations for newtonian motion lets you fake lots stuff).

The linear algebra stuff is definitely required. Games use affine transformations for everything. You need to know your vector and matrix math for most parts of game development. Graphics use it for transforming stuff to the screen (especially stuff in shaders). AI uses it to determine stuff about where other things are in relation to an entity (dot products / cross products / relative matrix transformations).

Other areas focus on different math. Graph theory stuff comes up alot in AI work. Physics comes up alot (not everything needs a full physics engine, knowing equations for newtonian motion lets you fake lots stuff).


Is that for most of the Game Development or only specific areas? I've actually heard almost the exact same thing from another professional developer, which is kinda why I made this thread. To me, it sounds like it refers specifically to working on the engine itself and not so much the others areas of development. (besides the AI comment)

Understand though, at this point I'm am almost completely ignorant on everything it takes to make a game or what really goes into it. I understand a few things, but not very much at all. (please don't take this as asking you to explain the development process A-Z)

[size="2"]"Success consists of going from failure to failure without loss of enthusiasm."

[size="1"]

~ Winston Churchill


Yes, you need to learn at least vector algebra. Don't try to avoid it!

If you take a look at the forums, people can't make a freaking Look at matrix or face an object to another. That's sad IMHO.

If you don't want to learn it, don't be a game programmer.

Okay, today's situation is different: now everyone just asks for solutions on the net and ask others to do the thinking for them. So in the end, you don't need to know maths. If fact, you don't really need to know anything: you just put together stolen code and others' brainwork.

Rant over.
Is that for most of the Game Development or only specific areas? I've actually heard almost the exact same thing from another professional developer, which is kinda why I made this thread. To me, it sounds like it refers specifically to working on the engine itself and not so much the others areas of development. (besides the AI comment)

Understand though, at this point I'm am almost completely ignorant on everything it takes to make a game or what really goes into it. I understand a few things, but not very much at all. (please don't take this as asking you to explain the development process A-Z)


Think about it this way. To an extent, games attempt to mirror reality (an exaggerated reality but still reality). In our reality we have Math to explain just about everything. From the area within a circle to the acceleration due to gravity is all used in math. And since math explains our reality, and games MIRROR that reality, you'll need math to explain just about everything that goes on. You'll need it for collision, acceleration, 3D anything, particle effects, 3D audio, water detail, terrain mapping, etc etc etc

You don't have to understand the development process to see what real life things are imitated in games. ^^

Think about it this way. To an extent, games attempt to mirror reality (an exaggerated reality but still reality). In our reality we have Math to explain just about everything.
<snip>


You know, I never really thought of it that way, but that makes total sense. Thanks a ton and thank you KulSeran.

I guess I'm going to have to figure out what to do and talk to the Math Dept chair, to see if there are any other options for me. Maybe an online course or something like that, otherwise I guess I'll just have to bite the bullet and hope that the catalog is correct in saying that Cal II isn't a pre-req for the Linear Algebra course. I would take the Cal II class, but I just simply don't have time. My courses got pretty out of whack because I had to take a year and a half break for a deployment to Iraq and the Catalog changed while I was gone.

[size="2"]"Success consists of going from failure to failure without loss of enthusiasm."

[size="1"]

~ Winston Churchill


I personally do better in online math courses... well... except the one I failed at the university due to a terrible teacher who didn't announce when tests would be and used notes from someone else's Statistics class to teach Calc 1 *cough* (Seriously, I couldn't do the damn homework because the notes didn't cover it <.>) But you never know. Online courses do have a completely different feel. They would be especially good for you if you are good at teaching yourself with limited guidance. Not everyone does their best in a class room ^^

And depending on how fancy your school is, online classes may have video lectures. (Mine never did, but I've heard of others having this). Just talk to your Math department about helping you out. They'll want to help you out. Also, most university's offer cheap tutoring (like $10 an hour). If you or your parents or whomever is paying for your education, has the money, don't hesitate. Tutoring isn't for stupid students, it's for the smart ones that know they need a little more hands on experience than the class room has to offer.

Don't flunk out like me XD (Hopefully, I'll get to go back to school this summer. I'm going to get my Associates degree here in town at my community college then re-apply somewhere.)
Who says you have to take a class to learn something? I've learned more math from Wikipedia than I ever have in school.


The only thing that Wikipedia really lacks is sets of exercises to help practice. What I'd recommend is instead of trying to learn everything at once, work on some actual programming projects. When you come across part of a project that requires math, start teaching yourself. It's more effective because you can already see the practical applications, so it's easier to understand and practice.
I trust exceptions about as far as I can throw them.

Who says you have to take a class to learn something? I've learned more math from Wikipedia than I ever have in school.


The only thing that Wikipedia really lacks is sets of exercises to help practice. What I'd recommend is instead of trying to learn everything at once, work on some actual programming projects. When you come across part of a project that requires math, start teaching yourself. It's more effective because you can already see the practical applications, so it's easier to understand and practice.


I did this in high school XD It's a good way to learn. Whether you do it while taking a class or just by teaching yourself online, definitely try and find a way to use it. Back in the geometry days of high school I remember making a program that would calculate which direction Link's Shield would deflect a deku nut lol

Always look for a way to use your new math. Especially if you can tie it into game development. The more connections you make in math, the better you'll understand more complex things later on.

This topic is closed to new replies.

Advertisement