Difference between revisions of "OrbitalStations"
Cholmondely (talk | contribs) (Links!) |
Cholmondely (talk | contribs) (Added Essay from Stranger's BB thread) |
||
Line 4: | Line 4: | ||
If you have been enjoying regular Oolite, and wish a change, you might prefer '''not to read''' the descriptions that follow - and discover them in-game! | If you have been enjoying regular Oolite, and wish a change, you might prefer '''not to read''' the descriptions that follow - and discover them in-game! | ||
+ | |||
+ | == Overview == | ||
+ | |||
+ | Ideas with a revolutionary potential sometimes remains underestimated or just unnoticed! | ||
+ | |||
+ | This is a case for Satellite OXP (author – Rorschachhamster). Seemingly just a nice exercise in coding and just one more OXP in the Ambience category. | ||
+ | |||
+ | Well. | ||
+ | |||
+ | It is a hard task to simulate true orbital dynamics in Oolite. | ||
+ | |||
+ | In the real world, calculation of orbital dynamics is based on the integration of acceleration vector and on the energy conservation law. If you have no acceleration produced by a propulsion engine, your total energy (sum of kinetic and potential energy) would have a constant value. So on an elliptic orbit you’ll trade velocity for altitude and vice versa. | ||
+ | |||
+ | In Oolite we have no gravity nor energy. Acceleration is limited to propulsion acceleration/deceleration parameter thrust and this is not a vector value – it is just the rate of change of ship speed. So we need some trick to simulate true orbital dynamics – calculating the ship's position for the next frame and placing the ship directly into it. | ||
+ | |||
+ | Unfortunately JavaScript is ''not'' a suitable instrument for smooth dynamic simulations! It generates only 4 fps, so you’ll see sequence of frames instead of a decent illusion of smooth movement. | ||
+ | |||
+ | Bad idea. Forget it. | ||
+ | |||
+ | Satellite OXP uses a more elegant approach, based on AI behavior. It generates a realistically looking pattern of circular movement around a planet without sophisticated mathematics. | ||
+ | |||
+ | Let’s try to apply this approach to a large ship. Large enough to be dockable. | ||
+ | |||
+ | You got the idea. | ||
+ | |||
+ | Orbital Stations OXP puts into operation a network of stations, moving on circular orbits. | ||
+ | |||
+ | All stations in the network have specific roles and markets. | ||
+ | |||
+ | Kiota class stations from WildShips OXP (author Thargoid) were used as prototypes for my orbiters. Kiota stations have a modular design, suitable for assembling custom configurations. These stations have reach-through axial docking well, allowing easy closing and docking from a six o’clock chasing position. And these stations have a pretty looking appearance. Nice job, Thargoid! | ||
+ | |||
+ | It is technically possible to adjust each orbiter velocity individually to simulate orbital periods as a function of planet mass and orbit radius, but I have no plans to implement such an idea. The escape velocity in our Solar system is 2.38 km/s for Moon and 59.5 km/s for Jupiter – a 25x ratio. All orbiters have H = 0.5 R circular orbits, so orbital velocities will be in the same 25x ratio. Setting the orbital velocity of a jovian orbiter to 200 m/s to allow an Adder or Boa to dock with station will have 8 m/s for the lunar orbiter – a barely noticeably movement. So I decided to sacrifice accuracy for fun. All orbiters have the same visible orbital velocity of 50 m/s. | ||
== Features == | == Features == |
Revision as of 17:41, 13 December 2020
This OXP (part of Strangers World) puts into operation a network of stations, moving on circular orbits around various bodies in the system. All the stations in this planned network have specific roles and corresponding markets.
Lock your Advanced Space Compass onto a K beacon and enjoy a flight to a new destination!
If you have been enjoying regular Oolite, and wish a change, you might prefer not to read the descriptions that follow - and discover them in-game!
Contents
Overview
Ideas with a revolutionary potential sometimes remains underestimated or just unnoticed!
This is a case for Satellite OXP (author – Rorschachhamster). Seemingly just a nice exercise in coding and just one more OXP in the Ambience category.
Well.
It is a hard task to simulate true orbital dynamics in Oolite.
In the real world, calculation of orbital dynamics is based on the integration of acceleration vector and on the energy conservation law. If you have no acceleration produced by a propulsion engine, your total energy (sum of kinetic and potential energy) would have a constant value. So on an elliptic orbit you’ll trade velocity for altitude and vice versa.
In Oolite we have no gravity nor energy. Acceleration is limited to propulsion acceleration/deceleration parameter thrust and this is not a vector value – it is just the rate of change of ship speed. So we need some trick to simulate true orbital dynamics – calculating the ship's position for the next frame and placing the ship directly into it.
Unfortunately JavaScript is not a suitable instrument for smooth dynamic simulations! It generates only 4 fps, so you’ll see sequence of frames instead of a decent illusion of smooth movement.
Bad idea. Forget it.
Satellite OXP uses a more elegant approach, based on AI behavior. It generates a realistically looking pattern of circular movement around a planet without sophisticated mathematics.
Let’s try to apply this approach to a large ship. Large enough to be dockable.
You got the idea.
Orbital Stations OXP puts into operation a network of stations, moving on circular orbits.
All stations in the network have specific roles and markets.
Kiota class stations from WildShips OXP (author Thargoid) were used as prototypes for my orbiters. Kiota stations have a modular design, suitable for assembling custom configurations. These stations have reach-through axial docking well, allowing easy closing and docking from a six o’clock chasing position. And these stations have a pretty looking appearance. Nice job, Thargoid!
It is technically possible to adjust each orbiter velocity individually to simulate orbital periods as a function of planet mass and orbit radius, but I have no plans to implement such an idea. The escape velocity in our Solar system is 2.38 km/s for Moon and 59.5 km/s for Jupiter – a 25x ratio. All orbiters have H = 0.5 R circular orbits, so orbital velocities will be in the same 25x ratio. Setting the orbital velocity of a jovian orbiter to 200 m/s to allow an Adder or Boa to dock with station will have 8 m/s for the lunar orbiter – a barely noticeably movement. So I decided to sacrifice accuracy for fun. All orbiters have the same visible orbital velocity of 50 m/s.
Features
Orbital Stations implemented:
- KHS-2R
- KHS-4R
- KHS-8R
Main stations in high tech systems. Same configuration as the original ring-habitat stations in Wild Ships OXP, but with different seeding criteria. Stationary (not moving) stations.
- KOS-RJ Jovian research orbiter
- KOS-RM Martian research orbiter
- KOS-RT Terran research orbiter
- KOS-RS Superterran research orbiter
These Research orbital stations occur in high-tech systems with stable governments and high GNP. All research orbiters except the Jovian orbiter are based on the same configuration.
- KOS-M
A mining complex in a heliocentric orbit. Located in high-tech systems with stable governments and high GNP.
- KOS-P
An orbital plant orbiting a large moon of the main planet. Located in most advanced high-tech systems with stable governments and high GNP.
All stationary KHS stations have the roles of main system station (shipyard etc) with the usual default system market. KOS orbiters have custom markets, adjusted individually for every type of station.
Dependencies and conflicts
Required OXP: Planetary System This OXP uses planets from Planetary Systems OXP as destination points for station spawn. If you have Planetary Systems missing, Orbital Station OXP still try to spawn stations but results may be negative or logically flawed (for example, you should have no research stations orbiting gas giants if you don't have at least one gas giant in the system!).
The stations used are modified Kiota stations from Wild Ships OXP (author - Thargoid). Orbital Stations and Wild Ships use different station roles and seeding scripts, so in theory Orbital Stations should not conflict with Wild Ships. The only possible issue will be shared resource files: if Wild Ships will be released with updated resource files, old files from Orbital Stations can conflict new ones from Wild Ships. So to avoid possible clashes original resource files from Wild Ships were renamed and references were updated. Main orbital stations KHS completely replace the old Torus station. Remove Tori.oxp from AddOn folder if you have one to see the new stations!
This package's minimum requirement is Oolite 1.82.
Credits
- Station models, shaders and textures are renamed files from Wild Ships OXP (author - Thargoid). Specifications of stations are readjusted.
- Algorithm of seeding stations based on Stations for Extra Planets OXP (author - spara).
- Algorithm of orbital movement based on Satellite OXP (author - Rorschachhamster).
- Station market saver script tightly based on PlanetfallMarketSaver (author - SMax).
- Help of commander vasig in heavy testing of this OXP was and will be invaluable!
License
This OXP is released under the Creative Commons Attribution - Non-Commercial - Share Alike 3.0 license. You are free to use and distribute this OXP on non-commercial basis. Rebundling of this OXP within another distribution is permitted as long as it is unchanged. Any mods/derivatives of this OXP must be distributed under another names. The license information (either as this file or merged into a larger one) must be included in the OXP.
Version history
- 17.06.2020 - Version 2.7.0 Code edited again to synchronise with updated Planetary Systems OXP.
- 15.02.2019 - Version 2.6.0 Renamed original resource files from Wild Ships and updated appropriate references.
Code refactoring to synchronise with changed file names.
- 10.02.2019 - Version 2.5.2 Edited manifest.plist
- 10.02.2019 - Version 2.5.1 Converted to OXZ.
- 01.01.2019 - Version 2.5 Station market saver script refined to support redefined station roles.
- 21.06.2018 - Version 2.4 Code edited to synchronise with updated Planetary Systems OXP.
KOS RT stations divided onto 3 subclasses to adopt advanced planet classification.
- 09.05.2018 - Version 2.3 Code edited to satisfy OXP Standards recommendations.
Code adopted to redefined Planetary Systems planet database.
- 25.10.2017 - Version 2.2 Code improvement - kill delay timer after stations seeding.
- 31.08.2016 - Version 2.1 Station market saver script added.
- 27.07.2016 - Version 2.0 Kiota ball turret weapon range reduced from 7500 to 7200 m to fix too high range error.
- 16.07.2016 - Version 1.9 Seeding code rewritten to adopt Planetary Systems and Moons extended set.
- 05.01.2016 - Version 1.8 A bit randomness in orbiters seeding condition added.
- 30.11.2015 - Version 1.7 All orbiters max flight speed decreased to 50 to allow emergency docking in case of fuel depletion.
- 25.09.2015 - Version 1.6 KOS-M and KOS-P market slightly readjusted.
- 04.07.2015 - Version 1.5 KOS-M orbital mine complex puts into operation.
Station seeding restricted to stable systems with high GNP.
- 22.06.2015 - Version 1.4 Rebalanced markets.
- 19.06.2015 - Version 1.3 Station markets rewritten completely for Oolite 1.82.
More strict rules for jovian and martian orbiter: no more these stations in low tech systems.
- 17.12.2014 - Version 1.2 Fixed Oolite 1.80 specific problem with seeding of martian KOS-RT station (planet radius instead texture is used now to find Mars)
- 30.11.2014 - Version 1.1 Price to upgrades in orbital plant (KOS-P station) increased from 0.8 to 0.9 of main equipment price.
- 21.05.2014 - Version 1.0 Scripts optimised to use global function library.
Fixed bug in selecting target planet algorithm.
- 18.05.2014 - Version 0.9 Seeding of martian station KOS-RT improved to adopt changes in Planetary Systems planet texture names.
- 30.04.2014 - Version 0.8 Seeding of KOS-P station refined to avoid interference with Moons.oxp.
- 12.03.2014 - Version 0.7 Fixed bug in scripts - test for interstellar space refined.
- 10.03.2014 - Version 0.6 Main geostationary stations KHS-2R/4R/8R puts into operation.
- 04.03.2014 - Version 0.5 KOS-P orbital factory puts into operation.
New shaders from Wild Ships OXP integrated.
- 18.02.2014 - Version 0.4 Fixed bug in shipdata.plist (missing AI.plist link for martian station).
Defence mode in AI implemented (still need refining yet!).
- 15.02.2014 - Version 0.3 Seeding algorithm refined. Stations seeds with 5 s delay after launch from main station or entering new system.
Compatibility with Wild Ships OXP improved.
- 08.02.2014 - Version 0.2 Structure of OXP rewritten to adopt multiple stations support.
KOS-RT research station puts into operation. shipdata.plist refined to fix escaping Kiota main stations.
- 07.02.2014 - Version 0.1 Initial release.
KOS-RJ research station puts into operation.
Links
- Bulletin Board Discussion
- Strangers World