🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Why are good physics programmers so hard to come by?

Started by
25 comments, last by d000hg 16 years ago
Okay, this is my first and hopefully the only rant here, so let me kindly present my issues and the reason for why my spare-time game project couldn't be completed in last 5 years. So i am trying to be a indie game developer in spare time, i got a project i work on in my spare time, and when most of game systems were written in basic form and were working properly, i was still stuck in vehicle dynamics area. And this is such a major and important part of my game, that if it is not done properly the whole game is worthless, so basically what i now have is a almost playable game where cars drive like crap and ruin the overall good experience. I tried myself writing my own car physics code, i thought this should be rather simple, but i could not find much resources and well explained formulas on the internet (it is difficult when you come across pacejka papers where one says it produces lateral and longtitudal velocity and other says it's force and the formulas are both identical.. ), also all the tweaking of "magic constants" and different explanations of friction (in essence: lack of any consistient documentation that a ordinary human can understand) have forced me to give up on doing it all by myself. So for the last few years i was trying to find (and did find) a couple of physics programmers willing to help who were also familiar with vehicle physics, it turned out every one of them had soon after initial contact became too busy with their own projects and real life, so they couldn't really help me, and some of these people were really good, some even professional game programmers, i realise i can't compete against a paying company which pays 60K$ a year, but i'm not asking for a complete car simulation down to last screw in transmission and whole proper tire mounting geometry suspension.. what i asked for was a few hours of dedicated work, and i offered good pay for those few hours. So i conclude this rant by claiming the fact that car physics programmers are too damn hard to come by, and that somebody should do something about this. They seem to be more rare than any other type of specialized programmer, and while "proper" physics and simulation of vehicles is such a important part of almost any game released since late 90's i am still at a loss why is it so hard to find vehicle physics programmers? Where on the earth are these people hiding? Do they just do one project and retire with all the cash they just earned? Where can i find one?

Projects: Top Down City: http://mathpudding.com/

Advertisement
Well, Physics programming is NOT easy. That is about as simple as it gets as to why there aren't many good ones to be found easily.
Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.
Not to menion that physics API's are a relatively new thing, 3 years ago it was impossible to get hold of middleware for less than the cost of your right arm. So the only guys with middleware experience were those who worked on a large project before.

Since then times have changed and you can expect to see a larger number of physics programmers in the market.
Don't thank me, thank the moon's gravitation pull! Post in My Journal and help me to not procrastinate!
Quote: Original post by Delfi
So i conclude this rant by claiming the fact that car physics programmers are too damn hard to come by, and that somebody should do something about this.

They did, not sure when you started it but right now it would be insane to do this without using a general purpose real time physics engine like ode, bullet or havok

Quote: Original post by Delfi
They seem to be more rare than any other type of specialized programmer, and while "proper" physics and simulation of vehicles is such a important part of almost any game released since late 90's i am still at a loss why is it so hard to find vehicle physics programmers?

I think its because your asking for three separate skills, programming, kinematics physics, and geometry for collision detection
EDIT:
four skills if you count the physical forces specific to cars

[Edited by - Kaze on June 21, 2008 5:17:15 PM]
When you get these people who are somewhat rare to come by, i.e a position which actually requires an unusual amount of intelligence or talent they will usually be used to certain standards. One of them is being paid and generally being paid well. I have no idea what a physics programmer makes but I know a talented and experienced software engineer will usually ask for between 120,000 - 150,000 USD per year minimum. I've seen it go up to about 200,000 per year.

It's like they say, there's never a shortage of supply there's just a shortage of supply at your price point. Much like there's a shortage of Ferrari's at 20,000 USD :) In other words the talent is there, it might just be outside of your price range. In that case I would look at a solution that already exists and is user friendly, I know Torque has vehicle physics that work ok. Maybe you can license that and take some inspiration from it if you must write your own?
Kaze, i think you got it wrong or didn't read my post carefully, i only need a vehicle / car dynamics physics programmer, not a whole physics engine programmer, i am already using a existing physics engine, but it lacks any good car dynamics.

