Page 7 of 11

Re: BroadcastComms MFD [Release]

Posted: Sun Jan 02, 2022 12:15 pm
by Cholmondely
Question.

I presume that the BroadcastComms MFD would not interact with Generation Ships due to differences in technology (and ditto for Aliens & Thargoids). But is this true?

Re: BroadcastComms MFD [Release]

Posted: Tue Jun 28, 2022 6:32 pm
by Cholmondely
We now have a new gaggle of personality ships which have been updated.

Refugee Adder
Missionaries
Boyracers


And some old ones

Hotrods
Racers OXP/Lane Legal Racers OXP
Navy ships (HIMSN, Galactic Navy, 249th Naval Reserve Wing OXP, etc.)


Plus Murgh's upcoming Iron Ass Volume 5

How do we best make the broadcast comms conversations fit these ships?

Updated versions of this OXP? Tweaking the new OXP's?

Should not the Missionaries deliver ecstatic, exultant, effervescing, exhilarated, euphoric and elongated eulogies to those who dare speak with them?

And how best manage the Death Comms?

And can we get Broadcast Comms to bug the station to tell us how far we have gotten in the docking queue?

Re: BroadcastComms MFD [Release]

Posted: Tue Jun 28, 2022 9:20 pm
by Old Murgh
Cholmondely wrote: Tue Jun 28, 2022 6:32 pm
Should not the Missionaries deliver ecstatic, exultant, effervescing, exhilarated, euphoric and elongated eulogies to those who dare speak with them?
That would be fun. But, not knowing enough the workings under the hood, I suspect the answer will have something to do with the more flexible java scripting solutions.

As I'm wrestling with making the AI.plists provide entertaining broadcasts, I do hit a lot of walls. Too advanced or too specific, (like my now-abandoned idea of 30 different Finnish clans proudly announcing their generation ship – silly when two minutes later it's a different clan) and the risk of repetition is too big. I resign for now to keep it simpler and more generic so it won't sound like a demented robot.

It would be great if advancements like mentioned above were made on that front though, without being too complex for us less code savvy to program.

Re: BroadcastComms MFD [Release]

Posted: Tue Jun 28, 2022 9:50 pm
by Cholmondely
Old Murgh wrote: Tue Jun 28, 2022 9:20 pm
Cholmondely wrote: Tue Jun 28, 2022 6:32 pm
Should not the Missionaries deliver ecstatic, exultant, effervescing, exhilarated, euphoric and elongated eulogies to those who dare speak with them?
That would be fun. But, not knowing enough the workings under the hood, I suspect the answer will have something to do with the more flexible java scripting solutions.

As I'm wrestling with making the AI.plists provide entertaining broadcasts, I do hit a lot of walls. Too advanced or too specific, (like my now-abandoned idea of 30 different Finnish clans proudly announcing their generation ship – silly when two minutes later it's a different clan) and the risk of repetition is too big. I resign for now to keep it simpler and more generic so it won't sound like a demented robot.

It would be great if advancements like mentioned above were made on that front though, without being too complex for us less code savvy to program.
There are 30-odd different generation ships in the oxp. I'm quite sure you could run your Finnish clan trick for one of them.

Remember:
szaumix wrote: Wed May 18, 2022 9:17 pm
However, I don't know if I said this to you in another thread or just thought it... the solution to filling the emptiness of open worlds is with crowdsourcing. I got the idea one time when I was adding to Broadcast Comms, I remember thinking, "why are there only ten responses here? There are hundreds of ways that the various flavors of person might express this!" -- which gave me the idea that developers should be making threads asking for mass contributions to fill the cavities of flavor and imagination in their projects. The lone developer is crippled by the fact that he must do everything himself, but as soon as it becomes a 5 man, 10 man, 50 man effort the increases are probably exponential.

Take any mod with a description, anything with goal or purpose or variety that is easily added to already existing code. Then imagine that not one (or two or three) developers, but FIFTY+ aegidian users had each thought up tens of variations of each subset of thing in that mod... suddenly the richness of the world explodes.

Re: BroadcastComms MFD [Release]

