use engine, or wait and study?

Started by
9 comments, last by Sirisian 16 years, 7 months ago
O.K. guys, here is my dilemma: I'm only 15, and therefore have not been able to take any advanced math classes beyond plain geometry(I'm in algebra2 now because I doubled up). I'm doubling up in science, but I still won't be able to take physics till next year. So right now my high school schedule is looking like this: this year algebra 2 s1 trig s2 next year physics s(n/a) pre-calc s1 calc s2 computer science s1 comp science 2 s2 Should I just use a physics engine until I get to a high enough level class that I can learn it, or should I learn it myself(if so, where). Thanks, Joe
Visit my general programming site to get help, tutorials, as well as get experience by joining projects or making your own - My Site
Advertisement
To be honest, you shouldn't even be going near a physics engine until you've at least taken Calculus and a physics course. Even if you're not writing your own (which is still quite a feat even for people with years of math and physics background), you still need a solid background in mathematics, physics, mechanics, dynamics, etc., in order to use one and understand how it works.

For now I would stick with what you know and can handle. Maybe try to get in touch with your local university and see what textbooks they use for their math and physics classes. If you're feeling ambitious, you might be able to learn a bit on your own but that kind of self-guided learning is really tough unless you're extremely motivated. I wouldn't worry, you're still young and it appears you're on the right course for learning what you need. Just keep taking those math and sciences classes until you feel comfortable with the material.
Yes, but the problem with that is, I'm in high school, and can only go but so far, so quick(it's like the school is holding me back lol), but I want to make games, an I don't want to wait a year or two until I'm able to start taking those courses. Also I'm not sure how long it will take me to learn it on my own. Making games just isn't fun when all you can do is
x_vel = -x_vel;

I was kind of thinking I would only need to know some basic physics for 2d collision detection, but I guess I was wrong about that.
So in the mean time what should I do? I don't want to spend forever waiting.
Visit my general programming site to get help, tutorials, as well as get experience by joining projects or making your own - My Site
Basically , don't be conditioned ( sp?? ) by school, i remember when i was 15 and i badly wanted to write a game , school wasn't stopping me and i studied a little bit of algebra, geometry and trig, to start writing simple games, like asteroids and such.
The spin off was that i was good at school.
So, even after 1 or 2 years you won't be able to write a full engine.
I think you should first start to code a little bit and then study what
concerns 3d graphics , that's to say , matrix operations and vectors.
Basic trig (SOHCAHTOA, pythagorous) and basic equations of motion (distance=speed*time, etc) are usually covered at a high school level (15-16) and are all you need to get a 2d game up and running. Basic collision detection (circles and boxes) is simple enough to figure out or look up too.

I don't think you'd have too much trouble making a game now if thats what you want to do. Just keep it simple (start with pong to get the basics down) and you should be fine.
Are you dead set on writing a physics engine? If you want to get down and dirty with the math, a simple software renderer is *much* easier to write than a simple physics engine. Actually, "simple physics engine" is a paradox.
Man, don't take this the wrong way, but you're only fifteen. Games are sweet, and making your own is even better, but get out and live a little. You've got years and years to learn obnoxiously painful advanced math and physics. Be patient, and don't abuse your head. Meanwhile, for the most part, you can fudge it. It's not like you need ultra-realistic physics for most games. Sure, there were some cool puzzles in Half-Life 2 that used physics, but I can remember the kind of games I was capable of making at 15 ( hell, what I'm still capable of making ), and a decent approximation, well tweaked and tested, will serve just as well.

Short form: Don't sweat it. Use what you know, use google for what you don't. And don't devote yourself solely to coding; go take in some good movies, meet some girls, chill with your friends.
Eric Richards
Don't jump into the deep end. Like most people have already said, you're still young and have plenty of time. However if you are really keen to get into physics modeling and eventually write an engine, then start with the basics. Write small tests/examples, focus on one element of physics at a time and play around with it.

Writing an engine will take years of experience and technical knowledge and it's the same for any type of engine. It's not something you're going to just up and do on a whim.

One thing I'd like to suggest that comes from my University experience. When the time comes to look into where you'd like to go and the courses you'd like to do, don't just look at what is being covered in the course. If possible try and find and meet the people who will actually be running the classes. Most of my University classes sucked because the people lecturing and tutoring just had no motivation or passion for what they were teaching. There was one lecturer however who obviously loved the topic and it was very easy to tell he knew what he was talking about. My marks in that class were the highest of most of my units all up, and it's the one unit I remember the most from.

