Advertisement

How much Maths/Physics do I have to know?

Started by March 28, 2016 03:56 PM
13 comments, last by LAURENT* 8 years, 8 months ago

Hello guys, I've recently started getting into some beginner level game programming, and I've made 2 or 3 games so far [pong, arkanoid, and a game using moving circles], but I think I'll soon have to use more Maths and Physics for games I'll try to make, so, I'm wondering, how much Maths will I have to know in order to make some simple games? What about somewhat more complex games? Are there any sites or books you recommend to know ways to use Maths in a programming project? I'm a high school student and I'm doing well so far, if that matters.

Thank you! =)

[I know basic motion physics, Matrices, Trig , Algebra , some calculus, among what I'm currently studying are Vectors (calc 3) and Linear Programming]

[I'm sorry if this is the wrong place to ask this question.]

Dream in the shadows

Sounds sufficient to me, you can help several people out here already :)

(shoot arrow in what angle such to hit target a bit further away? style questions)

It depends a bit on where you want to go though. If you like physics simulation games, at some point you may need to learn in more detail about modeling physics accurately.

Advertisement

Programming is predominantly problem solving with the ability to keep things organized when writing stuff that sometimes looks kinda like algebra. So, it depends on whatever kind of math might be involved in the particular problem you want to solve. And sometimes you just don't know what problem you'll need to solve until you come to it.

You already know enough. Have a firm grasp of vectors and keep making games.
If you eventually need something more it will be specific to your project, and you can learn it then.

If you like physics simulation games, at some point you may need to learn in more detail about integrating a physics library such as physx and using it.


There I fixed it for you :)

IMHO by all means learn the maths behind physics if it interests you, but if it scares you or you're in a hurry you can get by just understanding the basics of momentum, force, collision and leaving the rest to a library. In fact, it's probably better even if you understand it to be using a library (and maybe contributing to it if the license permits) because this means less code for you to maintain, debug and test.

You should definitely learn linear algebra and matrices etc and how these can be applied to 2D and 3D graphics. Cross product, dot product, etc. These help immensely when simplifying graphics routines and making them perform well, and a lot of frameworks, libraries and engines expect you to know how they work anyway.

Have fun!

Matrixes, dot and cross products are your greatest tools for programming games, and generally solving geometry problems in 3D space (and beyond)!

Definitely learn them, and learn them well! :)

Advertisement
I don't feel it's very useful to list random things that you may need some day without context. For me, having context was important for me to learn it, and that means having a reason to learn it, which means learning it when I actually needed it.

Blindly picking a bunch of topics without having any specific application for them and trying just to memorize how I'm supposed to use them in the future would never have gotten me anywhere.


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

topics:

trig

vector math

analytic geometry

linear algebra

probability and statistics

numerical methods or a good knowledge of the limitations of data type sizes.

a few things in games are the purview of discrete mathematics, but i wouldn't spend money on a book until i need it - there aren't that many.

books:

"Physics" by Tipler

"Engineering Mechanics: Static and Dynamics" by Hibbler.

in the long run, your physics, mechanics, and linear algebra books will be the the most often referred to, and thus the most prized in your collection.

even today, individual study is still probably the best way to learn game development.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

I don't feel it's very useful to list random things that you may need some day without context. For me, having context was important for me to learn it, and that means having a reason to learn it, which means learning it when I actually needed it.

Blindly picking a bunch of topics without having any specific application for them and trying just to memorize how I'm supposed to use them in the future would never have gotten me anywhere.


L. Spiro

I kinda agree with that note =-=; My professors tend to teach math without a context on what it does, or it's function.

So when it came to doing linear algebra for graphics....

I had an understanding that the Dot Product is the scalar product of the two vectors. But I did not know that it can be used to project the magnitude of vector L onto a unit vector N. N (N dot L). Essentially meaning that the magnitudes of both L and N are the same, but their directions are different.

Which is stupidly useful to know (Used for reflections and bounces at a point)... but again... very little context when you're first taught.

It's not really a question of how much maths/physics you need to learn (the more the better, but you have enough to start with). Matrices, vectors, mechanics (f=ma, describing forces, etc), solving linear and quadratic equations (collision detection), statistics (compression schemes, AI). The only esoteric thing you may not have come across is a quarternion (essentially a rotation only matrix - but with a few additional advantages).

If you hit most of those, cool. If not, they can be learned.

The biggest problem though, is not really how the maths/physics works, but how and when you need to apply calculation X to game feature Y. That can admittedly take some time, but that won't stop you enjoying games development / programming for the sake of it

This topic is closed to new replies.

Advertisement