# Aptitude in math?

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

## Recommended Posts

If you are going to be a programmer who wants to branch into every area of game programming, how good do you have to be with math? IE. Do you have to be able to do complex calculations in your head, or simply memorize equations? Also, what kind of abstract math will I need to learn? I apologize for the broad question, if you would prefer to post a link to a good explanation, then please feel welcome to.

##### Share on other sites
In my experience (which isn't much ) geometry and algebra have been the most useful. Most programming is formulas and most games have 'space'.

A good understanding of the maths you need for what you're doing is really useful but you don't have to be an ober-geek (no offence meant) to be able to make a game, that's why we have calculators.

I don't know any links but good luck

##### Share on other sites
You don't have to be able to perform complex calculations in your head, or to memorize equations.

Regarding the latter, it's probably reasonable to expect a graphics or physics programmer to be able to tell you how to perform a dot- or cross-product, or how to perform some fairly simple geometric operation such as finding the closest point on a line to a point, off the top of their head. However, even though I know how it's derived, I couldn't write a quaternion-to-matrix function from scratch without working it out longhand or consulting a reference, and I don't think it's necessary to memorize that sort of thing (that's what references are for).

Branching into 'every area of game programming' might be a bit ambitious (game programming is probably more specialized now than at any time in the past), but as for your question, each area requires familiarity with different areas of math. For most graphics and basic game dynamics, basic trig and vector and matrix math will do it. For 'serious' physics, you'll probably need calculus. For 'serious' AI, there are various other areas of math that can be useful (and that don't come up as often in other contexts).

##### Share on other sites
So I should at least know theory?

##### Share on other sites
Well it depends on if you want to do it as hobby or professionally?
If you go pro you will need a computer science degree and that means lots of math at most colleges.
I'd say you'd probably need to be better than average to pass all the required classes. You will need to pass Algebra, Geometry, Trig, Calculus I and II and possibly more. Also, alot of schools require Discrete Math which has lots of proofs so that's pretty abstract for some people and Linear Algebra which can also get abstract with vector spaces. For example, the quaternions that always seem to pop up around here are equal to R4, a four-dimensional vector space over the real numbers.
I highly recommend a Discrete math course at least even if you don't take any of the others since a lot of things in programming will make more sense with it.
You don't need to store or do stuff in your head but you do need to be able to solve problems since that is basically what programming is all about.
Each new program you create solves a problem.
If you are just going to do it as a hobby you don't really need to know that much math since there are libraries that will hide most of it. If you want to do anything off the beaten path you will quickly get lost though.

[Edited by - daviangel on December 6, 2009 5:18:22 PM]

##### Share on other sites
Quote:
 Original post by AezonSo I should at least know theory?

The average CS degree involves about 6 semesters of Calculus and Linear Algebra sort of advanced math. Graphics tends to need more math than other areas, but the stuff you learn will be of use in a variety of areas. I expect the run of the mill programmer to know the concepts from the classes or be smart enough to grasp the concepts if they didn't actually enjoy a thorough education.

##### Share on other sites
Quote:
 Original post by daviangelIf you go pro you will need a computer science degree and that means lots of math at most colleges.

I was considering getting an associates in CS at a community college, then attend the SMU Guild Hall for 4 years to get a degree in game development. Will I still get a good dosage of math?

...Or do I really sound like a noob right now?

##### Share on other sites
Quote:
 Original post by AezonI was considering getting an associates in CS at a community college, then attend the SMU Guild Hall for 4 years to get a degree in game development. Will I still get a good dosage of math?...Or do I really sound like a noob right now?

Do some research and find out which classes are entailed in those curricula. Schools should be pretty straightforward about what courses are required. I'd make sure (either through electives or required courses) that you've covered algebra, geometry/trig, calculus, linear algebra, discrete math, and some theory/proofs.

For comparison's sake, as a CS major at my college I'm required to take 2 semesters of calc, 1 of discrete, 1 of proofs, 1 of linear algebra, 1 of probability/stats, and a course I'm not yet familiar with called "design of experiments."

