Ahh crap, I meant to put this in a post, ah well...
After a full year of development and testing including math that drove me to the edge more than once, LifeStampgames is happy to release NEOMiner3D on the Android Play Store.
Execute orbital transfers from Earth to any unlocked asteroid, fill your cargo hold from low orbit and make it back to earth in one piece to sell your booty for constantly changing prices. Get enough credits in one game and unlock new asteroids with new materials or new larger ships with more powerful mining rakes.
OR tinker in the simulator and mess with the size of the inner solar system, gravity, time, and more! Aim and launch a 3D gravity slingshot and zoom into the ship to take the controls in real time!
You Tube Promo Video:
Constructive feedback is greatly appreciated. Note there are some bugs still in the simulator, to be fixed in upcoming updates.
Constructive feedback is greatly appreciated!
A little more about the game itself...it was initially inspired by a scene from the original Alien move from 1979, where the ship was in orbit and the computer displayed little squares that formed a path in space for the ship to follow to land on the planet where they found the first alien derelict ship and face hugger.
Quick update: I actually dug up a picture of this scene from that 1979 movie which I loved, here it is:
ANYWAY, after a lot of messing around, I got it to look like this:
There was on gravity source, and the game would start at a random position near the planet on approach. However, I quickly learned that it isn't easy to go from a straight line velocity and get into orbit, you needed to be on the right curve approach. So then I realized I needed transfer orbits, and the logical place to start was from Earth.
Then things got really hard, first I was determined to scale the solar system to be quite large, and ran into the issue of floating point accuracy, or should I say lack of. The Unity engine uses floating point precision, so if your object is too far away from the origin, it'll throw warnings in the editor and the thing itself may jump around as Unity bounces between the precision limits for a position.
So the first thing was to get rid of the Unity physics and use custom double precision acceleration, velocity, and position for everything in the game. Next was to keep the ship at the origin, what some call the "floating origin", and the solar system moves around the player. This way anythingt the player comes close to will be close to the origin and not suffer floating point and lighting precision issues that can make jitter and flicker.
After I succesfully got orbiting bodies to orbit via gravity at very large scale, I tried increasing the rate of time on large transfers to keep the game under like 12 hours. NO LUCK. The framerate plummeted when the time scale went over 15 tops. Lots of optimization and unfortunately there was no way around it.
So here I sat, desparately wanting to make an accurate solar system simulator, but was faced with a development wall. In the end I gave up on accuracy in-game, scaled the whole thing way back down but kept the double precision. Interestingly, simulating the "SOI", or sphere of influence of an orbiting body, I found it necessary to use different gravitational constants in each of the patched conic sections, that took some serious time to realize. I wanted somewhat slow drifting near the asteroid, little faster at earth, and blazing fast on the large transfer orbit. Scaling it down, ramping up time to 10-15 tops, and increasing G for the orbit in question ended up working out more or less!
Here is an early shot of the asteroid selector which shows a transfer orbit ellipse:
After breaking physical constants in the game, I wanted to keep them somewhere, so I added the simulator which ties into gameplay by offering unlocked asteroid to orbit around or fly by unrestricted. After all, some of the meshes are real asteroid radar data from actual space missions. They are all available on the public domain if you give credit. A good source is here:
I was also inspired by mobile games where you buy and sell stuff for prices that change, like "Shine Runner". So I added random events, some of which will spike or drop the price of materials you have mined from asteroid orbit.
More when I have time and if people are interested.
Thanks for your time and feedback!
Quick update: Here's some updated footage of the simulator, which I am obsessively contiuing to develop even though I said i would "move on":