I made a game like this. Here are some of the problems I encountered:
1. Objects were too far away. When you have such an open, massive world, it is nearly impossible to find other objects near the size of your ship. They appear as specks on the screen. Solution: I made a script that would draw arrows above these objects (or pointing to the objects if they are off-screen). It worked fantastically, and is now available on the Asset Store: http://u3d.as/content/gdcore/radar-arrows
2. Physics were resource-intensive. Trying to simulate an entire solar system eats up your resources. I originally tried simulating an asteroid belt by giving rigidbodies a nudge and let a point-gravity script take over. Normally, you get get away with having a lot of rigidbodies because most of them sleep at any given time, but in this case, gravity wouldn’t let any sleep. Not a good idea. Solution: Add pretend physics. I parented all the asteroids under a single belt object, and then rotated that each frame around the center planet. The same idea could be used for moons and other satellites.
3. Impossible to control. When objects are really far away, when you use a forward thrust, for a long while nothing on-screen really changes. It doesn’t feel like you are going anywhere, so you keep holding down the thrust. Finally, you approach your destination, but then overshoot it travelling a 10,000 km/s. To make matters worse, we humans are used to having ground under our feet and this concept called “down.” It is easy to get disoriented in null G, and I constantly found myself spinning out of control. Solution: To solve the problem of overshooting a target destination, I did two things: I made the amount of thrust decrease as speed increased, and I decreased the side-to-side velocity of the ship with the thrust (to keep it from drifting too far). To solve the problem of spinning out of control, I added a Stabilize button to my game. It decreases the ship’s angular velocity. (Each frame it would multiply the angular velocity by 0.7).
4. Players can leave the universe. This was a serious problem I encountered with my game, especially when I tried having planets exert gravitational force on the player, which often threw the player to the edge of the universe like a comet when gets too close. The empty void doesn’t make an engaging game. Solution: The first thing I tried was to make gravity work in reverse. Normally, gravity is stronger as you get closer. I made it stronger as you get further away. The idea was that the gravity would overpower the thrust and trap the player near the planet. The implementation was buggy and I eventually ditched the idea. Instead, I created a huge force-field around the entire system. Normally, this would make the game seem very closed, but I made it invisible from most of the system, but increased the opacity as you approach. When you reach it, it is practically solid. I made its collider a trigger that, when exited, would bounce the player’s velocity back into the game.