Page 5 of 6

Re: Docking Computer

Posted: Wed Mar 11, 2015 4:17 pm
by Smivs
<nods>
I'll often engage the DC as soon as I'm within the Aegis, then sit back and relax with a nice cup of tea - made earlier as the tea-maker doesn't work when the DC is active.
It's often nice ro relax after a long, hard flight. :wink:

Re: Docking Computer

Posted: Wed Oct 14, 2020 11:36 pm
by Cholmondely
Problem with Docking with Moveable Objects:
  • Deep Space Dredger: c works some of the time - the rest of the time it takes a veritable eternity as it sends your Cobra whizzing off to the far end of the galaxy; C never works
  • SLAPU/ZGF: c works; but C does not
  • Luxury Liners: yet to try c; but C works just fine
Is there a reason for this rather haphazard state of affairs? And how can I fix it?

Incompatibility with Music:
The music (Strauss's Blue Danube) is utterly unsuitable for the action of the Docking Computer. The Blue Danube is music for a Viennese Waltz, where the partners dance holding each other tightly for the duration of the piece, never breaking the embrace. https://en.wikipedia.org/wiki/Waltz#/me ... 07690d.gif

This is unlike the more modern Waltz where the gentleman occasionally twirls/spins his partner, or can dance loosely in steps such as the weave. https://youtu.be/o6CHxrWAB_A - see about 4 mins 54 seconds into the video (at the end)

But the Docking Computer often sends one's craft around the Dock, and often with one's back to the Dock. This sort of movement is not seen in either variety of the waltz - it is seen in Latin American dance such as the Rhumba or the Cha-cha. https://youtu.be/syXqn9yx0nw

I would humbly suggest that either the terpsichorean twists engendered by the Docking Computer require urgent pruning by our daring, dedicated and devoted developers - or that the music requires changing to something with a more Latin lilt.

Re: Docking Computer

Posted: Thu Oct 15, 2020 1:06 am
by dybal
I always assumed the Blue Danube was a reference to 2001 A Space Oddisey

Re: Docking Computer

Posted: Thu Oct 15, 2020 3:54 am
by phkb
dybal wrote: Thu Oct 15, 2020 1:06 am
I always assumed the Blue Danube was a reference to 2001 A Space Oddisey
It was, which Bell and Braben leveraged/paid homage to in the original Elite by having it play with the docking computer. Of course, my experience with the original was that it was quite likely to crash, which made the gentle rhythms of the music clash with the nail-biting last few seconds when you didn't know if you'd make it or not.

Re: Docking Computer

Posted: Thu Oct 15, 2020 5:09 am
by Nite Owl
Cholmondely wrote: Wed Oct 14, 2020 11:36 pm
Deep Space Dredger: c works some of the time - the rest of the time it takes a veritable eternity as it sends your Cobra whizzing off to the far end of the galaxy; C never works...
In order for the Fast Docking Computer (shift+c) to work the following code must be included in the station's or carrier's entry in shipdata.plist:

Code: Select all

 "allows_fast_docking" = yes; 
It might behoove you to make an in depth study of the HOW TO OXP page as you seem to have reached a point where The Dark Side is calling out to you. Do not worry, cookies are available. When first starting out on my never ending tweaking parade the list of plists that are a bit further down on that page proved invaluable. They give you access to an endless realm of possibilities. JavaScript and Materials and Shaders and all of the other stuff that make Oolite what it is are topics for later discussions. First learn the basics of the plists in an OXZ's Config folder and what they can and cannot do. Bookmark the HOW TO OXP page as you will be referring back to it quite often. My journeys there still occur almost daily.

Re: Docking Computer

Posted: Thu Oct 15, 2020 7:27 am
by Cholmondely
Nite Owl wrote: Thu Oct 15, 2020 5:09 am
Cholmondely wrote: Wed Oct 14, 2020 11:36 pm
Deep Space Dredger: c works some of the time - the rest of the time it takes a veritable eternity as it sends your Cobra whizzing off to the far end of the galaxy; C never works...
In order for the Fast Docking Computer (shift+c) to work the following code must be included in the station's or carrier's entry in shipdata.plist:

Code: Select all

 "allows_fast_docking" = yes; 
It might behoove you to make an in depth study of the HOW TO OXP page as you seem to have reached a point where The Dark Side is calling out to you. Do not worry, cookies are available. When first starting out on my never ending tweaking parade the list of plists that are a bit further down on that page proved invaluable. They give you access to an endless realm of possibilities. JavaScript and Materials and Shaders and all of the other stuff that make Oolite what it is are topics for later discussions. First learn the basics of the plists in an OXZ's Config folder and what they can and cannot do. Bookmark the HOW TO OXP page as you will be referring back to it quite often. My journeys there still occur almost daily.
Thank you for the tip, sir.

Is there anything that gives context? Such as what a plist actually is and how many different varieties there are and what they all do? I sneaked a peak at Wikipedia, and for a non-programmer such as myself it looked like an exercise in utter gobbledegook:
In the macOS, iOS, NeXTSTEP, and GNUstep programming frameworks, property list files are files that store serialized objects. Property list files use the filename extension .plist, and thus are often referred to as p-list files.
Property list files are often used to store a user's settings. They are also used to store information about bundles and applications, a task served by the resource fork in the old Mac OS.
Property lists are also used for localization strings for development. These files use the .strings or .stringsdict extensions. The former is a "reduced" old-style plist containing only one dictionary without the braces (see propertyListFromStringsFileFormat),[1] while the latter is a fully-fledged plist. XCode also uses a .pbxproj extension for old-style plists used as project files.
Would you happen to know of anything a tad less jargonised?

______________________________________________________________________________

I notice that the oxz's which I've transmogrified into oxp's still seem to work despite having manifest.plists rather than a requires.plist

I also notice that very few of the programming tools which people have mentioned in these hallowed pages seem to work on an AppleMac!

Re: Docking Computer

Posted: Thu Oct 15, 2020 9:49 am
by montana05
Cholmondely wrote: Thu Oct 15, 2020 7:27 am
Would you happen to know of anything a tad less jargonised?

I also notice that very few of the programming tools which people have mentioned in these hallowed pages seem to work on an AppleMac!
Try this one: .PLIST File Extension, basically similar information but explained for non-programmers as well.

.Category:Oolite scripting shows the available files Oolite is using.

Re: Docking Computer

Posted: Thu Oct 15, 2020 10:35 am
by Cholmondely
montana05 wrote: Thu Oct 15, 2020 9:49 am
Cholmondely wrote: Thu Oct 15, 2020 7:27 am
Would you happen to know of anything a tad less jargonised?

I also notice that very few of the programming tools which people have mentioned in these hallowed pages seem to work on an AppleMac!
Try this one: .PLIST File Extension, basically similar information but explained for non-programmers as well.

.Category:Oolite scripting shows the available files Oolite is using.
Thank You! That is much better than Wikipedia.

Re: Docking Computer

Posted: Wed Mar 24, 2021 1:34 pm
by Cholmondely
Nite Owl wrote: Thu Oct 15, 2020 5:09 am

Code: Select all

 "allows_fast_docking" = yes; 
This was the code Nite Owl gave above for "Viennese Waltz-free" docking with modern OXP dockables.

1/2) What about legacy script (as for BioSphere)?

