NPC flight routines upgrades?

An area for discussing new ideas and additions to Oolite.

Moderators: another_commander, winston

User avatar
szaumix
Deadly
Deadly
Posts: 171
Joined: Sun Apr 24, 2022 4:23 am

To anyone who struggles with a too-easy Oolite

Post by szaumix »

I'm over a year into my experimental overhaul to rebalance Oolite for myself which is to say: increase danger and difficulty of AI. Just this month I have taken it into overdrive, and thankfully, it's starting to get hard to survive! I made good on my dream to give Qbombs and jammers and cloaks abroad, and it is now a genuinely dangerous, harrowing ooniverse with elite pilots who are just as elite and goody-stacked as you can be. This is what I wanted, but not how I wanted it. I was forced to change the methods, but not the goals.

The solution by necessity was to take full advantage of the AI's tendency to sit back and 'pot shot' without dogfighting. This has classically annoyed me, but it is functionally 'simulating' the danger of many close dogfighters, so I can be content with it. The lasers are on me, and I have to take down who I can when I can, and with the standardized goodies on even vanilla ships it has become a truly dangerous ooniverse, and that's mostly what matters. In fact, I reflect that this actually makes sense in a non-Newtonian flight model universe. I mean... wouldn't you? Let's say you're in a gang and you're fighting a few guys. The logical model for warfare *IS* to potshoot from safety while one or two guys keep him busy at close range.

To my dismay, I have never met a full dogfighting challenge in Oolite. An unexpected solution turned out to be that the ships fly differently when they are smaller, and I can't actually explain this. I tested and checked and double-checked, it's not an illusion, they are definitely flying a little differently. Therefore I took Janes Galactic Shipset and made Sidewinders, Geckos, and Asps a little smaller and boy did I get what I wanted!

No role weight has been left as it was, and that meant every ship, vanilla and oxp.

The first problem that became evident was that in increasing the amount of opponents and therefore lasers to dodge, I also increased the net energy (shields) I needed to take down per pack battle. Thus for the danger I wanted, I tripled (or much more) the time and to victory, which is not only boring and annoying, but also senseless in a supposedly dangerous universe. There was therefore no other sensible option than to reduce some shields, and make a 'heirarchy' of easier/cheaper kills verses heavier harder kills. This was a massive consideration in itself, but again, makes sense in a real-world setting, so I was content with it. Not every guy in the gang is Rambo, there are a lot of pawn that provide backup and cover fire.

I really wanted a solution where I didn't have to reinvent the wheel, but there truly was none. No OXP could have given me what I wanted, nor populator, nor skill levels, nor bigger badder lasers, and CERTAINLY not more shields -- that is actually the opposite direction. There was simply no other way than to start changing base specs en masse. I brainstormed everything, and there was no other way.

In summary: what elitists want is a balance of THIS IS HARD TO SURVIVE but IF YOU'RE GOOD ENOUGH, YOU SURVIVE. "Target practice" disgusts me, cruising around in fake not-real danger disgusts me, if it's really dangerous it should SCARE YOU. By scare you I mean it should THREATEN TO KILL YOU, and even veterans should want to avoid certain dangers, which will ACTUALLY KILL YOU if you aren't equipped for it or it's too much for you or you drop the ball. Therefore increasing shields just prolongs the target practice. I tried it.

To all the elitists out there, I am sorry to report that there was NO solution except to reinvent the wheel. I had hoped to release a Szaumix Ooniverse OXP some day, but I can see from what I've got that it is SUCH an overhaul that anyone that downloaded it would have to accept two or three reinvented wheels. I wish there had been another way.
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4612
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: NPC flight routines upgrades?

Post by phkb »

Shout out if you need help turning this into an oxp. Happy to help in any way.
User avatar
Cholmondely
Archivist
Archivist
Posts: 4966
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: To anyone who struggles with a too-easy Oolite

Post by Cholmondely »

szaumix wrote: Fri Sep 08, 2023 2:37 am
...it is SUCH an overhaul that anyone that downloaded it would have to accept two or three reinvented wheels.
And just to add, isn't this what both Stranger's World and the various versions of SotL do?
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Redspear
---- E L I T E ----
---- E L I T E ----
Posts: 2637
Joined: Thu Jun 20, 2013 10:22 pm

