What a good math level to have for game programming? I've taken pre-calc and will retake it to refresh myself and move onto calc I. My school offers a The Computer in Mathematics C/C++ class but requires to take Calc I first.

The description of the C++ math class is:

The Computer in Mathematics C/C++ is a problem-oriented approach using the computer in the study of mathematics. Programs will be written and run to aid understanding of such topics as infinite series, logical relations, approximations, interpolation, graphing, and matrices. Problem formulation, algorithm development, and aspects of program testing and debugging will be discussed.

Would I need to advance any farther than this?

The description of the C++ math class is:

The Computer in Mathematics C/C++ is a problem-oriented approach using the computer in the study of mathematics. Programs will be written and run to aid understanding of such topics as infinite series, logical relations, approximations, interpolation, graphing, and matrices. Problem formulation, algorithm development, and aspects of program testing and debugging will be discussed.

Would I need to advance any farther than this?

If you want to do anything as complicated as 3d game programming, I recommend taking at least 3 more calc courses:

Calculus I or equivalent

Calculus II or equivalent

Multivariate Calculus (Calculus III or equivalent)

For example, in Multivariate calculus you study how to solve the following problem:

given three vectors in space, what is the volume of the tetrahedron spanned by those three vectors? Needless to say, such knowledge is essential if you want to do 3D stuff.

Ask yourself the following question: if I give you the equations of a line (in 3D), and the coordinates of a point (in 3D), can you write down the formulas for rotating the point around the line at an angle t ? If not, you need to take all the courses I mentioned (needless to say, this is bread-and-butter knowledge for doing anything with 3D).

[Note:] of course, you can look up all of that knowledge in wikipedia, but if you do that, taking the courses with an A will be a piece of cake and fun.

Calculus I or equivalent

Calculus II or equivalent

Multivariate Calculus (Calculus III or equivalent)

For example, in Multivariate calculus you study how to solve the following problem:

given three vectors in space, what is the volume of the tetrahedron spanned by those three vectors? Needless to say, such knowledge is essential if you want to do 3D stuff.

Ask yourself the following question: if I give you the equations of a line (in 3D), and the coordinates of a point (in 3D), can you write down the formulas for rotating the point around the line at an angle t ? If not, you need to take all the courses I mentioned (needless to say, this is bread-and-butter knowledge for doing anything with 3D).

[Note:] of course, you can look up all of that knowledge in wikipedia, but if you do that, taking the courses with an A will be a piece of cake and fun.

Last edited on

Yep, I had a student who had difficulty passing Calc I: he had difficulty adding fractions and such. I told him to drop the course. Then a year later I saw the guy taking Calc II: I was shocked (people who drop Calc I rarely make it to Calc II in my institution, we have a B- requirement for taking Calc II). The guy told me after dropping Calc I, he did all the precalc stuff from khan academy, then re-took Calc I, got a straight A, and now was having no difficulties with Calc II (with another instructor).

I dropped calc I because I had to much time between pre calc and calc I and I forgot alot so when i went to take calc I and not using anything for 3 months I failrd and dropped it. Im going to retake precalc to take calc

Multi-variate calculus is very. However I'd put these as my priorities:

1. Linear Algebra

2. Numerical Methods

3. Multi-variate Calculus

After that you can go wherever you like. I went with vector calculus, and feedback control systems. The feedback control systems is something I use every day now in my code. Also translating real signals into discrete real-time signals and learning to filter it appropriately without the residual harmonics is really cool. I think communication theory is a good course for that as long as you get lab time with oscilloscopes.

1. Linear Algebra

2. Numerical Methods

3. Multi-variate Calculus

After that you can go wherever you like. I went with vector calculus, and feedback control systems. The feedback control systems is something I use every day now in my code. Also translating real signals into discrete real-time signals and learning to filter it appropriately without the residual harmonics is really cool. I think communication theory is a good course for that as long as you get lab time with oscilloscopes.

So basically I should take these classes.

Calc 1 w/ analytic geometry

Computer in mathematics C/C++