Might it be:


<key>fast_docking</key>
<string>yes</string>
?



Here is the shipdata.plist for reference

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>

	<key>biosphere_dome_sub</key>
	<dict>
		<key>ai_type</key>
		<string>nullAI.plist</string>
		<key>energy_recharge_rate</key>
		<real>0</real>
		<key>forward_weapon_type</key>
		<string>WEAPON_NONE</string>
		<key>max_energy</key>
		<real>50</real>
		<key>name</key>
		<string>sphere-sub</string>
		<key>model</key>
		<string>sphere.dat</string>
		<key>roles</key>
		<string>sphere-sub-role</string>
		<key>thrust</key>
		<real>0</real>
		<key>frangible</key>
		<false/>
		<key>rotational_velocity</key>
		<!-- Frist number speed higher the slower - rotate around Y axis -->
		<string>25 0.0 0.342 0.0</string>
	</dict>
	
	<key>biosphere</key>
	<dict>
		<key>ai_type</key>
		<string>stationAI.plist</string>
		<key>bounty</key>
		<integer>0</integer>
		<key>energy_recharge_rate</key>
		<real>25</real>
		<key>forward_weapon_type</key>
		<string>WEAPON_NONE</string>
		<key>fuel</key>
		<integer>70</integer>

		<key>has_ecm</key>
		<true/>
		<key>has_shield_enhancer</key>
		<true/>

		<key>max_energy</key>
		<real>10000</real>
		<key>max_flight_pitch</key>
		<real>0</real>
		<key>max_flight_roll</key>
		<real>0</real>
		<key>max_flight_speed</key>
		<real>0</real>
		<key>thrust</key>
		<real>0</real>

		<key>max_missiles</key>
		<integer>0</integer>
		<key>missiles</key>
		<integer>0</integer>

		<key>model</key>
		<string>bs_base.dat</string>
		<key>name</key>
		<string>Bio-Sphere</string>
		<key>roles</key>
		<string>biosphere carrier</string>

		<key>beacon</key>
		<string>B-code</string> 
		<key>beacon_label</key>
		<string>BioSphere</string>
		<key>scanClass</key>
		<string>CLASS_STATION</string>

		<key>subentities</key>
		<array>
			<string>biosphere_dome_sub 0 0 -10 1 0 0 0</string>
			<string>dock -0.1 -116.5 38.2 1 0 0 1</string>

			<string>*FLASHER* 0 266 -16 40 0.5 0.5 50</string>
			<string>*FLASHER* 0 -418 0  40 0.5 0.5 50</string>

			<string>*FLASHER* -181 -116 188 20 0.5 0.5 20</string>
			<string>*FLASHER* 181 -116 188 20 0.5 0.5 20</string>

			<!-- Docking Cross -->
			<string>*FLASHER* -0.1 -116.5 38.2 40  1 0.5 10</string>
			<string>*FLASHER* -0.1 -103.5 38.2 60  1 0.25 5</string>
			<string>*FLASHER* -0.1 -129.5 38.2 60  1 0.25 5</string>
			<string>*FLASHER* 20.1 -116.5 38.2 60  1 0.25 5</string>
			<string>*FLASHER* -20.1 -116.5 38.2 60 1 0.25 5</string>
		</array>
		<key>frangible</key>
		<false/>
	</dict>

