To add to your list: I would say *Probability* theory and *Statistics* are pretty crucial for system design and making the numbers work for you (and also for understanding the analytics once you release your game). *Physics* , or classical mechanics and galilean relativity at least, is definately up there too if you're making anything real-time. And by extension, *Calculus* : since like 90% of of physics is just multivariable vector calculus. *Matrices* are also useful, though typically only if you're working in the nittygritty parts of an engine. And this last one bridges the gap between maths and computer science, but it's been sooo useful to me in hindsight, and i rarely hear anyone ever talk about it: the very badly named topic of *Functional Programming* . A functional programming or operations research course will basically teach you how to take all of the maths theory you just learned and actually turn it into useful computer code.
I am a High School MATH teacher. This is the most AMAZING video I've ever seen to explain WHY and HOW we use math in video games. Kids love video games so this appeals to them! SUPER AMAZING AWESOME JOB. Thank you for making this. I hope this gets a million views!
i had my journey of learning unity and going through my education alongside one another. As i progressed in maths, i became a better gamedev, and vice versa. I think it's fundamental to learn math in order to be a good gamedev
@@Calmdownnn12 it's depend on you how complex is your game. Are you want to make game more complex. The more complex game is more maths needed... Such as integration calculus trigonometry you should understand the physics like forces velocity angles etc it's more i can't explain here every thing
Brrruuuh you just explained a bug that I made years ago.. I never knew why my character was moving faster sideways... I thought the normalization was kind of automatic I guess...
I learn math on my own because I knew it was somehow useful in game development, but recently I was starting to lose motivation, asking myself when/why would I ever use this super complicated formula or that property. Thanks to this video, I understand better, and I'm ready to keep increasing my math knowledge and skills ! This is an excellent video :D !
@@lufenmartofilia5804 Maybe you should start to make a small game to see the benefits of your learning? Sometimes, direct confrontation really does its job at showing you where you lack skill.
Found a video suggested by you yesterday and ended up binging about three quarters of your vids. I feel like you have a very unique perspective among youtube gamedev channels and you really clicked with me, thanks for all the work you put into your channel, there are a few things I'll definitely come by to watch again. Hope you're well!
Ah thanks, this really means a lot to hear! Doing well and plan on making new videos at some point (no timeline on that though...). Started a PhD so things have been 200% busier than usual (hence the lack of new videos). Thanks again for stopping by!
I will say I studied calculus for three years before I got to a physics class advanced enough that I needed it. Then I went "Oh! That makes so much more sense." It took another 20+ years to figure out why I read Great Expectations and Macbeth in high school. As for "numbers," you need to learn the limitations of floating point too.
I did my undergrad degree in maths, so I've been delighted to learn through game dev that a bunch of the stuff that I learned there finally has a direct use for me! Although, I have to say, when I found the quaternion function I was initially disapointed that the unity function basically does all the work for you, haha, then I remembered how difficult it would be to *not* have most of that be automated. So yeah I mostly agree that you need to know how to use quarternions, but not how they work necessarily, unless you're building your own game engine from scratch.
You missed that a game is basically a big Euler method integrator at its core. When you do things like "pos += velocity * dt" it's literally integration using Euler method.
I agree that your example can certainly be described with euler integration! However, for the vast majority of beginner gamedevs, especially those who are relatively unfamiliar with maths as a whole, I don't think pointing them in the general direction of 'calculus' as a topic is optimal. I have seen far to many beginners get overwhelmed with differentiating/integrating/manipulating arbitrary equations that have no practical relevance to gamedev. As people progress to being more intermediate/advanced developers, framing some of these problems with calculus can certainly be useful - I just don't think it is needed for beginners. It's like telling them they need to learn how to operate a wrecking ball when all they really need is a hammer. I don't want this to come across as "I don't think calculus is important at all" either, and if it specifically interests an individual, then by all means study to your heart's content! It is fundamental to countless applications, and a very rich/interesting topic!
Very useful video! I'm reorienting my career towards game development. I haven't done math like this in about 12-15 years. It's helpful to know what math is needed, when it's used, and why it's important. This will allow me to review the necessary math before starting my university degree in video game programming and animation.
Fantastic! I’m learning game programming using Lua language and pico8. I limited myself in a small environment to focus on the fundamentals. Big engines can be really handy for those that know what they’re doing, but for me now, it’s like use a full car workshop to fix my bicycle. This video was everything that I needed! Thanks!
Great video! I really liked the attention given to Vectors, as that seems to be where many people spend time spinning their wheels, so it's nice to see such detail given in consumable portions. Nice work!
Oh man... I'm shocked! For past 3 weeks or so I've been learning Godot from Heartbeast's old platformers video & i remember that he used *Vector normalizers* & finding that it's the same concept as he told just refreshed my memory!!! Thanks for this amazing video Sir ❤ Love from India 🇮🇳
I think that also physics and rigid body related stuffs need an honourable mansion, especially for 3D games, maybe you can make a variant of this video for physics BTW sorry for my bad English, I'm Italian.
Kind of upsetting that you've stopped uploading, just found your channel and I'm kind of astonished of how you have such good content but such little recognition
Thank you so much! I plan to start uploading again at some point in the future - but I've become quite busy studying for a PhD, so I have a lot less free time to make videos at the moment!
I personally don't use quaternions, because for me it is easier to use matrices (theoretically e.g. coordinates are stored in x,y,z variables so they are not technically matrices but spiritually...)
that's fine for most game engines, since they'll typically convert everything for you. If they don't, then you may run into issues using Euler angles, like Gimbal Lock.
@@jmvr I can avoid Gimbal Lock just using rotation matrix that uses u axis in replace for the other two angles (so quaternions' method but with matrices!)
This was surprisingly refreshing. It often feels like there's too many disjointed tutorials, with no roadmap or motivation. You did a good job with this one. Glad I found this vid. Calc is more useful in controls and electrical engineering; if you want write software for airplanes and helicopter and you get the idea, that's where you'll use calculus, otherwise, study your linear algebra if you wan to make games. Basically exactly what you said. Nice work.
Cheers! I found that the visualiser I put in the description for the dot product really helps with understanding what the operation does. I can always help you in the discord if you have any questions or are struggling with it (this goes for anyone else reading this too)!
Agreed! I think most beginners can get by with "position += velocity * deltaTime" until they get to the more intermediate/advanced parts of game development though!
@@Madbook True. It's like how overtime, I found realized "position += velocity * deltaTime" isn't always ideal, it should be "position += (formerVel + currentVel) * 0.5f * deltaTime" because of acceleration/deceleration .
@@udyfrost6380 Well technically if you wanna implement accelleration you can just use Newton's motion equations, which are the double integral of a costant acceleration, meaning this is the real mathematical rule that governs the motion of a body with a constant acceleration, your update function would look like: "position += velocity*deltaTime + 0.5f*acceleration*(deltaTime^2); velocity += acceleration*deltaTime;" obviously you can make your acceleration vary in your program, as long as at each step you use the rule above with its current value. Also remember that a negative acceleration means that your body is either decelerating or accelerating in the opposite direction to the axis that the position specifies
well the math like plus and the minus is good also multipliction like 5 x5 or 10 x 5 is also good. some people saying you need vectors but not that important! i just use plus minus multipliction and i made many game like zeldas, the super mario nintendo, the dragon of steel, the spyro ratchet clank and bandicoot. thanks
Math... It's a love-hate relationship: My head explodes every time i hear of this magic word, yet it's so usefull, and to a certain extent, cool i'd say... Anyway great vid madbook!! Glad to see u back in activity!! (^D^)
With regards to Calculus, have to slightly disagree. While I don't find too much use for the limit or integration, the derivative is quite useful, especially given that it can be used to understand how to calculate stuff like velocity. My educational background is electrical engineering, specifically control system engineering. For my game project I end up applying quite a lot of concepts used in both control and signal processing systems. Stuff such as lag filters can be used to create smooth camera movement and eliminate high frequency noise. Concepts such as negative feedback loops, that have roots in differential equations, can be quite useful for making simulated automated systems that are meant to behave within your games physics environment. That being, said, I do agree with your other mathematical suggestions. I use trig in combination with vectors quite a lot.
I was gonna say the same thing, I've used calculus in pretty much all the projects I have worked on. Especially for velocity and acceleration calculations. Knowing the calculus behind these physics concepts can actually do a lot to make a game feel better. When he was talking about this, he was showing the guy falling and using a parachute and I was just remembering a project where I did something similar and had to use calculus to smoothen a character's falling physics.
Great video! Meta tutorial sources are one of the most under produced resources on the internet and I'm ecstatic to see more people adding them! One thing that bugged me in the video however, cos is pronounced cosine. Sin = sine, cos = cosine, tan = tangent.
Thank you so much! Yeah, you are 100% correct - I think I say 'cos' out of years of bad habit... or because 'cos' and 'sin' verbally sound more different? Or maybe I'm just making excuse's now.. 😅 I'll try to be more accurate next time!
Really Great Video and Awesome Advice for others that need it :D there is much of learning on internett but not much good explanation with showing examples etc, your did it really good and pointing in right direction i think :) My case am not so good with math, but some how yes when you do it practically its much easy to understand especially visual like in game :D Sim City 2000&3000&4 learned Country infrastructure better than school(Like taxes& tax Classes, Power line Water lines pumps etc) XD and i remember when i had done vector without knowing it in Dark-Basic(Long time ago) :D
It's weird to me that you mentioned quaternions but not matrices. I feel like when discussing game maths I'd bring up things in this order: vectors > matrices > quaternions. Especially how vectors and quaternions can both be represented as matrices, it feels like a natural bridge to the quasi-4d weirdness of quaternions.
@@TealComet They're used alot in game engines to convert a 3d object to a 2d image which a player can see. This is the basic foundation of 3d rendering
OMG, I was wondering why it always seems like you move faster in diagonal directions. This happens in Unreal Engine games all the time. I'm pretty sure they're normalizing the vectors, but it's still noticeable.
If you have two permendicular normalized vectors e1 and e2, and you move an object with speed V = v(e1 + e2), then its diagonal speed is sqrt(2) v = 1.414 ... v, and not just v. To have the same speed you must therefore divide the velocity V by sqrt(2) to have it the same speed as either the horizontal speed exclusively or the vertical speed exclusively.
The assertion about dot product, as stated, is not correct. The assertion applies only to normalized vectors. When two vectors are not normalized, their dot product can have _any_ value!
I like this video, but you say calculus isn't needed then proceed to list around 4 items directly related to calculus (vector calculus: Quaternions, Dot Products, Cross products, Normalizations). For those unaware of what vector calculus is (normally called Calculus 3, or multivariable) "Vector calculus was developed from quaternion analysis by J. Willard Gibbs and Oliver Heaviside near the end of the 19th century, and most of the notation and terminology was established by Gibbs and Edwin Bidwell Wilson in their 1901 book, Vector Analysis. In the conventional form using cross products, vector calculus does not generalize to higher dimensions" So it directly deals with vectors, especially in 3D. If you are making a game in 3D and get intimidated by the daily math required, you are most likely lacking in calculus. So why the hell is knowing calculus essential to not only vectors but 3D math? Because of the tangent. Calculus teaches you how to use derivatives and manipulate slopes. Knowing this helps tremendously as the tangent is the most easily accessible 3D Vector. The essence of calculus is literally just finding the tangent. Let's take a vision cone system. A spotlight. Think to breathe of the wild guardians that use a spotlight to find the player. Note, I will simplify a bit as the math can get long. Naive approach. Let's just make a cone by creating a circle that gets larger as it approaches the ground. Concentric rings so to speak. We get the following vector: v = (cosine(angle), sin(angle)). v*d, where d is the distance from the ground. However, now move this cone to the X-axis and it squishes, the Y-axis and it breaks. For each axis, you need to figure out the appropriate ring...Because a circle in 2D is XY, a circle on the Y plane is XZ, a circle from the X plane is YZ. But what is a 2D circle projected onto 40% Y, 30%, X 15% Z ??? That is, as you travel on this 2D plane, you move in all 3 axes. A plane that is within all three axes, how do you create a circle then? More general approach: You get two vectors tangent to the plane, but perpendicular to each other and rotate them to form a circle. Oh boy, tangents, perpendicular, rotation, and speed, this is literally screaming derivatives and calculus. To do this you need the normal on the plane (how to do this, calc), get the tangent from that (how and why? Calculus), get the bitangent (how and why? Calculus), then do the following math: v = (tangent * cosine(angle) * radius) + (biTangent * sine(angle) * radius). (how and why? calculus) And now the guardians in BoTW can see link anywhere in 3D. And this leads to the final point, what is calculus? Well, calculus is all about approximations which is so important for computers. Things like floating-point precision are directly related to sequences and series. Along with that, calculus deals with analytical geometry, speed, physics...all of which are needed in a lot of games. There are so many examples of everyday effects in which knowing calculus is useful.
Hey, thanks for the feedback! Whilst I agree that calculus is incredibly useful, I still don't think it falls into the 'Maths for Beginner Gamedevs' category at the level of detail shown here. It would likely fall into 'Intermediate/Advanced Maths for Gamedevs', as calculus doesn't find it's way into most curriculums until the latter half of the education roadmap. To add to this though, most calculus problems that arise in gamedev are usually vastly simplified by the game engine being used. I agree that if you want to build your own engine, you'll need a very deep understanding of calculus - but for making a game, all of the mainstream engines will simplify out a ton of the complexity for you. Because of this, we will often use the practical outputs of calculus, without doing any calculus ourselves. Glad you liked the video on the whole though!
At least in the USA, a good portion of that is covered more by linear algebra than calculus (vectors, dot and cross products, coordinate systems, etc).
This is so amazing! As a software engineer, I dont need Math daily, however, I have always felt the need to learn it to get deeper into the field. This is a great starting point!
I suspect there would be highly specialised software which can take care of movement and vectors. Is it necessary to learn math to code games these days?
I think it depends on how much control you want over the lower level mechanisms of the game. You can get away with using build-in functions but at some point you'll want to tweak things for the specific requirements of your game
I would suggest software engineering. Computer science is more like how programs and computers/computing works. Software dev is probably more relevant if the school doesn't have a game dev major
School depends on where you live. Here in Brazil you’re forced to learn math, Portuguese (to write better), spanish (most schools), english (very introductory), geography, history, physics, art (only stuff like drawing and paintings, that will compose your final grade), chemistry, sociology and writing (you learn how to write better to be ready for national exam’s essay you need to do get into a public University). Also fight against bullies and a culture that don’t value studying for anything besides exams. My whole school system was made just to prepare use for this national exam. Nothing more than that + teachers are underpaid and disrespected by their students.
Is there a good book to show me the maths I need and teach me step by step? I’m looking to get into game development myself like work for a game studio like naughty dog
i start the video and hear "calculus is not very useful" excuse me i need calculus every time i make a movement system lmao it's the only reason i want to learn some calc (otherwise i don't really like it) (pinned comment is pretty good though)
Agreed! I think most beginners can get by with "position += velocity * deltaTime" until they get to the more intermediate/advanced parts of game development though! Pinned comment is amazingly helpful!
To add to your list: I would say *Probability* theory and *Statistics* are pretty crucial for system design and making the numbers work for you (and also for understanding the analytics once you release your game). *Physics* , or classical mechanics and galilean relativity at least, is definately up there too if you're making anything real-time. And by extension, *Calculus* : since like 90% of of physics is just multivariable vector calculus. *Matrices* are also useful, though typically only if you're working in the nittygritty parts of an engine. And this last one bridges the gap between maths and computer science, but it's been sooo useful to me in hindsight, and i rarely hear anyone ever talk about it: the very badly named topic of *Functional Programming* . A functional programming or operations research course will basically teach you how to take all of the maths theory you just learned and actually turn it into useful computer code.
Man, multivariable vector calculus is a pain in the ass 😢
At least, it was thanks to my Uni teacher...
I am a High School MATH teacher. This is the most AMAZING video I've ever seen to explain WHY and HOW we use math in video games. Kids love video games so this appeals to them! SUPER AMAZING AWESOME JOB. Thank you for making this. I hope this gets a million views!
W teacher
I hope you don't talk like you type I don't enjoy being shouted at
@@phutureproof I DO TALK THIS WAY> BWAHAHAHAHAHAHAHAHAHA
Bro literally dropped a banger and dipped
i had my journey of learning unity and going through my education alongside one another. As i progressed in maths, i became a better gamedev, and vice versa. I think it's fundamental to learn math in order to be a good gamedev
how much discrete math should i learn for game developing?
@@Calmdownnn12 it's depend on you how complex is your game. Are you want to make game more complex. The more complex game is more maths needed... Such as integration calculus trigonometry you should understand the physics like forces velocity angles etc it's more i can't explain here every thing
Brrruuuh you just explained a bug that I made years ago.. I never knew why my character was moving faster sideways... I thought the normalization was kind of automatic I guess...
Dude just summed up my high school maths and my first 2 years at uni
I learn math on my own because I knew it was somehow useful in game development, but recently I was starting to lose motivation, asking myself when/why would I ever use this super complicated formula or that property. Thanks to this video, I understand better, and I'm ready to keep increasing my math knowledge and skills ! This is an excellent video :D !
I felt in the exact same scenario before where I forced my self studying math for 6 month and in the end lost motivation
@@lufenmartofilia5804 Maybe you should start to make a small game to see the benefits of your learning? Sometimes, direct confrontation really does its job at showing you where you lack skill.
This is the best explanation of normalized vectors I've ever seen
This guy is criminally underrated, as a beginner game dev I find this channelsuper resourceful
Found a video suggested by you yesterday and ended up binging about three quarters of your vids. I feel like you have a very unique perspective among youtube gamedev channels and you really clicked with me, thanks for all the work you put into your channel, there are a few things I'll definitely come by to watch again. Hope you're well!
Ah thanks, this really means a lot to hear! Doing well and plan on making new videos at some point (no timeline on that though...). Started a PhD so things have been 200% busier than usual (hence the lack of new videos). Thanks again for stopping by!
I will say I studied calculus for three years before I got to a physics class advanced enough that I needed it. Then I went "Oh! That makes so much more sense." It took another 20+ years to figure out why I read Great Expectations and Macbeth in high school. As for "numbers," you need to learn the limitations of floating point too.
I did my undergrad degree in maths, so I've been delighted to learn through game dev that a bunch of the stuff that I learned there finally has a direct use for me! Although, I have to say, when I found the quaternion function I was initially disapointed that the unity function basically does all the work for you, haha, then I remembered how difficult it would be to *not* have most of that be automated. So yeah I mostly agree that you need to know how to use quarternions, but not how they work necessarily, unless you're building your own game engine from scratch.
Totally agree!
It's pretty odd how out of all the places that maths could appear.. it had to be videogames where it appears (for me) the most aha
Now I have to Google Quarternions .
this was an amazing video!
You missed that a game is basically a big Euler method integrator at its core. When you do things like "pos += velocity * dt" it's literally integration using Euler method.
I agree that your example can certainly be described with euler integration!
However, for the vast majority of beginner gamedevs, especially those who are relatively unfamiliar with maths as a whole, I don't think pointing them in the general direction of 'calculus' as a topic is optimal. I have seen far to many beginners get overwhelmed with differentiating/integrating/manipulating arbitrary equations that have no practical relevance to gamedev.
As people progress to being more intermediate/advanced developers, framing some of these problems with calculus can certainly be useful - I just don't think it is needed for beginners. It's like telling them they need to learn how to operate a wrecking ball when all they really need is a hammer.
I don't want this to come across as "I don't think calculus is important at all" either, and if it specifically interests an individual, then by all means study to your heart's content! It is fundamental to countless applications, and a very rich/interesting topic!
Very useful video! I'm reorienting my career towards game development. I haven't done math like this in about 12-15 years. It's helpful to know what math is needed, when it's used, and why it's important. This will allow me to review the necessary math before starting my university degree in video game programming and animation.
Fantastic! I’m learning game programming using Lua language and pico8. I limited myself in a small environment to focus on the fundamentals. Big engines can be really handy for those that know what they’re doing, but for me now, it’s like use a full car workshop to fix my bicycle. This video was everything that I needed! Thanks!
mentioning vector normalization reminded me of James Bond Golden Eye on n64. I think you would move faster if you moved side ways.
Great video! I really liked the attention given to Vectors, as that seems to be where many people spend time spinning their wheels, so it's nice to see such detail given in consumable portions. Nice work!
This video is a GOLDMINE for me.
❤ this is simple and to the point, you showed us in general , the usage of topix x in games is like this
Amazing Man!!!! I am just speechless
Maths is sooooo wonderful! Hats off to you!!
Oh man... I'm shocked! For past 3 weeks or so I've been learning Godot from Heartbeast's old platformers video & i remember that he used *Vector normalizers* & finding that it's the same concept as he told just refreshed my memory!!!
Thanks for this amazing video Sir ❤
Love from India 🇮🇳
I think that also physics and rigid body related stuffs need an honourable mansion, especially for 3D games, maybe you can make a variant of this video for physics
BTW sorry for my bad English, I'm Italian.
Great video, The learning never ends but vids like this make it so much easier.
10:40 yes but also because the Greeks did it with triangles. Eastern math systems used arcs and strings before triangles. Super cool history to it
Kind of upsetting that you've stopped uploading, just found your channel and I'm kind of astonished of how you have such good content but such little recognition
Thank you so much!
I plan to start uploading again at some point in the future - but I've become quite busy studying for a PhD, so I have a lot less free time to make videos at the moment!
@@Madbook I hope your PhD has been going well :)
Great video. Well done on telling my why and how. So important!
I personally don't use quaternions, because for me it is easier to use matrices (theoretically e.g. coordinates are stored in x,y,z variables so they are not technically matrices but spiritually...)
that's fine for most game engines, since they'll typically convert everything for you. If they don't, then you may run into issues using Euler angles, like Gimbal Lock.
@@jmvr I can avoid Gimbal Lock just using rotation matrix that uses u axis in replace for the other two angles (so quaternions' method but with matrices!)
This was surprisingly refreshing. It often feels like there's too many disjointed tutorials, with no roadmap or motivation. You did a good job with this one. Glad I found this vid. Calc is more useful in controls and electrical engineering; if you want write software for airplanes and helicopter and you get the idea, that's where you'll use calculus, otherwise, study your linear algebra if you wan to make games. Basically exactly what you said. Nice work.
This was an awesome video. I just need to get my hand around dot product and quaternions and then I can find more stuff I don't know.
Cheers!
I found that the visualiser I put in the description for the dot product really helps with understanding what the operation does. I can always help you in the discord if you have any questions or are struggling with it (this goes for anyone else reading this too)!
Dang this gave me some university flashbacks haha, great video though. Much better explained than most of my profs :)
This channel is just amazing!
When I have to do math I just keep trying random things until its what I want
Randomness and chance are also a really important part of game development.
Can you elaborate on how to use the dot product in a 3d game?
Thanks so much for this video, really helped a lot!
How does this channel only have 1k subs? I think he diserves 100k.🙂
This video is seriously cool.
2 Thumbs up!!
👍👍
Basic Integral and differential calculus can be quite useful
Agreed! I think most beginners can get by with "position += velocity * deltaTime" until they get to the more intermediate/advanced parts of game development though!
@@Madbook True. It's like how overtime, I found realized "position += velocity * deltaTime" isn't always ideal, it should be "position += (formerVel + currentVel) * 0.5f * deltaTime" because of acceleration/deceleration .
@@udyfrost6380 Well technically if you wanna implement accelleration you can just use Newton's motion equations, which are the double integral of a costant acceleration, meaning this is the real mathematical rule that governs the motion of a body with a constant acceleration, your update function would look like:
"position += velocity*deltaTime + 0.5f*acceleration*(deltaTime^2);
velocity += acceleration*deltaTime;"
obviously you can make your acceleration vary in your program, as long as at each step you use the rule above with its current value. Also remember that a negative acceleration means that your body is either decelerating or accelerating in the opposite direction to the axis that the position specifies
Really helpful video man! Can’t wait for the next one!
I'm doing discreetskeet math right now. And it includes graph theory. I'm a snhu comp sci student
Freya holmer has a playlist of 10 videos about math for game devs that would change your life
Yep! They are excellent videos that I would highly recommend for anyone wanting to get stuck into these topics!
Thank you for the information.
well the math like plus and the minus is good also multipliction like 5 x5 or 10 x 5 is also good. some people saying you need vectors but not that important! i just use plus minus multipliction and i made many game like zeldas, the super mario nintendo, the dragon of steel, the spyro ratchet clank and bandicoot. thanks
Thank you for this comprehensive video and for putting all that quality in it !!
have. But, your tutorial was amazing and I have made a semi-decent soft. Thanks!
Do more of these maybe go a bit more in depth? Loved this
Math... It's a love-hate relationship: My head explodes every time i hear of this magic word, yet it's so usefull, and to a certain extent, cool i'd say... Anyway great vid madbook!! Glad to see u back in activity!! (^D^)
ty cuz ive been having a hard ti getting started.
With regards to Calculus, have to slightly disagree. While I don't find too much use for the limit or integration, the derivative is quite useful, especially given that it can be used to understand how to calculate stuff like velocity. My educational background is electrical engineering, specifically control system engineering. For my game project I end up applying quite a lot of concepts used in both control and signal processing systems. Stuff such as lag filters can be used to create smooth camera movement and eliminate high frequency noise. Concepts such as negative feedback loops, that have roots in differential equations, can be quite useful for making simulated automated systems that are meant to behave within your games physics environment. That being, said, I do agree with your other mathematical suggestions. I use trig in combination with vectors quite a lot.
I was gonna say the same thing, I've used calculus in pretty much all the projects I have worked on. Especially for velocity and acceleration calculations. Knowing the calculus behind these physics concepts can actually do a lot to make a game feel better. When he was talking about this, he was showing the guy falling and using a parachute and I was just remembering a project where I did something similar and had to use calculus to smoothen a character's falling physics.
that was exactly what I needed , thank you so much
Great video! Meta tutorial sources are one of the most under produced resources on the internet and I'm ecstatic to see more people adding them!
One thing that bugged me in the video however, cos is pronounced cosine. Sin = sine, cos = cosine, tan = tangent.
Thank you so much!
Yeah, you are 100% correct - I think I say 'cos' out of years of bad habit... or because 'cos' and 'sin' verbally sound more different? Or maybe I'm just making excuse's now.. 😅 I'll try to be more accurate next time!
Really Great Video and Awesome Advice for others that need it :D
there is much of learning on internett but not much good explanation with showing examples etc, your did it really good and pointing in right direction i think :)
My case am not so good with math, but some how yes when you do it practically its much easy to understand especially visual like in game :D
Sim City 2000&3000&4 learned Country infrastructure better than school(Like taxes& tax Classes, Power line Water lines pumps etc) XD
and i remember when i had done vector without knowing it in Dark-Basic(Long time ago) :D
marble blast gold messed up the diagonal movement thing
One of the best videos !! Thank you
the entirety of this intro sounds like a squarespace ad
Very thorough! Well made.
"Until next time, good bye!"
I don't think he's coming back guys.
I plan on making videos again - just very busy doing a PhD at the moment!
@@Madbook good luck
Your video is really helpful
DUDE why isnt your channel bigger XD Even though I dont really do game dev anymore Im sure this could be a great resource for many people, keep it up
Thank you for the heart :)
Why did he stop uploading
THANK YOU FOR THIS!
Brilliant!! Thanks
BRO THANKS FOR MAKING THIS VIDEOO❤❤❤❤
It's weird to me that you mentioned quaternions but not matrices. I feel like when discussing game maths I'd bring up things in this order: vectors > matrices > quaternions. Especially how vectors and quaternions can both be represented as matrices, it feels like a natural bridge to the quasi-4d weirdness of quaternions.
What are matrices used for in game development ? Any example ? I'm curious.
@@TealComet They're used alot in game engines to convert a 3d object to a 2d image which a player can see. This is the basic foundation of 3d rendering
That was helpful, thank you
You didn't mention series. These are also useful in programming. In simpler environments than Unity though.
OMG, I was wondering why it always seems like you move faster in diagonal directions. This happens in Unreal Engine games all the time. I'm pretty sure they're normalizing the vectors, but it's still noticeable.
If you have two permendicular normalized vectors e1 and e2, and you move an object with speed V = v(e1 + e2), then its diagonal speed is sqrt(2) v = 1.414 ... v, and not just v. To have the same speed you must therefore divide the velocity V by sqrt(2) to have it the same speed as either the horizontal speed exclusively or the vertical speed exclusively.
"Quaternion" *VINE BOOM*
interesting, i'm too dumb to really understand quaternions, but i kinda know how to use them to get the result i want :)
very informative
thank you
Hey! Great video and you're a great teacher, but the music in the background is really distracting.
i love ur channel. u give me hope :)
The assertion about dot product, as stated, is not correct. The assertion applies only to normalized vectors. When two vectors are not normalized, their dot product can have _any_ value!
awesome!
I like this video, but you say calculus isn't needed then proceed to list around 4 items directly related to calculus (vector calculus: Quaternions, Dot Products, Cross products, Normalizations).
For those unaware of what vector calculus is (normally called Calculus 3, or multivariable)
"Vector calculus was developed from quaternion analysis by J. Willard Gibbs and Oliver Heaviside near the end of the 19th century, and most of the notation and terminology was established by Gibbs and Edwin Bidwell Wilson in their 1901 book, Vector Analysis. In the conventional form using cross products, vector calculus does not generalize to higher dimensions"
So it directly deals with vectors, especially in 3D. If you are making a game in 3D and get intimidated by the daily math required, you are most likely lacking in calculus.
So why the hell is knowing calculus essential to not only vectors but 3D math? Because of the tangent. Calculus teaches you how to use derivatives and manipulate slopes. Knowing this helps tremendously as the tangent is the most easily accessible 3D Vector. The essence of calculus is literally just finding the tangent.
Let's take a vision cone system. A spotlight. Think to breathe of the wild guardians that use a spotlight to find the player. Note, I will simplify a bit as the math can get long.
Naive approach. Let's just make a cone by creating a circle that gets larger as it approaches the ground. Concentric rings so to speak. We get the following vector: v = (cosine(angle), sin(angle)). v*d, where d is the distance from the ground.
However, now move this cone to the X-axis and it squishes, the Y-axis and it breaks. For each axis, you need to figure out the appropriate ring...Because a circle in 2D is XY, a circle on the Y plane is XZ, a circle from the X plane is YZ. But what is a 2D circle projected onto 40% Y, 30%, X 15% Z ??? That is, as you travel on this 2D plane, you move in all 3 axes. A plane that is within all three axes, how do you create a circle then?
More general approach:
You get two vectors tangent to the plane, but perpendicular to each other and rotate them to form a circle. Oh boy, tangents, perpendicular, rotation, and speed, this is literally screaming derivatives and calculus.
To do this you need the normal on the plane (how to do this, calc), get the tangent from that (how and why? Calculus), get the bitangent (how and why? Calculus), then do the following math:
v = (tangent * cosine(angle) * radius) + (biTangent * sine(angle) * radius). (how and why? calculus)
And now the guardians in BoTW can see link anywhere in 3D.
And this leads to the final point, what is calculus? Well, calculus is all about approximations which is so important for computers. Things like floating-point precision are directly related to sequences and series. Along with that, calculus deals with analytical geometry, speed, physics...all of which are needed in a lot of games. There are so many examples of everyday effects in which knowing calculus is useful.
Hey, thanks for the feedback!
Whilst I agree that calculus is incredibly useful, I still don't think it falls into the 'Maths for Beginner Gamedevs' category at the level of detail shown here. It would likely fall into 'Intermediate/Advanced Maths for Gamedevs', as calculus doesn't find it's way into most curriculums until the latter half of the education roadmap.
To add to this though, most calculus problems that arise in gamedev are usually vastly simplified by the game engine being used. I agree that if you want to build your own engine, you'll need a very deep understanding of calculus - but for making a game, all of the mainstream engines will simplify out a ton of the complexity for you. Because of this, we will often use the practical outputs of calculus, without doing any calculus ourselves.
Glad you liked the video on the whole though!
At least in the USA, a good portion of that is covered more by linear algebra than calculus (vectors, dot and cross products, coordinate systems, etc).
Just popping in to say that if you go into discrete math without first having *at least* done pre-calculus, you're going to have a bad time.
Usually they have a retirement for that, but I personally think even some.linear algebra and calc 1 can be a great help.
would this also aplly to someone who has forgot everything from school?
This is so amazing! As a software engineer, I dont need Math daily, however, I have always felt the need to learn it to get deeper into the field. This is a great starting point!
what is the name of the game with the parachute 2:06 ?
I suspect there would be highly specialised software which can take care of movement and vectors. Is it necessary to learn math to code games these days?
I think it depends on how much control you want over the lower level mechanisms of the game. You can get away with using build-in functions but at some point you'll want to tweak things for the specific requirements of your game
Hey there! Could you please recommend which degree would be worth choosing for game development, Software Engineering or Computer Science
I would suggest software engineering. Computer science is more like how programs and computers/computing works. Software dev is probably more relevant if the school doesn't have a game dev major
@@FunctionallyLiteratePerson oh alright, thanks for the advice! btw would taking a game dev major be risky?
School depends on where you live. Here in Brazil you’re forced to learn math, Portuguese (to write better), spanish (most schools), english (very introductory), geography, history, physics, art (only stuff like drawing and paintings, that will compose your final grade), chemistry, sociology and writing (you learn how to write better to be ready for national exam’s essay you need to do get into a public University).
Also fight against bullies and a culture that don’t value studying for anything besides exams. My whole school system was made just to prepare use for this national exam. Nothing more than that + teachers are underpaid and disrespected by their students.
So, maths are a tool. You can represent irl world problems in different ways using it. Thats what most people dont know or rather don’t get.
14:13 Neither does Goldeneye 64 for the Nintendo 64!
Matrix maths can be hand in game dev.
Is there a good book to show me the maths I need and teach me step by step? I’m looking to get into game development myself like work for a game studio like naughty dog
Quick commentary on programmers
Which game is played at 3:31?
What language do you use? Is it C++ or some other computer language? Thank you. 🤔
He mentioned Unity so id assume c#
It's been a while
What about functions?
Shouldn't one know thier mathematical use, before using them in programming?
quaternions are an affront to god
They can be very helpful. It's like complex numbers but extended - has a lot of applications, especially with rotating objects.
Try rotors from geometric algebra instead.
thanks BRo
i start the video and hear "calculus is not very useful" excuse me
i need calculus every time i make a movement system lmao it's the only reason i want to learn some calc (otherwise i don't really like it)
(pinned comment is pretty good though)
Agreed! I think most beginners can get by with "position += velocity * deltaTime" until they get to the more intermediate/advanced parts of game development though!
Pinned comment is amazingly helpful!
Nah, ChatGPT will deal with it
guys: don't learn discrete maths. you will die.
nice ;D
School is a lot of theory without much practical experience
Math or Maths
I'm from the UK, so "maths" for me!
What? But FTX guy's girlfriend said, it's minimal meth