endless-sky / endless-sky

Space exploration, trading, and combat game.
https://endless-sky.github.io/
GNU General Public License v3.0
5.63k stars 1.01k forks source link

Boarding/H2H Rework Concept Outline #6986

Open MasterOfGrey opened 2 years ago

MasterOfGrey commented 2 years ago

Problem Description

This issue outlines the philosophy and critical concepts (intended functions) of the Boarding Rework that is not far from being ready to PR. This philosophy is being provided here so that it can be reviewed properly by @tehhowch before proceeding with PR finalisation.

Related Issue Links

The following issues are associated with the boarding system problem. Some of which have been closed because of actual solutions, and some simply because there was no active pathway to their resolution that was likely to be considered viable. Regardless of status these will actually be considered fully or partially resolved by the proposed solution:

Desired Solution

Desired Solution: The following objectives apply to the Boarding Rework Project:

  1. No single set of outfits for offensive boarding actions is superior in all situations.
  2. Simply maximising the number of crew in the fight is not inherently the solution.
  3. Protracted fights should risk resource expiry of more than just crew availability.
  4. Crew required for ship operation should not automatically be considered for boarding actions.
  5. AI opportunistically boarding you should be something possible and, equally, something counterable.
  6. Retain point-of-game investment for continuity of experience.
  7. Outcomes and behaviour of the system conform to typical expectations.
  8. Consequences for repeated mismanagement (reputation as an employer) exist.