asp_: for a person who deals with car physics professionally this would be a few day's work, all the work requires is to write a playable arcade vehicle simulation which works well in 2D (not suspension, no transmission or differential and other complex parts), and i'm sure i can pay those few days very well. And torque is out of question as i'm already using newton.

Projects: Top Down City: http://mathpudding.com/

Quote: Original post by Delfi
Kaze, i think you got it wrong or didn't read my post carefully, i only need a vehicle / car dynamics physics programmer, not a whole physics engine programmer, i am already using a existing physics engine, but it lacks any good car dynamics.

asp_: for a person who deals with car physics professionally this would be a few day's work, all the work requires is to write a playable arcade vehicle simulation which works well in 2D (not suspension, no transmission or differential and other complex parts), and i'm sure i can pay those few days very well. And torque is out of question as i'm already using newton.


Just do it yourself. It's not that hard, and if you only want arcade physics then a experienced professional car physics programmer isn't going to be of much use, because much of the arcade feel is going to stem from your own creative diversions from physical reality.
Quote: Original post by Delfi
Kaze, i think you got it wrong or didn't read my post carefully, i only need a vehicle / car dynamics physics programmer, not a whole physics engine programmer, i am already using a existing physics engine, but it lacks any good car dynamics.

asp_: for a person who deals with car physics professionally this would be a few day's work, all the work requires is to write a playable arcade vehicle simulation which works well in 2D (not suspension, no transmission or differential and other complex parts), and i'm sure i can pay those few days very well. And torque is out of question as i'm already using newton.


OK, so you need a raycast car. This is easy to implement with modern physics engines. Back in the day it had to be done from scratch, right down to choosing a trimesh format in memory for the ray casts to interact with. You say you are using newton. What is your reason for this choice? I know that it lacks vehicle physics, and I for one do not like the raycast api as I am certain that the same bug in it keeps coming back to haunt me. Have you looked into other physics options?
Don't thank me, thank the moon's gravitation pull! Post in My Journal and help me to not procrastinate!
Samith: "Just do it yourself." just didn't work too well, read my post please!

speciesUnknown: no, i only need half a raycast car, as i said no suspension (meaning no rays and no springs), i mentioned that in a few posts above.

I am currently not going to look in other options than newton, because newton works fine, and there is no raycast bug that you are mentioning, raycasting in newton works fine, but if you think you found a bug please contact the newton library author, also changing a physics engine now when the game is so tightly integrated with it is "a bit hard".

Aniway, i think i evaluted pretty much every physics engine before deciding to stick with newton, so please tell me what would you suggest that i use, and why? and how would that work any better for my game?

Since you mentioned "raycast car".. entering "raycast car" or any variation of that yelds no useful documentation or papers on raycast simulation, trust me i spent last 3 years searching for it, and there is a reason why i gave up, but if you have any specific documentation on this topic you wish to share, please don't keep it to yourself.

Projects: Top Down City: http://mathpudding.com/

I have used a modular design for my game, mainly because I knew I would be switching physics engines among other things fairly often. I would recommend bullet instead, since it already comes with a raycast car api.

Quote:
I am currently not going to look in other options than newton, because newton works fine, and there is no raycast bug that you are mentioning, raycasting in newton works fine, but if you think you found a bug please contact the newton library author,


erm, you say it works fine, but you complain about its lack of a raycast car API? Are you using the renderer that comes with the demo apps or something? if not, then changing to another physics API should not be so difficult. Bullet has a raycast car API but no usable character controller (although one is promised for the next release). You could also consider physX or havok. If you refactor your design so that the physics code is abstracted from the rest of the application, and ensure you are not using libs that are part of newton for anything not directly related to physics, then you will then be able to change physics API.

The only reason I'm debating with you is that you are blaming your problems on the lack of experienced physics programmers, when in reality I suspect its down to your choice of physics middleware, which very few programmers are familiar with.
Don't thank me, thank the moon's gravitation pull! Post in My Journal and help me to not procrastinate!

This topic is closed to new replies.

Advertisement