Calc 2 w/ analytic geometry

Calc 3 w/ analytic geometry

Differential Equations

Modern Linear Algebra

Calc 1 w/ analytic geometry

Computer in mathematics C/C++

Calc 2 w/ analytic geometry

Calc 3 w/ analytic geometry

Differential Equations

Modern Linear Algebra

Sounds like a good plan.

I completely agree with Stewbound, Linear algebra is a Must. In fact I'd say it's more important than any of the Calc courses (A calc course well taught should teach you a little linear algebra too).

*Note: always be suspicious of pompous statements such as "Modern Linear Algebra". Linear algebra has not changed essentially since the 19th century.

I completely agree with Stewbound, Linear algebra is a Must. In fact I'd say it's more important than any of the Calc courses (A calc course well taught should teach you a little linear algebra too).

*Note: always be suspicious of pompous statements such as "Modern Linear Algebra". Linear algebra has not changed essentially since the 19th century.

Last edited on

Well the way its set up at my school you have to take calc 1 to take computer in math. you have to take calc 3 in order to enroll in either differential equations or modern linear algebra.

The description for modern linear algebra is:

Modern Linear Algebra is a study of elementary topics of linear algebra which include: matrix algebra and inversion; solving systems of linear equations; determinants; vector spaces, linear dependence, basis and dimension, subspaces; inner product spaces and orthogonality; linear transformations (including matrices); eigenvalues and eigenvectors. An emphasis will be put on formal methods of mathematical proof throughout the course

The description for modern linear algebra is:

Modern Linear Algebra is a study of elementary topics of linear algebra which include: matrix algebra and inversion; solving systems of linear equations; determinants; vector spaces, linear dependence, basis and dimension, subspaces; inner product spaces and orthogonality; linear transformations (including matrices); eigenvalues and eigenvectors. An emphasis will be put on formal methods of mathematical proof throughout the course

This sounds like a completely standard solid course in Linear Algebra. The "Modern" adjective is likely a publicity stunt (math departments have to justify their existence to the other departments, so sometimes we put boastful names to please the administration which ultimately approves the courses).

From my experience indeed math can help a lot in game programming, even in 2d. When you actually have some math skills, you'll be able to efficiently do things rather than just brute force(Of course there are some things you simply cannot do without math). Here's a real world example

You're making a tile map editor, and of course want to use the mouse as brush for laying down terrains/platforms/entities whatever. It would be very frustrating if what the brush actually placed was skipping around. Without an algorithm, that's most likely what it's going to do. Even our monster machines of today can't keep up with the mouse while doing everything else the program needs. To make up for this, you can use something such as Bresenham's Line Algorithm, or even just some plain algebra, to create lines between the points that are caught.

Just thought maybe you'd find it motivating if you saw a simple real example of how mathematics can help you ;)

You're making a tile map editor, and of course want to use the mouse as brush for laying down terrains/platforms/entities whatever. It would be very frustrating if what the brush actually placed was skipping around. Without an algorithm, that's most likely what it's going to do. Even our monster machines of today can't keep up with the mouse while doing everything else the program needs. To make up for this, you can use something such as Bresenham's Line Algorithm, or even just some plain algebra, to create lines between the points that are caught.

Just thought maybe you'd find it motivating if you saw a simple real example of how mathematics can help you ;)

That does help a lot. Math is my favorite subject but I dropped calc I for 2 reasons

1) scheduling problems leading me to miss homework and fail test

2) never seeing where I would use this

Then I decided to get into programming after already dropping this class and want to retake it and move farther into math. I want to be a great programmer, I've always wanted to make my own games or help making since I've been a kid but at my schools growing up they never taught anything more than word or excel

1) scheduling problems leading me to miss homework and fail test

2) never seeing where I would use this

Then I decided to get into programming after already dropping this class and want to retake it and move farther into math. I want to be a great programmer, I've always wanted to make my own games or help making since I've been a kid but at my schools growing up they never taught anything more than word or excel

Topic archived. No new replies allowed.