Video není dostupné.
Omlouváme se.

Essential Mathematics For Aspiring Game Developers

Sdílet
Vložit
  • čas přidán 17. 08. 2024
  • This video outlines what I believe are some of the core principles you need to understand to make dynamic computer games, covering vectors, angles and motion. I've tried to present it in such a way that highlights the relationships between these principles, so you can identify when to use one or the other, or combinations of them. It is by no means an exhaustive list, but gives the beginner/aspiring games programmer a place to start.
    Patreon: / javidx9
    CZcams: / javidx9
    / javidx9extra
    Discord: / discord
    Twitter: / javidx9
    Twitch: / javidx9
    GitHub: www.github.com...
    Homepage: www.onelonecod...

Komentáře • 691

  • @javidx9
    @javidx9  Před 4 lety +424

    Due to some IRL scheduling issues, my videos are a bit out of order. Anyway, I hope this helps all those that have asked me about "maths for games programming" over the last few weeks. Take care, stay safe!

    • @robinsingh4492
      @robinsingh4492 Před 4 lety +2

      Great Video. Well I guess basic knowledge of Physics like Motion and Optics will also help.

    • @alexsandergutierrezgoncalves
      @alexsandergutierrezgoncalves Před 4 lety +2

      This is the best video, I really wanted something like that, thanks

    • @_caracalla_
      @_caracalla_ Před 4 lety +1

      thanks a lot!

    • @carrivasv1
      @carrivasv1 Před 4 lety +1

      I recently begin watching your videos and I really like how clearly explain the concepts. Here will help us some knowledge of linear movement, but the idea is very clear... thanks

    • @joakin8535
      @joakin8535 Před 4 lety +1

      (opinion, by someone who pass by to time to time)
      I've heard this expression (don't remember when, but was said by one of Joe Rogan's guest) "...people tend to have something called the learning curse..." which means that people usually tent to avoid information because they believe everyone knows that kind of information.
      First of all I find this video amazing to all the people who want to dive into math for game programming. But by watching your youtube feed some of the titles seem kinda alienating or the content is way too specific.
      Some comments for sure will have excellent content for beginners, but we are all here because it's one of yours.
      Anyway I really like the video and it will be nice to see similar content like this one in other areas.

  • @lino2048
    @lino2048 Před 4 lety +1124

    Pythagoras' Theorem 0:30
    Vectors 4:29
    Angles 13:04
    Sine and Cosine functions 19:12
    Dot Product 24:09
    Linear Interpolation 35:07
    Simple Motion 40:26

  • @davidmcgill1000
    @davidmcgill1000 Před 4 lety +1101

    I think you chose the right angle to start this series on.

  • @Xperto_
    @Xperto_ Před 4 lety +427

    It seems like he's getting in shape

  • @civ20
    @civ20 Před 3 lety +249

    For the first time in my life math actually made sense, and I enjoyed every second of the video. Thank you so much for actually sparking my interest in maths.

    • @jibbo123
      @jibbo123 Před 3 lety +1

      RHCP album cover

    • @drfreeman6796
      @drfreeman6796 Před 3 lety +1

      Consider that this is "simplifief" math! If he had to go trough all the demonstrations he would've bored the spectators.

    • @shubhan2002
      @shubhan2002 Před 2 lety

      These topics are not even that hard

    • @javidx9
      @javidx9  Před 2 lety +25

      That's constructive...

    • @digochuanxi9846
      @digochuanxi9846 Před 2 lety

      Make your words my words dude! Thanks so much javidx9!

  • @nomoturtle1788
    @nomoturtle1788 Před 4 lety +184

    I may not benefit from this video in particular, but I like that you made it, each one like this is another barrier removed for aspiring programmers. And thank you again for all the others. I hope you feel appreciated, because you are.

  • @supahfly_uk
    @supahfly_uk Před 4 lety +238

    Why couldn't the angle get a loan?
    His parents wouldn't cosine

  • @outsider1st
    @outsider1st Před 4 lety +215

    This is like the missing puzzle on the youtube when it comes to programming tutorials. Appreciate it!

    • @Ornoth09
      @Ornoth09 Před 4 lety +21

      Yes, those hundreds of BEGINNER tutorials then they stop uploading what to do next

  • @code-dredd
    @code-dredd Před 4 lety +135

    A good book I'd recommend is: _Foundations of Game Engine Development: Mathematics_ by Eric Lengyel.
    Not a paid ad and no relation; it's just one of the better books I've read that I'd recommend.

    • @Admiral_Ducky
      @Admiral_Ducky Před 4 lety +1

      Thanks for sharing, I'm gonna read this book.

    • @snesmaniac228
      @snesmaniac228 Před 4 lety +13

      I had a professor recommend me _Game Coding Complete_ by Mike McShaffry. I highly recommend that if you are at an intermediate or above level of programming.

    • @daniboy2619
      @daniboy2619 Před 4 lety

      Sorry to necro this but are the explanations complete? Like are there proofs for every procedure presented, for example, inversing a tangent function out of nowhere?

    • @code-dredd
      @code-dredd Před 4 lety +3

      @@daniboy2619 The book is intended to give you understanding on what things are (e.g. quaternions, vectors, matrices, etc), how they work, what things mean, etc. It has good explanations on how things relate to other things (e.g. quaternions to matrices) and so on.
      It's not a _pure maths_ text book; it's a text book about math, but _focused_ on and aimed at game development, so you must understand that maths here are a means to an end, not an end in and of itself.

    • @atagen2186
      @atagen2186 Před 3 lety

      it's a great book, but the grassman stuff towards the end gets pretty hefty

  • @AntonioZL
    @AntonioZL Před 4 lety +2

    I think it's impossible to be a programmer without liking math. Math is logic, programming is logic. The thing is high school math is a bunch of formulas. People don't see the logic behind it, and that's why I think aspiring programmers hate or fear math, but once you start programming, you inevitably starts seeing the beauty in mathematics.

  • @CleetusSilversurfer
    @CleetusSilversurfer Před 3 lety +88

    Well, if my teacher in high school would make an example to use these vectors, like in a game, I would've actually payed attention. I just had a hard time learning things that I did not see any purpose at the time, but now I see why it's important. Very good explanation!

    • @yotsubaaaaaa
      @yotsubaaaaaa Před 2 lety +5

      Same bro

    • @phenny1057
      @phenny1057 Před rokem

      Same. Math is more understandable and enjoyable if they could connect it to a game. Would've love math fr

    • @Untoldanimations
      @Untoldanimations Před rokem

      L mindset

    • @JungoFunko
      @JungoFunko Před rokem

      ​@@Untoldanimationsmore like L education system

    • @Untoldanimations
      @Untoldanimations Před rokem

      @@JungoFunko if you have access to the internet you can’t blame your education system

  • @isaacsurfraz3858
    @isaacsurfraz3858 Před 2 lety +6

    Easily the clearest, best explained yet most concise maths for games video out there. Well done! I really like that you included actual applied examples for everything - why doesn't everyone do that!?
    Anyway you've gotten a sub out of me for this video alone!

  • @AjinkyaMahajan
    @AjinkyaMahajan Před 4 lety +45

    For the first time, I have understood the use of high school mathematics in a practical video game.
    Thanks for sharing ✨✨
    Cheers

    • @antongerasin3871
      @antongerasin3871 Před 2 lety +1

      It's more like middle school.

    • @cxlappsed1548
      @cxlappsed1548 Před 2 lety

      that's not high school maths

    • @zeektm1762
      @zeektm1762 Před rokem

      @@antongerasin3871 ?? a lot of this is not taught in middle school and if it is its probably in brief..

  • @iii720
    @iii720 Před 4 lety +53

    Wished all your contents were available 20 years ago.

  • @neontiger2007
    @neontiger2007 Před 4 lety +37

    I'm loving this video lesson. Having an understanding of Math & Trigonometry becomes a MUST when you want to make videogames as I would like (in a professional way), and it's something that it's not frequently trivial for us programmers to approach. This video puts lots of clearance on these subjects in an intuitive and metabolizable way.
    Great work, man. Thank you!
    Hugs from Argentina.

  • @gower1973
    @gower1973 Před 4 lety +120

    Spent the last three months of lockdown relearning all the math I forgot from school and college so this is very timely

    • @andso7068
      @andso7068 Před 4 lety

      For what?

    • @spyrex3988
      @spyrex3988 Před 4 lety +26

      @@andso7068 it's good to not forget Maths

    • @Tech.Library
      @Tech.Library Před 4 lety +1

      He is 47,so it's not surprising

    • @drfreeman6796
      @drfreeman6796 Před 3 lety

      @@Tech.Library It doesn't mean that everyone over a certain age forgets mathematics or physics, or whatever.

    • @recursiveidentity
      @recursiveidentity Před 3 lety +1

      me too! I exempted all my math in college, so I haven't actually studied this since the late 80's!

  • @quicktastic
    @quicktastic Před 4 lety +12

    Possibly the best and most straight forward explanation of a vector I've seen.

  • @benjaminsmall
    @benjaminsmall Před 3 lety +8

    Javid, you are the man. This breakdown and your visualizations are going to help so many people young and old, where the classical teaching methods would cause a severe disinterest. Know you are very much appreciated!

  • @astrahcat1212
    @astrahcat1212 Před 3 lety +1

    This channel is a gem, all these videos need to be released on DVD so they're preserved for far into the future.

  • @ayskrymzoulok750
    @ayskrymzoulok750 Před 4 lety +32

    Your videos are awesome but each time you post a new video I feel discouraged to start my own channel because, well, you basically cover every topic and much better than I could. Otherwise, your channel is really a golden nugget in the youtube game

    • @javidx9
      @javidx9  Před 4 lety +69

      Thanks, but don't be discouraged - everyone has their own way of putting a spin on things, when my stuff doesn't click with viewers, chances are someone else's stuff will, it's always good to have a range to choose from as people have different ways of absorbing information.

    • @obscurus1344
      @obscurus1344 Před 4 lety +10

      @@javidx9 You're a legend.

    • @barrowmeoct04
      @barrowmeoct04 Před 4 lety +3

      Go for it, because the level at which you 'can' teach will appeal to people who absorb information in a different way; people function best under differing methods from others and that's why you find you'll click with some teachers but not with others (just like college or school math). I started a math channel in another account a few years ago and did only one video ( like you I hesitate to start it up (again) ). It was such a simple video but I still got people thanking me for clarifying things for them and helping them through tests. If you bring your own experience of how you solved problems to your audience it will help other people who similar obstacles.

  • @LesusGames
    @LesusGames Před 18 dny

    That example with the platformer game really helped me get my head around normal vectors and dot product. Thank you.

  • @PleegWat
    @PleegWat Před 4 lety +5

    There is a second important difference between atan() and atan2(): atan2() has a larger range of outputs, as simple atan() cannot tell the difference between x and y being both positive and both negative, while atan2 can. atan() will return a number between -pi/2 and pi/2; atan2() will return a number between -pi and pi.
    This is a second important reason to use atan2() when dealing with screen coordinates, as atan() will never return a direction pointing left of the origin.

  • @barrowmeoct04
    @barrowmeoct04 Před 4 lety +1

    I'm not even aiming for game dev, but studying math and this is by far one of the clearest explanation I've heard regarding unit vectors and how they are used, dot product etc. Linear algebra dealt with this only in terms of functions so it was hard to understand their practicality. In fact I only understood how vectors were orthogonal or perpendicular or going in opposite directions by algebraically manipulating the formula we were given, i.e. cos(theta) = (v1*v2)/ (magnitude v1 * magitude v2), but your example with the unit circle has shown me exactly 'WHY' a dot product of zero means an angle of pi/2 between the two vectors and so on. This has clarified so much. Thank you.

  • @fredhair
    @fredhair Před 4 lety +5

    1 useful tidbit: calculating square roots are computationally expenisive (usually nothing huge but many times per frame could cause problems. Of course you should profile and consider your project's specifics). If you can avoid them its usually worth doing. For instance if you are comparing vector magnitudes to see which is larger it would be preferable to square the right side of the equation rather than sqrt-ing the left

  • @immortalsofar5314
    @immortalsofar5314 Před 4 lety +1

    8 bit game development taught me a lot about maths. Doing trig in 256 segments and sines thereof taught me about fixed point arithmetic, Pythagoras taught me about binary shifted multiplication and division and did you know that there are always 2 more rounded integer square roots than the previous square?
    I punished my step-son for skipping his maths homework by teaching him trig and giving him a 3 dimensional robot arm problem to figure out what angles to set at each joint to move the end to a given x,y,z co-ordinate. I did it too well though - after we'd gone through it, he asked me to give him another one!

  • @bobbob9821
    @bobbob9821 Před 9 měsíci +1

    The importance of math in game design is really understated. Unity only shows euler rotations as positive numbers from 0-360 and I needed it to be to be from -180 to 180 for error handling so that if my door overshot and went below 0 when it was closing I could manually snap it back at zero. I then remembered about piecewise functions, added one where basically y = -(x - 180) if x is >= 180, and it fixed everything.

    • @blockify
      @blockify Před 7 měsíci

      Great thinking! Will definitely be needing this when working with Unity.

  • @oblivionronin
    @oblivionronin Před 4 lety +2

    Being currently in software engineering, i find it nice to see all those concept, that i learned formally in physics and mat classes, applied to programming and game logic. Very nice, concise teaching. Love the video, keep em coming !

    • @javidx9
      @javidx9  Před 4 lety

      Thanks Chris, will do!

  • @NicolaiSyvertsen
    @NicolaiSyvertsen Před 4 lety +2

    I keep watching these and hoping that my brain just switches on one day. In college I actually happened to learn enough about vectors and complex numbers that I could solve the tasks in the text book but I fear that I didn't deeply understand it but just learned coping mechanisms that worked well enough for solving the simple tasks at the time. And it was quickly forgotten. I tend to not stay focused on something for too long before I find something other to do.

  • @alizaidi5610
    @alizaidi5610 Před 3 lety +1

    The order in which you taught this and how each topic merges seamlessly into the next one is perfection. Excellent work!

  • @davidb4020
    @davidb4020 Před 4 lety +2

    Best channel for C++/coding hands down. So much good content, great style, always deliver. Thank you for all your hard work.

  • @FuZZbaLLbee
    @FuZZbaLLbee Před 4 lety +1

    I remember making a car drive on the screen using the angle en COS and SIN. But then I needed to work out collision, and that proved to be difficult. Especially when the thing my car was colliding with, would also collide with something else.

  • @undefined_cat
    @undefined_cat Před 4 lety +64

    You are programming hero

  • @Olemier
    @Olemier Před 3 lety +2

    I'm always floored by your videos. They're so well organized and the logic flows from one point to another perfectly. Sometimes it's hard getting my head wrapped up in details and these fundamental building blocks are a phenomenal way to refresh/reorient my perspective to help me understand what's going on. Your channel is so awesome, I appreciate it more than I can explain.

  • @shawn576
    @shawn576 Před 2 lety

    If someone asks about math required for electrical theory, show them this video. It's all triangles and unit circles.
    Also, that shortcut of seeing the relation between things (starts at 1, starts at 0, starts at maximum, starts at minimum) is very useful when trying to use an angle for something but not understanding exactly how it should be drawn as a problem. For example, if I know that I apply maximum force on a rope when I pull at an angle of 0, I should probably use cosine to calculate how hard I'm effectively pulling when I'm at a slight angle. I tutored a few kids in high school math and that shortcut helped a lot of kids solve problems they otherwise couldn't conceptualize.

  • @Rawbful
    @Rawbful Před 3 lety +1

    Man I was very good at this stuff in high school but now I haven’t used it in 15 years and it hurts my brain. Another one of those situations though where back then you think when am I going to use this stuff, and here I am...extremely relevant even in the early stages of game development. This helped me understand how to solve the problem of my character moving faster when moving diagonally. Thank you!

    • @javidx9
      @javidx9  Před 3 lety

      Maths is absolutely "use it or lose it"... its frightening when I think back to doing maths quite competently at degree level, and now struggle to differentiate a polynomial XD

  • @sieyk
    @sieyk Před 4 lety +1

    I had so much trouble finding an algorithm for finding an arbitrary point on an arbitrary line, but you just made it so easy. You're such a legend.

  • @TarousDT
    @TarousDT Před 4 lety +14

    A simple optimization you can make for the first lesson about Pythagoras, is that you don't need to take the square root of the right side of the equation. Instead square the distance you are comparing, so "(c < 50)" becomes "(c < 2500)" which is 50^2.
    Of course, if you need to display the actual distance to the user then yeah you would need to do that square root calculation.

  • @wkxvii
    @wkxvii Před rokem

    I watched many videos on youtube trying to figure out what is in fact the dot product and its usage on graphics stuff... This video was the only that I got pleased! Perfect explanation javidx9!

  • @ayye4329
    @ayye4329 Před 4 lety

    Another use for sine and cosine, if one has cycles to spare, is to use them coupled with a continuously increasing value (such as the time a program has been running for) as the source of a simple oscillating movement:
    pos = initial_pos + sin(t) * vector(0,1) allows one to make a bobbing up-and-down movement, such as a collectible pickup;
    rotation = initial_rotation + sin(t) * max_rotation allows one to make something tilt left and right, such as a ship on water.
    (Among other cool things, such as Lissajous curves)
    Nevertheless, this video is awesome as always, and I'll definitely share it as I think these things should be more widely known. Thanks!

  • @desertdweller9003
    @desertdweller9003 Před 4 lety +1

    These are all great, it's not only great for game development, but using these in programming will significantly help with your understanding and grasp with mathematics in general. I personally began learning Python and Java in early High School, and my fascination with programming collision in particular helped me get an extremely good grasp on concepts such as sine, cosine, dot products and the such before even really beginning those subjects in my own classes. Not to mention, it made physics one of my easiest classes.
    This is why I'd always recommend to younger people learning programming, and game development to never shy away from the more complex seeming subjects. They not only do a good job in teaching programming but High School level math as well.

  • @brightbluesmurf
    @brightbluesmurf Před 4 lety +1

    As someone that's looking to breakaway from the doldrums of desktop app programming to writing a 3d game in my spare time this is really helpful

  • @porcupine9997
    @porcupine9997 Před 4 lety

    Thank you so much. So many people show you how to plug some numbers in but don’t explain why things work the way they do. This video explained things in a way that promotes learning rather than memorizing.

  • @thesmokinggnome
    @thesmokinggnome Před 3 lety +2

    You're a great teacher and really lay everything out in an understandable way. The quality of your videos is hard to top, Big thanks!

    • @javidx9
      @javidx9  Před 3 lety +1

      Cheers! Much appreciated Mikey!

  • @pirateskeleton7828
    @pirateskeleton7828 Před 2 lety

    For Pythagorean theorem, you don't have to sqrt if you are just comparing distances. Remember, if |a| < |b| then a^2 < b^2. Computationally squaring is less intense than square rooting.

  • @doomerismo9816
    @doomerismo9816 Před rokem

    I came here because a specific feature i wanted in a game project and it helped me. Thank you very much.

  • @Songfugel
    @Songfugel Před 3 lety

    Sent this to my non-programmer classmates studying Game design. Never seen these explained in such a clear way, great job!

  • @unrealdevop
    @unrealdevop Před 2 lety +1

    34:51 That was genius, I was actually able to get this to work in the Unreal Engine by mapping the Dot Product to a Curve!

  • @mito._
    @mito._ Před 3 lety +4

    Loved this! Very clean and incredibly well-articulated format! Each moment of the video is a wealth of digestible information, of which amounted to several semesters worth of mathematics knowledge in a single go.
    Of course, one has to actually DO the work as well for any of it to make sense! But nonetheless, it's as great a starting point as any - better than most if you ask me!
    Cheers!

  • @arshiadehghan583
    @arshiadehghan583 Před rokem

    I can not thank you enough, This video taught me more about vectors than the other 100 tutorial videos on CZcams about this subject.

  • @Chadderbox
    @Chadderbox Před 4 lety

    This guy explained Vectors in 9 minutes, and gave me a thorough understanding of them, something my maths teacher could not do in 2 weeks.

  • @iXNomad
    @iXNomad Před 2 lety +11

    0:33 Теорема Пифагора
    4:30 Векторы
    13:02 Углы
    19:05 Синус и Косинус
    24:05 Скалярное произведение
    34:55 Линейная интерполяция
    40:25 Простое движение

  • @Ochenter
    @Ochenter Před 4 lety +5

    Lovely as always, David.
    Keep on doing more educational vids, please.
    Thanks.

  • @jahoopyjaheepu497
    @jahoopyjaheepu497 Před 4 lety +2

    Great video; took me from having a superficial understanding of vector math to at least feeling like I understand how to properly use vectors in game development. I'd love to see more videos like this, perhaps a deeper dive into some of the topics presented here.

  • @misedev3306
    @misedev3306 Před rokem

    Why have I not try to understand this more, awesome video, I just learned some of these a while ago, I will continue to learn

  • @jwdonal
    @jwdonal Před 4 lety +9

    Every one of your videos is GOLD.

    • @javidx9
      @javidx9  Před 4 lety

      Thank you, thats very kind of you to say!

    • @nx_s
      @nx_s Před 4 lety +2

      Couldn't agree more. They're always very informative, well-structured and also pleasing to watch. Bravo!

  • @alfie8778
    @alfie8778 Před 4 lety +5

    A whole course in a lunchtime. I wish this would have been available when I started. Even now it makes the jumble a whole lot neater. Thank you so very much for this. I will return here many times.

  • @sakikogookheng
    @sakikogookheng Před 4 lety +1

    Bless you, your family and all your friends. I've been hoping for this video for months now, I think I left a message about it once but I cant remember now.
    Have a great lockdown!

  • @pocketmnky
    @pocketmnky Před 4 lety +5

    Aaaaand once again Javid goes and teaches everybody what it took years for me to teach myself. Nice. ;)

  • @PaganBuffaloes
    @PaganBuffaloes Před 3 lety +1

    You're absolutely brilliant. This has been a great tool to review math I learned years ago as I apply for game dev positions.

  • @BudgiePanic
    @BudgiePanic Před 4 lety +1

    The section on dot products is explained so much better than any math lecturer did in my time at University

  • @ontley
    @ontley Před 4 lety +1

    To point out, Pythagoras' theorem works with 3 and I'm pretty sure any number or variables so 3d distancr is just dist=sqrt(a**2 + b**2 + c**2)

  • @jorgeferreira6727
    @jorgeferreira6727 Před 3 lety +1

    Excellent video on the really useful math stuff without the boring details.
    BTW (to the general public):
    Angles in degrees look easier because we can do most of it with integer numbers instead of dealing with the "irracional" Pi, but also out of habit, because we get familiar with degrees as kids, way before the concepts of PI and radians could make any sense. When we learn to read maps, use a compass or basic geometry, its all in degrees.
    Also degrees are a bless for navigation, latitudes, longitudes, hours, speed (in knots) this all make for easy calculations with simple numbers.
    But from a stand point of maths, already high school level, radians make more sense because PI unifies the relationships between the radius of a circle, its perimeter, its area and also the surface and volume of the sphere. not to mention that computers approximate the value of trigonometric functions using series, that yield results in radians.
    And there is still a third unit of angular measurement, the "gradian". Its a more obscure and less used one. I only have seen it in use once, in the army, for calculating the elevation angle for a given distance to the target of an artillery piece.

  • @ToadSprockett
    @ToadSprockett Před 2 lety

    Just ran across this, I really struggled with math in school, now that I'm older I wish I would have had someone to guide me through it. This is wonderful information, it makes a ton of sense, I've stopped along the way and looked up individual topics to get a deeper understanding. This shows that even us old people can learn something new. Thank you :)

  • @1CProgrammer
    @1CProgrammer Před rokem +1

    before watching this i only had knowledge of trigonometry and polar coordinates, and i learnt how the vectors work(which i skipped in school because they don't know the way of explaining)😅, thanks for the video you explained vector very well 🤝🙏🙏🙏

  • @TheBest-sd2qf
    @TheBest-sd2qf Před 2 lety +1

    Linear algebra and trigonometry you simply can't do without..but it shouldn't stop there, all math is useful. Become a math master and your games will truly shine.

  • @manfriedn64
    @manfriedn64 Před 4 lety +3

    Pretty amazing. I am in the process on making a 2d scrolling engine from scratch, with no knowledge on how to do it. I happened to figured out by myself a lot of what you say here except for the angles part. Your explanations makes a lot of sense and will help me to make a better code has now I better understand my intuitions. I had totally forgotten everything about vectors that I learned at school but somehow I used them anyway in a nasty way that I can clean up thanks to the fact you remind me of them :)

  • @clamhammer2463
    @clamhammer2463 Před 3 lety +1

    Arrrrrg, my brain!
    Reminiscent of attempting to wrap my brain around quaternions a few years ago for a space themed game and coding the pitch/yaw/roll of the ships.
    Thank you for the explanation. It's simply the best I've seen on this subject.
    If I find a better explanation, I'll edit this comment. So if you're reading this, then it's still the best.

  • @tomkirbygreen
    @tomkirbygreen Před 4 lety +1

    Fantastic. I hoped you’d speak to this topic. Kudos sir. Hope you and yours are doing well during these crazy times.

    • @javidx9
      @javidx9  Před 4 lety

      Thanks Tom, we're doing just fine, but crazy times indeed. Stay well!

  • @marbles3662
    @marbles3662 Před 3 lety

    I know most of this stuff , but the way you discuss it , is so enjoyable which I couldn't stop watching. great job.

  • @ramonmelo2799
    @ramonmelo2799 Před 4 lety

    That was the best explanation of the basics of Vectors and so on for the ones new to Game Development. Bravo !!! You are the best.

  • @arsnakehert
    @arsnakehert Před rokem

    One of the best ways I've seen of understanding sine and cosine is that they're coordinates of a point at the edge of the unit circle

  • @falkisen1
    @falkisen1 Před 4 lety +3

    Brilliant video!

  • @muhammadhaider5677
    @muhammadhaider5677 Před 4 lety +1

    Please never stop! Your videos have made me love C++!

  • @dutchdykefinger
    @dutchdykefinger Před 4 lety +1

    you're an OG for explaining the oldschool notation for vectors! thanks a lot for that
    i don't understand traditional math/algebra notation, always need pseudocode to understand what is being said lol

  • @jimmarshall3724
    @jimmarshall3724 Před 4 lety +1

    Love the videos - Who needs to go to university when there's guys like this on CZcams ? Really appreciate the neat diagrams and concise explanations . This guy's a better lecturer than any i had (Studying chemistry), and payed £9000 a year for!

  • @yuriib2666
    @yuriib2666 Před 4 lety +1

    Your explanation is great! I liked how you explained some basic stuff involving tasks from gamedev. That sheds light on some aspects of how to use knowledge gained during math courses. Thanks a lot!

  • @iliatalebzade8751
    @iliatalebzade8751 Před rokem

    Sir, you're one of the most wholesome guys in not only the field of programming and computer science but the whole of CZcams, thank you and please keep up the amazing work

  • @gilleswalther5964
    @gilleswalther5964 Před 4 lety +2

    I'm always freaking out when I see the time on the bottom right corner and realize it's OLC time, not mine... Great summary of the basic maths for video games!!

    • @javidx9
      @javidx9  Před 4 lety +1

      XD its worse when im editing and do it to myself...

  • @ycomomellamo
    @ycomomellamo Před 3 lety

    This video is reviving so much knowledge from my student days... It turns out I remember so much of it. Thanks for that.

  • @ricardohnn
    @ricardohnn Před 2 lety

    I love the examples for each part to make it easier to understand the usage...

  • @TheCivildecay
    @TheCivildecay Před 4 lety +109

    "If I wanted to do math I would become a math teacher... I just want to make games!" -any aspiring gamedev

    • @WhistaphX
      @WhistaphX Před 4 lety +17

      Poetic justice it's called.

    • @milanstevic8424
      @milanstevic8424 Před 3 lety +22

      it is true, but what you got wrong here is the definition of "make games"
      I'd argue that only a *gamer* would expect not doing math
      if your aim was to make or build them, then it's incredibly shallow to expect you can do it just by fantasizing great worlds and characters, swords, spells and events. there is a great deal of technicality involved, from understanding geometry and trigonometry, to statistics and linear algebra, and further down to computation issues like data structures, memory management, randomization and encryption, file systems, design patterns, APIs, algorithms, and after all said and done, you still need to be tactful, appreciative of human cognitive and emotional psychology, computer usage practices and user experience in general, general arts and architecture, humanistic design, storytelling, and finally game design.
      so I'd argue that whoever thinks like that is not an aspiring gamedev, but an uninspired lazybag.
      and this is why it seems to be contradictory, when in fact it was a fallacy and severe underestimation from the get go.
      nobody ever said that everybody should make games, and making them was never EASY to begin with. to play them, sure. but if you can't keep all of this inside your head and close to your heart, maybe there are other jobs out there that you might find more suitable.

    • @magdiel6709
      @magdiel6709 Před 3 lety +2

      @@milanstevic8424 Okay I was with you until you said encryption. Why would you ever need that as a game dev? I mean if you're working for a large studio and can't afford to have source leaks, sure, but your company will probably hire security experts for that.

    • @milanstevic8424
      @milanstevic8424 Před 3 lety +5

      @@magdiel6709 it sounds wrong nowadays, but encryption is not exclusively for security.
      it has everything to do with data encoding, even wikipedia says "encryption is the process of encoding information" but modern usage makes it appear exclusively in cryptographic context.
      in fact, you can almost consider this a typo and read it simply as 'encoding'.
      regardless of how you use it, the mathematical concepts behind it are unavoidable. in its most basic format encryption is just a substitution. therefore even JSON is encryption.
      but one may go a step ahead: JPEG is an encryption just as well (with more merits). it's just that these formats don't do much in terms of data obfuscation to any potential decoder. however try to read it as a human and it becomes painfully obvious that your sister's wedding picture is written in a cryptographic manner.
      not knowing how data compression works, not knowing how to save game state, not knowing binary trees, or checksums, or CRCs, regardless of whether you need them or not, is equivalent to not knowing binary values themselves. such underappreciation leads to poor decision and poor performance. and there is a reason I have mentioned encryption right next to randomization and file systems, there is a huge deal of overlap.
      saving game states in an efficient manner, as well as organizing memory accordingly, to minimize heap access frequency and maximize throughput, always assumes encoding and some form of data encryption, and is paramount for game programming.

    • @milanstevic8424
      @milanstevic8424 Před 2 lety

      ​@@w花b first try then preach, it doesn't work the other way around. you can prove me wrong at any time, just try to actually make a game first. pick your engine and do it.

  • @volatus2354
    @volatus2354 Před 2 lety +1

    This channel is one of those hidden, rare treasures we should all protect as a blessed relic of the internet.

  • @g0ld3sun
    @g0ld3sun Před 3 lety

    Extremely useful even for someone not into game development but rather the engines and tools to facilitate it. Thanks so much for this content!

  • @Asylum3D
    @Asylum3D Před 2 lety

    Love it. I am a game developer and this video is spot on. The better understanding of this math will make a large difference trying to understand game development.

  • @kanrup5199
    @kanrup5199 Před 4 lety +1

    Thanks. these concepts were not too difficult to understand.

  • @oscarchampion5842
    @oscarchampion5842 Před 4 lety +1

    If c < 50 then attack! Example, if you don’t take the root and make 50 50^2 you can save on some processing time

  • @Bunny99s
    @Bunny99s Před 4 lety

    I'd like to add that there are two ways to perform linear interpolation. Both essentially do exactly the same but have slightly different numerical properties due to precision limitations of floating point numbers.
    The first way is essentially the "vector" approach as described in the video. So we essentially calculate the vector from the start to the end, scale it by t and add it to the starting point. P(t) = Ps + (Pe - Ps) * t
    One issue with that approach is that even when we pass in a perfect "1.0" as t, the outcoming point does not necessarily equal "Pe". There could be a slight error. This approach generally gives the best result to actually stay on the line but the end result might have a slight error
    The other approach is to calculate the "weighted sum" between the start and end point. This is just a reordering of the same equation, but always yields the correct end result at t==1.0. P(t) = (1-t) * Ps + t * Pe
    Here we simply have two inversely proportional factors (1-t) and (t). At a "t" value of "1.0" the first factor will be 0 so contribution of the start point to the result is zero. This will ensure that P(1) == Pe and (0) == Ps. However this approach at some extreme values for Ps and Pe might not represent a perfect straight line. So the numerical unstability here affects "the way in between" but not the end points while the first approach gives the best line approximation but might have issues at the target.
    The second approach is also how linear alpha blending on the GPU is performed. The two factors that are commonly used are SRC_ALPHA and ONE_MINUS_SRC_ALPHA. This weighted sum approach is also often used in more complex interpolations like Bezier curves. Bezier curves are fundamentally just multiple nested linear interpolations over multiple points.
    en.wikipedia.org/wiki/B%C3%A9zier_curve#Constructing_B%C3%A9zier_curves

  • @stew9671
    @stew9671 Před 3 lety

    Well.... as i never even had vectors in school and sin cos and tan where rarely needed. This is very informative but also alot of information. Gotta watch this multiple times and work practically with the Formulars.

  • @killereks
    @killereks Před 4 lety +5

    Hope you do more complex stuff similar to this, these are the very basics.

    • @FortyS
      @FortyS Před 2 lety

      Its essential math for aspiring game devs, what did you expect

    • @killereks
      @killereks Před 2 lety

      @@FortyS something harder than preschool math

  • @phutureproof
    @phutureproof Před 6 měsíci +1

    This is gold dust my friend

  • @preciseestimatingltd2579
    @preciseestimatingltd2579 Před 4 lety +1

    Another brilliant video, thank you javidx9.

  • @Dread0-0
    @Dread0-0 Před 3 lety +1

    thanks i was having trouble with math in school and i seem to understand better when you're the one explaining

  • @alpheusmadsen8485
    @alpheusmadsen8485 Před 3 lety

    In the last little bit of the video, you get really close to calculus -- close enough that I expected the last of the three items in the circle to be "calculus", and was a little surprised that it was "kinematics/physics" instead.
    Of course, over the years, I have come to realize that physics and calculus are intertwined in ways that are very difficult to untangle -- but while it might seem easier to disintangle them, it should be kept in mind that the reason why calculus (and, for that matter, vectors, matrices, and linear algebra in general) was developed, was to *simplify* the work!
    It may take time to understand these abstractions, but once they are understood, they give you a "superpower" that enables you to do hard things more easily, and make formerly impossible things become possible.

  • @Relemsis
    @Relemsis Před 4 lety

    yours are among the best game dev videos of all time

  • @zamf
    @zamf Před 4 lety

    A more accurate formula for the Position based on the Velocity and the Acceleration is this:
    P[t+1] = P[t] + V[t] * t + ( A[t] * t^2 )/2
    This is because Acceleration does not affect Velocity instantly but over time. This division by 2 accounts for that change-over-time effect on the Velocity.
    Basically, we can visualize the Velocity during the frame by a right-triangle, where the X-axis is the time elapsed (or time delta) and the Y axis shows the Velocity at each point in time. The height of the triangle is the Acceleration. More acceleration - steeper slope of the triangle.
    And the accumulated velocity is simply the Area of this triangle, which happens to be Acceleration * t / 2, plus the initial velocity at the start of the frame, so V + A*t/2. When you multiply is by the time elapsed you get the distance traveled.

  • @tonksonk951
    @tonksonk951 Před 4 lety +3

    Fantastic video, exposed me to some of the flaws I had in my ways of thinking about these topics and it really abstracted the concepts to a simple level that still conveyed a strong message, loved the examples as well. I'm sure it helps that I've learned it all before but still an amazing video! :)

  • @saifsuleiman1171
    @saifsuleiman1171 Před 4 lety +2

    I really appreciate your effort on putting this masterpiece, it really cleared some concepts that I saw them as black boxes.
    Your teaching skills is gold, keep it up, thanks again!

  • @Admiral_Ducky
    @Admiral_Ducky Před 4 lety +1

    More of like this please! I always wanted to upgrade my math level, but I didn't know how. Now I have some clue.

  • @ZeroSleap
    @ZeroSleap Před 4 lety +1

    No questions asked,i'm watching this video my man.1 Hour,4 Hours,DOESNT MATTER!

  • @hmz121fast
    @hmz121fast Před 4 lety +1

    Very nice tutorial, super simple smooth explanation, thanks a lot, deserves a big Like