Sign in to follow this  

Simple gravity?

This topic is 3317 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

F = GMm/R² for gravity right. That gives you force in Newtons. How do you convert Newtons to a more easily understandable value of acceleration? And is there an easier equation to use? Thank you in advance.

Share this post


Link to post
Share on other sites
Asteroids/Newtonian physics style top down 2D game. Stars, planets, black holes, etc. Just trying to find the best way to determine the gravitation pull between said objects and whatever else I choose to add and the best way to move them accordingly.

I think I might have answered my own question but I'm interested to see how other people solved this.

Thank you for the quick response BTW.

Share this post


Link to post
Share on other sites
Using F=ma you can go:


F' = GM'M"/R²
M'a' = GM'M"/R²
a' = GM"/R²



And remember that the force (and therefore acceleration) work both ways...

Share this post


Link to post
Share on other sites
Yeah I was looking at a web site and started to come to that conclusion. I didn't know before that a Newton == kg/m^2

Alright on to the next question: Do I need to work with realistic numbers to make this work or is there an easy way to scale the numbers down to a more practical level?

Share this post


Link to post
Share on other sites
Think of the final equation in Codeka's post in terms of what it means physically: acceleration of an object is proportional to the mass of the other object and is inversely proportional to the square of the distance between them. The G is a constant and can be discarded - that just changes the scale of the simulation. Your game is likely to already have a 'scale' in the sense that the visible screen covers 'x' units of world-space. So, do some simple order of magnitude estimates for what kind of accelerations you want in your game and the typical distance between objects (measured in the units of your game of course.) Plug those numbers into the equation to determine the typical mass values required and then tweak them for specific game objects until you get a fun and playable balance.

(Caveat: this assumes you're not trying to make a physically accurate simulation of course! IMO the more general advice, at least for games not overly bound by realism, is not to be scared to tweak the laws of physics in order to make your game more fun.)

Share this post


Link to post
Share on other sites
a' = M"/R²

Does it matter which mass M" is or does M" need to be the major attractor (the planet) of the pair? Also does this assume that M" is vastly more massive then M'?

If I wanted bodies to be mutually attracting do I go back to a' = M"M'/R² ?

Thanks again for all the help.

Share this post


Link to post
Share on other sites
You've got two object, M' and M" - it doesn't matter which is which. You're trying to calculate the acceleration of both of them due to the other.

So the a' for the first body is related to M" -- the other object. You apply the same equation to both bodies, using the "mass" of the other body to work out the acceleration of the current body.

A massive planet will not be (noticably) affected by a tiny space ship because M" of the ship is insignifcant, but a tiny space ship will be very much affected by a massive planet.

Share this post


Link to post
Share on other sites
As far as what units to use... you should pick a system of units and make it common to everything that you do.

Popular systems include MKS (Meters, Kilograms, Seconds), CGS (Centimeters, Grams, Seconds), and SI (Now the 'standard', similar to MKS)

You can make up your own system.. for example, your unit of length could be the 'mansheight', which is defined as the height of the default player avatar.. or maybe you want to go with the 'hallwidth', which is defined as the width of a standard hallway.

Personally i've always liked CGS because centimeters and grams has much more precision when restricted to integer than you get with meters and kilograms. In the floating point world the choice of system is more or less arbitrary (no advantages regardless)

Share this post


Link to post
Share on other sites
Quote:
Original post by ahlywog
F = GMm/R² for gravity right. That gives you force in Newtons. How do you convert Newtons to a more easily understandable value of acceleration? And is there an easier equation to use?

Thank you in advance.


Here's a very simple line-by-line commented code example + windows exe

http://www.jernmager.dk/stuff/gravity_example_1.zip

Cheers,
Michael

Share this post


Link to post
Share on other sites
Force

A unit of force will accelerate a unit of mass a unit of distance per unit of time, per unit of time that it is applied.

For all intents and purposes force is acceleration which has been normalized for unit mass.

Share this post


Link to post
Share on other sites
I got it working. It ended up being a lot easier then I had thought. Coincidentally I picked random numbers, off the top of my head, for my masses and they ended up working perfectly first try.

Thanks again everyone for the help.

Share this post


Link to post
Share on other sites

This topic is 3317 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this