Hello! I will be starting college in a few weeks and I am majoring in Computer Science. I know that in order to complete my degree I will have to learn all sorts of math, but I was wondering what types of math are use a lot when developing games.
GameDev.net Posting Guidelines (please read before posting)
For Beginners Forum FAQs (please read before posting)
Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.
Posted 13 January 2014 - 01:23 PM
POPULAR
Honestly: It depends.
It depends a lot on the type of game you're making, as well as your role in the production, as well as what kind of tools you're working with.
If you're working with a good framework, you won't strictly speaking need to understand the math as well as if you're making your own stuff. That said, you do have to know when to apply the various functions you might have available to you.
Keep that in mind -- extensive knowledge of all of the following might be somewhat daunting. The more you know, though, the better you can apply the math to solve all kinds of things.
Linear algebra, trigonometry and vectors will be important in a lot of different areas.
Various statistics and probability can come in handy for different things, including balancing gameplay.
For 3D programming, you can expect to run into vector math even more -- dot and cross products, normals, etc. Trigonometry even more, including polar coordinates. Various math related to geometric shapes -- plane, ray and sphere equations.
Depending on what kind of frameworks you'll be using, some knowledge of matrix math will be useful.
For physics related things you might have to learn some physics (at least some formulas), e.g. ballistic trajectories. Calculus stuff.
You'll want to be comfortable with converting between radians and degrees.
---
There's probably a lot of areas I've missed, but I remember there being a similar post a while back. I'll go look for it.
Posted 13 January 2014 - 01:23 PM
POPULAR
For working with 3D graphics Matrices are what you'll most likely be working with as they make complex problems relatively simple and are very powerful. Understanding trigonometry both in 3D and 2D space is quite helpful as well.
Depending on what you are doing in your game you can scale through lots of levels of math, but just remember you don't have to be a genius in math to program them. Formulas already exist and I think it's more important to know how to look at a concept or loose formula and implement it. Knowing the math makes it easier, but without doesn't make it impossible.
Posted 13 January 2014 - 01:43 PM
POPULAR
80% of game development by volume is basic algebra -- relatively simple expressions with a few constants and variables, sprinkled with basic operators (+, -, *, /, pow, sqrt). High school level stuff.
The other 20% by volume is comprised mostly of linear algebra, trigonometry, geometry, calculus, and statistics--roughly in that order in my experience--but the particular mix tends to vary depending on what your focus is. However, this 20% by volume accounts for a much higher percentage by utility and by difficulty. Its the stuff that makes things work elegantly or work at all. The more knowledge you have in these areas the better, but you can accomplish a great deal with just a solid understanding of the fundamentals--knowing more in these topics tends to let you see better solutions and make optimizations, but doesn't tend to be fundamentally limiting if you don't know more than the basics unless you have a very specialized focus.
Then, there are other mathematical topics that you might not apply directly, but which help you understand your systems better -- things like discreet math, algorithm analysis, and big-O notation. These are things that help you understand correctness and performance at a higher level, they give you the tools to make educated guesses about which of many potential approaches are better without having to implement and evaluate them. They also give you the tools to understand the root of a problem based on its mathematical symptoms -- things like numerical instability of floating point numbers under certain conditions, or performance regressions that result from new algorithms.
Edited by Ravyne, 13 January 2014 - 01:44 PM.
throw table_exception("(ノ ゜Д゜)ノ ︵ ┻━┻");
Posted 14 January 2014 - 04:29 AM
Knowledge in vectors and matrices is a must. You may get away without a broad knowledge in matrices though. But more advanced features will need more mathematics. Linear algebra in general and calculus to some extent are very common.
Edited by concept3d, 14 January 2014 - 04:29 AM.
Posted 14 January 2014 - 01:02 PM
The moderators don't generally frown on duplicated content unless the topic is seriously over-served. Besides, The linked thread specifies 3D games, while this one doesn't specify -- there's a lot of overlap but the differences are not vanishingly small.
But I do agree that the linked thread has a lot of good discussion. Its worth reading.
throw table_exception("(ノ ゜Д゜)ノ ︵ ┻━┻");
Posted 14 January 2014 - 05:30 PM
Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.
Also check out my personal website at bryanwagstaff.com, where I occasionally write about assorted stuff.
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.
GameDev.net™, the GameDev.net logo, and GDNet™ are trademarks of GameDev.net, LLC.