Can I still make games?
Howdy everyone! I am in 9th grade, and this year I'm taking Algebra 1. Now, I am worried that I don't know enough math to make games. Now, in the last chapter of my algebra book teaches a little Trigonomatry such as...
Angles
Measurement of Angles(Protractor)
Similar Triangles
Tangent of an Angle
Sine of an Angle
Cosine of an Angle
Interpolation
If I learn these things that my math book teaches, will that be enough for me to program simple 2d games for now, and 3d later? I know there are a few games I can get away with, with very little math. But should I read tutorials, or read books about anything else? I looked up vectors in google, found a tutorail and read through it. I understand it for the most part. Any tips for a math newb?
You don't really need that much maths to start programming games. Heck, I started playing around with BASIC back when I was six, so I didn't really know that much back then.
In fact, programming helped me to learn maths years before it was reached in the curriculum. For example, learning BASIC helped me to learn basic algebra back when I was six. The best way to learn maths is to have an application that you want to use it in, so why not programming? Try to implement something in 2D, and if you get stuck with the maths, ask a question here on the forums and since people are generally helpful, they'll direct you to the area of maths that you need. You'll learn it better trying to program it than you will learning from a textbook.
In fact, programming helped me to learn maths years before it was reached in the curriculum. For example, learning BASIC helped me to learn basic algebra back when I was six. The best way to learn maths is to have an application that you want to use it in, so why not programming? Try to implement something in 2D, and if you get stuck with the maths, ask a question here on the forums and since people are generally helpful, they'll direct you to the area of maths that you need. You'll learn it better trying to program it than you will learning from a textbook.
Some basic algebra and trig is enough to start making simple (and possibly even complex) games in 2d. One caveat: IIRC, in beginning algebra lines are usually presented in slope/intercept form, y = mx+b. This form isn't particularly useful for games, so you'll want to acquire at least a basic understanding of vector math. A 2d vector is simply a pair of coordinates, x and y, which can represent a direction and magnitude (such as velocity) or a position in the form of a vector from the origin (such as the location of an enemy). If this all seems obvious, you're probably in good shape.
One other word of advice: learn to use the c++ atan2() function - it's your friend.
Ultimately, the use of matrices (even in 2d) will make all of the above easier and more flexible and convenient. And when you migrate to 3d, it'll be more or less necessary to learn that material. But you can certainly get started without it.
[Edit: Sorry, missed the part in your original post about already having looked into vectors.]
One other word of advice: learn to use the c++ atan2() function - it's your friend.
Ultimately, the use of matrices (even in 2d) will make all of the above easier and more flexible and convenient. And when you migrate to 3d, it'll be more or less necessary to learn that material. But you can certainly get started without it.
[Edit: Sorry, missed the part in your original post about already having looked into vectors.]
Quote:Original post by Trapper Zoid
You'll learn it better trying to program it than you will learning from a textbook.
That may have been the case for you, but it wouldn't necessarily be the case for everyone. Although I had basic physics implemented in my 2d platformer engine and was working on 3d physics and collision before taking a college-level Physics class, I realized after taking it that there were things that I had done wrong and things that I could do better. So textbooks can be invaluable also. :D
This leads me to a response to the OP, which is to say that I think you need some physics at an introductory level at least.
Cheers,
Twilight Dragon
Quote:Original post by TDragonQuote:Original post by Trapper Zoid
You'll learn it better trying to program it than you will learning from a textbook.
That may have been the case for you, but it wouldn't necessarily be the case for everyone. Although I had basic physics implemented in my 2d platformer engine and was working on 3d physics and collision before taking a college-level Physics class, I realized after taking it that there were things that I had done wrong and things that I could do better. So textbooks can be invaluable also. :D
Whoops, I've just read over what I wrote and I realise I was a bit misleading. I mean that it's better if you try to implement something, realise you need help, and then look up the corresponding theory in a textbook (or asking questions). Obviously the textbook is a useful resource.
But of course, the tricky part is knowing when you don't know something. I didn't know how to code a proper sorting algorithm back then in BASIC, so I just used bubble sort, not knowing there's much better algorithms out there.
So to modify my previous recommendation, keep learning all that you can of theory in maths and physics, because it's all very useful, but don't let that stop you from diving into game making right now.
I'm in the nineth grade and have been programming for five years, four with C++, and I have accomplished an OS(of which I am VERY proud of, ASM is a pain), and many small projects, and have put together a team to work on our first commercial project, the nineth grade is NOT too young to start programming.
you can do alot of cool 2d games without much math, and my advice is start as simple as you can.
for example jumping-man-platform game doesnt need to calculate angles, rotations and such.
same goes for shoot-the-aliens (at least when the shots and movements go in a straight horizontal/vertical way)
if you get one of these done and you will want to add angular shots or rotating thingies then you may need trigo, but i think by the time you will finish a jumping man game you will finish the 9th grade too :)
P.S. im usually trying to convince people to study more math... wierd.
Iftah.
for example jumping-man-platform game doesnt need to calculate angles, rotations and such.
same goes for shoot-the-aliens (at least when the shots and movements go in a straight horizontal/vertical way)
if you get one of these done and you will want to add angular shots or rotating thingies then you may need trigo, but i think by the time you will finish a jumping man game you will finish the 9th grade too :)
P.S. im usually trying to convince people to study more math... wierd.
Iftah.
you don't need that much math to program some games. If you are starting out, start out with a simple game, finish that and take that experience on with you to build something better.
Programming games may actually help you learn math, because you will be applying something abstract to something real.
Programming games may actually help you learn math, because you will be applying something abstract to something real.
My experience is that "copy->paste" works reasonably well when it comes to difficult stuff. I copy-pasted tonnes of tutorial code for physics and the like and it works most of the time.
Point is, you don't need to be a maths guru to make something nice. You just need to know how to use your resources well.
Point is, you don't need to be a maths guru to make something nice. You just need to know how to use your resources well.
Quote:Original post by Structural
My experience is that "copy->paste" works reasonably well when it comes to difficult stuff. I copy-pasted tonnes of tutorial code for physics and the like and it works most of the time.
Point is, you don't need to be a maths guru to make something nice. You just need to know how to use your resources well.
Worst. Advice. Ever.
Not to rag on you struct, but not taking the time to learn how something works and copying and pasting code is one of the most terrible ways to over engineer something. A lot of the engineers that I work with will end up duplicating something almost verbatum from the STL and I'll ask them about it and they almost invariably answer "Oh, I just took out my STL Handbook from HP and drummed something up". At this point, I usually feel like backhanding them and telling my boss to fire them and hire more college graduates to replace their lazy arses. (Not that I work with the STL a lot in my line of work; I mostly code for embedded platforms which means a lot of C and assembly, and a lot of trickery.)
But, back to the point; copying and pasting, you usually get a huge section of something you don't know what does, can't possibly debug, and later in your coding cycle you may entirely forget where you got a piece of code and/or the license applied to it, putting you in copyright limbo. If you've gotta import anything you don't understand, mark it as such, throw some walls around it (or throw it in a seperate file with a header saying "This is NOT my work, I got it from:"), and make sure that you and your development team knows how to work around it. For the indies out there, yes, this is very important.
Lastly, I find it usually takes less time to learn how something works than to copy and paste and realize later that I copy and pasted the wrong section of code, a version of something that I needed a more/less advanced version of, etc. the most specific example I can ever remember was when I was working with an infamous embedded music player a few years back; I needed a fourier transform for my code to work, and so I copied and pasted an implementation from some website, then realized later that I needed a 2D FFT, instead of the 1D version I copied. So after I spent a few hours trying to hack the first version, I realized that there was actually a chip on board to do the work for me, and that I just had to use the beautiful "system call" interface the manufacturer provided. My particular advances never made it to market, but it was a fun project, and I learned a lot of lessons about my coding practices and habits.
Friends don't let friends copy and paste code.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement