Java and Algebra.

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? ???

[quote]am I set to fail before I have even really began?
[/quote]
With an attitude like that? Well…

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)

Remember, keep it fun, and go code! :wink:

Algebra isn’t as important as basic logic and being able to think logically. But if you are serious about getting better just practice! I’m a professional mathematician, so you can trust me ;D

Algebra isn’t hard. Applying it to solve problems is.

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 ;D

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 math
the 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 understand
like calculating the root of a given number. you call a method
at some point you may have known how to calculate it on paper, but who cares.

math has to be your slave =D

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.

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 ;D

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 :slight_smile:
Math is fine and the best math is already done by someone else ;D

We all do!

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.

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 fuck 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).

You don’t need school to learn Math, by the way. There are plenty of good books out there you can use to teach yourself. (Check for Algebra books published by Dover on Amazon; for example: http://www.amazon.com/Basic-Algebra-Second-Edition-Mathematics/dp/0486471896/ref=sr_1_2?ie=UTF8&qid=1392458147&sr=8-2&keywords=basic+algebra+dover)

Is algebra the main problem here?

If you only know the basic math (MDAS), I think there will be no problem.

I think, the main problem is algorithm or logic.
If we can`t do this, I think it will be hard for us to program.

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 :frowning:

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 don’t like schol becuze you dunt learn notin here.

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.

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.

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.