</dict>
</plist>
2/2) And ... which bit of the shipdata.plist tells Oolite that the bally thing is actually dockable in the first place?

Re: Docking Computer

Posted: Wed Mar 24, 2021 1:50 pm
by montana05
Cholmondely wrote: Wed Mar 24, 2021 1:34 pm
Nite Owl wrote: Thu Oct 15, 2020 5:09 am

Code: Select all

 "allows_fast_docking" = yes; 
This was the code Nite Owl gave above for "Viennese Waltz-free" docking with modern OXP dockables.

1/2) What about legacy script (as for BioSphere)?

Might it be:


<key>fast_docking</key>
<string>yes</string>
?


2/2) And ... which bit of the shipdata.plist tells Oolite that the bally thing is actually dockable in the first place?
Close enough,

Code: Select all

<key>allows_fast_docking</key>
<string>yes</string>
probably will work. :wink:

Regarding 2/2:

You need to assign a dock as a subentity, in shipdata.plist you have several ways:

in roles carrier or station
is_carrier is also possible
another way is to set scan_class to station

Since you are already in the twilight I am excited to wait for your first OXP :wink:

Re: Docking Computer

Posted: Wed Mar 24, 2021 2:05 pm
by Cholmondely
Hunh! As mentioned earlier this week, I can't even get Oolite to recognise the fact that it exists. Malacandra will have to wait a little longer for his piece to go up. I also want to put up Ganelon's Carver's Anarchy. I feel that both add depth to the Ooniverse, and that while reading them on an MDF is a pain, it should help advertise them as being worth looking at. I've still a couple of tricks up my sleeve, though, on the oxp manufacturing front!

Thank you for your help!

Re: Docking Computer

Posted: Wed Mar 24, 2021 2:13 pm
by montana05
Cholmondely wrote: Wed Mar 24, 2021 2:05 pm
Thank you for your help!
I really appreciate your work on the wiki, its brilliant. As mentioned in the past, if I can help (and see if :oops: ) I am happy to assist.

Re: Docking Computer

Posted: Sun Jan 07, 2024 8:14 pm
by hiran
I am trying to understand how the docking computer works. Blyme, I did not read this full thread - but it seems related to the docking computer.

First I tried to find docking computer logic at all. Seems it is contained in the vanilla game distributed over several files:
Partly in PlayerEntity, partly in ShipEntity. Partly in the dockingAI.plist script.

But nowhere I find the real algorithm how to approach the dock. Seems the dockingInstructions must be coming from somewhere else - a location that I have not yet found.

Re: Docking Computer

Posted: Sun Jan 07, 2024 8:51 pm
by Cholmondely
hiran wrote: Sun Jan 07, 2024 8:14 pm
I am trying to understand how the docking computer works. Blyme, I did not read this full thread - but it seems related to the docking computer.

First I tried to find docking computer logic at all. Seems it is contained in the vanilla game distributed over several files:
Partly in PlayerEntity, partly in ShipEntity. Partly in the dockingAI.plist script.

But nowhere I find the real algorithm how to approach the dock. Seems the dockingInstructions must be coming from somewhere else - a location that I have not yet found.
Is DockingAI relevant?

Re: Docking Computer

Posted: Sun Jan 07, 2024 10:28 pm
by hiran
Cholmondely wrote: Sun Jan 07, 2024 8:51 pm
hiran wrote: Sun Jan 07, 2024 8:14 pm
I am trying to understand how the docking computer works. Blyme, I did not read this full thread - but it seems related to the docking computer.

First I tried to find docking computer logic at all. Seems it is contained in the vanilla game distributed over several files:
Partly in PlayerEntity, partly in ShipEntity. Partly in the dockingAI.plist script.

But nowhere I find the real algorithm how to approach the dock. Seems the dockingInstructions must be coming from somewhere else - a location that I have not yet found.
Is DockingAI relevant?
Well spotted. Yes, it is definitely relevant although it looks like an almost verbatim copy of the dockingAI.plist that I had seen earlier. Without any further explanation there is no added value. Hooray, someone commented that it is an extremely complex job. That explains everything! :-)

Who knows how this works?