Posted: Tue Jun 28, 2022 10:52 pm
by Old Murgh
Cholmondely wrote: Tue Jun 28, 2022 9:50 pm
There are 30-odd different generation ships in the oxp. I'm quite sure you could run your Finnish clan trick for one of them.
Remember:
szaumix wrote: Wed May 18, 2022 9:17 pm
..Take any mod with a description, anything with goal or purpose or variety that is easily added to already existing code. Then imagine that not one (or two or three) developers, but FIFTY+ aegidian users had each thought up tens of variations of each subset of thing in that mod... suddenly the richness of the world explodes.
Those are inspiring words. I think part of that is to chip away at it in stages.
On a smaller scale, with all the skilled people that have since added to the stuff I did in 2004-06, as I'm playing with these Ironass oxps now I am enjoying so many smart contributions.

Re: BroadcastComms MFD [Release]

Posted: Tue Jun 28, 2022 11:40 pm
by phkb
Cholmondely wrote: Tue Jun 28, 2022 6:32 pm
How do we best make the broadcast comms conversations fit these ships?
At the moment, BCC attempts to define NPC ships as one of these things: hunter, pirate, thargoid, police, station or escapepod. If it can't find one of those to match, it will default to "npc". Adding a new option isn't difficult, but it does require a code change at the moment. I'll need to investigate whether it's possible to migrate this selection process into a method easily tweakable by other OXP's.

Re: BroadcastComms MFD [Release]

Posted: Tue Jun 28, 2022 11:46 pm
by Cholmondely
phkb wrote: Tue Jun 28, 2022 11:40 pm
Cholmondely wrote: Tue Jun 28, 2022 6:32 pm
How do we best make the broadcast comms conversations fit these ships?
At the moment, BCC attempts to define NPC ships as one of these things: hunter, pirate, thargoid, police, station or escapepod. If it can't find one of those to match, it will default to "npc". Adding a new option isn't difficult, but it does require a code change at the moment. I'll need to investigate whether it's possible to migrate this selection process into a method easily tweakable by other OXP's.
Or would it make more sense to let the oxp's do their own thing (if BCC were present, of course) and have a cut-off inside BCC preventing it from interfering?

Answer! in the name of St. Giles!

Image

BroadcastComms MFD

Posted: Sun Jul 10, 2022 2:23 pm
by Cholmondely
Next set of musings.

Phkb's & Zireael's set of communications currently revolve around the following set of 11:
Social:
Send greeting to target

Travel-related:
Requests for wormholes (broadcast ie. to all ships in range)

Combat-related:
Send distress message (broadcast ie. to all ships in range)

Send taunt to target

Issue threat to target

Offer bribe to target/Offer bribe to nearest attacker

Demand cargo from target

Keep away from my target

Surrender to target/Surrender to nearest attacker

Other:
Offer to rescue escape pod (only if fuel scoop is fitted)

Broadcast Comms mechanics:
Target last comms message


These strike me as being games-mechanics focused. Getting somewhere, winning/surviving a scrap or getting richer. This is good and fine.

But. Can we add to these in a way in which Oolite can handle things? I'm interested in more lore-based interactions. And more social ones.

0) Social chit-chat: "How are you?" "Is the Edible Poet any good in this system?" "Greetings Commander! Have you visited Lave and its famous tree grub?" or "Don't forget to visit [techlevel 14-planet]. You will get a lot of upgrades for your ship there." or "If you ever come to [random-planet], pass my greetings to my mother."

1) The most obvious is dear old Murgh's Refugee Adder - offering help - as an escort or maybe even in other ways too (asking: "do you need anything?", offering fuel? offering food/water? offering dosh? etc). And is it possible for the refugee adder to "remember" this if I encounter it again in the next system?

2) Another obvious area is the missionaries oxp - conversations with missionaries would be lore-based and very different in character. Could I express an interest in the Witchspace Lobster and then get some help from the decapodal delinquents?

3) Conversations with Generation Ships would again be different (and possibly illegal!). Offering to help (directions, maps, food etc - if in hold - SWEconomy helpfully adds water, oxygen & medicine to the list of commodities)

4) Reading through the older threads on this topic, other ideas appear.
- asking for information (about the next system, about rock hermits, about local piracy/thargoid attacks)
one presumes that one can warn that the rock hermit is piratical/neutral/mining, but can one also give clues as to its location? ie In the main traffic lane? Or near the sun?
Local piracy/Thargoid attacks is measured by both Thargoid's Welcome Mat and by the Deeper Space HUD's "Current Risk Notifier"
- asking for a fuel transfer if marooned in witch-space

