I’ve been playing with a Mario Galaxy-style micro planet project in Unity 3D.
I started by working through this pretty neat tutorial: Faux Gravity

From there, I fleshed out FPS style camera/controls, and added jumping (relative to your current gravity source). I did this by replicating parts of the default FPS mouse controller in different places (so they would all be relative to the player’s orientation, which is based on the gravity source).

I then added code to allow for multiple gravity sources (essentially by gathering a list of everything with the gravSource tag and sorting for the closest).

Today I got a second form of gravity working, that I call a mag-plate. My character can press E to toggle his Mag-Boots (trademark pending) on/off, which allows a mag-plate to take over as his gravity source. When it’s toggled on, the gravity sorting code looks for a mag-plate first, and if it can’t find one that applies it goes back to planetary gravity sources.

Mag-plates are different from planet gravity sources in that they don’t pull you towards their core, they always pull you to “their down.” They also use a Raycast test to make sure you’re currently “above them” (again, from it’s orientation). This will allow me to make ships with their own artificial gravity, that players can choose to adhere to or not by toggling the boots. If they turn off their boots they can hop onto a planet easily.

I should make a video at some point when I have real art in it, so it’s easier to see =)