What Math topics are essential to a game programming (possibly specialising in AI) or graphics programming position?

Started by
2 comments, last by Promit 4 years, 3 months ago

Hello. I don't really like writing walls of paragraphs like this, but I'm an undergraduate student studying computer science in my spring semester and thought that this site might be a good start to get insight on what maths would be beneficial for a general game programming - hopefully with a specialisation in AI/ML - or a graphics programming position.

The programme structure of my university makes it compulsory for students to select optional modules in order to progress through the course. Last semester i took on a maths module that focused on the foundations of linear algebra, geometry, probability and general maths - polynomials, rational functions, calculus 1 and some of calculus 2 - which i understand are essential to these disciplines.

However, this semester I'm not particularly sure what to go for. A sibling module to the maths one focuses on Digital Signal & Image Processing, Fourier Transformations and Numerical Analysis. From what i can gather, the latter is essential for optimisation in Machine Learning. This is a future interest of mine, and from the searches I've done on Master Programs, the ideal candidate would have studied Numerical Analysis but some of the programs also teach Numerical Analysis. From what i can also gather DSP/DIP are used significantly for pattern recognition and speech recognition and Fourier analysis has more applications in audio programming than games/graphics programming.

A second option Is in a module that focuses on automated reasoning. Most of the topics deal with automata like Turing machines - which i believe is valuable in understanding neural networks and general AI - computational complexity theory - which i believe is used for analysing algorithms - as well as finite and push-down automata. Altogether it seems like a perfect springboard for AI.

As you can probably tell though, I'm not well versed in either of these topics and probably got a lot of the details wrong. I would appreciate any advice on what math would be important for the aforementioned positions. Thanks in advance.

Advertisement

i took on a maths module that focused on the foundations of linear algebra, geometry, probability and general maths - polynomials, rational functions, calculus 1 and some of calculus 2 - which i understand are essential to these disciplines

In general game programming you'll probably never touch most of that beyond linear algebra and geometry.

A sibling module to the maths one focuses on Digital Signal & Image Processing, Fourier Transformations and Numerical Analysis. From what i can gather, the latter is essential for optimisation in Machine Learning.

It would help. It's not essential. Machine learning is getting easier all the time.

A second option Is in a module that focuses on automated reasoning. [..] Altogether it seems like a perfect springboard for AI.

It does sound interesting. It's not likely to be very relevant to AI for games, but I'm sure there will be a bit of overlap.

These sound like fairly theoretical classes, and a general game programmer is going to need to have more practical classes - advanced mathematics only comes up rarely. Game AI is very different from academic AI and the overlap is mostly in the symbolic area (state space searches, etc) rather than the more mathematical areas (optimisation, regression, NNs, etc).

TheMightyPenguin said:

However, this semester I'm not particularly sure what to go for. A sibling module to the maths one focuses on Digital Signal & Image Processing, Fourier Transformations and Numerical Analysis. From what i can gather, the latter is essential for optimisation in Machine Learning. This is a future interest of mine, and from the searches I've done on Master Programs, the ideal candidate would have studied Numerical Analysis but some of the programs also teach Numerical Analysis. From what i can also gather DSP/DIP are used significantly for pattern recognition and speech recognition and Fourier analysis has more applications in audio programming than games/graphics programming.

A second option Is in a module that focuses on automated reasoning. Most of the topics deal with automata like Turing machines - which i believe is valuable in understanding neural networks and general AI - computational complexity theory - which i believe is used for analysing algorithms - as well as finite and push-down automata. Altogether it seems like a perfect springboard for AI.

DSP has some crossover with graphics programming, but it's not essential. Linear algebra is a big big shared important one in both ML and graphics. Calc is a nice to have, but there's a lot of cases where you can skim by the integrals and just use the final solutions. Might not be ideal but it's usually fine as long as you understand what the integrals are doing. Computational geometry and fourier transforms can both become useful if you end up in certain niches, but they're not necessarily general purpose applicable. Numerical analysis may or may not touch on numerical discrete integration, that's a useful tool to have in some cases. And lastly, differential equations can be handy for some stuff, particularly fluid simulations and the like.

You're going to be best served by going wide rather than deep with the math. Once you have all the bases, it's pretty easy to pursue the details in whatever field you end up in.

SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.

This topic is closed to new replies.

Advertisement