In-flight communication
Posted: Tue Feb 20, 2007 6:21 am
I don't know if anybody else has yet had this wish. I mentioned it in one of the threads in the general discussion, but there was no response to it:
It would be very cool and give a lot of opportunities for scripting missions, if the in-flight-communication in Oolite could be enhanced. Right now the player can receive incoming messages from other ships, like distress messages or specific messages scripted in an OXP, but he can't react to them or send messages himself.
Why do I suggest this? Because right now the only way of passing information to a player is the mission screen, which is only accessible when docked. But imagine the rich possibilities of interaction we would get if a mission ship could approach the player right at the witchpoint beacon (or anywhere else) and send a message to his ship; and the player could react right there, accepting or declining an offer, reacting to or ignoring a call for help, thereby setting mission variables that influence the scenario from that point onwards. A single pirate could demand surrender and if the player refuses other pirates could pop up out of nowhere (with the "invisible escorts"-trick, mentioned in another thread).
It doesn't stop there. The player himself could send a message to the ship he is targeting, asking for help or for an information, demanding surrender and the ejection of cargo, and the receiving ship could react in one way or the other. If attacked the player could send a distress call to other ships, these would--based on a chances-calculation in their AI--come for help or not. If trapped in witchspace the player could ask another present ship for help, this would approach him and transfer the amount of fuel needed to reach the closest planet into his tanks--for a hefty payment, of course (AI-methods for transferring fuel to the player and collecting money from him are already there!). This one would also be nice the other way round: The player accepting the distress-call of a NPC-ship and selling fuel to it--but be careful that there is enough fuel left in your tanks!
How could it be done? There could be a comms screen in in-flight-modus (like the one that now stores your received messages), that pops up every time the player receives or wants to send (via a key) a message. It might be worth considering to pause the game while the screen is visible, but it could also (perhaps better) be integrated in the HUD. Then the player probably wouldn't answer his calls while busy in fight, which is quite realistic. The player would answer incoming messages analogous to the setMissionChoices-method.
Sending messages could work similarly, by giving a predefined set of choices: Hail Ship / Ask for Help / Exit Comms Screen. The first one would just be an exchange of greetings, in which the NPC-ship could send back to the player a randomly generated information from planetinfo; something along the line of "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." Things like that, adding more flavour to the game. The "Ask for Help"-option would be understood by the engine as "help in fight" while being attacked, and answered accordingly by the addressed ship. It would be understood as "sell me fuel" when being short of fuel in interstellar space, and answered accordingly. And it would be answered by something like "You are in no trouble, Commander." when in none of the above mentioned states. When targeting the attacker during fight the coices would be slightly different: Hail Ship / Beg for Mercy / Exit Comms Screen. The first one being answered by an curse (or not at all), the second one answered by the demand of paying a ransom to the attacker and/or eject cargo. If the player would meet the demand (another choice) the attacker would cancel the attack, if not he would continue more furiously. For the next "Beg for Mercy"-message he would of course raise the ransom. Of course OXPs could script another set of choices when contacting a specific mission ship.
I should mention that none of this really has been born in my own mind. I took it from the games of the Escape Velocity-series that I played a lot before discovering Oolite. But, hey, if you have to steal somebody's ideas you should steal the good ideas. And IMHO this is a good idea, and it would add a lot to the Ooniverse.
So, everybody: What say you?
It would be very cool and give a lot of opportunities for scripting missions, if the in-flight-communication in Oolite could be enhanced. Right now the player can receive incoming messages from other ships, like distress messages or specific messages scripted in an OXP, but he can't react to them or send messages himself.
Why do I suggest this? Because right now the only way of passing information to a player is the mission screen, which is only accessible when docked. But imagine the rich possibilities of interaction we would get if a mission ship could approach the player right at the witchpoint beacon (or anywhere else) and send a message to his ship; and the player could react right there, accepting or declining an offer, reacting to or ignoring a call for help, thereby setting mission variables that influence the scenario from that point onwards. A single pirate could demand surrender and if the player refuses other pirates could pop up out of nowhere (with the "invisible escorts"-trick, mentioned in another thread).
It doesn't stop there. The player himself could send a message to the ship he is targeting, asking for help or for an information, demanding surrender and the ejection of cargo, and the receiving ship could react in one way or the other. If attacked the player could send a distress call to other ships, these would--based on a chances-calculation in their AI--come for help or not. If trapped in witchspace the player could ask another present ship for help, this would approach him and transfer the amount of fuel needed to reach the closest planet into his tanks--for a hefty payment, of course (AI-methods for transferring fuel to the player and collecting money from him are already there!). This one would also be nice the other way round: The player accepting the distress-call of a NPC-ship and selling fuel to it--but be careful that there is enough fuel left in your tanks!
How could it be done? There could be a comms screen in in-flight-modus (like the one that now stores your received messages), that pops up every time the player receives or wants to send (via a key) a message. It might be worth considering to pause the game while the screen is visible, but it could also (perhaps better) be integrated in the HUD. Then the player probably wouldn't answer his calls while busy in fight, which is quite realistic. The player would answer incoming messages analogous to the setMissionChoices-method.
Sending messages could work similarly, by giving a predefined set of choices: Hail Ship / Ask for Help / Exit Comms Screen. The first one would just be an exchange of greetings, in which the NPC-ship could send back to the player a randomly generated information from planetinfo; something along the line of "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." Things like that, adding more flavour to the game. The "Ask for Help"-option would be understood by the engine as "help in fight" while being attacked, and answered accordingly by the addressed ship. It would be understood as "sell me fuel" when being short of fuel in interstellar space, and answered accordingly. And it would be answered by something like "You are in no trouble, Commander." when in none of the above mentioned states. When targeting the attacker during fight the coices would be slightly different: Hail Ship / Beg for Mercy / Exit Comms Screen. The first one being answered by an curse (or not at all), the second one answered by the demand of paying a ransom to the attacker and/or eject cargo. If the player would meet the demand (another choice) the attacker would cancel the attack, if not he would continue more furiously. For the next "Beg for Mercy"-message he would of course raise the ransom. Of course OXPs could script another set of choices when contacting a specific mission ship.
I should mention that none of this really has been born in my own mind. I took it from the games of the Escape Velocity-series that I played a lot before discovering Oolite. But, hey, if you have to steal somebody's ideas you should steal the good ideas. And IMHO this is a good idea, and it would add a lot to the Ooniverse.
So, everybody: What say you?