Pirates with huge bounties! Just say no!

An area for discussing new ideas and additions to Oolite.

Moderators: winston, another_commander

User avatar
Kaks
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 3009
Joined: Mon Jan 21, 2008 11:41 pm
Location: The Big Smoke

Pirates with huge bounties! Just say no!

Post by Kaks »

It's not actually my idea, but let's see if I captured the essence of it...

At the moment, if a ship with role 'pirate' is added automatically by the system populator, it gets a random bounty, instead of the specific one defined in the plist.
The specific bounty is assigned to a ship only if an OXP creates it 'manually'.

A novel idea would be to allow oxps to specify a fixed (high) bounty for ships with the generic role pirate. If there's a generic pirate with a big ship in the system, they're most likely up to no good, and it would be in everybody's interest to put a stop to them, and a high enough bounty will definetly get the attention of bounty hunters & police. Of course, these ueber pirates are going to be very rare indeed.



It sounds almost like a good idea, and in theory something like auto_bounty=no (along the lines of auto_ai=no) could be introduced for 1.73. However, there's a couple of things that make me ...well... think twice:

1. An automatically populated system won't have that many patrol ships, and if there's a really strong pirate ship out there, with a really big bounty on it. Well, all you get is cops going 'splat' against it. Having a low bounty on those huge pirates guarantees the survival of a few cops in that system. Even if you have a really big police ship, there's no guarantee that a big cop will be generated automatically in the same system as a big pirate. Chances are that it won't. The engine isn't geared for it, and to modify it to take into account all possible game imbalances would take a lot of time. A lot.
If you really, really want to have systems with randomly generated huge pirate ships, IMO those pirated ships need to be crippled.
A lot: almost no thrust, turrets disabled, that sort of thing.
If ordinary pirates manage to capture a big ship (remember, we're talking about the system populator here ), they'll still have to fight each and every ship's subsystems, and it could take months for that to happen. That way a couple of rookie cops in a backwater system kind of get a chance not dying within 10 seconds of that big pirate appearing on their scanners...

2. IMO, using like-ship and 'my-special-big-bounty-pirate' role to make stolen behemoths with huge bounties is very much the way to go. The really good possibilites can be better explored in dedicated OXPs, where you can create a pirate behemoth, and you can have the appropriate setting (1000s of small police ships trying to swarm it, or 5 galnav big guns to hunt them down from system to system...)


Having said all that, I'll be more than happy to provide the 3-line JS script that randomly generates 'my-special-big-bounty-pirate' ships with a whatever in 1 probability of appearing in any system!
Hey, free OXPs: farsun v1.05 & tty v0.5! :0)
User avatar
DaddyHoggy
Intergalactic Spam Assassin
Intergalactic Spam Assassin
Posts: 8515
Joined: Tue Dec 05, 2006 9:43 pm
Location: Newbury, UK
Contact:

Post by DaddyHoggy »

I like the idea and I like the potential solutions - the "they've taken control, but don't actually have control" would make a good backstory - and if the player got embroiled in this as an oxp - the ship could get progressively more powerful with each encounter until all the player can do is run away or join in when some kind of super armada is fielded against it.
Selezen wrote:
Apparently I was having a DaddyHoggy moment.
Oolite Life is now revealed here
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

Re: Pirates with huge bounties! Just say no!

Post by Lestradae »

Hi Kaks,

it was me who, after a suggestion of another_commander, put this issue up as a bug report on BERLIOS because I am running into the only random bounties pirates wall with my oxp.

In OSE, due to the many and also partially much bigger ships in there, NPC and player alike, there are carriers for the police and carriers for pirates. They get called by the system populators roles as, if I created specific ones for the many ships in there, that would lead to massively overcrowded systems.

I go through all the old and even more many new ships and give non-automatic bounties to pirates which's ship's player variants cost 1 million credits or more - they get 1/10.000th the ship's price as a bounty. So a pirate Morrigan at 3 million credits gets a 300 Cr bounty instead of the random 15-75 or so.

