-
Notifications
You must be signed in to change notification settings - Fork 3
A spaceflight simulator
License
MitchCarroll/spacesim
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
I love Orbiter (2006, 2010, 2016... I love them all), but they both suck at running with Wine, and don't run natively in anything other than Windows. This is especially sad, because it seems to me that many of the people that would enjoy Linux, and those that would enjoy Orbiter are the same people. Anyway, I don't know if I could ever write the "next Orbiter", but I'm going to take a stab at writing my own take on space simulation. I'm also sick and tired of "space simulators" that simulate space itself, but not much more, or that gives you 'Newtonian' motion, but with no gravity! Probably THE WORST give you non-inertial movement, no gravity, no physics. Elite/OOlite is still pretty cool, though... I'd like to implement multiplayer capability as well. I mean, who DOESN'T want a persistant, realistic MMO space sim? Furthermore, in honor of Robert A. Heinlein, I'd like to provide some sort of interface for such things as sextants, astrolabes, slide-rules plotting tables, etc. That way you can have your own classic sci-fi style adventures in the style of The Rolling Stones, Rocketship Galileo, or maybe even Starman Jones. Most likely, this will be in the form of an interface with pyNomo or some such. At the moment, wasd -> camera controls(absolute), arrow keys , . -> rotate spaceship, spacebar -> print current altitude, velocity (I know, I know), and coordinates to terminal. I am trying to get the basic features all working, and then I'm going to clean up and modularize the code, and build an API. Using Guile as the extension language, but may use Python for GUI. For 3D models, I still need to decide on a file format, though it may be entirely procedural. That I can read into the program easily, but without a bunch of overhead (like .blend). must play nicely with Blender. A spacecraft (or pretty much anything else to be simulated) should be fully described by a Guile script. The API will provide procedures and such to make such things as rocket motors, propellant tanks, aerodynamic surfaces, control jets, docking ports, reactors, radiators, pipes and wires, gyros and precession wheels, etc. Generating a component creates a mesh for it, as well as physical properties like mass, fluid capacity, drag coefficient, etc. It will also create all the necessary hooks for simulation, and procedures for control input, and instrument output (e.g.: engine temperature reading, cabin pressure, gyro angles, etc for instrument output. Throttle setting, RCS impulses, docking port manipulation, engine gimbal angle, structural decoupling, etc. for control inputs). Once all these functions are exposed, they can all be tied into each other, and hooked into the interface through API hooks and callbacks. The API will provide hooks and callbacks to create instrument and control panels. This way, it is easy enough for anyone to create spacecraft and such without requiring any special tools or skills with 3D editors and such. It also ensures that all user-created spacecraft and such follow standards, and are therefore realistic, and compatible with the simulator, and all other spacecraft. This way, in a multi-user environment, all vessels are sane, and all players have to obey the same laws of physics. For those of me who are curious like me, I will probably implement the EMDrive and/or the Cannae drive (though, I'm less sure about that one) so we can see it MIGHT work in practice, and maybe try out some conceptual designs. UPDATE: Since Children of a Dead Earth came out, and since it is basically everything I want in a space game, and furthermore because the author seems to be ignoring the Linux community (which, again, is missing out on a STUNNING opportunity to tap into an engaged and energetic user base), I have decided to take some time, and reevaluate which direction this project should go in, if any. Some questions are: Is there any way that I could do it better? Is there more demand for a simulation like Orbiter, or for a game like CoaDE? Should I perhaps switch to an already well-developed game engine to handle the input and display and such? If so, would the bundled physics engine be sufficient, or would I need to write my own? Similarly, are the display capabilities sufficient (extremely long view distances, long LOD chains, realistic lighting without pre-baking...)?
About
A spaceflight simulator
Topics
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published