I haven't got the hang of this summarising business have I?another_commander wrote: ↑Fri Jul 15, 2022 3:39 pmEdit2: Darn, I completely missed cim's message earlier - could have saved myself the trouble of researching
Musings for v.1.92
Moderators: winston, another_commander
- Redspear
- ---- E L I T E ----
- Posts: 2687
- Joined: Thu Jun 20, 2013 10:22 pm
- Location: On the moon Thought, orbiting the planet Ignorance.
Re: Musings for v.1.92
Re: Musings for v.1.92
The majority of randomness - with the JS AIs, anyway - is provided by the player role list. The player gets various roles (reputations, in intent) assigned to this list as they do stuff in the game, which then decay away again back to "player-unknown" (which is responded to roughly like the old "player" role was - pirates attack, everyone else ignores if Clean).
The higher the player's Elite rank, the slower their reputation decay is - some newish Mostly Harmless pilot you've never seen before could be anyone; some Deadly pilot you've never seen before you probably have at least vaguely heard the name and know what side they're on. Things which clear bounties - escape pods, galactic hyperspace - also clear out a good chunk of rep (though not all of it, especially not at Elite rank) ... normal jumping between systems clears down rep much faster if you're doing a cross-chart run than if you're hopping around the same A-B trade route for weeks.
Each AI then picks a random role from the list - so a player who does both trading and bounty hunting, some AIs will treat them as a trader, and some as a hunter, in rough proportion to how much they've done each activity lately. AIs in groups will take their lead from the group leader.
This is also used by the police AIs if they stumble across a fight between two Clean ships: does the player have a better rep than the ship they're fighting? If so, it was probably the other one that started it, so they'll then start allocating bounties on that basis. (OXPs have a fair bit of flexibility to poke this so that the assassin pre-emptively attacking the player is the locally highly respected Earl of Tree Grubs, so clearly the scruffy outsider started it when the cops show up). Various other things like friendly fire forgiveness work in a similar way; traders are likely to run away from a "pirate" role player even if the player hasn't got anywhere near being hostile today; etc.
In general the idea is that your actions give you a reputation, AIs respond to that reputation, and escaping an established reputation can be done but takes some effort.
The higher the player's Elite rank, the slower their reputation decay is - some newish Mostly Harmless pilot you've never seen before could be anyone; some Deadly pilot you've never seen before you probably have at least vaguely heard the name and know what side they're on. Things which clear bounties - escape pods, galactic hyperspace - also clear out a good chunk of rep (though not all of it, especially not at Elite rank) ... normal jumping between systems clears down rep much faster if you're doing a cross-chart run than if you're hopping around the same A-B trade route for weeks.
Each AI then picks a random role from the list - so a player who does both trading and bounty hunting, some AIs will treat them as a trader, and some as a hunter, in rough proportion to how much they've done each activity lately. AIs in groups will take their lead from the group leader.
This is also used by the police AIs if they stumble across a fight between two Clean ships: does the player have a better rep than the ship they're fighting? If so, it was probably the other one that started it, so they'll then start allocating bounties on that basis. (OXPs have a fair bit of flexibility to poke this so that the assassin pre-emptively attacking the player is the locally highly respected Earl of Tree Grubs, so clearly the scruffy outsider started it when the cops show up). Various other things like friendly fire forgiveness work in a similar way; traders are likely to run away from a "pirate" role player even if the player hasn't got anywhere near being hostile today; etc.
In general the idea is that your actions give you a reputation, AIs respond to that reputation, and escaping an established reputation can be done but takes some effort.
Re: Musings for v.1.92
Following 15-25 km back means the traders are detected by pirates long before the player is...and the pirates have more time to solidly latch onto a trader instead of randomly breaking off to attack the player.cim wrote: ↑Fri Jul 15, 2022 7:20 amIf it *does* include the player, then yes, if the player is detected first by them as a matter of scanner range, the pirates will engage the player in a dogfight (after the odds calculation), and a standard trader group will then (because pirates are in the role category "oolite-trader-dislike") not only not help the player but actively try to skirt around the fight rather than ploughing right through it.
- Cody
- Sharp Shooter Spam Assassin
- Posts: 16081
- Joined: Sat Jul 04, 2009 9:31 pm
- Location: The Lizard's Claw
- Contact:
Re: Musings for v.1.92
Using poor merchants as cannon fodder? As someone once said: "There's no honour out there, only survivors!"
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
And any survivors, their debts I will certainly pay. There's always a way!
Re: Musings for v.1.92
If the trader is badly outnumbered and doesn't at least TRY to flee until it's <25% max energy ...it's not cannon fodder, it's committing suicide.
Why should I join it?
Why should I join it?
- Cholmondely
- Archivist
- Posts: 5365
- Joined: Tue Jul 07, 2020 11:00 am
- Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
- Contact:
Re: Musings for v.1.92
Heh! We're now up to 751!Cholmondely wrote: ↑Wed Jul 06, 2022 6:23 pm*Part of the point in adding things in is the difficulty inherent in mastering a list of 700+ oxz's in the in-game Expansions Manager and the additional 400+ oxp's outside it.
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?
•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?
Re: Musings for v.1.92
Those are only the official ones. Everyone who works long with tweaking/making OXPs/OXZs will have some testing stuff of their own which may not get released because of their pure cheat nature.Cholmondely wrote: ↑Tue Oct 04, 2022 12:24 pmHeh! We're now up to 751!Cholmondely wrote: ↑Wed Jul 06, 2022 6:23 pm*Part of the point in adding things in is the difficulty inherent in mastering a list of 700+ oxz's in the in-game Expansions Manager and the additional 400+ oxp's outside it.
There's also a bit of tweaks to existing OXPs/OXZs of behavior that really bothers people which may not see regular release as well.
The combinations of them all are nearly infinite.
- Cholmondely
- Archivist
- Posts: 5365
- Joined: Tue Jul 07, 2020 11:00 am
- Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
- Contact:
Re: Musings for v.1.92
Appendix 3: AI turns Scavengers into Miners With a Pulse Laser
Just to add in Frame's issue which is followed by cim's potential fix
Just to add in Frame's issue which is followed by cim's potential fix
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?
•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?
Re: Musings for v.1.92
FYI, I’ve been using cag’s revised core scripts (see viewtopic.php?p=270782) and the fix suggested by cim for Frame’s issue is already implemented in cag’s scripts.
Several other core script issues and fixes are also noted in the comments on that thread.
Several other core script issues and fixes are also noted in the comments on that thread.
"This just BUGS me!"
Thanks to LongRangeScanner OXP, I'm spotting traders that are being spawned in >170,000 m away from everything else.
This is really bad in interstellar space, where the occasional arrival of traders is supposed to offer the player an escape route on their wormhole.
Many of the traders I see appear at the witchpoint buoy decide to head off away from the planet, station, or sun...so there seems to be something broken there as well.
I'm also seeing NPC ship 'combat' that's an awful joke -- like WORSE than v1.72 levels of bad!
Freighters with escorts especially will hardly shoot at all, twitch and briefly use injectors for like 1/3 second if shot, and do little to either flee or fight till they die.
This is really bad in interstellar space, where the occasional arrival of traders is supposed to offer the player an escape route on their wormhole.
Many of the traders I see appear at the witchpoint buoy decide to head off away from the planet, station, or sun...so there seems to be something broken there as well.
I'm also seeing NPC ship 'combat' that's an awful joke -- like WORSE than v1.72 levels of bad!
Freighters with escorts especially will hardly shoot at all, twitch and briefly use injectors for like 1/3 second if shot, and do little to either flee or fight till they die.
Re: "This just BUGS me!"
How much of this problematic behavior do you see if you disable all OXPs other than LongRangeScanner?Switeck wrote: ↑Mon Oct 31, 2022 2:12 pmThanks to LongRangeScanner OXP, I'm spotting traders that are being spawned in >170,000 m away from everything else.
This is really bad in interstellar space, where the occasional arrival of traders is supposed to offer the player an escape route on their wormhole.
Many of the traders I see appear at the witchpoint buoy decide to head off away from the planet, station, or sun...so there seems to be something broken there as well.
I'm also seeing NPC ship 'combat' that's an awful joke -- like WORSE than v1.72 levels of bad!
Freighters with escorts especially will hardly shoot at all, twitch and briefly use injectors for like 1/3 second if shot, and do little to either flee or fight till they die.
Possibly relevant to your combat observations: https://wiki.alioth.net/index.php/OXP_NPC_Combat_AI
If you use the debug console you can inspect the ships in question and check their accuracy and AI scripts.
Re: Musings for v.1.92
I'll test some more...I am pretty sure I haven't found an OXP causing the problems so far though.
- Reval
- ---- E L I T E ----
- Posts: 402
- Joined: Thu Oct 29, 2020 3:14 am
- Location: At home in the Xexedi Cluster, driving an FE Asp II, Laenina's Flux.
Re: Musings for v.1.92
Oops, someone changed the name of this thread from "this just BUGs me' to the above, causing a deletion, double-take, and re-post...
In another discussion I might have given the erroneous impression that I believed Oolite to be perfect. For the most part, it is.
But what TRULY bugs me, and always has, is the masslock before Hyperspace after exiting Main. I know there are sound lore/history/technical in-game reasons for this, but it raises my hackles almost every time. Mostly because I forget to do certain things lik hit the "i" straight away or merely just increase speed to max.
So I now herewith vow to try and circumvent/cancel this exasperating 'feature' for Elite Trader 1.19!
I've done something in 1.18 that might have already accomplished it, but it requires much further testing... I think I'm almost starting to smile.
D.R. of X.
In another discussion I might have given the erroneous impression that I believed Oolite to be perfect. For the most part, it is.
But what TRULY bugs me, and always has, is the masslock before Hyperspace after exiting Main. I know there are sound lore/history/technical in-game reasons for this, but it raises my hackles almost every time. Mostly because I forget to do certain things lik hit the "i" straight away or merely just increase speed to max.
So I now herewith vow to try and circumvent/cancel this exasperating 'feature' for Elite Trader 1.19!
I've done something in 1.18 that might have already accomplished it, but it requires much further testing... I think I'm almost starting to smile.
D.R. of X.
Dor 'call me Grocer' Reval (a Xexedian Laver) was always considered a little backward.
Re: Musings for v.1.92
I'm pretty sure I found at least part of the ai-going-stupid problem...
...and the problem is quite old:
Thargoids added as groups crash game.
Instead of overflowing the stack, any extra message is now discarded, until the stack is back to decent numbers.
Removing extra messages apparently isn't quick enough to reach "decent numbers", as the stack keeps overflowing.
Similar problem/example:
viewtopic.php?p=136440#p136440
viewtopic.php?p=136801#p136801
(recursive ai fleeing!)
Code: Select all
17:44:40.334 [ai.message.failed.overflow]: ***** ERROR: AI message "ENERGY_FULL" received by 'Navy Asp Mark II 768' AI while pending messages stack full; message discarded. Pending messages:
("AGGRESSOR_SWITCHED_TARGET 4006 799", "AGGRESSOR_SWITCHED_TARGET 3998 809", "AGGRESSOR_SWITCHED_TARGET 1853 807", "AGGRESSOR_SWITCHED_TARGET 2690 730", "AGGRESSOR_SWITCHED_TARGET 713 767", "AGGRESSOR_SWITCHED_TARGET 2690 767", ENERGY_FULL, "AGGRESSOR_SWITCHED_TARGET 1850 776", "AGGRESSOR_SWITCHED_TARGET 2688 100", "AGGRESSOR_SWITCHED_TARGET 3999 727", "AGGRESSOR_SWITCHED_TARGET 1852 748", "AGGRESSOR_SWITCHED_TARGET 704 772", "AGGRESSOR_SWITCHED_TARGET 713 726", "AGGRESSOR_SWITCHED_TARGET 1846 755", "AGGRESSOR_SWITCHED_TARGET 4002 744", "AGGRESSOR_SWITCHED_TARGET 2690 729", "AGGRESSOR_SWITCHED_TARGET 1846 748", "AGGRESSOR_SWITCHED_TARGET 1844 721", TARGET_LOST, "AGGRESSOR_SWITCHED_TARGET 704 769", "AGGRESSOR_SWITCHED_TARGET 1853 789", "AGGRESSOR_SWITCHED_TARGET 2689 100", "AGGRESSOR_SWITCHED_TARGET 2688 730", "AGGRESSOR_SWITCHED_TARGET 713 792", "AGGRESSOR_SWITCHED_TARGET 4007 823", "AGGRESSOR_SWITCHED_TARGET 1845 754", TARGET_DESTROYED, "AGGRESSOR_SWITCHED_TARGET 1853 717", "AGGRESSOR_SWITCHED_TARGET 713 772", "AGGRESSOR_SWITCHED_TARGET 1845 756", "AGGRESSOR_SWITCHED_TARGET 2682 777", "AGGRESSOR_SWITCHED_TARGET 713 774", "AGGRESSOR_SWITCHED_TARGET 2682 767")
17:44:40.501 [ai.message.failed.overflow]: ***** ERROR: AI message "ENERGY_FULL" received by 'Navy Asp Mark II 768' AI while pending messages stack full; message discarded. Pending messages:
("AGGRESSOR_SWITCHED_TARGET 4006 799", "AGGRESSOR_SWITCHED_TARGET 3998 809", "AGGRESSOR_SWITCHED_TARGET 1853 807", "AGGRESSOR_SWITCHED_TARGET 2690 730", "AGGRESSOR_SWITCHED_TARGET 713 767", "AGGRESSOR_SWITCHED_TARGET 2690 767", ENERGY_FULL, "AGGRESSOR_SWITCHED_TARGET 1850 776", "AGGRESSOR_SWITCHED_TARGET 2688 100", "AGGRESSOR_SWITCHED_TARGET 3999 727", "AGGRESSOR_SWITCHED_TARGET 1852 748", "AGGRESSOR_SWITCHED_TARGET 704 772", "AGGRESSOR_SWITCHED_TARGET 713 726", "AGGRESSOR_SWITCHED_TARGET 1846 755", "AGGRESSOR_SWITCHED_TARGET 4002 744", "AGGRESSOR_SWITCHED_TARGET 2690 729", "AGGRESSOR_SWITCHED_TARGET 1846 748", "AGGRESSOR_SWITCHED_TARGET 1844 721", TARGET_LOST, "AGGRESSOR_SWITCHED_TARGET 704 769", "AGGRESSOR_SWITCHED_TARGET 1853 789", "AGGRESSOR_SWITCHED_TARGET 2689 100", "AGGRESSOR_SWITCHED_TARGET 2688 730", "AGGRESSOR_SWITCHED_TARGET 713 792", "AGGRESSOR_SWITCHED_TARGET 4007 823", "AGGRESSOR_SWITCHED_TARGET 1845 754", TARGET_DESTROYED, "AGGRESSOR_SWITCHED_TARGET 1853 717", "AGGRESSOR_SWITCHED_TARGET 713 772", "AGGRESSOR_SWITCHED_TARGET 1845 756", "AGGRESSOR_SWITCHED_TARGET 2682 777", "AGGRESSOR_SWITCHED_TARGET 713 774", "AGGRESSOR_SWITCHED_TARGET 2682 767")
17:44:41.210 [ai.message.failed.overflow]: ***** ERROR: AI message "ENERGY_FULL" received by 'Navy Asp Mark II 768' AI while pending messages stack full; message discarded. Pending messages:
("AGGRESSOR_SWITCHED_TARGET 4006 799", "AGGRESSOR_SWITCHED_TARGET 3998 809", "AGGRESSOR_SWITCHED_TARGET 1853 807", "AGGRESSOR_SWITCHED_TARGET 2690 730", "AGGRESSOR_SWITCHED_TARGET 713 767", "AGGRESSOR_SWITCHED_TARGET 2690 767", ENERGY_FULL, "AGGRESSOR_SWITCHED_TARGET 1850 776", "AGGRESSOR_SWITCHED_TARGET 2688 100", "AGGRESSOR_SWITCHED_TARGET 3999 727", "AGGRESSOR_SWITCHED_TARGET 1852 748", "AGGRESSOR_SWITCHED_TARGET 704 772", "AGGRESSOR_SWITCHED_TARGET 713 726", "AGGRESSOR_SWITCHED_TARGET 1846 755", "AGGRESSOR_SWITCHED_TARGET 4002 744", "AGGRESSOR_SWITCHED_TARGET 2690 729", "AGGRESSOR_SWITCHED_TARGET 1846 748", "AGGRESSOR_SWITCHED_TARGET 1844 721", TARGET_LOST, "AGGRESSOR_SWITCHED_TARGET 704 769", "AGGRESSOR_SWITCHED_TARGET 1853 789", "AGGRESSOR_SWITCHED_TARGET 2689 100", "AGGRESSOR_SWITCHED_TARGET 2688 730", "AGGRESSOR_SWITCHED_TARGET 713 792", "AGGRESSOR_SWITCHED_TARGET 4007 823", "AGGRESSOR_SWITCHED_TARGET 1845 754", TARGET_DESTROYED, "AGGRESSOR_SWITCHED_TARGET 1853 717", "AGGRESSOR_SWITCHED_TARGET 713 772", "AGGRESSOR_SWITCHED_TARGET 1845 756", "AGGRESSOR_SWITCHED_TARGET 2682 777", "AGGRESSOR_SWITCHED_TARGET 713 774", "AGGRESSOR_SWITCHED_TARGET 2682 767")
17:44:41.403 [ai.message.failed.overflow]: ***** ERROR: AI message "ENERGY_FULL" received by 'Navy Asp Mark II 768' AI while pending messages stack full; message discarded. Pending messages:
("AGGRESSOR_SWITCHED_TARGET 4006 799", "AGGRESSOR_SWITCHED_TARGET 3998 809", "AGGRESSOR_SWITCHED_TARGET 1853 807", "AGGRESSOR_SWITCHED_TARGET 2690 730", "AGGRESSOR_SWITCHED_TARGET 713 767", "AGGRESSOR_SWITCHED_TARGET 2690 767", ENERGY_FULL, "AGGRESSOR_SWITCHED_TARGET 1850 776", "AGGRESSOR_SWITCHED_TARGET 2688 100", "AGGRESSOR_SWITCHED_TARGET 3999 727", "AGGRESSOR_SWITCHED_TARGET 1852 748", "AGGRESSOR_SWITCHED_TARGET 704 772", "AGGRESSOR_SWITCHED_TARGET 713 726", "AGGRESSOR_SWITCHED_TARGET 1846 755", "AGGRESSOR_SWITCHED_TARGET 4002 744", "AGGRESSOR_SWITCHED_TARGET 2690 729", "AGGRESSOR_SWITCHED_TARGET 1846 748", "AGGRESSOR_SWITCHED_TARGET 1844 721", TARGET_LOST, "AGGRESSOR_SWITCHED_TARGET 704 769", "AGGRESSOR_SWITCHED_TARGET 1853 789", "AGGRESSOR_SWITCHED_TARGET 2689 100", "AGGRESSOR_SWITCHED_TARGET 2688 730", "AGGRESSOR_SWITCHED_TARGET 713 792", "AGGRESSOR_SWITCHED_TARGET 4007 823", "AGGRESSOR_SWITCHED_TARGET 1845 754", TARGET_DESTROYED, "AGGRESSOR_SWITCHED_TARGET 1853 717", "AGGRESSOR_SWITCHED_TARGET 713 772", "AGGRESSOR_SWITCHED_TARGET 1845 756", "AGGRESSOR_SWITCHED_TARGET 2682 777", "AGGRESSOR_SWITCHED_TARGET 713 774", "AGGRESSOR_SWITCHED_TARGET 2682 767")
Thargoids added as groups crash game.
Instead of overflowing the stack, any extra message is now discarded, until the stack is back to decent numbers.
Removing extra messages apparently isn't quick enough to reach "decent numbers", as the stack keeps overflowing.
Similar problem/example:
viewtopic.php?p=136440#p136440
viewtopic.php?p=136801#p136801
(recursive ai fleeing!)