I love Java, both on screen and in my cup, but I'm really not all the great in Algebra. In fact I feel rather stupid when asked questions about it, for most I can't answer myself. I've realized that my ignorance with Algebra is not good, so I've really tried my hardest to learn it better but I still get tripped up on some things.

What worries me about this is my future career possibility as a programmer. Am I inevitably screwed before I can even release my first project? I really love programming, especially in Java, I can't see myself doing anything else when I am older and I really don't want to do anything else but programming and making games.

So I guess my real question is am I set to fail before I have even really began?

"No man may know wisdom till many a winter Has been his portion." - The Wanderer

You can always learn. If you enjoy programming the way you say you do, then a lack of algebra skills seems to have not posed too much of a problem yet, and you will be motivated to press on.If you eventually move on to complicated, math-intensive stuff like 3D graphics, then you might start to feel it.

Fortunately, you are not by any stretch the first person that has a hard time with math and is a programmer. There are innumerable tutorials, libraries, and tools to help with all skills involved in our craft.

If you want game-specific information, check out the sidebar at /r/gamedev

Also, StackOverflow is your friend. (but Google will always be your best friend)

I think that math isn't that vital in game programming unless you want to go low level, maybe make your own physics libraries, etc. The concept of problem solving is the same, but programming isn't quite as abstract as math. In the end, though, it's pretty important that you learn math so you can get into a good college and get some good cs lectures

Programming is applied mathematics. So if you can reasonably program then you have must have some minimal math skills in a number of different fields even if you don't realize it. As for game programming...it really depends. If you look at some well known game engines there's some very serious mathematics going on and an understanding of algebra is the first important stepping stone to these higher level mathematics. Basic algebra, vector analysis, linear algebra, numeric analysis and calculus skills are very commonly needed. Even hardly heard of forms of mathematics are used: example Clifford algebra is used by http://www.geomerics.com/ for Enlighten. So it all depends on what you want to do and how far a target your setting for yourself in the future.

you dont really need maththe bits you do you will then learn because you want to understand and do it and there you go

math is something you use but you dont have to necessarily understandlike calculating the root of a given number. you call a methodat some point you may have known how to calculate it on paper, but who cares.

I am terribad at maff and I feel as if I get along just fine, like I am seriously bad. I spent 20 minutes yesterday wondering why my code that displays a percentage of my health would not work. Derp derp.

"This code works flawlessly first time and exactly how I wanted it"Said no programmer ever

Being good at algebra definitely correlates with being good at programming. However, this does absolutely not mean that you cannot be a good programmer if you are not so good at algebra. There's many aspects to programming in practice, from recognizing structure, via die hard mathematics, to softer social skills, that all help. So don't let algebra stop you

Even though you don't technically need Algebra in order to program, It'd be a lot easier if you did.

In programming, you have to be able to use your logic to tell objects how to move in a 2D environment. Algebra is basically what we use to move objects in a 2D space. The only place that you can get away with using basic math would probably be a text game.

It won't completely kill your programming career if you don't know Math. However, anyone who is serious about learning how to program games needs to pay attention to the concepts learned in the higher levels of Math. The time taken to learn Algebra (and higher level Math) will definitely not be wasted, and your skills will improve dramatically because of it.