Re: BroadcastComms MFD

Posted: Sun Jul 10, 2022 6:50 pm
by Old Murgh
Cholmondely wrote: Sun Jul 10, 2022 2:23 pm
Next set of musings.
But. Can we add to these in a way in which Oolite can handle things? I'm interested in more lore-based interactions. And more social ones.

0) Social chit-chat: "How are you?" "Is the Edible Poet any good in this system?" "Greetings Commander! Have you visited Lave and its famous tree grub?" or "Don't forget to visit [techlevel 14-planet]. You will get a lot of upgrades for your ship there." or "If you ever come to [random-planet], pass my greetings to my mother."

1) The most obvious is dear old Murgh's Refugee Adder - offering help - as an escort or maybe even in other ways too (asking: "do you need anything?", offering fuel? offering food/water? offering dosh? etc). And is it possible for the refugee adder to "remember" this if I encounter it again in the next system?

2) Another obvious area is the missionaries oxp - conversations with missionaries would be lore-based and very different in character. Could I express an interest in the Witchspace Lobster and then get some help from the decapodal delinquents?

3) Conversations with Generation Ships would again be different (and possibly illegal!). Offering to help (directions, maps, food etc - if in hold - SWEconomy helpfully adds water, oxygen & medicine to the list of commodities)

4) Reading through the older threads on this topic, other ideas appear.
- asking for information (about the next system, about rock hermits, about local piracy/thargoid attacks)
one presumes that one can warn that the rock hermit is piratical/neutral/mining, but can one also give clues as to its location? ie In the main traffic lane? Or near the sun?
Local piracy/Thargoid attacks is measured by both Thargoid's Welcome Mat and by the Deeper Space HUD's "Current Risk Notifier"
- asking for a fuel transfer if marooned in witch-space
Surely the possibilities are vast, though I'm not the one with the coding answers. But in the case of refugees "remembering" stuff, considering how simply the old basic scripts could alter a "mission status" or add to the tally of a counter, I would guess that isn't too advanced.

As far as the template I'm in the process of being aided to amass, it feels like a couple of dialogue lines should easily be snuck in for specific dedicated roles, but system-specific advice and guidance to riches seem like they have to be treated more like missions. For a "light" system-bound OXPs like Lave I see some fun possibilities.

Or else they be more general, and then we're back to conversations that could take place anywhere. Like you mention, the various missionaries and Scrubbers (but illegal? :shock: ) have this potential, which I'll see if I can manage.

There's also the possibility of "Ask old-timer ship for a piece of advice". A lot of the material from your "Hints" could be made into educational inter-shipComms stuffing. :wink:

Re: BroadcastComms MFD

Posted: Sun Jul 10, 2022 7:02 pm
by Cody
Cholmondely wrote: Sun Jul 10, 2022 2:23 pm
- asking for a fuel transfer if marooned in witch-space
Que?

Re: BroadcastComms MFD [Release]

Posted: Sun Jul 10, 2022 7:23 pm
by Cholmondely

Re: BroadcastComms MFD [Release]

Posted: Sun Jul 10, 2022 7:40 pm
by Old Murgh
Cholmondely wrote: Sun Jul 10, 2022 7:23 pm
The illegal Generation Ships are the Draco Caeles version:
Yes I had a feeling you weren't referring to my goody-two-shoes generation dinghies.

Re: BroadcastComms MFD [Release]

Posted: Mon Jul 11, 2022 2:03 am
by phkb
What has become clear in the Iron Ass OXP thread, and here, is that there are several limitations in the current implementation of BCC. It's all very well for the author to generate JS code in abundance, but it's not necessarily everyone's cup of tea. The complexities in the current methods create a huge barrier to entry.

Also, there are limits based on the assumptions I made when developing the tool. I wanted it to be a general purpose tool, but I've ended up locking in the general purpose to the point where it's quite hard to override with custom responses and settings.

In it's current state, BCC is "okay" for a single transmission and single response. That is, you send a message to a ship, and you get a response from that ship. But, coding up a full conversation tree is a daunting prospect with the current toolset.

