Re: The Oolite NPC ecosystem (and other questions)
Posted: Mon Sep 09, 2013 6:11 pm
Yes... that problem occured to me months ago when I was 'planning' something similar.cim wrote:Making them a destination is much more difficult...
For information and discussion about Oolite.
https://bb.oolite.space/
Yes... that problem occured to me months ago when I was 'planning' something similar.cim wrote:Making them a destination is much more difficult...
Sounds sensible ... dodgy clients aside, would it be possible to build in some sort of visual commentary on how safe a route is into the Advanced Navigational Array? Maybe colour-coded by an overall score based on the system types passed through? If Anarchy = 0, Feudal = 1, Multi-gov = 2, etc., then a low average score (total system score/number of systems) gives a red route, medium an orange route, and high a green route. I don't know what would constitute a low, medium or high average score, though ... 0, 1 or 2 = red, 3, 4 or 5 = orange, 6, 7 or 8 = green?cim wrote:Just keeping to indirect signalling for the most part I think is fine. Perhaps if rather than a risk level, the contracts had a "minimum Elite ranking" publicised. The player would have to decide based on other factors if the ranking was just the client being prudent about general piracy, or if there was a definite threat they were worried about.
I have been considering adding a colour setting to the ANA: press a key to cycle round {off, government, economy, tech level}. "?" isn't doing anything on that screen any more.Disembodied wrote:Sounds sensible ... dodgy clients aside, would it be possible to build in some sort of visual commentary on how safe a route is into the Advanced Navigational Array?
I have an idea for this: each contract defines a preferred station allegiance (with a very strong bias towards the station allegiance it was found at, and only considering stations which can generate those contracts). On arrival at the system, search for a station with that allegiance; if none is found, then just use the main station, but otherwise mark the station as a waypoint and add a message to notify the player. Could be a neat way to let the player find some out-of-the-way rock hermits, too.cim wrote:Making them a destination is much more difficult
You take the contract, obtain 100TC of Textiles one way or another, and take them to Xexedi in time, at which point someone buys them for a higher-than-usual price. No need to worry about what an appropriate deposit is, and adds an extra dimension to route planning in that the quickest route is not necessarily great if it goes through the wrong sort of systems. The payment bonus would vary with risk level, reputation, distance, and the level of natural variation of the good (market+6 is worth more for Textiles than Furs)Contract: 100TC of Textiles to Xexedi by 2084078. Pays local market rate + 6 credits
I think I like this idea - but what exactly do you mean by 'allegiance'?cim wrote:I have an idea for this: each contract defines a preferred station allegiance (with a very strong bias towards the station allegiance it was found at, and only considering stations which can generate those contracts). On arrival at the system, search for a station with that allegiance; if none is found, then just use the main station, but otherwise mark the station as a waypoint and add a message to notify the player. Could be a neat way to let the player find some out-of-the-way rock hermits, too.cim wrote:Making them a destination is much more difficult
This, approximately. In terms of the core game it'll just mean that contracts taken at rock hermits tend to have rock hermits as destinations; with OXPs it should mean the the destination is about as "shady" as the source.Cody wrote:I think I like this idea - but what exactly do you mean by 'allegiance'?
<nods in understanding> Cool!cim wrote:This, approximately. In terms of the core game it'll just mean that contracts taken at rock hermits tend to have rock hermits as destinationsCody wrote:I think I like this idea - but what exactly do you mean by 'allegiance'?
Might there be room for both sorts of contract? Perhaps the original, existing type could be called "shipment" contracts, and the new type could be "supply" contracts.cim wrote:One other thing I've been thinking of is cargo contracts...You take the contract, obtain 100TC of Textiles one way or another, and take them to Xexedi in time, at which point someone buys them for a higher-than-usual price. No need to worry about what an appropriate deposit is, and adds an extra dimension to route planning in that the quickest route is not necessarily great if it goes through the wrong sort of systems. The payment bonus would vary with risk level, reputation, distance, and the level of natural variation of the good (market+6 is worth more for Textiles than Furs)Contract: 100TC of Textiles to Xexedi by 2084078. Pays local market rate + 6 credits
Any thoughts? (Especially from people who take cargo contracts, of course)
I don't mind keeping the "shipment" ones on their own, if a sensible way can be found to balance the deposit charge.Disembodied wrote:Might there be room for both sorts of contract? Perhaps the original, existing type could be called "shipment" contracts, and the new type could be "supply" contracts.
I'd be wary of allowing the player to pay in instalments unless the contract was "payment on completion" with only a token payment (market rate or below) for partial completion. There's otherwise perhaps too much exploitable in taking on contracts you have no intention of completing so that you can get a Bloomberg Market's style price boost much more reliably.Disembodied wrote:It might even be possible to make "supply" contracts open to players with smaller ships: a Cobra III could take on the above deal if the 100TC of Textiles could be delivered, by a deadline, in instalments.
I say go for option 1: make the shipments "special cargos" with only one possible destination. Like you say, option 2 is kind of pointless as a contract! Plus, this also allows players to take "special cargos" that could, on paper anyway, include slaves, narcotics, or firearms, without harming their legal status - because presumably these shipments would be licensed. There might need to be a way to eject special cargos though, if a player feels compelled to abandon the contract. This might mean we need a new cargo model (although possibly this could just be a bunch of cargo canisters bundled together).cim wrote:So: do we balance the contracts assuming that the player won't sell the original goods on the way - in which case I think it makes more sense to use DaddyHoggy's idea of the contracts being for items too big to fit in the standard pods so you can't sell them ... or do we balance the contracts assuming that the player will sell the original goods on the way - in which case why are we bothering giving them the goods in the first place?
I'd make it all or nothing, payment on completion only - with perhaps part-payment for late completion. There could be a penalty clause that knocks, say, 10% off the total for every day over the target time (or whatever seems suitable). After X days over the limit the contract is deemed to be abandoned and the player gets nothing, even if they eventually bring in the remaining cargo. But since this form of contract uses standard commodities, the player can just sell these on the open market.cim wrote:I'd be wary of allowing the player to pay in instalments unless the contract was "payment on completion" with only a token payment (market rate or below) for partial completion. There's otherwise perhaps too much exploitable in taking on contracts you have no intention of completing so that you can get a Bloomberg Market's style price boost much more reliably.Disembodied wrote:It might even be possible to make "supply" contracts open to players with smaller ships: a Cobra III could take on the above deal if the 100TC of Textiles could be delivered, by a deadline, in instalments.
That's the problem with cargo contracts -- it gets silly to be paid 150 Cr per TC for a 10 jump contract. Profitability cannot scale linearly with each additional jump.cim wrote:Looking at it a different way, a shipment contract ties up a lot of your hold for (e.g.) ten jumps. In a big ship you're not going to be able to use all that hold space for the top profit cargo, so let's say 15Cr/TC profit per jump. So a 10 jump contract for 100 TC should give around 10*100*15 = 15,000 credits gross profit - maybe a bit less at low rep, a bit more at average or high rep so that it's actually worth doing rather than hanging around the Isinor-Ensoreus route, for a couple of thousand net profit over the alternative.
Is this in? Because it could be really useful for my immersion project...cim wrote:I just realised - I never actually explained how I decided this would work. What do you think?cim wrote:set it up so that a few essential behaviours have comms messages attached (initiation of piracy, response to distress calls, police fines, etc.) but it's easy for OXPs to extend both the variety of messages and the set of behaviours with them attached.
The AI library (or OXP AI code) sets up broadcast requests, which take three parameters: a message key, a parameter object (which can either be a dictionary, or a ship which is converted to a standard dictionary), and a priority from 1 to 4
Priority 1: always sent
Priority 2: sent unless this ship has sent a message (of any priority) in the last 10 seconds
Priority 3: sent unless this ship has sent or received a message in the last 10 seconds
Priority 4: sent unless this ship has sent or received a message in the last 60 seconds
This lets you set up messages to liven things up without flooding the comms channel in a big situation.
The key is then looked up in a global communication dictionary, according to the ship's "communications role" and "personality". The role is usually set in AI initialisation, though it can be changed later. The personality can be set at the same time (or later), but if you don't it will pick one at random from the list of personalities assigned to that role (biased towards the group leader personality, if there is one). This happens as:
1) role+personality
2) if not found, and role allows fallback, generic+personality
3) if not found, and personality allows fallback, role+generic
4) if not found, and both allow fallback, generic+generic
Whether fallbacks are allowed for a particular role or personality is up to the person setting them up. As I have it at the moment, most roles allow fallbacks, but the "thargoid" role doesn't. For testing I've just put a lot of messages on generic+generic, but for actual use you'd rarely want to put anything there.
So you could for example have: (key: role: personality)
Commence Attack: Escort: Generic -> "I've got the {target}"
Commence Attack: Escort: Military -> "Acknowledged. Intercepting {target} now."
Commence Attack: Generic: Pirate -> "Yaarrr! To Davy Jones Locker with ye, {target}"
If a non-empty string value is found for the key, it gets passed to expandDescription along with the parameters, and if that gets a non-empty string back from descriptions.plist, it gets sent as a comms broadcast.
Good point. This could apply to Lave, too (for some time), Lave being a starting point after all."Core" democracy/corporate state systems in Galaxy Chart 1 could be a little safer than any other Galaxy Chart, to give new players a little more security. Anyone who uses a Galactic Hyperdrive should be well-equipped. This extra safety may only last till a Galactic Hyperdrive is used...or the player indulges in piracy. It could be time-based too, so after a few weeks/months "things get worse"(tm) in-universe without the player doing anything useful. While this may be player-centric, we have a big problem with getting and keeping new players who often find docking to be a challenge and fighting pirates even harder. It won't change whether they've earned Elite status, if anything it may make Elite harder to get with fewer pirates to kill.
Set a cap so that hermits and only hermits cannot flip back over?Minerals are too plentiful at main stations at least on the rich industrial side. Rock Hermits would have "more", but they're set too high and flip over back through 0.
Very good point. Currently, there is little reason to trade except the "milk runs".If anything, rather than simply greatly reducing the profits between RI<->PA systems, change things around at the other systems. A Mostly Industrial system for instance pays poorly and has little worthwhile for sale currently, yet I'd expect such a system to have a much larger and active economy than a Poor Agriculture. Their demands might be for more computers that they appreciate and can immediately use than a Poor Agriculture. They might have (simple?) machinery for sale that an Agriculture-type desperately needs. A Rich Agriculture might have more Liq/Wines and Furs, but at higher prices than a Poor Agriculture. Better to be able to fill your Cobra 3's hold than to get a great price on only 1-4 TC of Furs. Food price range between RI and PA can be slightly larger, since it's so low-profit that it almost only matters to new players starting out. No freighter types can fill up on food without using cargo contracts.
That would go a great way towards solving the "10 Cr remaining" problem.Hmm ... it's verging on heresy but perhaps it would be worth introducing a low-value Industrial trade good?
Yes. DocumentationZireael wrote:Is this in? Because it could be really useful for my immersion project...
It's an interesting thing about Lave - it makes a decent starting system (I'm not sure there's a better one in Chart 1) because you can jump straight into the Leesti/Diso run which is a fairly safe way to earn money but nowhere near optimal for economies - but it is a Dictatorship and so has an above average level of danger itself.Zireael wrote:In the current 1.79-test, I found myself in the unpleasant situation of having spent 90 Cr of 110 Cr on computers which I then had to dump in order to pacify some pirates in LAVE. So yeah, I'm not a newbie - I just started over - but a newbie in such a situation would probably go "damn this, I'm gonna play something else"
My idea is - go with this. Require a piece of equipment similar to the Bounty Scanner OXP (and much more costly). Don't show rank for Harmless & Mostly Harmless. Actually, I might cook up an OXP tomorrow based on this, if I manage to understand the Bounty Scanner's code... (ie. how to modify names without conflicting with randomshipnames.oxp.You're right - a plethora of "Harmless" pirates would look odd ... maybe though it's possible to finagle this for the NPCs, though? Part of the reason it's harder for the player to progress up the rankings is because the player is usually fighting solo: pirates often hunt in packs, against solo ships, so it's maybe easier to get a kill rating as a pirate wingman without actually being as good a pilot. If things were fiddled to give most common pirates ranks from "Poor" to "Competent", with a scant few here and there rated "Dangerous" (with superior ships, equipment, and accuracy). "Deadly" and "Elite" NPCs could be left up to OXPs to provide. "Harmless" and "Mostly Harmless" pirates could be very rare, too, and usually found operating solo. Most bounty hunters would probably be "Above Average" or "Competent", too.