I think that absolutely makes sense, and can create a Random Hits - like situation for players. Remember that when a ship is expensive in OSE, it has very powerful capabilities. Players have to be cunning and work hard to acquire those high bounties.

To not enter this possibility into the code (again, as I think it was already in there before) is simply goading oxp-makers, and in this specific case, me along so that I can't implement my ideas into my oxp as intended. Please don't do that. I am thinking carefully about game balance these days.
If there's a generic pirate with a big ship in the system, they're most likely up to no good, and it would be in everybody's interest to put a stop to them, and a high enough bounty will definetly get the attention of bounty hunters & police.
That's my idea exactly.
An automatically populated system won't have that many patrol ships, and if there's a really strong pirate ship out there, with a really big bounty on it. Well, all you get is cops going 'splat' against it.
First, in OSE there is always also at least one military carrier in any system which will stop any pirate carriers at some point. Or not, as the case may be. Which is the point where this system gets "known for its frequent civil war" or somesuch. Sometimes there will be a police carrier or two there, too.

And sometimes one of those plots succeds, and some backwater anarchy is getting upgraded to "Dictatorship". It's not a forgiving Ooniverse. So what?

But sometimes you as a player can make that difference. You are the last line of defence between those poor people and the Juggernaut Destroyer creating a way to the planet through a new asteroid belt of space debris. Atmospheric, isn't it?

If you don't re-allow set bounties in, he will get a 50 Cr bounty.
If you really, really want to have systems with randomly generated huge pirate ships, IMO those pirated ships need to be crippled.
A lot: almost no thrust, turrets disabled, that sort of thing.
That would completely defeat the whole idea. Keep in mind, though, that also in OSE the rampaging pirate carrier is/will not be an everyday event.

Please don't take the possibility to create novel scenarios away from oxp'ers. It should not be your decision as devs, only in really extraordinary cases (like laser coolers). The oxp system was created with the possibility of individual visions of the game in mind, not with telling people how to do their oxps. Don't change that.

Things like that have been directed at me in an unproportionally high manner in the last year. I do take the limits of the game further than other oxp'ers in my sector, so that's not completely unwarranted. But in this case, if you restrict my ability to set bounties for pirates, you can also start telling LittleBear how to set bounties for Random Hits.
Pirates with huge bounties! Just say no!
... sums up what you want people to answer pretty clearly. Not entirely unbiased, no? :wink:

Just let me create my oxp, please.

Greetings

L

EDIT: I just saw that you simply closed down my bug report, which I issued as suggested by A_C. This is, in my opinion, vastly overstepping your responsibilities as a developer. Even aegidian did that only when someone developed a laser cooler. Please think again. It reminds me of days gone by. I'm not interested in creating an oxp for a game that is narrowing me down at every angle. Now I'm ... a bit angry.
User avatar
Kaks
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 3009
Joined: Mon Jan 21, 2008 11:41 pm
Location: The Big Smoke

Post by Kaks »

Probably I didn't make myself too clear: even though I don't fully understand the reasoning behind what you want to do, my intention is not to stop you from creating your oxp.

To make sure that I'm making myself completely clear: yes, I personally think that having a random huge ship in-system using the system populator is a bit too much, and I've already said my reasons why in the post above. However, to the best of my understanding, the system populator is working as it is by design. (Please read this page in the wiki ). Therefore what you are asking for is an extra feature, not a bug fix. Alles endlich klar, oder?

To repeat, the reason I closed the bug, and the only reason for that, is because bugs - by definitition - are when a program does something different to what it was designed to do. And I've already said so in the comment I left when I closed the bug:
Well, it's not a bug, but working as designed, as per the relevant forum discussions.

I'm going to close this, and put a new feature request in the forum on your behalf. That way, we can find out if other OXP creators have any comments/suggestions.
I probably should have mentioned the relevant wiki page, but I was under the impression you had read them all already...