##### Share on other sites
3D game programming is really where things start to get a bit math intensive. Honestly, you can get by in 2D programming with just first year algebra (unless you are implementing a full physics system; then it may get hairy).

But don't worry about the math if you still have your school in front of you. After a couple of semesters of classes like Government, where the teacher's opinions and personal taste play a role in what is considered right and wrong, taking math classes where things are either correct or not will be like a breath of fresh air. At least that is how I felt.

##### Share on other sites
I learn more and more about game programming each day and knowing physics, geometry, calculus (not a ton yet but its there) and linear algebra is what I'm running into.

I don't use these maths every day but I do keep resources on hand so I can reference if need be. Thats the great thing about the internet answers are a click away :)

##### Share on other sites
Your question about learning theory (I would say "principles" describes it better) is spot-on. Higher level education is, as jyk said, not about memorizing or regurgitating equations. Higher education is learning how to learn. You learn how to teach yourself. Memorizing is knowing 5 + 3 = 8. Learning theory means you know how to solve a + b = c, given any values of a and b. Perhaps a little ridiculous with regard to addition, but: if you forget how to add, you can go to a reference and teach yourself how to do it again.

IMHO, with regard to game programming, a solid foundation in linear algebra is essential. As mentioned above, if you want to be prepared to program 3D games, analytical geometry and basic physics are quite important.

I have a degree in Nuclear Physics and continually refer to my college textbooks and references, and browse the web to find ways to do what I want and need to do with respect to game programming. I can do that because I've learned how to recognize principles I've previously learned and since forgotten. As mentioned above, I then teach myself.

The results of programming are solutions to problems. The act of programming is choosing and executing an approach to the solution. The more approaches you know, the more quickly you can execute the solution. Both results and the time to produce those results will determine your value as a programmer.

##### Share on other sites

Quote:
 Original post by Aezoncourse I'm not yet familiar with called "design of experiments."

That covers things like statistical tests and analysis of variance. For instance, do two datasets have the same mean, or variance?

##### Share on other sites
Quote:
 Original post by BuckeyeHigher education is learning how to learn.

So, how do I "learn how to learn?"

Alright, I will try to get information on the math curriculum.

##### Share on other sites
Quote:
 So, how do I "learn how to learn?"

We're getting, perhaps, a bit far afield from game programming, but learning how to learn, rather than just memorizing facts and equations, may well be where higher education picks up after high school.

In my experience, anyway, learning how to learn begins when professors start asking you "how can this be solved?" rather than "what's the solution?" When you take what you know and apply it in a way you've never done before, you've taught yourself. Often, at the college level, you'll get 9 out of 10 points on a 10-point question if you use the correct approach, whether or not you do the arithmetic correctly. There will be lots of reminders to "show your work" because how you work becomes more important than the answer.

In programming, part of teaching yourself is learning the language (whatever it may be), looking at examples to see how someone approached something and then trying something a bit different to see if it's better or worse. Post-high-school courses will likely be aimed at "good practices." Certainly you should learn the "good practices," but, more importantly, understand why they're good so you can intelligently follow them, and better understand what the rewards or penalities will be if you deviate.

##### Share on other sites
This is probably going to parrot everyone else, but basically, you want matrix algebra. Manipulating 2x2, 3x3, and 4x4 matrices and 2- 3- and 4-vectors is a lot of what goes on in computer graphics whether it's in OpenGL, Direct3D or XNA. If you want to do physics, you will probably have to have at least a cursory understanding of calculus.

##### Share on other sites
This will probably help anyone who wants to add something, but I found my major(s). I researched prerequisites for a programming degree with SMU, which is unobtainable. However, scripting is covered in the game design part, so I will major in Game design, as a scripter... But don't worry, you didn't waste your time answering my question. I probably won't end up in more technical fields professionally, but on my own projects I will use the math that was listed here.

So I am diverting the question in the direction of scripting... what do I need to know about it?

