Page 6 of 13

Posted: Mon Nov 23, 2009 11:55 am
by Commander McLane
In order to help future contributors, here's a short overview of the internal workings:

All personalities have one basic AI, "personalitiesAI.plist", and a common ship script, "personalities-ship-script.js", which modifies their behaviour, starting from three basic behaviours:
  1. cruiser: like a trader, just flies from witchpoint to planet, not looking for fights;
  2. hunter: like a bounty hunter, also cruising between witchpoint and planet, but scanning for and attacking criminals within certain parameters;
  3. privateer: like a pirate, also cruising between witchpoint and planet, but scanning for and attacking other ships within certain parameters, if there is no police nearby.
The modifications are triggered by certain keys, which are set in each personality's shipdata.plist entry, specifically in the "script_info" dictionary.

Here is a complete list of the available keys, their possible values and meaning:

Code: Select all

Key                     value         meaning

attacked                "flee"        lets the ship flee with injectors immediatly if attacked
attackProbability       0 -- 1        chance of finding the ship's prey (see below) with each scan
cargoType               role          special cargo carried by the ship (e.g. "missilepod")
displayName                           the character's human readable name
energyDown              "flee"        lets the ship flee with injectors, if its energy is down to 1/2
                                      (= shields depleted)
                        "jump"        lets the ship jump out, if its energy is down to 1/2 (=
                                      shields depleted)
                        "cloak"       lets the ship only use its cloak if its energy is down to 1/2
                                      (= shields depleted) (will only work starting from Oolite 1.74)
energyLow               "flee"        lets the ship flee with injectors, if its energy is down to
                                      1/4
                        "jump"        lets the ship jump out, if its energy is down to 1/4
fuelstationProbability  0 -- 1        chance of using the fuel station (if any), if spawned at
                                      witchpoint
launch                  "jump"        lets the ship jump out of the system, after launching from
                                      the main station
                        "stay"        lets the ship set course to the witchpoint, after launching
                                      from the main station
                                      (if undefined, the behaviour is randomized)
maxCargo                integer       the maximum number of cargopods spawned if the ship dies
miningProbability       0 -- 1        chance of finding asteroids with each scan (only if no prey
                                      found) and mining them
name                                  internal identifier for the character's chatter
prey                    "traders"     (privateers only) will only attack ships which are pirate
                                                        victims
                        "everybody"   (privateers only) will attack any ship
                        "offenders"   (hunters only) will attack any ship with a bounty above a
                                                     certain treshold
                        "thargoids"   (hunters only) will only attack Thargoids, not pirates
preyLimit               integer       (hunters only) bounty treshold for offenders (or fugitives)
                                                     to be attacked
sunskimProbability      0 -- 1        chance of going to the sun first, if spawned at witchpoint
More keys may be added, if more triggers and behaviours are requested.

EDIT: added another value which I originally forgot ("cloak" for energyDown)

Posted: Mon Nov 23, 2009 2:44 pm
by JensAyton
Commander McLane wrote:
The modifications are triggered by certain keys, which are set in each personality's shipdata.plist entry, specifically in the "script_info" dictionary.
Woohoo! I love it when features get used. :-)

Posted: Mon Nov 23, 2009 4:01 pm
by Commander McLane
Ahruman wrote:
Commander McLane wrote:
The modifications are triggered by certain keys, which are set in each personality's shipdata.plist entry, specifically in the "script_info" dictionary.
Woohoo! I love it when features get used. :-)
Do you think I request new features just for fun? :wink: (Although this one was not a request of mine. I just wanted to put it to some use. :) )

Oh, and by the way: When may I expect your use of this feature (Read: your personality)? :D

Posted: Tue Nov 24, 2009 11:46 pm
by pagroove
So Commander McLane. How dare you shoot a poor Strelka shuttle out of the sky in an Imperial Courier. I'm no match for your hardhead without any witchspace fuel :D

LoL this OXP is fun. I was awaited by You.

Posted: Wed Nov 25, 2009 6:34 am
by Commander McLane
Yesterday I blew Frame out of the sky (sorry, Frame :oops: ), and later Svengali came for his revenge. (Blew him out of the sky, too. :oops: )

I don't like to slap myself on the shoulder, but yes, this OXP is fun. :lol: :lol: :lol:

Posted: Wed Nov 25, 2009 4:56 pm
by Frame
Commander McLane wrote:
Yesterday I blew Frame out of the sky (sorry, Frame :oops: ), and later Svengali came for his revenge. (Blew him out of the sky, too. :oops: )

I don't like to slap myself on the shoulder, but yes, this OXP is fun. :lol: :lol: :lol:
I hope My end ended with a citation ;-).

Posted: Fri Nov 27, 2009 6:58 am
by Commander McLane
More fun: I just took on a large group of pirate in a collaborative effort with Disembodied to protect a Boa and its escorts:

Image

The battle was heroic. However, his last broadcast indicates that the pirates finally got him. But not before he had sent a couple of them into the dark zone! And I am now going to finish off the survivors. :twisted:

Posted: Fri Nov 27, 2009 8:51 am
by DaddyHoggy
:lol: :lol: 8)

Posted: Fri Nov 27, 2009 10:16 am
by Disembodied
8) :D

Posted: Fri Nov 27, 2009 12:09 pm
by drew
When is a v1.0 coming out? 8)

Cheers,

Drew.

Posted: Fri Nov 27, 2009 12:15 pm
by OneoftheLost
Oh man, when I get back I really need to try this out. Sounds fun. Be good to see some other commanders out there.

Posted: Sat Nov 28, 2009 3:29 pm
by pagroove
Could this be extended with non-forum NPC's. So just random NPC's only a little chattier. Now the chance that you meet a forum member is fairly high.

Posted: Sat Nov 28, 2009 4:37 pm
by CptnEcho
pagroove wrote:
Could this be extended with non-forum NPC's. So just random NPC's only a little chattier. Now the chance that you meet a forum member is fairly high.
"Personalities Extended"? Oh gawsh no I hope not! :roll:

Wouldn't it be easier to reduce the chances of encountering a Personalities-OXP ship versus the ratio of ships populated by the game engine and other OXP's?
Also, the Personalities-OXP (as I understand it) is going to have updates and additional personality 'packages' to increase the variety of characters encountered.

Perhaps these approaches will satisfy you?

Posted: Mon Nov 30, 2009 7:46 am
by Commander McLane
Selezen's original suggestion was that there should be a personality in practically each system. Of course, as long as there are only a good dozen in the mix, that may get fairly repetetive.

I am still experimenting with the random chances, though. In the preview version there is a 65% chance that a personality is spawned in each system (which still doesn't necessarily mean that you actually meet the guy). I have already thought about lowering that value.

Another way is, of course, to increase the number of personalities, so that the probability of meeting the same guy over and over again decreases. Basically that depends on the forum members submitting their entries. So: just do it! :wink:

Another idea is to throw non-forum members into the mix. Drew has already asked whether he could also include some of his fictional characters, and I think there is no reason why we shouldn't meet some of them as well. So, as far as I am concerned, if you want one of your fictional characters included, just make something up for him (this goes mainly to our writers; I think they should have the first say about the characters in their stories).

Posted: Mon Nov 30, 2009 9:10 am
by Selezen
How about putting a few real people in there? Or people from canon sources?

Examples:
David Braben
Ian Bell
Robert Holdstock (RIP) :cry:
Alex Ryder

...and so on.