Re: NPC flight routines upgrades?

Post by Redspear »

szaumix wrote: Fri Sep 08, 2023 2:37 am
There was therefore no other sensible option than to reduce some shields, and make a 'heirarchy' of easier/cheaper kills verses heavier harder kills
Did you try having recharge only work for player shields and not player energy?

Energy would then effectively constitute hull strength (might need tinkering for ECM use etc.)
The player would be good for the first few hits but ANY time the shield were exhausted they would become more fragile until repaired.
Tie max energy to maintenance and (with damage to either affecting both) then you'd really be paying for it, at least when you could afford it...
User avatar
szaumix
Deadly
Deadly
Posts: 171
Joined: Sun Apr 24, 2022 4:23 am

Re: NPC flight routines upgrades?

Post by szaumix »

I am currently scarecly surviving anarchies and feudals about 30% of the time I visit them. Scarcely surviving is exactly what I wanted. By that I mean I am getting hull damage and/or nearly running out of fuel. I am running Astrobe's missile OXP where all missiles are ecm resistant, so it is never ever a good idea to be out of fuel -- I am actually forced to shoot down about 20-30% of all missiles.

And no, what you suggest was not relevant, because the problem was how the AI moves, their team decisions in a fight. Nothing else was viable except increasing the amount and types and specs of the pirates I was facing -- nothing.

I want to be afraid. I am Achilles with a literal death wish, and nothing could give it to me.
User avatar
szaumix
Deadly
Deadly
Posts: 171
Joined: Sun Apr 24, 2022 4:23 am

Re: NPC flight routines upgrades?

Post by szaumix »

Actually no, that isn't just what I wanted. That was half of it.

What I really wanted was for the universe to feel as dangerous as the lore and the mechanisms would warrant. If piracy is really so out of control as to be present with some success even in commy and demmy systems, then pirates are either as common as ants or as bad as bandits. Thus my purpose was so simulate space Bosnia, space Guatamala, space Paraguay, space Nepal, space El Salvador. I want it to be a big, dangerous decision to leave home alone and improperly armed and prepared for war.

If I released an OXP it would probably be called NO EASY KILLS, because that's more what I wanted. Very often I used to ask myself, "why is this pirate so retarded as to attack me with just a pulse laser?" So I removed auto_weapons (manually), and starting new Jamesons is just as deadly as it should be, btw. Or I would ask, "why is this python a sitting duck, when if I were piloting a python for war, I would be lasered and missiled up the wazoo with a Q-B to spare?" So now they are, and I mean invariably.

If you wouldn't do it, neither would they. If you wouldn't be caught dead in that ship without a stack of missiles and an ecm and a damn good chance of injectors or well on the way to affording it (mine cost more, duh) neither would they. I wanted the pirates to be badder, and for that to be the source of my vulnerability, I wanted them to no longer be ducks in a shooting gallery.

Since I already had multi-lasers and military lasers everywhere, literally just two straight seconds of straight flying can be almost fatal sometimes. Thus neutering my shields was not the relevant way to go, the problem had already been solved and the AI was still (way) to easy, even in packs, even with neutered-specs player ships, even with honor code rules. I am not being funny, I have been legitimately frustrated for years.
User avatar
Redspear
---- E L I T E ----
---- E L I T E ----
Posts: 2637
Joined: Thu Jun 20, 2013 10:22 pm

Re: NPC flight routines upgrades?

Post by Redspear »

You mentioned two stages to solving the problem.

1. lack of dogfighting, to which your solution was making ships smaller.

2. combat taking ages because you needed so many adversaries to add a worthwhile challenge, to which your solution appeared to be a lot of work.

My suggestion was relevant to the second point I think in that a weaker player requires less adversaries for the same challenge. As long as lasers weren't also weakened then combats would take less time as a result.

Anyway... You did it your way so good for you.

You mentioned Jane's Galactic Shipset. May I ask what rescale factor you used for the sidewinders, geckos etc. for the effects you describe please?