##### Share on other sites
It is umm... I don't want to say 'just like programming', because it isn't, but it requires the same approach, skills, and prerequisites to be good at it.

I though am curious what pre-requisite you think you don't have that the college wouldn't offer to help you with...

##### Share on other sites
It makes me sad to see people go "oh, there is math there... I don't want to do that." It also makes me sad when I see things like, "Oh, you need college and a math degree!" It also makes me sad when someone looks to other people to tell them what they should do with their life.

The truth is, you don't need a degree. You don't even need college. There is a ton of information available at your finger tips. Matter of fact, we have access to more information at any given moment than in any other time in history. We literally have almost all of human knowledge at our fingertips. Sure, a college can help you, but you don't need it. I went to college for under one year. I know far more math now than I did then, and that's all from math.com, Wikipedia, and various other sources.

On a similar note, you don't need to be able to do major calculations in your head. You don't need to have a PhD, or even a degree. But you do need to know how to extrapolate a function based on data, and you do need understand the basic principles of math as they relate to real world measurements. You also need to understand some basic geometric and algebraic concepts. The cool thing about math is that it's all logic. That means you can derive every single law, formula, and concept all by yourself. It's not magic.

In short, I *hate* seeing people make a life altering decision based on the results of a thread in a forum. Seriously, do you know these people? Why should you let them guide your future? You should come to your own conclusions by simply doing what you love to do. Just constantly do what you enjoy, refine it, and get better at it. Trying to get good in every discipline in game development is a very worthy goal. It's a very difficult goal, sure, but it's certainly not impossible, and you certainly don't need to be a superhuman to do it.

Kevin B

P.S. There is no such thing as "different kinds of math". Sure, there are different applications of it, but the fundamental rules of mathematics stays the same regardless of what you're doing. Math simply provides the logic of measurement.

##### Share on other sites
Quote:
 You don't need a degree.

Not having one makes getting a job significantly harder. Entry level positions get hundreds of resumes. Not all of those are going to get phone screens, let alone an interview so you get to prove you know what you're doing. HR people can't tell that your personal project is bad-ass, they just 'know' that you're more poorly educated than ~80% of the other candidates.

It's sucky, it's stupid; but sucky, stupid people cut the checks.

##### Share on other sites
Quote:
 Not having one makes getting a job significantly harder. Entry level positions get hundreds of resumes. Not all of those are going to get phone screens, let alone an interview so you get to prove you know what you're doing. HR people can't tell that your personal project is bad-ass, they just 'know' that you're more poorly educated than ~80% of the other candidates.It's sucky, it's stupid; but sucky, stupid people cut the checks.

I don't have a degree, and I got into the game industry without a problem. Granted, that was almost 9 years ago, so it's entirely possible things have changed, but I really don't think it has. Most of the people I know, as well as all but one of the companies I've worked at, value a demo far more than a degree. I've worked with PhD's in the past who have written several thousand lines of code to implement billboarded quads (after that guy was fired, the entire file was rewritten and the final result was under 200 lines of code). That's an extreme example, but it's proof that a degree doesn't translate into a good skillset. I would estimate that not having a degree would impact your options by less than 10%. Of course, after you get a few years of experience, then whether or not you have a degree is moot.

