Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

Essential mathematics for programmers

Discussion in 'General Discussion' started by BIGTIMEMASTER, Nov 9, 2019 at 7:10 PM.

  1. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    Hey guys I trying to do a bit of programming tutorials here and there and usually I get it without much trouble. That is, until some math equations come into play. Then I get lost cause I never learned that stuff.

    What recommendations you guys got for essential math skills? Even better if you can say what kind of game programming problems require which kind of math.

    Thanks!

    Btw, there is some books I am reading about this and much written already, I just want to get more opinions is all.
     
    iamthwee likes this.
  2. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    6,173
    I don't think this is really trivial question.
    Your game math complexity may greatly vary from game to game.
    If you do 2D game, some math may be different than for 3D games. For example finding xy using sin / cos, vs finding xyz using quaternions.
    Saying that most complex math is done for you, with build in methods.

    Things start get complex, when you want to do path finding, AI, relative orientation in space (i.e. projecting on planes etc.).

    I don't try learn basics equation prior need, because I never know, what I may need next. I just try figure out what I need, when working on the problem. Still often may be none trivial.

    Plus to add to pile, every solution has at least multiple other solutions.

    I find this geogebra very useful. But requires a bit of search, to find what you need.
    Also may give some ideas.
    https://forum.unity.com/threads/math-i-think-i-found-interesting-webpage.732515/#post-4885013

    There are tons of website talking about math in programming, but few extra
    https://www.mathsisfun.com/data/grapher-equation.html
    https://www.desmos.com/calculator/yvgfpq2prf

    https://math.stackexchange.com/questions

    Also this one, often recommended on this forum
    https://www.geometrictools.com/
     
  3. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,433
  4. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    3,909
    Personally I'd focus on being very familiar with the math helper classes and their functions in the scripting reference, and having a strong understanding of what they do and how they can be used. When you work through a tutorial that doesn't abstract away the math, you can either focus on understanding what they do in their equations, or focus on trying to understand what they are trying to achieve and see if you can substitute their equations with usage of the available math helper functions. I usually try to stay focused on "what and why" and "abstract away" the math if it's complicated. Extending the math helper functions as needed will be good practice in and of itself. E.g. on a 2D game project I once wrote a function for [RotatePoint: p1 aroundPoint: p2 by: degrees], and once I had googled and copied from stackoverflow found a solution for the implementation, I only ever used the helper function for this task.

    But I'm not a "real programmer", so it might be bad advice and I might be underestimating how far the math education that I had in school goes, compared to other countries, other school types and other self-chosen course specializations, because I took the "advanced level math course", so vectors and matrices are still considered "school level math" for me. YMMV
     
  5. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    4,667
    What kind of math are you running into?
     
    iamthwee likes this.
  6. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    802
    Many American 4-year Computer Science programs require a year of Calculus. That gives the false impression you need math to be a programmer, but it's mostly used as a weed-out (my source: curriculum committee meetings at a state university). Knowing how to read math like f(g(3)) and f(x,y):N->N = 2x+y is helpful for learning to code. That's 8th grade(?) algebra. But trig, calc, linear equations ... aren't useful. Depending, they could be, but so could accounting or genetics.

    For Unity, you should be comfortable with standard vector math. p1+p2 assumes p1 is a point, and p2 is an arrow, and gives you a point as the result. p3-p1 assumes both are points and gives an arrow. I think that's in High School, somewhere.
     
    Kiwasi and iamthwee like this.
  7. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    @Billy4184 , basically anytime a math function is used I immediately become lost. I've been doing basic intro to unity tutorials and some character controllers.

    I understand and agree what Martin is saying. I don't want to memorize all the formulas, but I need to understand what kind of problems need solving and common tools used to solve them.

    In Owen reynilds example, for instance, I do not know how to read his equation or have an idea what it is doing.

    The goal is not that I am trying to be a programmer, I just want to be able to understand things a bit better so I can do more simple prototyping on my own.

    Thanks everybody for resources so far.
     
    Antypodish likes this.
  8. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    6,173
    Regarding basics method, as already mentioned, I suggest use VS intelisense, which show possible options. Same thing you can go to documentation, but I like check option on the fly.

    So for example, you type Vector3. and you see options, of what you can do with vector. Cross, Look toward, project, dot, and more. Then you check description of these magic methods. They may sound gibberish at glance, but is worth to get yourself familiar, what they can do. Just read upon, on internet, where such can be used. Not only docs, which is often pain to follow, as is dry as desert weather.

    Then next time you run into a problem, you will click and realize that you read somewhere about potential solution. So now you are a step closer to solving a problem. You search again, and all comes to you. All then becomes a bit easier, as such terms are no more alien. :)

    Btw. to a little encourage, I was really bad at phys and math at school. Maybe more, I wasn't interested at that time. But I play with it now on fail bases.
     
    iamthwee and BIGTIMEMASTER like this.
  9. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    4,667
    Hey I happened to notice your Dog Go Run game in your sig (looks cool btw). I watched a video and noticed the dog is still horizontal on angled slopes. Is that the sort of math stuff you mean?

    My best suggestion about math is to turn it visual in any way possible at all, and avoid trying to understand concepts beyond their utility unless you need to.

    For example, let's say you want the dog to be aligned with the terrain. Logically, the first step is that you need to know 'where the terrain is pointing'. Thats what a mesh/raycast normal vector can give you. Do you need to know any more about normals, beyond knowing which API to call to get it? probably not.

    Then you visualize how the mesh normal helps you align the dog. What property of the dog can you relate to the mesh normal? The dog's 'up' direction. How can you align the dog? With the Transform.LookAt function.

    But how do you align the dog when Transform LookAt function aligns the 'forward' direction, not the 'up' direction?

    Well, a useful thing to know is that the Vector cross product is not just some mathematical abstraction, it has a utility that's very practical. If you do the cross product of two vectors, you get a vector that is 90 degrees to both of them. So if you have the 'right' vector and the 'up' vector, the cross product can give you the 'forward' vector. With that you can use Transform.LookAt and align the dog in the right direction.

    The key thing is that you can break up the problem into a set of very specific questions just by doing a simple mental analysis. At each of these questions, you can probably google and find a useful answer. And in the end, very little actual math 'ability' is needed to make use of the mathematical functions.
     
  10. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    @Billy4184 perfect example.

    Yeah I can usually visualize what I want to do, it's just a matter of knowing what tools are there that I can do it with (or knowing about tools I have no clue exist for smarter solution)
     
    iamthwee likes this.
  11. iamthwee

    iamthwee

    Joined:
    Nov 27, 2015
    Posts:
    1,887
    I would echo everyone else and say a rudimentary understanding of calculus is important, trigonometric functions, operation functions in the real and complex domain is useful, basic knowledge of artificial intelligence, neural nets perhaps tensorflow which is <3 and ultimately starting to get to grips with Dots, this is for asynchronous programming and using multi cores properly. Good luck!
     
    BIGTIMEMASTER likes this.
  12. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,811
    Only to fall to your knees at the altar of Quaternions!
     
  13. iamthwee

    iamthwee

    Joined:
    Nov 27, 2015
    Posts:
    1,887
    P.S congrats to the hippo for not passing off the advice in this thread as too complex and just hubris, and concluding 'just make a game, even if you have to use visual scripting'. You are growing wise my padawan :D
     
  14. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    Wut maths are best for mmo tho?

    Multiplayer, 100vs100, and procedural everything ples.
     
  15. iamthwee

    iamthwee

    Joined:
    Nov 27, 2015
    Posts:
    1,887
    I don't often make MMO games as a one man indie but when I do it's AAA
     
  16. Peter77

    Peter77

    Joined:
    Jun 12, 2013
    Posts:
    4,195
    Last edited: Nov 10, 2019 at 7:51 AM
  17. iamthwee

    iamthwee

    Joined:
    Nov 27, 2015
    Posts:
    1,887
    Also


     
    Last edited: Nov 10, 2019 at 7:54 AM
    BIGTIMEMASTER likes this.
  18. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    694
    Quaternions, matrix math, trigonometry, and enough calculus to understand the relationship between position, velocity, and acceleration. Also binary logic.
     
    BIGTIMEMASTER likes this.
  19. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    4,572
    Generally I found out that the math is only as complex as the notation, once translated in layman's it's generally dead simple.

    Also a lot of formula aren't actually equation, they are description, ie you can't use them unless you reconstruct the term on your own For example stuff like F(x)D(x)G(x) is not useful unless you look for what they are intended to represent (here it's the fresnel term, the distribution term and the geometric term)

    For example the scariest equation you find on internet are integral and big sigma, which in practice you gonna do a for loop, with the difference is that integral is summing sample*delta, while big sigma is just summing the samples.

    For example neural network look scary until you realize that's the same math than a supermarket ticket, which is trivial, a single receipts being equivalent to a perceptron when you look at the result and decide if it's over budget or not :D

    The other scary thing is all the symbol dialects, that is each math has is niche notation that get close but sometimes diverge, for example in shader omega tend to mean hemisphere or sphere, theta and phi are angle (horizontal and vertical respectively). But one doofus will use the omega to denote weight, and you can only understand if you are familiar with the subject already.

    Also pi and radian use to be that stuff that makes you feel mathy, until you realize that in practical term pi is just half a cycle, so 2pi is a circle, substituting 2pi by circle make anything WAY more clear, you don't even convert to degree anymore because radiant are just fraction of circles, half a circle is easier than 180° or pi.

    I have read some damning thing, for example the mcGuire SSGI paper is full of unnecessary implicit jargony notation dialect, if I hadn't read hundreds of other paper on GI would had scare me away.

    It's a lot of unnecessary obfuscation.
     
  20. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,167
    I have a master of science degree (well I don't have the degree since I'm a drop out, but close enough). I read a course in linear algebra which is the basics of vector and matrices math. It's really good to get the basics to understand the higher functions in 3d gfx
     
  21. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,811
    You really don't predict/know me well. Advice for math or increasing knowledge is essential. That's not the same as dithering around like a twit that needs a push.
     
    Martin_H likes this.
  22. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,167
    When you start to use euler angles or separate components of vectors you are almost always doing it wrong (there are exceptions)
     
    hippocoder likes this.
  23. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    6,173
    When you make first foot step in your life, "you are almost doing it wrong ..."
     
  24. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,167
    I ment if you start to mess with individual vector components or eulers step back and look at the problem, there are probably better solutions using vector mathematics
     
  25. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    802
    I've met a surprising number of people who could probably become decent coders, but were made math-phobic. Some High Schools here, when a student has the least trouble, quickly switch them into an "alternate" computer-aided math program. You don't learn any actual math, but you pass and the school looks good. These are often smart people who could have done fine with just a little help.

    Code like Math.Sqrt(Vector3.distance(p1, p2)) is just a little easier to understand if you've seen f(g(x)) in algebra. Likewise, suppose you've seen in algebra how f:RxNxN means f takes 1 real number and 2 whole numbers. That makes C#'s Action<float,int,int> f; a little easier to understand (which says the same thing). You don't need to know the algebra to understand the code -- algebra is just the most obvious way to to relate coding to what "everyone" knows.

    The only real place I've noticed math phobia as a problem is in things involving slopes. Suppose you have a 100% chance to see something at 20 feet, down to 0% at 250 feet. That sort of thing is pretty common. Maybe we don't care about the exact numbers, but we still need math to be close. The equation would be: seeChance=1-[(distance-20)*(1/230)]. Probably a smart 10th-grader would solve that faster than me. A "normal" 35-year-old would remember once knowing how to solve those and take 1/2-hour re-learning it. But if school cheated you and you never had that math, yikes! But even then, leave at at 50%, make a note, and someone else on the team can solve it later. Or maybe a Unity Curve can do it.
     
    Martin_H, Ryiah and BIGTIMEMASTER like this.
  26. iamthwee

    iamthwee

    Joined:
    Nov 27, 2015
    Posts:
    1,887
    What do you make of the Reinmann Hypothesis and the Reinmann zeta function?
     
  27. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    @Owen-Reynolds yeah you are getting at my issue precisely. Lack of familiarity with basic math like high school algebra makes it so lots of logic in coding just doesn't click with me.

    I stuck in empty house with nothing but phone and notepad though so I gonna go through these links everybody shared and I expect that will make it a lot easier for me to be able to work out basic prototype scripts
     
    Last edited: Nov 10, 2019 at 7:55 PM
  28. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    2,429
    There are a ton of senior people out there that have very little formal math training. CS degrees weren't really even a thing when I started out. Not in the sense that they were geared for software developers.

    Academic theory just isn't really necessary for the bulk of problems you have to solve. In the context of real world problems you have compelling reasons and also constraints on time/money. That tends to focus you really well and you quickly learn to discern what is valuable to learn and what isn't. How do you learn isn't really even a question in that context. Because the being focused part answers most of that for you.

    Lack of formal training has nothing to do with anything. Software development is an ongoing learning process. What people learn in the best CS programs is just a fraction of what they learn over the course of a career. Not that you can't use it as an excuse.

    It is common for inexperienced developers to be afraid of tackling hard problems. You get use to it. It's a pattern of you dive in, your head swims and hurts, but it starts to come together and you come out the other side faster then you think. Your brain starts to figure out that it will actually get to the other side, so as long as you give it compelling enough reasons to do so, you will find that you can push through most any hard problem.

    But the compelling reason thing hits hobbyists especially hard. Because almost inherently those aren't nearly as strong as someone doing it for a living under very real time/money constraints.
     
    BIGTIMEMASTER and Martin_H like this.
  29. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    Agreed @snacktime .

    I am seeing a problem that needs solved in: I have a demo to build which requires some scripting, but even basic instruction in scripting is hard for me to follow because of lacking math background.

    So it seems the most expedient thing I could do is fill in that void.

    There will be a time to hire a relevant expert to do the real work, but that comes later.

    So, given context you don't think spending week or a few to familiarize with prereq stuff I missed is good idea?

    (Also, forging yourself in the fire is great, but I'm afraid talk like that will summon a certain someone who just can't help themselves. For myself, I make a point to set things up so I am not pressured by time, and I can work like a hobbyist. I don't have issues of motivation or laziness, so thats not an important concern. When it is time to hire people, then I have to watch time more carefully and focus on efficiency.)
     
    Last edited: Nov 10, 2019 at 10:07 PM
  30. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    4,572
    Also Khan academy is a great resource to catch up with math. I recommend to start with course below your current level to warm up and get in the rhythm, and let the progressives of the lesson carry you.
     
  31. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    I found Khan through another of the links above. I am working through prealgebra now, lol.
     
  32. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    2,429
    It's not an effective approach, and it's not one any of us in the real world use. Learning by implementing is just more effective. My approach is generally take the hardest part and work through a basic implementation using test driven development. The unit testing let's me break out the problem and actually see how the different parts work.
     
    Martin_H likes this.
  33. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    @snacktime ,

    What does implementation look like then for someone like me?

    Take the example of my dog character controller Billy referenced. I need to make it conform to terrain slope, among many other things.

    Right now I have used a script from a video tut. I don't understand how all of it works. Billy's example of how to add slope adjustment is not something I can invent myself. I mean I can but it takes a very long time because of the lack of math background.

    So you think most expedient thing is to create my solution just as I have been? Relying on experts and just crafting one little piece at a time? It seems like I can only take that approach so far.
     
  34. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    Like I know what you are saying but I don't think it is the same as a professional figuring out a new problem in their field through trial and error. For instance if all of a sudden your programmer has to make art, and he is failing at it bad and cannot even take instruction because he has zero familiarity with art theory, then the thing to do is teach him some art theory, no?

    In any case, I am out of state, away from my computer, so I can't do any trial error work right now anyway :(
     
  35. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    802
    I want to repeat: very little math is needed for scripting. But if v1*Time.deltaTime seems wrong, or you're seeing a+v1*b vs. (a+v1)*b and getting confused, learn it for real. Get a used 8th grade math book. Or maybe Search "adult learn algebra". My only advice there is avoiding Khan Academy. Also put it on the list of everything else you want to learn.
     
    BIGTIMEMASTER likes this.
  36. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    Why avoid khan?
     
    angrypenguin likes this.
  37. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    6,173
    I am just thinking, since your background is more graphics, hence my question:
    Are you sure math is your real issue here?
    Or is rather lack general expertise in programming?

    In programming most of stuff is logic. Math I would say comes second in most cases.
    Rotations and orientations is probably most of math demanding.
    For most is just indeed vector A - vector B.
    But if you know how to use lookAt and move forward, all math become irrelevant to need to know.
    Inventory, opening doors, picking stuff is just logic. In most cases uses just colliders, to detect things.
    Unless you start going lower lever, and play with spatial mapping and arrays.

    If you consider path finding, I doubt any school (non degree) really will teach you anything useful for solving that problem.
    You really need sit and dig stuff on your own, or by any 3rd party means.

    Similar for procedural generation.

    More math comes, when you start doing some simulation and physics based games. But these are none you are doing atm., so I wouldn't be concerning now.
     
    Martin_H and BIGTIMEMASTER like this.
  38. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    Yeah maybe I just need to try harder and not worry if I am fully understanding. All I really need to do is piece a temporary solution together. It just drives me crazy to not understand what I am doing.
     
  39. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    6,173
    You need split your problem with dog on slops to smaller steps.
    For example,
    - Cast ray down to the floor.
    - Get normal of the face, that is casted at.
    - You may need here Vector cross product, to get forward direction of the dog, in respect to slop face. Mind I never heard about cross product, or at least I do not recall, until I touched Unity and start playing with it. So I learned it myself.
    - Apply rotation, from Quaternion, by using look toward vector, or similar.
    Quaternions also were alien to me, before Unity.

    There are other methods as well. Just one of.

    What I do normally, if I don't get it, I do small steps, and use any form of debugging.
    Including Debug.Draw or relevant.
    Helps a ton.
     
  40. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    That sounds simple but I don't know what most of those words mean. That's the problem.

    It's not just a matter of definition really though. I know the definitions. But being able to visualize what is actually being proposed is the thing. There must be umderstanding.
     
  41. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    6,173
    Never I did before I start using them.
    So you need look for each keywords. Look on examples. Search engine will show you tons of graphs.
    Start with step one. Use Debug, to draw normal.
    Or start with cross product. Make few mini prototypes, with few Game Objects, just to draw vectors between, and see how cross product work.

    Similarly for rotations etc.

    For any, you don't need to know math. You need understand a concept.
    How to get from point A to Z. You need n steps. You need learn these. Hardly shortcut unfortunately.

    Is like 3D modeling.
    To make animal walk, you need model mesh animal first.
    Then texture.
    Then apply rig.
    Then import to game.

    Many steps. Same process.
     
    BIGTIMEMASTER likes this.
  42. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    4,572
    Is it practical to game?
    I can understand it make sense for cryptography. But my point is that in game, most scary stuff aren't so in practice. Crypto stuff are necessarily obfuscated because that's the entire point.
     
  43. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    Gotcha. I think this is method snacktime is talking about.

    I should just try harder at that then and not use bad math as.excuse. I can't until.i get back home, but maybe in meantime I can carefully watch more scripting tutorials. I know it's not same as writing myself but all I got access to right now.
     
  44. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697

    I think there is some important difference in way of thinking between programming and art. With art my question is always, "what am I suggesting to player?" Beyond that, the technical considerations is usually just matter of organization.
     
  45. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    6,173
    Or ...@BIGTIMEMASTER
    Use box collider as base for character.
    Apply player inputs, and make dog animation in respect to the box (as child object).
    Now use physics.
    You push box with rigid body via add force or relevant, box with collider and rigid body will follow the terrain shape.

    Then you remove all worry about rotations and casting to ground. :)
     
    BIGTIMEMASTER likes this.
  46. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    That's interesting idea. Since this is only prototype and I have time, I should try both approaches. That may help inform decisions to be made.later.
     
  47. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    6,173
    Not really.
    Because with graphics, you need to know how to make texture. That whole set of skills and knowledge on its own.

    Then you need to know how to mesh properly. How to not make double vertices. How to make right number of polygons and vertices for target game. I am sure you have seen tons of bad unoptimized 3D models.

    Then you need make UV mapping to mesh.
    Then riging and adding CORRECT weights to bones.

    This is whole set of skills required, to just make nice moving models.

    I can model 3D, for what I need is enough.
    But making nice animated characters 3D would be massive hurdle for me. I know I would need sit and practice a lot.
    Learn tricks, methods and approaches. And multiple software.
     
  48. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    Still, it's not like raw logic. Just knowing the systems limitations and making educated guesses where to allocate resources.

    Animation is just a matter of studying your.reference. understand forms and have a sense for motion and physics. Just a matter of paying attention to detail is all really.

    You watch a dog run for five minutes and animate it, you.get awful animation. You spend weeks studying it, learning about bones and muscles, and you.go to dog park and just sit and watch for many hours, then you are ready to make a better animation.

    I don't think you.can become better programmer simply by observing real life phenomena
     
  49. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,697
    Anyway that is off topic.

    I got some weeks full of time to kill so I do a bit of math 101 stuff - it can't hurt.

    When I get back home I buck up and just work through my scripts on issue at a time, beginning with implementing the slope adjustment solution for my dog controller. I'll try both basic solution and physics cause I got time and would like to lesrn.
     
  50. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    12,138
    Good question. I've seen them recommended a lot, including by professional teachers.

    My main suggestions would be:
    - Make sure you know basic algebra relatively well.
    - Learn vector math - what they can represent, how they interact with one another, and the uses of dot and cross products.

    There's loads of other useful stuff, but I think they're the key ones to get you going in game dev when you're using something like Unity.
     
    Martin_H and BIGTIMEMASTER like this.