...and the last lines I wrote above are:
Having said all that, I'll be more than happy to provide the 3-line JS script that randomly generates 'my-special-big-bounty-pirate' ships with a whatever in 1 probability of appearing in any system!
I do think that JS already gives you a better, more accurate way to do exactly what you want, and I do have the horrible feeling that changing the system populator might cause a lot of extra headaches later on. Of course - I might well be wrong! :P

One thing that struck me a strange: having 21 pirates in a system instead of 20 is something you want to avoid? Wow, that doesn't sound like the old Lestradae! :)

Maybe it's something I missed, but the system populator itself will only add a certain number of ships to a system, and that random number is the same with or without OXPs. The only way you can have tons of in-system ships is if you script them in already...

Still JS to the rescue!
You didn't pick up my offer, but here it is anyway.
Here's the full script that does what you asked for in your 'bug report':

Code: Select all

this.shipWillExitWitchspace= function(){
	if (Math.round(Math.random()*1000)>998) {	//1 in a thousand chance! For 1 in 100 use *100>98 etc...
		var pirates=system.shipsWithPrimaryRole('pirate');
		pirates[Math.floor(Math.random() * pirates.length)].remove();
		system.legacy_addSystemShips('lestradae-bigpirate',1,Math.random());
	}
}
Ok I lied on the first post. It took me more than 3 lines! :P

Assuming I haven't made any mistake due to sleepiness, the script above will do the trick: all the bounties on the bigships will be exactly the amount set in the plist. If they don't then that's definitely a bug!

All you have to do for this script to work is to change the role that says 'pirate' so it says 'lestradae-bigpirate' instead. Everything else can stay exactly as you have it already. Do that for all the ones you want to appear insystem, and the script will pick them randomly exactly as you wanted to begin with. They should appear according to the frequency you set inside the brackets after the role name.

If you need more than one exceptional pirate ship per system without altering the total number of pirate ships, there's a slightly modified method you can use, and the change needed is fairly trivial.

I'm sure there is a tiny speed difference between doing it this way or the system populator way (one simpler ship per role is created, then destroyed) but in a vanilla Oolite it won't be noticed at all and in something like RS the slightly longer delay won't be really that much, in the bigger scheme of things.

And now you should be able to finish your dream OXP before 1.73: don't let me slow you down! :)
Hey, free OXPs: farsun v1.05 & tty v0.5! :0)
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6683
Joined: Wed Feb 28, 2007 7:54 am

Post by another_commander »

I just want to add a comment here just to clarify the situation before it becomes a big misunderstanding.

@Lestradae: I asked you to put this up as a bug report, because that's how you presented it to me and I did not have the time to look at the code right then and determine whether it works like that by design or not. A bug report on Berlios is the only way to ensure that an abnormal situation observed can be rectified and not get lost in the forums. But all bug reports are subject to review for validity and many times we have closed reports with the resolution "Not a bug".

Apparently, Kaks did take the time to look at the code and if he states that this is by design then indeed this is not a bug. He did put it up as a request on the forum, though, without simply closing it and forgetting about it. He cooperated and gave you the solution in the forum. I don't see a reason for being furious.

Finally, note that Kaks has bug reports admin priviledges on Berlios, meaning that he did not overstep any kind of responsibility. If he judges that a bug can be closed, then it can be closed.

I think you took the situation too personally. There is no need for this. I believe Kaks' proposed solution more than covers your request.
User avatar
DaddyHoggy
Intergalactic Spam Assassin
Intergalactic Spam Assassin
Posts: 8515
Joined: Tue Dec 05, 2006 9:43 pm
Location: Newbury, UK
Contact:

Post by DaddyHoggy »

Phew. Please let this be the end of it - this is the friendliest board this side of Riedquat remember! :wink:
Selezen wrote:
Apparently I was having a DaddyHoggy moment.
Oolite Life is now revealed here
User avatar
Kaks
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 3009
Joined: Mon Jan 21, 2008 11:41 pm
Location: The Big Smoke

Post by Kaks »

DaddyHoggy wrote:
Phew. Please let this be the end of it - this is the friendliest board this side of Riedquat remember! :wink:
Well said that man! :)