Also, some anecdotal evidence: look at pretty much every single game job posting. They almost all say "degree or equivalent work experience". Assuming the demo is at least showing *something*, then it is, in my eyes (and pretty much everyone that I've worked with), good enough to be considered "equivalent work experience".

I would also go so far as saying that if a companies requires that you have a degree, you likely don't want to work there.

Kevin B

##### Share on other sites
Quote:
 Original post by ebray99I don't have a degree, and I got into the game industry without a problem. Granted, that was almost 9 years ago

Well things change.

There are a *lot* more people trying to get jobs now then nine years ago. HR departments don't care about your kick ass demos. They only have a list of items to check and if you don't have them your resume goes in the trash. So if you can't get a resume past HR you aren't getting a job. Why make it harder on yourself to get a job? Think of the four years as time to develop some good demos.

##### Share on other sites
Quote:
Original post by ebray99
Quote:
 Not having one makes getting a job significantly harder. Entry level positions get hundreds of resumes. Not all of those are going to get phone screens, let alone an interview so you get to prove you know what you're doing. HR people can't tell that your personal project is bad-ass, they just 'know' that you're more poorly educated than ~80% of the other candidates.It's sucky, it's stupid; but sucky, stupid people cut the checks.

I don't have a degree, and I got into the game industry without a problem. Granted, that was almost 9 years ago, so it's entirely possible things have changed, but I really don't think it has.

I don't have a degree and got to work my way up from phone monkey to sys admin to QA guy for 7 years so that I could spend 15 months unemployed before I could get a company with astoundingly low standards to give me a shot. Sure, some of that is luck/networking based, but I would be astounded if the common scenario is more like your case than mine. Hell, I just interviewed a guy yesterday without a CS degree (which is still better than no degree at all) and he'd been unemployed for 9 months.

Quote:
 Most of the people I know, as well as all but one of the companies I've worked at, value a demo far more than a degree.

As it should be, but you also work with programmers, not HR people. Any company of reasonable size doesn't waste dev managers' time by having them cull a few hundred resumes.

Quote:
 I've worked with PhD's in the past who have written several thousand lines of code to implement billboarded quads (after that guy was fired, the entire file was rewritten and the final result was under 200 lines of code). That's an extreme example, but it's proof that a degree doesn't translate into a good skillset.

Again, that's absolutely true but irrelevant. Companies just don't have the time and resources to thoroughly vet every applicant.

Quote:
 I would estimate that not having a degree would impact your options by less than 10%.

And I'd estimate it closer to 80%. At this point we're flinging numbers.

Quote:
 Of course, after you get a few years of experience, then whether or not you have a degree is moot.

Closer to about 5 years rather than a few, but...

Quote:
 Also, some anecdotal evidence: look at pretty much every single game job posting. They almost all say "degree or equivalent work experience". Assuming the demo is at least showing *something*, then it is, in my eyes (and pretty much everyone that I've worked with), good enough to be considered "equivalent work experience".

Again, who you've worked with aren't the people vetting resumes. Equivalent work experience means 5 years in a programming job. Getting your foot in the door for those 5 years is the super-hard part.

##### Share on other sites
Quote:
Original post by jtagge75
Quote:
 Original post by ebray99I don't have a degree, and I got into the game industry without a problem. Granted, that was almost 9 years ago

Well things change.

There are a *lot* more people trying to get jobs now then nine years ago. HR departments don't care about your kick ass demos. They only have a list of items to check and if you don't have them your resume goes in the trash. So if you can't get a resume past HR you aren't getting a job. Why make it harder on yourself to get a job? Think of the four years as time to develop some good demos.

Yeah just came across this depressing news which is quite relevant:
College Degrees More Expensive, Worth Less in Job Market
Employers stress that a basic degree remains essential, carefully tiptoeing around the idea that its value has plummeted. But they admit that the degree alone is not the ace it once was; now they emphasize work experience as a way to make yourself stand out.

##### Share on other sites
In a slightly more depressing note, I've been doing some interviews recently and have gotten through 8 candidates with 4+ years of professional C# experience who could not answer the softball "what's the difference between an interface and an abstract class?" question.

So it's not as though work experience is a great metric for skill either...

##### Share on other sites
Quote:
 Original post by daviangelYeah just came across this depressing news which is quite relevant:College Degrees More Expensive, Worth Less in Job MarketEmployers stress that a basic degree remains essential, carefully tiptoeing around the idea that its value has plummeted. But they admit that the degree alone is not the ace it once was; now they emphasize work experience as a way to make yourself stand out.

I don't want to imply that having a degree is the end all and be all of getting a job. But you might as well give yourself every advantage you can. And like I said in my last post don't think of school as four years of homework but use it to study things game related that aren't taught in school. At the end you've a degree which shows you might have some ability of performing a job and some demos that show you can actually complete tasks.