Sign in to follow this  
Mybowlcut

Games Programming Major

Recommended Posts

Hey. I'm towards the end of my first year in a Bachelor of Computer Science. Up until now I've been wanting to do Games Programming as my major. This semester I took a class called Computer Graphics Programming and I've realised that I really am crap at maths. I stopped doing maths years ago in high school. When I look at a formula for something I just don't get excited... however, when I finish writing something in a 2D game and see it work I get REALLY excited. So my trouble is that I'm not interested in maths at ALL. I have a feeling I'm not going to enjoy the 3D game programming classes coming up as I'm stressed enough with simple things like lines, curves, polygon clipping, rotating, etc, etc. I'd say I'm interested in programming games but not the maths in games... What options do I have if this is what I feel? Does such a job exist in the industry or should I pack my bags and head over to GenericCompanyLtd to program the next Microsoft Word? Cheers.

Share this post


Link to post
Share on other sites
I'm in the same boat. My course touches a bit of vector and matrix maths but not a lot more.

Granted, I've been impressing myself with some cool 3D demos from some of the stuff we've done in the course, but I'll never be able to pick up a SIGGRAPH paper and implement a fresnel water technique, and it really gets me down.

I want to be able to read through one of these papers full of formulas for a fantastic new normal mapping technique and implement the code, without so much as touching Google or looking for example code.

What would people suggest?

Share this post


Link to post
Share on other sites
What I recommend is buying a good math book and have it as a reference. When you see something you dont understand you can look it up and see examples on how to do it. This way you should be able to implement the algorithm from a paper.

There are more to games programing then just graphics as well.

Share this post


Link to post
Share on other sites
Good to hear that I'm not alone.

What kind of maths book? I've ordered the textbook that we need but I'm still waiting for it.

What kinds of areas in game programming can you get into without needing high level math?

Share this post


Link to post
Share on other sites
3D Graphics doesn't require "high level math" anyway. You really only need the very basics of linear algebra. I bet if someone spent a couple hours explaining the stuff well to you, you would pick it up easily. A lot of times the teachers don't really have an intuitive grasp of the subject and then make it seem like it is impossible and hard (this happens in a lot of classes though).

I bet I could teach you what you needed to know over aim or something and you would pick it up quite easily.

aim: ibebrett86

Share this post


Link to post
Share on other sites
Quote:
Original post by Mybowlcut
I'd say I'm interested in programming games but not the maths in games... What options do I have if this is what I feel? Does such a job exist in the industry or should I pack my bags and head over to GenericCompanyLtd to program the next Microsoft Word?

Quite frankly? The latter. It's okay not to be the reincarnation of Hamilton, it's okay if you're a little fuzzy on what an eigenvalue is, but you need to be comfortable with the fundamentals of linear algebra.

Now, here's my personal story. I got the fundamentals of linear algebra for the first time in high school, and then again as an undergrad. And I thought it was boring, alternately trivial and opaque, and useless. Why? Because it was! Math teachers, it turns out (and I have never, ever met a college-level math teacher who led me to rethink this position) have no idea how to convey the importance and underlying intuition behind linear algebra.

