Physics simulation with very large units

I am implementing a space simulation game where the action takes place on roughly the scale of a solar system. I started with Box2D because I did not want to roll my own physics library but I have run into a problem of scale. Box2D only works well with objects between 0.1 and 10 meters. It also has a velocity cap of around 120m/s.

I thought about just scaling everything down so that rather than using meters, kg, seconds I was using km, metric tons, and seconds but I am still running into issues. For instance, there is a large discrepancy in size between projectiles like missiles and large capital ships.

Does anyone else have experience with this sort of problem? Is there a different library, like bullet that I should use?

Well, I think you underestimate the size of space :slight_smile:

You can use regular units (meters, kg, etc. ) for the close up simulations such as (what I assume to be) ship to ship battles. Then, for travel between planetary bodies (hopefully at many times the speed of light), you could scale the simulation up to km, kton, etc. it would provide you the accuracy of meters you are looking for, and yet allow you to have distances to Neptune and back.

If you’re actually planning on having realistic speeds, you might be interested in my old post: http://www.java-gaming.org/topics/random-thoughts-extreme-speed-2d-physics/26339/view.html