Although a lofty aspiration, I am aiming to complete a space simulator that is made in my image. Although this simulator will be created in the spirit of the Elite franchise, there will be a myriad of unique ideas introduced into it that I have been cultivating over the nearly 20 year span of time in which I have been contemplating the ultimate space sim.
As I'm not one for verbose, expository writing, I'll just make a list of parameters, requirements, and features as they come to mind:
- A living, dynamic universe with realistic physics, a precisely modeled economy,
- Taking a lesson from Frontier and First Encounters, I would like to procedurally generate the universe itself as well as star systems. I would like the ability to hand code certain systems, of course, but I want to expand upon the idea of "open-ended universe."
- Every entity in this universe will be subject to the laws of physics. I want to start from the standpoint of a FPS. You begin the game in your one-bedroom apartment, walk or ride a tram over to the nearest starport, find your ship, board it, etc. All the while, your body is being held to the planet by the same gravity that is holding numerous other ships in orbit above your head. The same gravity is also holding the planet you're standing on in orbit around the star.
- Astronomical features like comets, asteroids, black holes, and various other phenomena that makes the universe an interesting place.
- Novel propulsion system. This is a big one. I've not seen anything like this before in a game, and I am hoping I implement it well. Instead of traditional thrusters, ships will be propelled about by bending gravitational fields around themselves. There will be three flight modes: one for planetary/atmospheric flight, one for freely maneuvering in outer space, and one for interstellar flight.
- Cross-platform operation is a must. Of course this means it will be implemented in Open GL. I am still weighing the pros and cons of using Java due to its easy cross-platform adaptation, but I can't deny that I'm enticed by the performance offered by C++. The only downside to using C++ is that I'm a UNIX programmer, so porting the code to Windows could prove to be a very difficult endeavor if I do not code the application considering such a port.
I have also created a series of steps that will build this game from the bottom up; I will start by designing a simple engine where bodies are simply floating in 3D space, but with realistic laws of physics. From there, I can build systems as intricate as I please.