Lestradae, I can understand your confusion there, having been told by one person 'report this bug' and by another 'this is not a bug'.
I did go on 'a bit too much' about what is and isn't a bug, but I did detect a communication breakdown on that particular point. Sorry about that, but with a project as complex as Oolite has become, it can be very difficult at times to track down exactly what is by design and what isn't, especially if you're at work or not being able to look at the right piece of code at the time. And to add to what A_C said above, if you say it's a bug, we'll treat it as a bug, at least until we find otherwise: I just happened to be the one who saw the actual code and was able to then figure out the history behind it.

What I would have liked to do on this thread was to talk about the pros and cons of changing the standard system populator. Lestradae, what do you think?

Cheers,

Kaks.
Hey, free OXPs: farsun v1.05 & tty v0.5! :0)
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Post by Eric Walch »

Ok I lied on the first post. It took me more than 3 lines!
Hmm. I don't see the use of this whole discussion. Just give all those big ships a ship script that sets the bounty and problem solved.

Code: Select all

this.shipSpawned = function(){this.ship.bounty = Math.random()*400+100)}
But, as you already mentioned, it spoils the whole balance created by the populator. Bounties currently are so chosen that the police finds them in a certain time. Huge bounties will lead to huge background battles between police and pirates that the player probably not even will see but will cost performance. Such ships should only be added every few systems.
User avatar
Kaks
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 3009
Joined: Mon Jan 21, 2008 11:41 pm
Location: The Big Smoke

Post by Kaks »

Of course!

Code: Select all

this.shipSpawned = function(){this.ship.bounty = Math.random()*400+100)}
Doh, so simple! :)

In my defense I was pretty sleepy at the time!
<clutching at straws>Still, I suppose my 7-line effort could be modified to use when all we want to do is to reduce the average day to day system traffic... when we start seeing a penalty hit because of the number of scripted ships, removing 25% of the non-scripted ones might just be what the doctor ordered! :)</clutching at straws>

But I might well be... hmmm... clutching at straws? here... :D

Cheers,

Kaks.
Hey, free OXPs: farsun v1.05 & tty v0.5! :0)
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

..

Post by Lestradae »

8)

OK, let's return to the friendly side of Riedquat here.

Let's blame the whole thing on a communications breakdown in which (at least on my side) also a night spent without sleep might have been involved, causally.

I actually think Eric's one-line-solution is good. I have a few questions about that one, too, but for my intents and purposes, it should be doable this way.

I still don't see why setting bounties for pirates should be de facto switched off by the standard populator, but if you guys want to keep it that way and I can change it for my oxp via a one-line ship script, so be it.

The one serious problem that Eric mentions for me is the fact that police ships will go for the high-bounty offenders first and that could result in a heavy load of battles that the player never gets to see. That would be beside the point obviously. But, then Oolite is not a player-centric game any more, is it. Things will happen whether players are involved or not. Will have to think about that argument some more.

Kaks, if I am supposed to give suggestions concerning the system populator (and I would like to, and welcome a discussion about possible improvements or not to that as well) I would have to know more about what exactly is placed where under which conditions. Don't know that as yet.

One idea that was actually Svengali's when we debated balance issues would be to create some sort of "power gradients" for ships that led to for example police with gradient "2.5-3.5" attack pirates of gradient "3" and so on. That could lead to more believeable behaviour, as a Tech 1 - GalCop Adder would then not insist on attacking a Tech 15 - pirate Constitution etc.

Tranquil Greetings

L
Screet
---- E L I T E ----
---- E L I T E ----
Posts: 1883
Joined: Wed Dec 10, 2008 3:02 am
Location: Bremen, Germany

Re: ..

Post by Screet »

Lestradae wrote:
The one serious problem that Eric mentions for me is the fact that police ships will go for the high-bounty offenders first and that could result in a heavy load of battles that the player never gets to see. That would be beside the point obviously. But, then Oolite is not a player-centric game any more, is it. Things will happen whether players are involved or not. Will have to think about that argument some more.
I believe that this would be a GOOD behaviour that enhances gameplay if it does not happen often, but really sparsely. If juggernauts could be stolen too easily, no navy would buy and deploy them!

