What do you have to know to be a Physics programmer?

Oblivion

Newcomer
I think I found my calling since Physics is one of my best subjects. Specifically, what programs do you need to know? Does this job require thorough knowledge of the hardware aspects? Any help is greatly appreciated. Both for 2D and 3D games.
 
I think I found my calling since Physics is one of my best subjects. Specifically, what programs do you need to know? Does this job require thorough knowledge of the hardware aspects? Any help is greatly appreciated. Both for 2D and 3D games.

Obvious you need to know math.
But you could start of by getting the free SDK from AGEIA, it has a lot of nice tutorials and exsamples to get you started, and is quite easy to use actuall, longside their PhysX rocket.

Both can be found via this URL (requires that you register to get access):
http://www.ageia.com/developers/downloads.html

I don't know about the Havok API or NVIDIA/AMD's solutions, they have been vey quiet about their solutions, but the last I heard from NIVIDA was that they had unveiled their GPU-solution for game developers at a game developer conference.

I dunno if others can fill in the blanks?
 
What do you have to know to be a Physics programmer?
Depend what you mean by that. If you mean that you want to be able to create physic simulations from scratch, or understand the low level intricacies of physic engines, you'd need different skills than if you want to code on physic API platforms such as Ageia or Havok's.

Obviously, the latter is a lot less demanding than the former. With that said, I'm not certain that a lot of dev-houses out there employ programmers which jobs are to hack a third party physic API on a full time basis. It's true that in the future most dev-houses will have dedicated folks working on the physic side of their projects, but these folks would need to be full fledged programmers, who are able to create simple (or more demanding) physic engines from scratch, and/or update a, third party or not, physic code base when necessary.

In other words, you definitely would need to learn a programming language, and also learn more calculus/vectorial maths on the side.

If you don't feel like jumping straight into learning C and calculus, you can always start, slowly, by learning a managed programming language, such as C# (since it has some game tutorials for it on MSDN) or Python (it's really easy to use), and try some 2D physics tutorials. That way, you'll get some visible results faster, which will help you not giving up on learning more intricate and complex techniques.
 
Well other than knowing programming and so forth, you pretty much want to have something like a masters in physics (or if not, a really complete and strong undergrad concentration in physics, particulalry in mechanics and optics).

Obviously you'll need a numerical methods class, and preferably one for physics, which is more or less what you'll be doing over and over and over again ad nauseum.

Theres an online one for c or fortran programmers, and though its less oriented physics than some of the classics, its still close enough. http://www.numerical-recipes.com/nronline_switcher.php.

See if it makes any sense to you, if it doesn't those are the types of classes you'll need as a background.
 
From were I stand, there are two main-"classes" of physics code you can be doing:
1) rigid body physics (a large part of which consists of collision detection)
2) some form of computational fluid dynamics (liquids, smoke, ...)
IME, 1) is computer science focussed (+ linear algebra mostly) whereas 2) is full of PDEs and ways of solving them.
 
Theres a lot to rigid body mechanics that you won't understand unless you have a graduate class in physics or simply learn it yourself, in fact the links provided two posts up do a good job of making this clear. Full blown variational systems + equations of constraints would be a complete mystery to a comp sci major with only a 101 lvl physics mechanics course. Even if they did do it by brute force, there will be plenty of situations where things are so ridiculously slow, it wouldn't be worth doing in the first place.

In fact as things progress, it can and will get nasty really rapidly. Physics in games is a rapidly evolving field and people are already getting quite good at it, it doesn't require a PhD yet, but it likely will one day in the not so distant future.

Particle systems are even worse, and completely nontrivial to simulate with any degree of accuracy and speed.

Fluid mechanics thankfully is so complicated and numerically challenging, no one will ever bother doing it the right way, so you can get by with a 400 lvl fluid mechanics course.

Of course you need the optics as well, b/c you are highly constrained by what the graphics segment requires or constrains you with.
 
Back
Top