Fractal Softworks Forum

Please login or register.

Login with username, password and session length

Author Topic: Smaller ships should be groupable  (Read 3639 times)

XazoTak

  • Commander
  • ***
  • Posts: 125
    • View Profile
Smaller ships should be groupable
« on: November 30, 2018, 08:37:46 PM »

As fleets scale up, small ships become incredibly inconvenient.
They take up precious ship slots, make CR management a pain in combat, and are an inefficient use of officers.
What if ships could be grouped?

Groups are multiple ships that are treated as a single ship for purposes of deployment and orders.
Groups are headed by one ship, and all others are escorts that cannot be individually ordered.
If the lead ship retreats or is destroyed, another ship becomes the head of the group (temporarily if it's just a retreat).
The group would have a retreat hull% and retreat CR% which automatically triggers retreat for individual ships, and minimum deployment hull% and CR% which must be more than the retreat settings.
If an order is given to any ship in the group, it applies to the whole group. Eliminate, retreat, and point control override escort behaviour for non-leads.
If an officer or player heads the group, their bonuses apply to all ships with the same hull. If their ship is destroyed, after combat they will switch to the most similar ship in the group. If their ship is below minimum deployment requirements, they will deploy in the most similar ship in the group.
Groups have 6 slots, with ships taking up 1/2/3/4 slots.

Being able to use Kite wings late-game would be awesome.
Logged

meric

  • Ensign
  • *
  • Posts: 15
    • View Profile
Re: Smaller ships should be groupable
« Reply #1 on: December 02, 2018, 05:29:04 AM »

What if they could act like fighter wings currently do?
Logged

TaLaR

  • Admiral
  • *****
  • Posts: 2794
    • View Profile
Re: Smaller ships should be groupable
« Reply #2 on: December 02, 2018, 06:10:14 AM »

For small ships to be viable in late game they either need to share officers (1 officers -> several ships) or officer limit removed, but the rest is unnecessary complication.
Logged

XazoTak

  • Commander
  • ***
  • Posts: 125
    • View Profile
Re: Smaller ships should be groupable
« Reply #3 on: December 02, 2018, 03:44:43 PM »

For small ships to be viable in late game they either need to share officers (1 officers -> several ships) or officer limit removed, but the rest is unnecessary complication.
It's definitely necessary.
Hull/CR management for frigate groups burns through command points like crazy since you spend 1CP every time one of them is on low hull/CR.
Low-DP frigates aren't worth the slot they occupy in max-size fleets, even if they're immensely useful in sub-max fleets. Kite(A) suffers from this issue, in groups it beats destroyers effortlessly but I can't use it because for a Kite group I need to spend 4 of my 30 fleet slots on just 8DP of frigates.
Logged

TaLaR

  • Admiral
  • *****
  • Posts: 2794
    • View Profile
Re: Smaller ships should be groupable
« Reply #4 on: December 02, 2018, 07:52:15 PM »

Yeah, 30 ship limit is the next obstacle in the line after officers. At the very least it could be made to apply to deployment in combat rather than campaign fleet size (should be enough, if primary motivation for it's existence was performance).
Logged

XazoTak

  • Commander
  • ***
  • Posts: 125
    • View Profile
Re: Smaller ships should be groupable
« Reply #5 on: December 06, 2018, 01:03:02 AM »

Yeah, 30 ship limit is the next obstacle in the line after officers. At the very least it could be made to apply to deployment in combat rather than campaign fleet size (should be enough, if primary motivation for it's existence was performance).
Adding limits to how many ships you can have deployed for the sake of performance would get confusing and impractical.
A carrier really hurts performance, and spray weapons definitely hurt performance more than single-fire weapons.

I reckon the real problem is poor game efficiency, amongst space games Starsector ranks pretty low in terms of number of ships simulated without lag.
Starsector's graphical style is 2D with ships rendering damage effects and having extra sprites for smaller parts.
Starsector's simulation style is a mixture of projectile and beam weapons, and ships with AIs that acknowledge many other ships.

Gratuitous Space Battles 2 is the same but much more efficient though with a much more simple AI.
Other than the simpler AI, I think Starsector should aspire to have GSB2's efficiency.
Is the GPU or CPU the main constraint to battle size?
Logged

TaLaR

  • Admiral
  • *****
  • Posts: 2794
    • View Profile
Re: Smaller ships should be groupable
« Reply #6 on: December 06, 2018, 01:23:20 AM »

Yeah, 30 ship limit is the next obstacle in the line after officers. At the very least it could be made to apply to deployment in combat rather than campaign fleet size (should be enough, if primary motivation for it's existence was performance).
Adding limits to how many ships you can have deployed for the sake of performance would get confusing and impractical.
Limit is already there (can't deploy more than you have in fleet, which is in turn limited to 30), i suggest just reducing it's impact.
Logged

Wapno

  • Commander
  • ***
  • Posts: 219
    • View Profile
Re: Smaller ships should be groupable
« Reply #7 on: December 06, 2018, 02:23:39 AM »

A very good suggestion. Any sensible proposition that combats the problem of 30-ship fleet limit is worth considering.

One issue that this would solve is that pretty much the only user of frigates in the end game is going to be AI. Player just can't afford to waste ship slots on anything smaller than cruisers or capital ships.
Logged

Megas

  • Admiral
  • *****
  • Posts: 12157
    • View Profile
Re: Smaller ships should be groupable
« Reply #8 on: December 06, 2018, 04:54:11 AM »

If we have fleet limit (instead of Fleet Points or Logistics), I just want the AI to obey the fleet limit like the player.  AI used to in 0.8, usually.  Now, they do not.
Logged

Duetzefix

  • Ensign
  • *
  • Posts: 1
    • View Profile
Re: Smaller ships should be groupable
« Reply #9 on: February 14, 2019, 06:04:05 PM »

See, I thought about that. And I've had a (weird?) idea that I'd like to share.
So, how about an officer skill? Something your character as well as your officers could unlock via skill points. Like this:

Division Command
Governing aptitude: Leadership (I guess? Lots of green skills around already, but it fits here best, IMO.)
<fluff text here>  :D
You can assign ships (limited to frigates/maximum of one destroyer, rest frigates?) to escort this character's ship, up to a certain limit of Deployment Points (DP). The ship and its escorts always deploy as one entity in combat, the escorts are automatically assigned to escort the character's ship and cannot be ordered otherwise, except to retreat.
Level 1: You can assign ships up to a total of 5 DP to escort this character's ship. If this character is piloting a frigate this limit increases by an additional 5 DP.
Level 2: You can assign ships up to a total of 10 DP to escort this character's ship. If this character is piloting a frigate this limit increases by an additional 10 DP, if they are piloting a destroyer this limit increases by an additional 5 DP, instead.
Level 3: You can assign ships up to a total of 15 DP to escort this character's ship. If this character is piloting a frigate this limit increases by an additional 15 DP, if they are piloting a destroyer this limit increases by an additional 10 DP, and if they are piloting a cruiser this limit increases by an additional 5 DP, respectively.


This would mean that if my character was piloting an Enforcer (destroyer/9 DP) and had this skill at level 2 I could assign up to 15 DP worth of escort ships, like a Vigilance (5DP), a Monitor (6DP) and a Centurion (4DP). If I wanted to deploy this "division" into battle it would take 24 DP to deploy; I couldn't just deploy it partially if I thought the Enforcer alone would be enough, it's either the whole thing for 24 DP or not at all.
I could switch the Monitor and Vigilance out for two additional Centurions which would take the DP cost of the division down to 21 DP, for example. But only while organizing my fleet, i.e. while docked at a planet or station.
This "division" would of course still use up supplies and fuel like the individual ships would, as well as have to pay the usual recovery cost after being deployed into combat. The advantage is, of course, that you could get several ships at once while only occupying a single "fleet slot" of the 30 your fleet is limited to. The disadvantage, apart from the skill points cost, is reduced tactical flexibility.

Personally I'd rather limit this to military, i.e. non-civilian, ships. Otherwise you could e.g. give a level 3 officer only this skill, put them on a Dram, division it up with another 15 Drams and have 6000+ fuel capacity with a 10 maximum burn for basically nothing, which isn't the point of this.
I don't yet know if the escorting ships should be limited by size. I mean, if you think it's a good idea to escort your Tempest with a Venture I don't know what to tell you, but maybe there are exploits there that I can't see, yet. I'm dumb like that, sometimes.
Also I think the character's other skills should work on the escorting ships, not only on their own. But maybe that's dumb, as well.


Anyway, numbers and other details are only there to make it easier to explain, I'm not married to those. So tell me what you think about it. I'm a big boy, I can take it. Probably.  ;D
Logged

RawCode

  • Admiral
  • *****
  • Posts: 511
    • View Profile
Re: Smaller ships should be groupable
« Reply #10 on: February 14, 2019, 10:21:07 PM »

"Stackable" ships will greatly improve game, not ever small ships, all ships of equal design.
Logged

DatonKallandor

  • Admiral
  • *****
  • Posts: 718
    • View Profile
Re: Smaller ships should be groupable
« Reply #11 on: February 15, 2019, 05:37:07 AM »

Gratuitous Space Battles 2 is the same but much more efficient though with a much more simple AI.
Other than the simpler AI, I think Starsector should aspire to have GSB2's efficiency.
Is the GPU or CPU the main constraint to battle size?

GSB doesn't simulate projectiles, they are purely drawn for visuals on top of dice rolls to determine hits or misses. That is much less CPU hungry.

Starsector not only simulates every shot out to it's maximum range, it also requires all ships within a certain distance to be aware of that shot, and factor it into their movement.
Logged

xenoargh

  • Admiral
  • *****
  • Posts: 5078
  • naively breaking things!
    • View Profile
Re: Smaller ships should be groupable
« Reply #12 on: February 15, 2019, 09:59:08 PM »

Quote
Is the GPU or CPU the main constraint to battle size?
Unless you have a GPU that doesn't get along well with SS, CPU's the limiting factor.

There are a bunch of things going on every frame that probably can be optimized a bit.

I've thought about writing a new multithreaded projectile handler that might be faster and talked to the AIs about nearby projectiles directly, but it'd break mod compatibility entirely, as certain things would have to be handled through some stuff that would not be native, etc. 

Basic sketch of that would be:

1.  New projectiles get their frame-to-frame physics handled by a secondary thread.

2.  Collisions are only checked against the set of objects that, at projectile birth, are within X range- probably the maximum including fadeout frames.

3.  If something very important to check against needs to be inserted into that data, it gets inserted (say, a new MissileAPI gets born this frame that might be hit by the projectile; it can be evaluated whether there's any chance at all and then put in, if it's necessary).

There's probably a vaguely-compatible version of the above that could be done within the existing framework; set all DamagingProjectileAPIs to not do Vanilla collision checks but do something like 2 and 3, maybe even in a secondary thread, dunno; it's been on my radar for over a year now but I just don't have much free time to do Serious Modding right now.

There are a bunch of things on the rendering end where I'm fairly certain some speedups are possible but that stuff is crunchy-hard, unfun work.   Just building a faster particle system took me quite a lot longer than I'd have thought.

But hey, it all works, and honestly, the game's simulating quite a lot vs. most others of the type, where it's either dice-rolls or the number of things is kept much lower.
Logged
Please check out my SS projects :)
Xeno's Mod Pack

Plantissue

  • Admiral
  • *****
  • Posts: 1231
    • View Profile
Re: Smaller ships should be groupable
« Reply #13 on: February 16, 2019, 04:11:39 PM »

Deploying ships in combat is a seperate issue from maximum number of ships in a fleet.

There's not really a legitimate reason for limiting the number of ships that a player can have in fleet except to have some sort of arbitrary fleet size for the sake of clarity.
Logged

Blothorn

  • Commander
  • ***
  • Posts: 116
    • View Profile
Re: Smaller ships should be groupable
« Reply #14 on: February 19, 2019, 11:00:14 AM »

Quote
Is the GPU or CPU the main constraint to battle size?
Unless you have a GPU that doesn't get along well with SS, CPU's the limiting factor.

There are a bunch of things going on every frame that probably can be optimized a bit.

I've thought about writing a new multithreaded projectile handler that might be faster and talked to the AIs about nearby projectiles directly, but it'd break mod compatibility entirely, as certain things would have to be handled through some stuff that would not be native, etc. 

Basic sketch of that would be:

1.  New projectiles get their frame-to-frame physics handled by a secondary thread.

2.  Collisions are only checked against the set of objects that, at projectile birth, are within X range- probably the maximum including fadeout frames.

3.  If something very important to check against needs to be inserted into that data, it gets inserted (say, a new MissileAPI gets born this frame that might be hit by the projectile; it can be evaluated whether there's any chance at all and then put in, if it's necessary).

There's probably a vaguely-compatible version of the above that could be done within the existing framework; set all DamagingProjectileAPIs to not do Vanilla collision checks but do something like 2 and 3, maybe even in a secondary thread, dunno; it's been on my radar for over a year now but I just don't have much free time to do Serious Modding right now.

There are a bunch of things on the rendering end where I'm fairly certain some speedups are possible but that stuff is crunchy-hard, unfun work.   Just building a faster particle system took me quite a lot longer than I'd have thought.

But hey, it all works, and honestly, the game's simulating quite a lot vs. most others of the type, where it's either dice-rolls or the number of things is kept much lower.

This would not be totally reliable, and breaking reliability for performance is rarely a good idea.

Besides: this would involve a near-total rewrite of a lot of combat mechanics, and strongly diverges from best practices in multithreaded games (parallelize steps rather than running different parts of the engine on different cores simultaneously)--it is difficult to reason about and does not utilize cores efficiently because the work is unlikely to be well-balanced.
Logged