As you know, JGS already shrinks them a bit and reduces their energy so I'm curious to know hoe much further you needed to take it.
User avatar
szaumix
Deadly
Deadly
Posts: 171
Joined: Sun Apr 24, 2022 4:23 am

Re: NPC flight routines upgrades?

Post by szaumix »

Redspear wrote: Sun Sep 10, 2023 7:41 am
My suggestion was relevant to the second point I think in that a weaker player requires less adversaries for the same challenge. As long as lasers weren't also weakened then combats would take less time as a result.
The reason this was originally (and still is) an AI problem and not a specs problem, is because more lasers are harder to dodge than fewer lasers. I could make lasers deal 10,000 damage or reduce my shields to zero, it is "irrelevant" because 2 ships' lasers are less likely to hit me and therefore inherently less data to consider in a dogfight than 10 ships' lasers. The problem is that the AI does. not. engage. the way I want it to, it sits back and pot-shoots. Randomhits took the "more sheilds, badder lasers" model and bored the crap out of me. It takes me fifteen minutes to destroy three ships because they have ridiculous HP while they fly around in circles and hit me twice.

I did the best I could with what I had without looking at AI code.

I've just this week begun doing what I originally swore to myself I wouldn't do: and that is look at AI code. It doesn't look too hard, but it doesn't look too easy -- and that's exactly the trap!

Why not do it? Because in a former life I was a programmer and I know exactly what happens when you try to learn enough code to fix "one little thing." First, you try to do something and you actually get it wrong, so you have to learn just a little more to fix the thing you didn't get right. Next minute you're ignoring your kids because you really have to figure this one thing out and the minute after that, it's a "minor project" that you'll be done with by Sunday, surely. The following year it has doubled in scope but you're pretty sure it's only a month or two from completion; meanwhile all the stuff you've learned has made sure that you can't rest until you've fixed all the other things that you've noticed that new and better code can probably fix.

HEY KIDS: SAY NO TO STRANGE CODE!
Switeck
---- E L I T E ----
---- E L I T E ----
Posts: 2412
Joined: Mon May 31, 2010 11:11 pm

Re: NPC flight routines upgrades?

Post by Switeck »

Earlier versions of Oolite had so much stronger NPC ships that it was ridiculously hard to play.
My main complaint is even upping the ai's accuracy/skill and giving them military lasers doesn't resemble how powerful the earlier Oolite NPCs were.

It almost seems like AI.plist files don't work anymore:
AI.plist fighting routines that used to work fine...act completely broken.
New traders arrive at a system...and take off in a random direction instead of heading towards either the sun or planet/main station.

AI.js files seem to work, but not great.
User avatar
Cholmondely
Archivist
Archivist
Posts: 4966
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: NPC flight routines upgrades?

Post by Cholmondely »

Switeck wrote: Sun Sep 10, 2023 11:39 am
Earlier versions of Oolite had so much stronger NPC ships that it was ridiculously hard to play.
My main complaint is even upping the ai's accuracy/skill and giving them military lasers doesn't resemble how powerful the earlier Oolite NPCs were.

It almost seems like AI.plist files don't work anymore:
AI.plist fighting routines that used to work fine...act completely broken.
New traders arrive at a system...and take off in a random direction instead of heading towards either the sun or planet/main station.

AI.js files seem to work, but not great.
Which versions of Oolite are you referring to?

I'd read that the pre-Cimmian ones were seen as too easy (but am unaware of the really early versions from 2003-6, which I would presume are similar). And hence the introduction of NPC uber-ships with lots of lasers etc to give the players a challenge.

v.1.80 (2014) was seen as massively difficult and toned down a tad for v.1.82 (2015). I understand that things have not changed since.

v1.80 also introduced the new javascript AIs

And v.1.80 also coincided with the long awaited release of E:D



References:
Proposals for Oolite 1.79/1.80, 3 of 5: Javascript-based AIs (2013)
Combat balance - 1.80 and 1.82 (2014)
Proposal for 1.82: combat balance changes (2014-5)
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
Switeck
---- E L I T E ----
---- E L I T E ----
Posts: 2412
Joined: Mon May 31, 2010 11:11 pm

