Fractal Softworks Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Starsector 0.98a is out! (03/27/25)

Author Topic: [Minor][0.96a] Harass command incompletely implemented  (Read 779 times)

Zsar

  • Captain
  • ****
  • Posts: 325
    • View Profile
[Minor][0.96a] Harass command incompletely implemented
« on: January 28, 2024, 05:45:36 AM »

Ingame description (emphasis mine):
Quote
Order a single frigate to harass this ship while staying out of its weapon range.
Neither of the bolded parts work, see screenshot.

Armchair programming: I presume that the command does exactly what it says on the tin, but nothing tells the other fleet members to stay away.
(As indicated by their arrows: orange: "not under orders", not pointing directly at an object: "not pursuing any particular goal".)

Not depicted in the screenshot: Other enemies with Engage command on them.

Expected behaviour:
  • a single
  • frigate
  • staying out of its weapon range (side note: dropping this would be better, to waste the target's ammunition and flux - but the description promises it, so for now I am expecting it)
while everyone else does other things, e.g. Engage the off-screenshot enemies.

(To add insult to injury: The depicted Harass target was the next ship to die. None of the Engage targets, no, this one.)

[attachment deleted by admin]
« Last Edit: January 28, 2024, 05:51:04 AM by Zsar »
Logged

Alex

  • Administrator
  • Admiral
  • *****
  • Posts: 26039
    • View Profile
Re: [Minor][0.96a] Harass command incompletely implemented
« Reply #1 on: January 28, 2024, 08:58:20 AM »

(I appreciate the report, but moving this to suggestions because nothing here is a bug.)

The order does assign a single frigate to the job, and it does not tell other ships to stay away. At worst that's an issue with a description, but I don't understand the expectation that other ships would stay away - that would be a massive change, and if that's how it worked, I'd expect *that* to be called out in the description. As-is, it operates as other orders do - ships assigned do the job, other ships aren't affected.

"Staying out of its weapon range" is perhaps... a bit aspirational. It will do that, to some extent, but it also needs to occasionally get close enough to bother the other ship (or it could often just be ignored entirely), so it'll do that, too.
« Last Edit: January 28, 2024, 10:52:24 AM by Alex »
Logged

Athenir

  • Ensign
  • *
  • Posts: 31
    • View Profile
Re: [Minor][0.96a] Harass command incompletely implemented
« Reply #2 on: January 29, 2024, 02:17:30 PM »

the main question i have is "which one was doing the harassing".

In all the possibilities, there is a probability that the game constantly changed the frigate that was assigned as harasser based on the action of cruiser.

something like, the cruiser start aiming at the frigate harassing, that frigate start retreating then another frigate join in to harass the now un-harassed cruiser, rince and repeat.

it all depend on the availability of nearby frigate (and their current stats), as long as they are not actively fighting another ships they can be chosen as a better harasser than the current one. having ships with similar stats make chosing which one is the best harasser not a simple thing.

Logged

Zsar

  • Captain
  • ****
  • Posts: 325
    • View Profile
Re: [Minor][0.96a] Harass command incompletely implemented
« Reply #3 on: January 29, 2024, 04:20:05 PM »

Nah, I am pretty sure that does not happen. No way to be completely sure, because the arrows fade out when ship and target get too close to each other, but I have no reason to suspect it.

I just do not see how this command is supposed to work, if it allows other ships to interfere.

Specifically, I do not see how it could possibly be Working as Desired(TM) that idle ships would rather engage a target under Harass order than another target under Engage order. ... If there were no other targets left - sure, why not! But there were targets left and I had used the available tools to indicate I'd rather have those... ya know, Engage-d.

More generally speaking, I understand that the command is implemented such that it is Technically Correct(TM): It does indeed order only a single frigate, just as promised. ... But Technically Correct is seldomly helpful.
Compare: A "game" that, when started, immediately terminates itself and returns exit code 0 to its invoker, technically works and it has technically 0 bugs and it may even technically have any number of great features. Oh sure, there is no way to ever access them - but have you ever seen a game description explicitly promise that? Thence: Technically.

... Now, this thread has been moved to suggestions, so I may as well suggest how I'd rather see this work:

There are two use cases I can think of:
  • flank a ship under fire from your own heavies, so the flanker can disable components or force it to turn away from the main corridor of fire
  • distract a ship to separate it from its fleet, so either ship or fleet can be engaged in isolation later on
Use case 1 depends on other ships Engage-ing the target, use case 2 depends on other ships not Engage-ing the target.
Use case 2 is the more useful/necessary one (and still somewhat works even now), that is what prompted my investigation and report in the first place.

We already have a control scheme to restrict orders to specific ships (that itself could use some improvement, because e.g. Engage has three such use cases and the scheme only allows two):
  • invoke the order on a target - any own ship may choose freely to honour or disrespect it
  • assign an own ship to the order via right-click - this ship must honour the order and idle ships become less likely to do the same

Scheme 1 maps nicely (enough) to use case 1 and scheme 2 maps nicely enough to use case 2.

Currently, the right-click behaviour for assigned orders seems to be somewhat inconsistent:
  • Avoid - Eliminate (or Engage, not sure)
  • Eliminate -Eliminate (or Engage, not sure)
  • Engage - Engage
  • Fighter Strike - Eliminate (or Engage, not sure; presumably Fighter Strike if carrier)
  • Harass - Harass (replace self-assigned harasser, if frigate; join otherwise
I do not think it would become any harder to grasp if the list were amended to:
  • Avoid - Avoid (makes all other ships ignore the order - Capture, Escort already work this way)
  • Eliminate - Eliminate
  • Engage - Engage
  • Fighter Strike - Fighter Strike if carrier; Engage otherwise
  • Harass - Engage (never replace self-assigned ships - Harass seems to have a pretty high priority for self-assignment, higher than Capture, Eliminate, Engage at least; all ships other than self-assignee and assignee Avoid)

(Personally I'd rather like a single-hotkey option to serve either use case - but so far a bigger order rework does not seem on the table. Sad, as all the orders have a similar dichotomy or more: "You three please Avoid that ship, that hard-counters you, the rest do whatever" is certainly reasonable.
Orders being stackable would also be very nice: "You three Avoid the hard-counter ship, you over there Harass it and you two big guys Engage, please" is desirable as soon as the player gets opposed by non-pirate capital ships.

But presumably we'll have to wait for big improvements on this front and I'd only really consider the details once @Alex posts a blog entry touching the subject. Admittedly, I would like it even better if complex orders were simply no longer necessary, because competent AI behaviour and pre-battle tactics would make it obvious, who should do what.)
« Last Edit: January 29, 2024, 04:23:11 PM by Zsar »
Logged

Doctorhealsgood

  • Admiral
  • *****
  • Posts: 1335
    • View Profile
Re: [Minor][0.96a] Harass command incompletely implemented
« Reply #4 on: January 30, 2024, 06:10:44 AM »

Yes please. order stacking would be great. You could change the ui thing so there is a square on the selected ship and tiny icons on it to represent the orders on it or something
Logged
Quote from: Doctorhealsgood
Sometimes i feel like my brain has been hit by salamanders not gonna lie.