Computer graphics and computer vision people, in contrast, sometimes can. (They all should, but not everyone's cut out to teach.) It's really fun and rewarding to guide someone to the point where they really, really get how a change of basis happens for the first time. But because of their preexisting "linear algebra was invented by people who are now dead, and should feel that way" bias, it sometimes takes a while to get them thinking with the geometric part of their brain rather than with their calculator. Adding to this problem, most people can't get a lot of this stuff within the first month or so of it being presented to them. It needs to percolate for awhile before they can really get on top of it.

So if you think that math is boring and makes you not like game programming, you're not necessarily doomed, because a lot of people feel this way before they understand the math. All you need is a good teacher and an open mind.

Share this post


Link to post
Share on other sites
Hmm... Thanks for the offer! Can I talk to you over Msn or do I have to get the AIM client?

Sneftel. I wish I had done maths and not left high school at the end of year 11 but I did... I really regret it now. I guess I should just study more and take help where I can?

Cheers for all your advice.

Share this post


Link to post
Share on other sites
Quote:
Original post by Mybowlcut
Sneftel. I wish I had done maths and not left high school at the end of year 11 but I did... I really regret it now. I guess I should just study more and take help where I can?

Where high-school-level math helps out is in improving your abstract thinking skills. Recent research suggests that this is the most important thing to come out of math classes at that level. It's not the end of the world if you didn't have the full benefit of that, though. There are other ways to train abstract thought, and it's never too late to learn.

Share this post


Link to post
Share on other sites
I found it easier to learn math when I was older for whatever reason. When I was in my teens I never understood it at all and now that im 26 its hard for me to believe that I had trouble with the stuff that I did.

Share this post


Link to post
Share on other sites
Maths suck when it is just maths. Stick with it and give it a shot before you give up. I fell asleep during math classes in college, and yet I find math highly exciting when doing programming.

Share this post


Link to post
Share on other sites
Quote:
Original post by Sneftel
Quote:
Original post by Mybowlcut
I'd say I'm interested in programming games but not the maths in games... What options do I have if this is what I feel? Does such a job exist in the industry or should I pack my bags and head over to GenericCompanyLtd to program the next Microsoft Word?

Quite frankly? The latter. It's okay not to be the reincarnation of Hamilton, it's okay if you're a little fuzzy on what an eigenvalue is, but you need to be comfortable with the fundamentals of linear algebra.

Now, here's my personal story. I got the fundamentals of linear algebra for the first time in high school, and then again as an undergrad. And I thought it was boring, alternately trivial and opaque, and useless. Why? Because it was! Math teachers, it turns out (and I have never, ever met a college-level math teacher who led me to rethink this position) have no idea how to convey the importance and underlying intuition behind linear algebra.

Computer graphics and computer vision people, in contrast, sometimes can. (They all should, but not everyone's cut out to teach.) It's really fun and rewarding to guide someone to the point where they really, really get how a change of basis happens for the first time. But because of their preexisting "linear algebra was invented by people who are now dead, and should feel that way" bias, it sometimes takes a while to get them thinking with the geometric part of their brain rather than with their calculator. Adding to this problem, most people can't get a lot of this stuff within the first month or so of it being presented to them. It needs to percolate for awhile before they can really get on top of it.

So if you think that math is boring and makes you not like game programming, you're not necessarily doomed, because a lot of people feel this way before they understand the math. All you need is a good teacher and an open mind.

Actually from all the computer programming books I've read and working with other programmers I'd say for the majority of them they just took enough math to get their degree and forget most of it.
For example Stan Lippman one of the more popular C++ authors makes silly math errors in his book and Peter Wright one of the more popular VB authors also makes some glaring math errors in his books(since it's apparent nobody caught these simple mistakes before the books were printed should give you an idea of how math illiterate the majority of folk are). Charles Petzold and Donald Knuth are exceptions and it shows in their books(unfortunately they also read like most math text i.e. dry and dull). Then again they read math books for fun-LOL! So don't feel too bad if you suck at math cuz I'd wager a majority of people do. Blame it on the teachers or our education system I guess since I know it's hard to believe when you suck at it that it can be fun,interesting and quite powerful once you learn to use it.

I mean what kid hasn't heard of the story of Gauss and wished they could've thought of that and then to finally see the same series in Calculus is cool:
Another famous story, and one that has evolved in the telling, has it that in primary school his teacher, J.G. Büttner, tried to occupy pupils by making them add a list of integers. The young Gauss reputedly produced the correct answer within seconds, to the astonishment of his teacher and his assistant Martin Bartels. Gauss' presumed method, which supposes the list of numbers was from 1 to 100, was to realise that pairwise addition of terms from opposite ends of the list yielded identical intermediate sums: 1 + 100 = 101, 2 + 99 = 101, 3 + 98 = 101, and so on, for a total sum of 50 × 101 = 5050 (see arithmetic series and summation).[4]

Or who hasn't seen just of one Srinivasa Ramanujan's equations to see how cool and powerful math is?

One of the first problems he posed in the journal was:

sqrt{1+2\sqrt{1+3 \sqrt{1+\...}}}
He waited for a solution to be offered in three issues, over six months, but failed to receive any. At the end, Ramanujan supplied the solution to the problem himself. On page 105 of his first notebook, he formulated an equation that could be used to solve the infinitely nested radicals problem.
And to see how some math that seems so abstract and useless actually turns out to be used everyday is awesome!
Ramanujan's series for π converges extraordinarily rapidly (exponentially) and forms the basis of some of the fastest algorithms currently used to calculate π.


Anyways to get back to the topic at hand I suggest you take a precalculus course offered by your college. This course should cover enough of the basics, i.e. algebra,trig,etc so that you'll at least be comfortable taking more advanced math classes or even opening up a math book on your own and not get frustrated.
And just accept the fact that math like C++ is so large that you will never learn it all but if you have a good foundation you should have no trouble picking at the parts you want or need to use and not be afraid of it anymore;)

[Edited by - daviangel on May 7, 2008 5:24:59 PM]

Share this post


Link to post
Share on other sites
I'm on the other side of the fence; I just graduated last week for my B.S. in CS with a math minor.
In my coursework I went through Cal I-III, linear algebra and linear programming, stats, discrete studies, physics I & II with calculus (not to mention the other dozens of OpenGL, algorithm, data structure and programming language classes I had to take).

From my experience I wasted my time with about 6 of those classes because all I learned that I've actually applied to graphics programming, so far, is matrix manipulation and a lot of trig functions.
You'll need to know the dot product for measuring angles bewteen vectors and the cross product is for normal vectors, etc.
It's all simpler than you think and once you learn how something like the transformation pipeline works you'll realize that it's actually setup so the math is simplified.
Not by much, but it isn't as hard as it could've been.

Graphics may not be your strength and you should try your hand at gameplay or tools or simply scripting sections of a game, etc.
At lot of people assume that GAME programming means GRAPHICS programming and it's honestly a bit short-sighted.
There's a lot of things to do to build a game and you'll probably find you're qualified for at least one of them without killing yourself over your inability to find math exciting.
I haven't met more than five people that do.
One of them was the head professor of the CS department.

Don't beat yourself up too much, but learn the damned math because "computer science is no more about computers than astronomy is about telescopes".
It's about math.

Also try not to read ANYTHING by Knuth or you'll just feel dumb.
I once attempted to read volume one of the Art of Computer Programming.
If thats the art, I don't wanna see the science.

Share this post


Link to post
Share on other sites
Quote:
Original post by sanstereo
I haven't met more than five people that do.
One of them was the head professor of the CS department.

Also try not to read ANYTHING by Knuth or you'll just feel dumb.
I once attempted to read volume one of the Art of Computer Programming.
If thats the art, I don't wanna see the science.


No offense, but thats the worst advice ive ever heard. Read everything by Knuth you can get ur hands on.

Share this post


Link to post
Share on other sites
Thanks for all the replies. They're actually all quite reassuring.

I guess the main reason that I don't like maths at the moment is because I don't understand a lot of what we're doing. Generally when you don't understand something you don't exactly love it haha.

I'll take all of your advice and stick at it.. sounds like I don't have to be an expert so that's good news.

Cheers!

Share this post


Link to post
Share on other sites
Quote:
Original post by Mybowlcut
Thanks for all the replies. They're actually all quite reassuring.

I guess the main reason that I don't like maths at the moment is because I don't understand a lot of what we're doing. Generally when you don't understand something you don't exactly love it haha.

I'll take all of your advice and stick at it.. sounds like I don't have to be an expert so that's good news.

Cheers!

Yeah if the most math Google ask about is discrete math you really have nothing to stress about. Now if you plan on working for at the JPL or NASA that's a different story since they require masters/PHD level math most of the time-LOL!
interview tips at google follows:

"Math

Some interviewers ask basic discrete math questions. This is more prevalent at Google than at other places I've been, and I consider it a Good Thing, even though I'm not particularly good at discrete math. We're surrounded by counting problems, probability problems, and other Discrete Math 101 situations, and those innumerate among us blithely hack around them without knowing what we're doing.

Don't get mad if the interviewer asks math questions. Do your best. Your best will be a heck of a lot better if you spend some time before the interview refreshing your memory on (or teaching yourself) the essentials of combinatorics and probability. You should be familiar with n-choose-k problems and their ilk – the more the better.

I know, I know, you're short on time. But this tip can really help make the difference between a "we're not sure" and a "let's hire her". And it's actually not all that bad – discrete math doesn't use much of the high-school math you studied and forgot. It starts back with elementary-school math and builds up from there, so you can probably pick up what you need for interviews in a couple of days of intense study.

Sadly, I don't have a good recommendation for a Discrete Math book, so if you do, please mention it in the comments. Thanks.
"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this