You don't need that much math for programming (even for physics and opengl). That's just based on some vector-math. So as long as you are able to handle matrices (Just watch a youtube-tutorial it's not difficult, there are just some rules you have to know). Of course you should be able to calculate angles and do geometry. Even if I could solve a mathematical problem on my own I google the result because there is always someone who implemented it efficiently Math is fine and the best math is already done by someone else

It's a big and quickly changing world. There are many possibilities, most of which are not apparent yet. Self-limiting statements like these always throw warning flags for me. Maybe that wasn't your intention.

Trig is definitely helpful for figuring out how to place, draw or move things even for simple games. And algebra is helpful for trig. But algebra is also a pretty wide-ranging subject.

I think if you plan to rely on using 'game engines' for coding, you can probably avoid a lot of math. But you will be limited by the bounds of the engines.

If you want to code without engines, or create an engine or component of an engine, you are going to have to know enough math to at least pick and implement the right "recipes" on an as-needed basis.

If you are in school at the moment and having troubles, it could be a result of difficulty working with a particular teacher or text. A teacher with another style might present the material in a way that works better for you.

Also, math is not something you can learn by only giving it surface or split attention. It is more like a muscle that grows in capability with use. It requires some patience, a willingness to take some time with each step. I think this is probably the case because one is creating new neuronal connections (similar to creating or strengthening muscle mass?). These connections make it easier to "visualize" steps. But those connections and resulting mental skills won't grow unless you actually use them.

"We all secretly believe we are right about everything and, by extension, we are all wrong." W. Storr, The Unpersuadables

Even though you don't technically need Algebra in order to program, It'd be a lot easier if you did.

In programming, you have to be able to use your logic to tell objects how to move in a 2D environment. Algebra is basically what we use to move objects in a 2D space. The only place that you can get away with using basic math would probably be a text game.

It won't completely kill your programming career if you don't know Math. However, anyone who is serious about learning how to program games needs to pay attention to the concepts learned in the higher levels of Math. The time taken to learn Algebra (and higher level Math) will definitely not be wasted, and your skills will improve dramatically because of it.

This is the best answer to the original question, followed by the previous response by philfrei who mentioned the incredible values that come along with knowing Trig. (These really cannot be overstated.)

Algebra is pretty basic stuff and falls into a category one might call "fundamental knowledge" for people who are effective programmers. You should at least learn enough about it to be able to tell on your own whether or not it is required for your programming exploits. In other words, you should be able to see on your own what programming is and what Algebra is, then you can determine how much one relates and depends on the other. Think of Algebra as a level of mathematical "literacy" that is equivalent to writing a coherent and grammatically correct one page essay. (Or being able to read and understand the meaning of this post, perhaps?)

Also, it's a little alarming to me some of the responses people are giving. The underlying questions is a valid one, however: How important is it to know and understand Math to be an effective games programmer?

My answer is Pre-Calculus (College Algebra plus Trig) as a bare minimum. The Algebra at this level is advanced enough that it scares a lot of people away, but at the same time the new material is entirely complementary to the raw algebraic concepts that have been covered in previous classes. If you can't figure out how to simplify complex exponential expressions then how in the world would you also be able to write a nested loop three layers deep that also performs some sort of worthwhile task? First semester College Physics will give you enough applications of the material covered in Pre-Calculus for you to really understand what the f**k it was you were doing with those seemingly arbitrary sine/cosine/tangent functions and why they are even relevant (and they are most certainly relevant).

Just want to say, I used to be terrible at math. I hated going to school everyday because I sucked so bad at math. But then I got into programming, and I found a use for all the math I had learned, and that made me want to learn more. Now I bought a book (or two) on the math behind game programming, I've been paying more attention in math class and trying very hard to understand, and I've been using it in the real world. Now, don't get me wrong. I still don't know much that pertains to game development (I'm taking Algebra II/Trig in school right now) because I'm still young, but I hope to fix that. I also took physics as a 10th grader, although I forgot most of it already

Question though. Someone mentioned above that pre-calc is recommended. Can anyone confirm that? I admit I really don't want to take it if I don't have to, but I can. I'm a little scared of it though...

The bottom line is the less you know about game programming related topics the more you're limiting what you can do for yourself. You'll be (potentially) forced to rely on finding libraries that do exactly what you want and for them relatively free from bugs. That might well be acceptable for what you want to do. On the whole you'll be much better off if you understand the minimal concepts behind these topics than having no-knowledge at all.

Mathematics (esp low level) is generally taught in a boring way. And the only way to have usable working knowledge is to get off your ass and work problems (like anything else in life). It gets more interesting the further up the food chain you go.

Go look at any GDC tech paper, or realtime related papers (say in graphics) and you'll find a ton of higher level mathematics.

Question though. Someone mentioned above that pre-calc is recommended. Can anyone confirm that? I admit I really don't want to take it if I don't have to, but I can. I'm a little scared of it though...

I've taken pre-calc and it wasn't really too bad. The most notable things you learn in that class are analytical trig (basically using trig identities to do proofs and solve triangles in new ways ex. laws of sines and cosines), applications of trig (parametric equations, polar coordinates, complex number simplification), and statistics/series/sequences.

I have not had to use any of this knowledge for programming so far. The only part I might need is polar coordinate system. Edit: also probably counting in series/sequences.

Just want to say, I used to be terrible at math. I hated going to school everyday because I sucked so bad at math. But then I got into programming, and I found a use for all the math I had learned, and that made me want to learn more. Now I bought a book (or two) on the math behind game programming, I've been paying more attention in math class and trying very hard to understand, and I've been using it in the real world. Now, don't get me wrong. I still don't know much that pertains to game development (I'm taking Algebra II/Trig in school right now) because I'm still young, but I hope to fix that. I also took physics as a 10th grader, although I forgot most of it already

Question though. Someone mentioned above that pre-calc is recommended. Can anyone confirm that? I admit I really don't want to take it if I don't have to, but I can. I'm a little scared of it though...

If you want to fully know physics I think you have to learn all the way up to calculus anyways. I'm currently in precalc h as a tenth grader (top public school) and it really isn't that hard. Like everything else, your success relies on your foundation (how well you learned algebra/trig).

I might take it then, next year is my senior year and I would rather learn precalc from a trained teacher than say a book. I guess I'm wary of it because everyone I know always complains about it and says its hard and all that... But who knows! I'll take the plunge and do it.

Since no one else has brought it up, I feel it is worthwhile to point out that Trigonometry is the bare minimum for 2D games development. It's not that a person can't program a game without understanding how to use the sine/cosine/tangent functions, but your solutions to certain development obstacles--such as a flying ship--are going to be hundreds upon hundreds of lines of code when the same logic could be more effectively implemented in dozens of lines or less using trig functions.

If you ever want to develop 3D games then Trigonometry by itself is not going to cut it. The material that is covered in third semester Calculus is all about describing three dimensional spaces. You also learn how to exploit vector multiplication with the dot and cross products to do stuff that is really impossible otherwise. These mathematical methods are absolutely fundamental in manipulating objects in 3D space.

As an analog to what I mentioned in the my last post regarding the trig functions, it is impossible to overstate how important vector multiplication is to 3D games development. Not knowing how they work is like not knowing how to add 1 + 1.

Also, if you want to understand anything at all about computer graphics (both 2D and 3D) then you should at least have some foundational comprehension of Linear Algebra.

Funny you mention that book, I just bought the previous version of it and I love it. Haven't gotten very far into it yet (sheer laziness), but the author presents the material in a rather (for lack of better terms) amazing way that really makes me want to learn. He puts problems into context and makes hard ass math pretty fun, I would definitely recommend buying it even if it is just a start to learning all the 3D math you'll need.

Edit:Duh it'll only teach you the basics, its a primer... I'm stupid some times.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org