I haven’t had much time to develop this lately however, I have implemented enough for it to be usable. As it stands I have the Earth, the Sun and the Earth’s moon all orbiting at there average distance from the Sun or Earth respectively with sizes to scale. However the planets jump, this is because of the way there location is updated. At the moment I’m just increasing the angle that the planets are at based on the time they should realistically take given there realistic masses.
Now, the ship. I’ve implemented a little space ship the force from its thrusters can be altered by scrolling the mouse wheel and theoretically it should be impossible for you to go faster than the speed of light. To limit the players maximum velocity I implemented simple relativity for mass and velocity. The ship is fully physics enabled towards the planets, eg it will be affected by their gravity and it’s possible to do sling-shot manoeuvres and to orbit planets.
There is currently either 2 or 3 arrows on the screen, there are 2 if you’re some distance from the Earth but as you get closer a 3rd will appear for the Earth’s moon.
I think my next development step after some thought will be to scale everything down, because although realistic I think it would be more fun if it doesn’t take hours to fly between the Earth and Sun (that’s assuming I limit certain ships thrusters, as it stands you can accelerate to the speed of light so it should only take 10 minutes.
After Christmas when I’m back at uni I’m going to add this code to my GitHub and hopefully get some time to work on it after exams, so no source code available yet.
Downloads are located here:
http://spacezombies.hyperbadger.it.cx/
They may run slowly because they’re hosted on my home server. Downloading and launching the launcher will create a folder called SpaceZombies in your home folder and download the LWJGL natives along with the games jar.
PS Hopefully before I release the source I can fix the planets by giving them velocity and also neaten by OpenGL, it’s not exactly great at the moment.