Are there any college courses for creating physics engines?
Members - Reputation: 141
Posted 17 December 2012 - 02:27 AM
Members - Reputation: 298
Posted 17 December 2012 - 08:15 AM
Your best bet is Math/Physics Course, since in its pure way, Physics is just real life math.
To create a good physic engine one needs to have a great understanding of Math, so if I were you I would start by that. After that I would take a look in general physics to grasp the concept of how things work. That would be my first steps.
After that, you would need to devise algorithms for the physics itself in any language you feel suitable, and that is where I think your problem is, there is no specialized course that teach you how to do this, but still there are a great number of papers out there that have proven algorithms that you could implement in your own engine.
If you trully want to create a physics engine I would make start small, 2D.
In my experience writting a physic engine is not a trivial task, and you should break the Engine in a lot of smaller parts and tackle each at is own time. Don't expect to have a working simulation in a few hours or even days. Start by detecting simple collisions, once you get that, start adding the physics part, or in other words the response to that collision, then start fleshing everything out. In the end its optimization time, Broad phase detection, Narrow Phase, Solver.
IMO, I would look at how other engines do it, and base myself from there.
Check out my new blog: Morphexe
Crossbones+ - Reputation: 280
Posted 20 December 2012 - 04:05 PM
The book Real TIme Rendering has a fairly good description of sweep and prune (though they might call it something else).
I recently learned OpenGL and tried programming my own collision algorithms but am having too much trouble trying to figure it out on my own. I could get 2D circular collision detection working easily but I had too much trouble programming an organized structure that included sweep testing. Are there any online college courses that would teach you how to write your own physics/collision algorithms for games/applications?
Frankly, I found the classic implementations to be much less efficient than more straightforward approaches. For example, I found doing sweep and prune on 3 axes to be less efficient that doing it on 1 axis, then resolving overlap on the other 2 axes more simply. However, doing sweep and prune on the first axis is extremely effective, and I wouldn't want to do without it.
To create a game engine requires you slog through a LOT of issues. Been there, done that... and still doing that.