I'm posting up a demo now more as a proof of concept and for some ideas feedback.
Demo is HERE.
[EDIT - updated demo to frame-rate-independant version with lots more globes]
[EDIT - updated demo - teh globes has now spinzzz]
Left and right to turn, up and down to move forwards/backwards. And since I'm always asked about this, press Alt+F4 to quit!
You can play pool shots with the planets. That is all at the present time.
Apologies for the appalling graphics. Hopefully these will improve with time.
[EDIT] These polygon intersection tests are expensive. Thought the project was sunk until it occurred to me to generate minimum axis aligned bounding boxes for all of the map blocks at startup, and a AABB for each object after it had been rotated, and then do a simple bounding box intersect test first for each pair and skip the more complex polygon intersection test if it failed:
That's 100 globes and the ship all bouncing off each other and the map walls with no drop in frame rate on my fairly low end PC (2.3ish Gig single core) with an onboard graphics card.
To be honest, it was really good fun sorting that out. I'm used to finding limits that I can't really do anything about since graphics fillrate and so on have always presented problems long before anything I could actually optimise on previous projects.
Still some improvements can be made. I'm convinced that my boundbox intersect test is non-optimal, I only need to regenerate boundboxes for objects whose rotation has changed since last frame and I'm sure that there must be a way to divide the map up into regions to reduce the number of checks needed.