So, here's what I'm planning.
1. No change to the existing interfaces. We don't want to break anything already in play.
2. Start using "script_info" in the shipdata.plist entry for a ship, to allow at least these things to be overridden:
(a) Disabling of default messages
(b) Simple customisation of default messages.

Thinking on the fly, here's what I imaging it would look like:

Code: Select all

{
	"myship" = {
		...
		... various shipdata entries
		...
		script_info = {
			"bcc_disable_defaults = (2,3,4); // this will disable message types 2, 3 and 4 for this ship type.
			"bcc_custom_defaults = {
				"1" = "[my_custom_greeting]"; // instead of using the default greeting descriptions.plist lookup, use "[my_custom_greeting]"
			};
		};
	};
}
That should make it easier to override the current messages with your own responses, and disable existing ones that don't make sense for your ship.

There are still limitations here: if your ship can be spawned in multiple different roles (eg if "roles" has multiple roles defined like "trader(0.5) pirate(0.2)") it might result in some confusing scenarios. However, those limits could be worked around by separating the shipdata entries in those scenarios.

The next thing I'd like to address is how to better implement conversation trees, with as little JS as possible. Here's my first pass at this:

Code: Select all

	script_info = {
		"bcc_custom_messages = {
			"seek_advice" = {
				initial_state = "visible"; // whether the player will be offered this option immediately;
				display = "Seek advice"; // what to display in the MFD
				delete_on_transmit = yes; // indicates whether message option should be removed from MFD after use
				transmit = "Do you know where there are good prices available?"; // what to transmit when the option is activated
				post_transmit_function = "worldScripts.MyWorldScriptName.$transmit"; // function to call after transmitting the message (optional)
				delay = 2; // how long to delay after transmission
				reply = "Anywhere."; // the message that will be sent back to the player.
				post_reply_function = "worldScripts.MyWorldScriptName.$reply" // function to call after sending the reply (optional)
				post_reply_show_messages = ("complain", "thanks"); // messages to make visible after the reply is received
			};
			"complain" = {
				initial_state = "hidden";
				... message specs similar to "seek_advice"
			};
			"thanks" = {
				initial_state = "hidden";
				... message specs similar to "seek_advice"
			};
		};
	};
"seek_advice", "complain" and "thanks" would act as identifiers. Initially, the "seek_advice" message would be the only one available. After it's transmitted, and the reply is received, the "complain" and "thanks" messages would become available. They could have additional messages to display, allowing for deep conversations to be built. They could even be made circular, if a message chose to re-display a previous message. The messages could also in the form of "[my_transmit_message]", that would be a lookup in descriptions.plist, and so allow for a number of variations with one entry.

There are also hooks in place, with the "post_transmit_function" and "post_reply_function" properties, that allow for JS functions to be called, which could be useful for tracking state. The ship object would be passed to these functions as a property, along with the ID of the message (ie "seek_advice"), so the function could know where in the tree the player is up to.

I think that covers the basics, of providing a non-JS method of controlling message trees, while still allowing for some deep and complex scenarios. And the benefit of using shipdata.plist is that some ship types can be updated with a secondary OXP that adds these things to it, without needing to change the original OXP, using "shipdata-overrides.plist".

Let me know what you think.

Re: BroadcastComms MFD [Release]

Posted: Mon Jul 11, 2022 5:17 am
by Old Murgh
phkb wrote: Mon Jul 11, 2022 2:03 am
Let me know what you think.
As my shell-shock is still very fresh, I think this seems like a really wonderful step toward ease and freedom of use. Clear and logical. A real layperson loveletter. :D

I am curious, the "hooks", would this allow for a relatively direct opening to somewhat more intricate consequences of dialogue outcomes, like say hand over to switching an AI, setting a mission_variable, spawning a package or ..becomeExplosion?

At any rate, looks super promising.

Re: BroadcastComms MFD [Release]

Posted: Mon Jul 11, 2022 5:41 am
by phkb
Old Murgh wrote: Mon Jul 11, 2022 5:17 am
I am curious, the "hooks", would this allow for a relatively direct opening to somewhat more intricate consequences of dialogue outcomes, like say hand over to switching an AI, setting a mission_variable, spawning a package or ..becomeExplosion?
Short answer: yes.

Longer answer: That's certainly the intention.