A small tangent I know but it's something I wished I'd paid more attention to before starting Uni.
I'm 15 also, so I'm kind of speaking from experience (or lack of depending on how you look at it..). I pretty much started to program (games) about a year and a half ago. I'm now have a job working with small game company making a shareware game. I progressed like this:

1.) Found a niche that really interested me (the PSP)
2.) Tried to find the easiest way to make games for aforementioned niche (Lua and the "LuaPlayer" for PSP)
3.) Failed in making any type of game
4.) Moved on to learn C++
5.) Spent a few months only learning C++ (religiously)
6.) Moved away from the PSP since that obviously isn't the place to start
7.) Tried to half-ass make a game without really learning a single API (SDL, OpenGL)
8.) Failed again
9.) Became discouraged, moved on to software development
10.) Learn Objective-C, C, and a few other languages
11.) Became bored with software development
12.) Moved back to game programming
13.) Learned OpenGL (obviously not all of it, but I devoted a good amount of time to it like I did with C++)
14.) Learned Vector and Matrix math on my own, and learned trig and geometry in school
14.) Made 3D Pong
15.) Worked on a lot of small demo (particle engine, tetris, chip8 emulator, OBJ model viewer, MD2 model viewer
16.) Decided I wanted to attempt to make a 3D engine
17.) Made a Quake 3 BSP parser/viewer and an Octree space partioner.
18.) Decided making a 3D engine would be too much at this point
19.) Bought the Unity3D game engine
20.) Create a few small, incomplete game with it (solely for learning experience)
21.) Got a job using the engine


Currently, the shareware game is almost done, and version 1.0 is almost ready to be released. I'm almost teaching myself calculus and physics (following the recommendation of Chris Hecker's website) in preparation to make a rigidbody and particle physics engine. Obviously this will take a very long time, and a lot of work, but because of my past experiences and failures I'm confident on how to go about doing it. Whether I do it correctly still, it's about the process of learning and maturing.

My point in all of this is, it's going to take time and work. Along with that, you're going to fail (several) times. The best advice I can give is start out small, learn a single language and API, make a small game. Specifically, for physics, learn only what you need as you go along making your (small) game. Don't aim to make it modular and portable, like an engine. Make it hard-coded for the game. Until you're experienced enough, writing an modular, well designed engine is difficult. I'm afraid I'm not even there yet.

Good luck!

P.S. Last summer I spent WAY to much time in front of computer. I had social life whatsoever. DON'T DO THIS! Luckily I was able to revive my social life, but not everyone is as lucky as me ;-)
Quote:I don't think you'd have too much trouble making a game now if thats what you want to do. Just keep it simple (start with pong to get the basics down) and you should be fine.

I've made pong already. Pong was quick and easy, but I don't like to play it. There have been a few things that I have made, and worked well(as well as looked well), that I enjoyed making and playing/testing. I just find things that I have made, that are more "real world" are not only funner to make, but funner to play.

Quote:
Short form: Don't sweat it. Use what you know, use google for what you don't. And don't devote yourself solely to coding; go take in some good movies, meet some girls, chill with your friends.

Thats just it, I'm not planning on majoring in computers, I'm taking all of those classes for two reasons: because they look good to colleges, and I enjoy the challenge, logic, philosophy, etc. behind it. I program, do web design, etc. all as a hobby at night, in my spare time. I enjoy surfing, snowboarding, etc otherwise. I am kind of like a closet geek, in life know one would think I'm a geek, but at night, or on rainy days, I pound away at my keyboard making websites, games, programs, etc. all for fun.
Like today I almost lit someplace on fire with this bright idea i had to shoot gas out of a super soaker towards a burning stick in the air. Where all my friends were like "holy shit that was cool" I thought, that, and "gee, I wonder how that worked, how the gas did not stay in a line, yet was curved do to the fire(which expanded air thus moving it out of it's projected path)" and " I wonder if I could simulate that in a program, and how would I do that", then we all said "O, shit the ground is on fire." lol P.S. it looked cool.
I guess what I need to do is fine that fine line between having friction, speed, impact, etc. and vel = -vel. I will just try to take it one step at a time, and hopefully work my way up.

Quote:
I pretty much started to program (games) about a year and a half ago.

I know it will take time, as I have only ever had a computer since Christmas(less than a year), and have been programming on and off for about a month in cpp. before that I picked up python to make my first game(stuck with it for a week or so). and before that I did some web dev for a month or two.

Thanks for all of your responses though.

Joe
Visit my general programming site to get help, tutorials, as well as get experience by joining projects or making your own - My Site

This topic is closed to new replies.

Advertisement