The following outcomes are resultant of these:

    • The effectiveness of boarding-related outfits must have variable effectiveness.
    • A trade-off must exist between having more crew, and having better equipped crew.
    • Some set of boarding-related outfits must have a method of expiring.
    • Your "required crew" (or at least some appreciable fraction of it) must not be usable in offensive boarding action (though may be able to be drawn into it if you're forced to defend).
    • Outfits like "Security Stations" and "Pug Biodefences" must be changed to act as either force multipliers or destructible equipment (possessing a method of expiry).
    • Boarding is not a minigame, the effort remains in the planning and preparation stage.
    • A stat must be used in a way that is either naturally expected, or aligns with an expectation unequivocally communicated to the player.
    • Loss of crew in offensive actions must lead to some lingering gameplay impact.

As such, the following steps are involved in developing the system to conform with those objectives; taking consideration of the resultant outcomes. They're presented in order of application, not in order of objectives, hopefully for ease of seeing how the system builds up as a whole:

Alternative Approaches

These are all actually the more desirable approaches, that haven't been done initially due to complexity/controversy/effort.

Regarding only hired crew attacking: I think it would be reasonable that not all of your required crew are actually essential, so I think it would be sensible that some % of your required crew could be utilised in an offensive boarding action on the proviso that you have more crew than the enemy and greater strength in the combat width. i.e. some of your normal crew will be security staff, or just generally competent and willing to take a bit of risk for reward - but there's no justification for throwing them into the breach unless you have a good chance of winning.

Regarding H2H Capacity: Ideally the capacity for Primary, Consumable, and Armour outfits should all be independent, but this starts to make the outfit screen somewhat cluttered. Conceptually though It makes the most sense, and would allow you to have things like specialised "suit lockers" which are unique to a species that treat their suits like ammunition. This would simulate being able to hire other-species crew for combat, because in order to restock those suits you'd have to go back to their territory to re-supply, and also mean that you can't store grenades in the same space as suits which you can do with just a generic H2H capacity. There's validity to a H2H capacity abstraction shared across all 3 areas, but I can already hear the arguments on discord for it being a balance headache.

Regarding H2H Vulnerabilities Ideally there is a way of individually identifying which terrain features have what magnitude of impact on a particular H2H outfit. This could take a few forms.

  1. An outfit lists its individual strength modifier for every terrain aspect and boarding defence attribute.
      • This is the most granular but the most "messy" and definitely bloats outfit definitions, though it is highly moddable and flexible.
  2. An outfit lists an optimal terrain and a sensitivity value, becoming less effective as it moves steps away from either of its optimal terrain definitions. Still requires individual definitions for SBD's.
      • This is still very granular, but quite messy, but maintains unlimited SBD moddability.
  3. An outfit has a single classification for terrain, (and maybe? a single classification for SBD's/SBD categories) - maybe with some sensitivity value. There exists somewhere a file that is a matrix of classifications and base strength modifications w.r.t. terrain and SBD attributes.
      • This is a larger degree of setup, but does make for huge consistency benefits. It's also quite readily moddable, by adding columns/rows to the matrix. Theoretically every weapon could get away with a single attribute defining what sort of weapon it was, and have eeeeverything that impacts that in the matrix all across the line.
      • This does have the drawback that if you wanted to have two weapons share a category for one terrain feature and not for a SBD then you'd have to create a whole new category - but that's where it might be better to have weapon classifications for terrain and SBD's separately. It's pretty straightforward and I think not too much more complicated.
      • This is now my preferred solution.

Additional Context

Notable Additional Conclusions:

Screengrab of currently used boarding attributes that are in a text file for moddability: image

Current boarding window rework mockup: image

Broader additional boarding windows mockup: image

This is the current working branch for the development of this: https://github.com/MasterOfGrey/endless-sky/commits/Boarding-Rework-2

Zitchas commented 2 years ago

Good writeup! That' s a lot of detail, and I like the sounds of it.

Hurleveur commented 2 years ago

https://github.com/Hurleveur/endless-sky/tree/boarding-rework I have brought my branch pretty much up to date with this The defence attribute thing is not yet implemented because its a bit too ambiguous (but it'll be easy to code in when needed) I'll be adding the scanning part shortly - done

ThrawnCA commented 1 year ago

I like the idea of increasing crew salaries when there are casualties. Would it really be limited to extra crew, though? Regularly getting into fights and losing people might leave your regular crew pretty unsettled... Especially since in-universe, they do still have to worry about getting boarded back, even though in practice that doesn't really happen.

Hurleveur commented 1 year ago

If we do it that way then your whole fleet will rebell against you by costing huge costs. Or did you just mean on the flagship? If so why only the flagship?

Also the idea is to discourage chain boarding, by removing these penalties when you stop doing that by firing the extra crew.

ThrawnCA commented 1 year ago

If we do it that way then your whole fleet will rebell against you by costing huge costs.

Yep, and I think that's a reasonable thing to do. If they signed up with a peaceful merchant trader, and then they learn that their peers are getting killed, it's logical that they would all get concerned and expect more pay.

It doesn't have to be a huge jump all at once, though. Suppose it was a 1 credit increase in salary per casualty, lasting a year. If you make a habit of capturing ships, to the point where you lose an average of ten crew per day, then you'll only have a 10% increase the first day, and a 70% increase the first week. That will hurt, but likely won't crush you, and you'll have the chance to decide if you want to continue, maybe drop extra crew if the costs are really unmanageable. If you do continue, and you don't take steps to improve the casualty rate, then within a month, you'll be paying quadruple wages, which would be very difficult to sustain. By the end of the year, you'd be paying 3700 credits per crew per day, which no one could keep up with. At some point before that, you'd need to adjust your strategy.

Or, for a completely different approach, perhaps there could be an upfront payment when hiring new crew, whose size is determined by your history of keeping them alive. That way, if the fees ever become unmanageable, you can just not hire anyone else, and stop capturing ships.

SimulatedKnave commented 1 year ago

I've mentioned prizes elsewhere, but if death benefits are going to be implemented I'd definitely expect some kind of prize system.

Honestly, I'd urge a prize system before death benefits, because a prize system only affects those who succeed, while death benefits don't punish success that much but punish failure hard indeed. And failure is already a punishment.

ThrawnCA commented 5 months ago

Could boarding make increased use of self destructs?

Currently self-destruct is just determined when boarding specific types of ships, or as a pass/fail chance for capturing drones. But what if successful assaults on crewed ships resulted in an escalating risk that the remaining crew members give up on winning and blow the reactor?

For extra mileage, looting, especially of critical parts, could also trigger the self-destruct risk. You can steal the cargo of medical supplies and they'll wait for you to go away, but try digging out their engines and they might well decide that if they're dead anyway then they'll take you with them.