Re: NPC flight routines upgrades?

Post by Switeck »

I mean mostly v1.80 being really hard ...but even v1.76 has scarier NPC ships by default than v1.90!

I want the option of top-of-the-class enemies being at least as tough/smart as v1.80 -- not basically every enemy being that level like in v1.80
User avatar
cbr
---- E L I T E ----
---- E L I T E ----
Posts: 1377
Joined: Thu Aug 27, 2015 4:24 pm

Re: NPC flight routines upgrades?

Post by cbr »

Switeck wrote: Sun Sep 10, 2023 11:39 am

It almost seems like AI.plist files don't work anymore:
AI.plist fighting routines that used to work fine...act completely broken.
New traders arrive at a system...and take off in a random direction instead of heading towards either the sun or planet/main station.

AI.js files seem to work, but not great.
Would be useful if we could see/log which state/logic a certain npc follows.

Followed a trader convoy once which did surprisingly two seqential system jumps...
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4612
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: NPC flight routines upgrades?

Post by phkb »

cbr wrote: Mon Sep 11, 2023 7:13 pm
Would be useful if we could see/log which state/logic a certain npc follows.
Two things:
1. On any given NPC ship object, do this:

Code: Select all

    my_npc.reportAIMessages = true;
That will probably be more useful for the older plist AI.
2. In the JS AI you want to monitor, add this line into the "this.aiStarted" function:

Code: Select all

this.aiStarted = function() {
    ... various setup steps...
    ai.setParameter("oolite_flag_behaviourLogging", true);  // << add this line
    
    ai.setPriorities([
    	... various priority dictionaries...
Those two steps will send quite a bit of info to the log file about what's happening.
User avatar
szaumix
Deadly
Deadly
Posts: 171
Joined: Sun Apr 24, 2022 4:23 am

Re: NPC flight routines upgrades?

Post by szaumix »

Switeck wrote: Sun Sep 10, 2023 11:39 am
It almost seems like AI.plist files don't work anymore:
AI.plist fighting routines that used to work fine...act completely broken.
New traders arrive at a system...and take off in a random direction instead of heading towards either the sun or planet/main station.

AI.js files seem to work, but not great.
I keep wondering if I imagined this or if I've just become a better dogfighter and decision-maker within and around battles. Since I can't prove anything through the lens of nostalgia for older oolite, I have to assume that I am just now noticing things that were always more or less the case.
Switeck wrote: Sun Sep 10, 2023 11:39 am
I want the option of top-of-the-class enemies being at least as tough/smart as v1.80 -- not basically every enemy being that level like in v1.80
I am well aware that the suggestion to beef up the NPC ai behaviors for dogfights and attack effectiveness specifically will draw complaints from the "oolite is too hard" crowd. Surely that is solvable by lowering NPC skills in configurator anyway, so in theory any updates should be harmless so long as dial settings remain.
phkb wrote: Tue Sep 12, 2023 12:21 am
Those two steps will send quite a bit of info to the log file about what's happening.
I began by adding this just to oolite-pirateFreighterAI.js, as expected it was very verbose and the log was enormous, but there is still either less going on in the scripts of freighters than there ought to be (and that would be a good place to start tinkering) or it's not telling me everything verbosely enough :?: . Freighters first to see how much logging I would be dealing with. Trying the same with oolite-pirateFreighterAI.js will dump a novel every witchjump. Maybe I should save at a rock hermit and do little trips in and out.

I feel like if the hotshots got together and had an objective look at smallish 10-accuracy pirate packs, we could at least begin with consensus on where the AI could be improved in terms of behaviors their scripts should be calling for at certain times. Thing number one would surely be to stop the fighters sitting idle and staring into space waiting to be engaged. That feels like it would be a single line of code fix.
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4612
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: NPC flight routines upgrades?

Post by phkb »

In hindsight, it's probably better to only do the setParameter for oolite_flag_behaviourLogging on a single ship using the debug console. What you're probably seeing is the AI list from *every* freighter in the system. I don't have the exact code to paste in, but I'll track it down tomorrow if someone else doesn't beat me to it.
Post Reply