Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

Do these math courses are good for game developer?

Discussion in 'General Discussion' started by sung8602, Sep 22, 2015.

  1. sung8602

    sung8602

    Joined:
    Sep 22, 2015
    Posts:
    7
    Hi!

    I am 3rd year computer science major in Canadian university.
    I want to be game developer and I want to know if these math courses are useful for game developer.

    These courses are the courses that I am planning to take in this year:
    1. Algebra I (Introduction to the basic concepts of abstract algebra, with applications: groups (cyclic, symmetric, Lagrange's theorem, quotients, homomorphism theorems))
    2. Algebra II (Continuation of Algebra I with the introduction of rings (congruences, quotients, polynomials, integral domains, PIDs and UFDs) and fields (field extensions, constructions with ruler and compass, coding theory))
    3. Vector Integral Calculus (Integrability of continuous functions over suitable domains, iterated integrals and Fubini's theorem, counterexamples, change of variables, Jacobian determinants, polar and spherical coordinates, volumes, vector fields, divergence, curl, line and surface integrals, Green's and Stokes's theorems, differential forms, general Stokes's theorem.)
    4. Partial Differential Equations (Partial differential equations of mathematical physics and their solutions in various coordinates, separation of variables in Cartesian coordinates, application of boundary conditions; Fourier series and eigenfunction expansions; generalized curvilinear coordinates; separation of variables in spherical and polar coordinates.)

    Also, I know game developer needs to know C# programming language.
    If I work in game company firm and want to change to back-end developer (Java/ C programmer position), is it possible?
     
  2. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,148
    Most of those terms conjure up memories of boring sessions spent forcing math concepts into my head. I feel like you should know math up to the geometry and trigonometry tiers, but anything beyond that is likely optional.
     
  3. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    The algebra will be quite useful for game dev. You entire graphics card runs on linear algebra and matrix transformations. As does the physics engine. Most of the algebra stuff you do will be at lower levels then unity uses, but it's still worth understanding. Especially if you want to do procedural stuff.

    Calc is less useful in most game dev situations. Calc is based around continuos models, and most models in games are discrete. There are some notable exceptions (like KSP). Knowing calc and it's principles is useful, but not directly applicable to game dev.
     
    Dreamaster likes this.
  4. landon912

    landon912

    Joined:
    Nov 8, 2011
    Posts:
    1,579
    Any math is very useful. It'll open new doors for you, not only for jobs, but for the problem solving. Custom beizer curves? No problem. Pi Menu? Sleep while programming this one. Procedural world? Nope.

    Math is very important. Get all you can while you have the chance.
     
  5. N1warhead

    N1warhead

    Joined:
    Mar 12, 2014
    Posts:
    3,884
    If you ask me that math is useless in the terms of Unity at least.
    I mean nothing wrong with knowing it, because it can teach your brain to work out technical problems.

    But the last time I checked, Unity and C# don't have the same type of equations you see of a chalk board.
    I mean yes they are the same, but done differently.

    last time I checked I don't see Unity doing this
    maxresdefault.jpg

    Instead it would be simple variables that result in some number and the computer does the rest for you.
    (That isn't Algebra though) that's Hydraulic Calculations.
    Yes, Algebra is used, but like I said. Computer Math at least in Unity is different than you do on Paper.
    I never made it past 10th grade, had F's in all my math classes, but on the Computer I can make things happen with Math that people on paper wished they could dream of.

    So in my opinion, for Unity it is useless to learn, but at the same time, there's nothing wrong with learning it, it teaches you technical problem solving by using parts of the brain that Unity doesn't. Thus making you smarter lol.
     
  6. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    You shouldn't see anyone doing that. Anywhere.

    However if you happened to want to implement a hydraulic system in Unity, being able to read and understand the math would be incredibly useful.

    And since computers work primarily with numbers, there is a lot of doors that math opens for you.
     
  7. N1warhead

    N1warhead

    Joined:
    Mar 12, 2014
    Posts:
    3,884
    Yeap that's what I was trying to say. We still use that math, but the way we do it is done differently than in the real world.
    But knowing how to do the math at least helps you understand what all is involved. (Heck I learned a whole course on it for the Fire Department in 3 days and aced it) and I hate math, but when i can use real world examples to understand the Math, then I do good. That's why I love to program, i can actually see the Math doing something, not just laying out a number lol.
     
    Kiwasi likes this.
  8. 00christian00

    00christian00

    Joined:
    Jul 22, 2012
    Posts:
    1,033
    God, I wish I knew or at least remember something about the Math I studied.
    I fly through complex code like nothing, but whenever there is some little math involved my head explode....
     
    Ryiah and N1warhead like this.
  9. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,555
    Learn algebra, possibly geometry. I've never personally used any geometry in 4 years of game dev and 15 years of software development. I've probably used algebra 2 or 3 times since high school. Basically once ever 5 years or so.

    Pre-calculus and anything further is a complete waste time. I took those and it's all forgotten due to lack of use.
     
    Last edited: Sep 22, 2015
  10. Nubz

    Nubz

    Joined:
    Sep 22, 2012
    Posts:
    553
    The title makes me think you should seek a job in the fast food field instead.
     
    landon912 likes this.
  11. CastleIsGreat

    CastleIsGreat

    Joined:
    Nov 10, 2014
    Posts:
    176
    As someone who isn't from the game industry originally (I have a degree in Mechanical Engineering but do this as a hobby), I'd say all of those maths would help you in some way or another down the line. Math is particularly important in procedural generation and it also helps build your logic and reasoning skills. Now that being said, I don't think going all the way to differential equations is something you'd need to do, unless you are interested in realistic simulations of things like fluids which most times are imitated rather than simulated. BUT if you plan on using your game design degree to aid in Engineering computer applications at some point than I'd suggest getting all the math you can (atleast up to DiffEQ (meaning Algebra Trig Calc 1-3 (or 4 if your college has calc broken into 4 calc's))).
     
  12. landon912

    landon912

    Joined:
    Nov 8, 2011
    Posts:
    1,579
    Sorry to seem harsh. But anyone saying that math isn't important in programming, let alone anything, probably doesn't speak from experience. Math is useful in every aspect of life, in every possible way. If you say that you don't like math, then you are saying that you don't like logic. And logic, unfortunately for you, makes the world go around.
     
    Acissathar, HemiMG and Kiwasi like this.
  13. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,555
    Well you can also learn logic by "learning actual logic", and you can learn programming by learning actual programming. You don't have to be a math guru to be an exceptional programmer, that's the point I was making. That fallacy is what I was originally told in high school, and was the impetus for me taking probably *too much* math that was wastefully forgotten during my IT career.

    I will say that for most - not all - programmers, 99% of the time you're not using anything past 4th or possibly 6th grade math.

    i.e. no reason to take higher math "in order to be a better programmer". Unless you are going to make procedural stuff or code your own 3D engine or something like that.

    By the way, I always liked, no - loved math. But after forgetting 4 years of it, I think I would have been better served learning other things that were more useful later in life.
     
    Ryiah likes this.
  14. N1warhead

    N1warhead

    Joined:
    Mar 12, 2014
    Posts:
    3,884
    @landon91235 - If you're talking about me, you missed my point. Just as @jerotas pointed out, you won't really use past 4th or 6th grade math for almost anything (like I said before - in Unity at least).

    Most people won't be making procedural systems, and so on. They get what's already made and use it or buy it.
    There's nothing wrong with learning math, but it's not needed except basic math to do practically anything in a video game, such as AI, time, ammo, health, lives, and so on.

    if somebody can't figure out
    Code (CSharp):
    1. if(damage){
    2. health - 5;
    3. die = true;
    4. }
    5.  
    6. if(die){
    7. lives -1;
    8. }
    9.  
    10. if(lives <= 0){
    11. Application.LoadLevel("LevelName");
    12. }else{
    13. transform.position = lastCheckPoint.transform.position;
    14. transform.rotation = lastCheckPoint.transform.rotation;
    15. }

    they don't need to be programming in the first place.
    It don't seem to me typing in stuff like a chalk board would work very feasibly.
    Code (CSharp):
    1. a * b + 0.1 (5 x 6) * (10 + 1) - 9 = whatever.
    So yes math is good to know, but it's an entirely different process on the computer.
    So yes it's good to learn it, but don't expect to use it for most things(in Unity), and don't ever expect to see
    programming the same as you see on a chalk board, because it will never happen.
    if it was to happen, they would have already done it to be more feasible to coding.
    Which it apparently isn't.
     
  15. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Commonly asked questions that having some maths behind you makes easier to solve.
    • How do I calculate the path of a projectile in advance of firing it?
    • How do I make a projectile hit a specific moving target?
    • How do I find the closes point on a mesh?
    • How do I do pretty much anything with vectors?
    A strong understanding of maths also makes understanding and implementing various algorithms much easier.
     
    landon912, HemiMG and Ryiah like this.
  16. Mwsc

    Mwsc

    Joined:
    Aug 26, 2012
    Posts:
    189
    Everyone has missed something in their responses about Algebra.
    He is talking about abstract algebra. These are upper division classes for math majors, with applications mostly for studying symmetry in quantum mechanics. It has nothing to do with linear algebra or performing calculations.

    Linear algebra and algebraic equations for simulating physics is necessary. Knowing about homomorphism theorems for Galois fields? Less so.
     
    Ryiah, Kiwasi and jerotas like this.
  17. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,148
    Shows how much game developers actually need abstract algebra. :p
     
    Kiwasi likes this.
  18. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Good catch. I just saw the I and II and assumed these were entry level papers.

    In general for game development I would suggest doing a full math programme at the 100 level (our first year of Uni, papers would include intro to calc and intro to linear algebra). I would also suggest linear algebra as the 200 level (second year uni). Anything above this level is only required if you want to be a math major. There definitely are some mathematics majors working deep in the internals of game engines, or developing experimental algorithms. But the average game developer would never need math at this level.
     
  19. Deleted User

    Deleted User

    Guest

    From a training perspective, go through the OpenGL examples. They cover Matrix calculations, Vectors, Quaterinion calulations, homogenous co-ords, Length / Cross Dot Product, Normalisation, Matrix-Matrix Mult / Matrix Vector Mult.

    That will pretty much cover you for most of it.

    @landon91235

    I'm really not sure how you could do anything in games without some sort of math knowledge, like a rotation would be an interesting concept without math and like moving forward and back without vectors. Hmm! Shaders wouldn't exist as there's tons of that "math" stuff in there..

    But there is a dividing line in which a lot of it becomes un-important unless you're doing specific applications. Just learn it as you get to it :D, It's been a while since I've really delved deep into whitepapers and math behind new concepts.. Plus when I twiddle around with my engine, I have a math library.. It does most of it for me :D...
     
    Last edited by a moderator: Sep 23, 2015
    Kiwasi likes this.