I actually like the RH test behaviour of having a Thargoid battle with the bars - and I like to watch those explosions from a distance, sometimes use my last fuel just to be part of that party! Maybe there should be a script, though, like the police requesting all able commanders to come for their help (especially since they just did set a high bounty on that ship).

That the police would try to shoot down such a ship and probably lose their whole fleet appears reasonable to me.

Furthermore, I've got the ATI problem here - and battles in the distance seem not to be a cause for slow games. I've got the impression that the only thing which can slow things down is the amount of textures to be drawn close to the player, and that goes well together with the point that ATI drivers use 0MiB texture buffer size, thus forcing the GPUs to use the computers RAM. Correct me if I'm wrong on this!

Screet
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Post by Eric Walch »

Main problem with big bounties is the game balance. With the current bounties there is only moderate interaction between police-pirates-traders. When the player arrives, there is still activity left. Adding ships with high bounties gives almost immediate reaction of police. There is a big chance there is no ship left when the player arrives near that location.

e.g. Random hits has a lot of additional code to make that police does not attack his target ships before the player finds it. Also in ups I need special code to make sure my high bounty ships are not attacked by police to soon. Without such code there will be no ship when the player arrives, or the battle has shifted outside the space lane were it is unlikely the player will see it.

One way to deal with that would be to give a maximum bounty of 64 (just fugitive) and add the remainder in the death-actions.
Screet
---- E L I T E ----
---- E L I T E ----
Posts: 1883
Joined: Wed Dec 10, 2008 3:02 am
Location: Bremen, Germany

Post by Screet »

Eric Walch wrote:
One way to deal with that would be to give a maximum bounty of 64 (just fugitive) and add the remainder in the death-actions.
Hmmm. What you say sounds to me the way that the current behaviour of the source code isn't appropriately doing it's job, but overreacting and thus causing troubles, not only for OSE but also for other popular OXPs.

What you suggest sounds like a reasonable workaround, but everyone would have to know it, or there would be problems, again.

Maybe an approach from the code side would be better for all? What would happen if the (police) reaction towards a bounty would be based logarithmically? That way, the higher bounty would still show up as highest offense, but the difference between those would be reduced. Maybe then add a distance to offender as a negative thing in that calculation...thus leaving offenders/fugitives with slightly less bounty on them more attractive if they are closer to the one looking for the troublemakers to shoot down.

Screet
User avatar
Kaks
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 3009
Joined: Mon Jan 21, 2008 11:41 pm
Location: The Big Smoke

Re: ..

Post by Kaks »

Tranquil salutations back!
Lestradae wrote:
Things will happen whether players are involved or not.
Yep, that's exactly why I think it's worth talking about it!
Lestradae wrote:
Kaks, if I am supposed to give suggestions concerning the system populator (and I would like to, and welcome a discussion about possible improvements or not to that as well) I would have to know more about what exactly is placed where under which conditions. Don't know that as yet.
Well, that wiki page says it all, more or less. If a ship is generated by the system populator, it could appear anywhere between witchpoint & main station (unless it's a sun skimmer, which can venture all the way to the sun). So there isn't really a possibility to be exact about it. You could have frigates waiting for the big pirate at the whitchpoint, and the big pirate just a few inches from the station, merrily killing vipers & merchants...
Hey, free OXPs: farsun v1.05 & tty v0.5! :0)
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Post by Eric Walch »

I think it is good balanced as it is, it was just never intended to add those huge bounty ships. It is mend that in a high government state the offenders are found soon and dealt with.

The result of scanOffenders is also dependent on the government of the current system. Hence high government systems are relative save for a player and in an anarchy the police will never find offenders. In such systems high bounties are no problem. So to keep the whole balance one should only add high bounty ships in anarchie or feudal states.
Post Reply