Fighters & Carriers

This is for directed discussions on immediate questions of game design. Only moderators can create new threads.
Message
Author
User avatar
MatGB
Creative Contributor
Posts: 3310
Joined: Fri Jun 28, 2013 11:45 pm

Re: Fighters & Carriers

#16 Post by MatGB »

K, a lot to digest and think about so far which is cool. I think we've coalesced around keeping the stats relatively low but letting them get through ship shields, I'm also of the opinion that letting them avoid planetary shields as they currently work is a bad idea, they're a different type of shield with different game effects and the balance would be well off (possibly worth renaming one or the other to avoid confusion as is anyway, screens?).

I'd like to keep refinements relatively straightforward down the line, getting a completely new wing of fighters added to an existing ship should be easier than ripping out the existing gun turrets to replace them, to at least some extent, and am of the opinion that keeping it relatively simple in terms of what types of fighters you have is better, too much complexity takes it far too tactical for my tastes in a hands of high strategy game.

I'm not at all sure on why keeping the fighter weapon part separate is a good plan, linking it to the hanger works fine for me, especially if we keep the variety of types very low overall—the idea that the 'better' fighters would have fewer per hanger is I think a good one as well.

As it is, some sort of refinement system is going to be needed before we merge this in I think, without it they're basically decoys in the mid to late game.
Mat Bowles

Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Fighters & Carriers

#17 Post by Vezzra »

Geoff the Medio wrote:
Vezzra wrote:Although that can also be achieved by allowing just one type of hanger on a design.
Such a part restriction is not currently (or at least well) supported, and would be complicated to implement, particularly in a way that works well with the design UI.
Well, the issue needs to be addresses in one way or the other anyway, as your current solution has the same problem, you just moved it to an extra part (the fighter weapon). Your way to deal with the basic problem is just letting the strongest part take precedence over weaker parts if the player places more then one of them on a design. The same solution can be applied to different type of hangar parts: the hangar with the strongest fighters determines the weapon strength of all the fighters on the carrier.

Of course that approach can only be a stop-gap solution, as it's obviously far from ideal, and certainly very counter-intuitive in either case. We have the same issue with all parts which provide stats that don't stack, e.g. shields (where there already have been complaints why you're allowed to put more than one on a design if that is useless), so we need to address this anyway, by implementing a mechanic that allows us to define conditions a ship part must meet (besides being unlocked and being available) to allow a player to place it on a design.

In the meantime, any solution you come up with for one approach can be applied to the other just as well, so that certainly doesn't justify the extra fighter weapon part.
There is currently / could be just one stat to track for fighters: their damage. No need to have multiple types any more than you'd "need" multiple weapon types on a ship.
Morlics idea on how to address the problem of how to get fighter weapon strength balanced rightly would require exactly that, two clearly distinct "types" of fighters.

Of course, if we take the make fighters shield piercing route, you're right. Although I like Morlics idea slightly better, the shield piercing approach also sounds very appealing, I can certainly live with that.
And having multiple types of fighter on one ship has other problems, such as then needing to prioritize / order fighter launches by type given limited launches per combat round.
Of all the arguments you list to make your case in favor of allowing only one type of fighter on a carrier, this is the one where I've to admit you really got a point here, and a very strong one. I didn't think of that implication, and after giving it some thought I've to admit there is no satisfying solution.

The only way to avoid that problem would be to drop the fighter launch rate feature, and just have a ship part that provides the fighter storage, and launches all the fighters at the first combat round. Then there would be no limit to the launches, and no need to prioritize. With that approach we could even return to using just one part (fighter bay or deck) that provides the storage capacity, determines the fighter "type" (weapon strength), and launches the fighters. So all fighters would be launched at once at combat start, and that's it. From a players POV, the most intuitive, simplest and most straightforward solution.

Personally, I'd prefer that, because this fighter launch rate thing is certainly nice, but IMO doesn't add that much of an interesting mechanic that is worth the only one fighter type per carrier restriction that comes with it. For me being able to implement Morlics approach is more appealing and interesting than having a total fighter capacity balanced against fighter launch rate mechanic. OTOH, the fact that you need both an internal and an external part also has a certain appeal, that would be lost if we discard the fighter bay/fighter hangar approach.

So, bottom line, although I'm not too happy with the one fighter type per carrier restriction, I think I can live with it, all things considered. As I said already above, the idea to make fighters shield piercing certainly sounds appealing, and would remove the need to have multiple fighter types anyway. However, that still doesn't require/justify the fighter weapon ship part approach. Here my point still stands, that should be integrated into the hangar part.
And the player would want to know / the UI would need to show numbers of multiple types of fighter per ship, instead of just one stat for number of fighters.
Geoff, I really don't understand your problem with that.

First of all, the tooltip for the weapon strength stat icon already does something similar (well, sort of), it gives you a breakdown of all the weapons on the ship and their individual strength. A very important info considering how shields work. For the fighters we'll need to provide a new stat icon anyway, the sum would just be the total number of fighters on your ship, the tooltip would give you the breakdown how many fighters you have of each type. Certainly not more complicated than the weapon breakdown.

Second, as I already said in my former post, you're going to need that breakdown anyway, on the fleet/system summary level. Where the players are going to look most of the time by the way, why bother looking at that info on the ship level? Of course it has to be provided there too, but that applies even if we have only one type of fighter on a carrier. Only displaying the total number of fighters on the ship isn't enough, you'd still also have to provide the fighters weapon strength in some way (tooltip of the fighter stat icon). Making that a list of <number of fighters> <fighter type/strength> isn't really more overwhelming than the weapon breakdown, don't you think?
Also, one can achieve a desired ratio of particular types of fighter by building the appropriate ratio of their corresponding ship designs, without need to have a fraction of the fighters on each ship have different properties.
Sure, and with smaller carriers that will work well enough (as you can't really fit more fighter types on smaller hulls). But please consider the really big hulls (solar, titan, etc.). If I need a ratio of, lets say 2:1 of "interceptors" and "bombers" on my fleet, and want to achieve that with solar hull carriers, that means I always need to send at least three of that giants together. With mixed fighters on a carrier a single solar hull carrier could achive that. Of course I can just use smaller hulls for my carriers, but that's less efficient than if I could do the same with one big carrier.

There's definitely the potential for sufficiently different, interesting, viable options here IMO we loose with the only one type of fighter per carrier approach.
The current setup with the fighter weapon as a ship part of the carrier is very counter-intuitive.
But easily explained and understood.
That's not the point. It doesn't take a genius to comprehend the shield mechanics and how only one shield part makes sense on a design. Yet we still had players getting it wrong the first time and complaining why they are allowed to put more than one shield part on a design if multiple shields don't add up. The problem is not that the setup is so complex it can hardly be explained and understood, when other approaches are possible that are not counter-intuitive, and therefore even more easily explained and understood (or better, are even self-explanatory and don't require any extra explanation).
As a player, I won't have to keep track of from which hangar a fighter comes from.
The game does internally.
I didn't deny that it will make the code more complex. But a (of course reasonable amount of) added code complexity can't be the reason to prefer a very unintuitive solution over a intuitive one, can it?
More stuff to choose from is not necessarily better.
True, but I think I gave good reasons why I believe that in our case here it would be (I mean, of course just in case we decide to go with a solution that will require the use of different fighter types).
As the system is currently set up, players hardly keep track of meters on the ship part level.
They would need to if there are multiple types of fighter in one ship.
Why? Honestly, I can't see any reason why I would ever look at those stats at the ship part level. Heck, I would hardly look at those stats even on the ship level, mostly I would look at them on the fleet/system level, and as I pointed out above, there we're going to need that breakdown (how many fighters of each type) anyway.
I originally starting adding a second meter to a fighter-related part, but dropped it and switched to separate part types with one purpose each. A part being described by a single stat is very preferable for player understanding and UI display of the relevant info.
No. Plain and simple. You can't generalize that statement, and in our case here it's actually confusing and definitely not preferable for me as a player to have to deal with two separate ship parts just for the sake of providing two different stats for one game element (fighter). Naturally, I'd expect the hangar part to determine the type and amount of fighters it can hold. It would be more or less self-explanatory. The fighter bay part would be equally simple to understand. Also how both of them work together and why they are separate parts, although you can't use one without the other. But the fighter weapon part I have to put on the ship would definitely throw me off. If I'd encounter something like that in another 4X space game, I'd wonder what the devs were thinking coming up with such an ackward solution.

Regarding UI display: I'd certainly prefer getting both stats by looking at one ship part than having to look at two different parts.
There's also already some ambiguity between "capacity" and "damage" in ship parts, and I wanted to avoid having both mean something distinct for a single part.
That bothered you? In my eyes that's a minor annoyance at worst. But the ackwardness of a fighter weapon ship part, which is much worse IMO, doesn't bother you? We definitely perceive some things very differently... ;)
Next I was going to have an empire-wide fighter damage stat, but thought that was too limiting
Well, I'm glad, because that would have been an even worse idea IMO.
UI problems arise when you have multiple values of these stats that can't be summarized in a single number for a ship.
What UI problems that we don't already have to deal with (weapon strength summary), and will have to deal with on the fleet/system level anyway (fighter type/number breakdown), see above? And even if, then we'll have to address them, but not by implementing counter-intuitive solutions like the fighter weapon part.
I don't see how this a "realism" problem. To maintain fighters, a carrier would need suitable equipment for the fighter's weapons. The part represents that.
Sorry, doesn't work for me. There is only so much you can cover up with fluff explanations, before they get too obviously cover-ups.

The whole approach looks like a tacked on thing to implement something the engine wasn't really designed for. Like those 1PP "beacon" buildings to provide a means to set a destination e.g. for the planetary starlane drive, because the UI doesn't provide the means of selecting a destination without that hackaround. The fighter weapon part solution feels similar. The engine can only handle a single stat per part, so we work around that limitation by introducing an additinal part that provides that stat. Works, but not very pretty.
Making fighter weapons shield piercing would involve removing a dozen or so lines of existing code and related adjustments and would actually simplify the relevant function.
Oh, didn't expect that. After all, a weapon damage dealing code, which handles shields but no shield piercing, has to be in place already. So I naturally assumed that a shield piercing weapon would introduce a special case, hence additional code complexity.

Well, makes the fighters as shield piercers approach more preferable. I'm fine with that. :D
Hangar capacity doesn't really affect ship/fighter performance in one battle.
Huh? Hangar capacity -> total number of fighters you can field in a combat -> higher number of fighters will overwhelm enemy PD more easily? How does that translate into not really affecting ship/fighter performance in one battle...?
Upgrading fighter weapons or launch rate is pretty much the same as upgrading a ship weapon. I don't see why this is a problem for fighters but not other weapons... as with a bunch of other balance discussion that followed.
Geoff, we were talking about the idea how the MD could keep its value as a PD weapon and not becoming completely obsolete once better weapons are researched. I got the impression that you favored the idea. For that to work, the MD has to be able to compete against the other alternative of countering fighters, which is fighters. It can't compete if it can't be improved in any way for that role. No one will bother with cheap MD equipped PD ships if fighters are clearly the more effective way to defend against fighters.

Ok, tl;dr (sorry for the text flood): If we go with the approach to make fighters shield piercing, and thus have no need for mixed fighter type forces, I can see your point of how restricting a carrier to one type of fighter makes sense. Even if I'd prefer an approach where we could implement Morlics ideas, I can live with the alternative.

However, regarding keeping the three fighter parts approach, the fighter weapon ship part in particular, just to avoid a ship part with two part meters: here you're points are not valid IMO. My proposal to combine the hangar and the fighter weapon into one part still stands.

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Fighters & Carriers

#18 Post by Vezzra »

Morlic wrote:I guess, it would still be possible by coupling them using FOCS effects (bomber-style weapons setting hangar capacity to X / reducing by Y on the same ship).
I've thought of that too, but dismissed the idea - it would make the entire thing even more feel like something patched together than it already is (in it's current state). It will also require some complicated scripting, as it will have to deal with the possibility of multiple fighter weapons on a design. Then there is the problem of making the whole mechanic and the modified stats transparent to the player... that approach has a lot of issues.

However, if the fighter storage capacity and weapon strength are both tied together by being provided by the same part, all those pains go away, and implemeting your approach becomes so much simpler. It really doesn't make sense, if we'd decided to follow your idea, to complicate things so much just to avoid parts with two part meters. That sounds like a "lets save money at all costs" approach...

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Fighters & Carriers

#19 Post by Vezzra »

MatGB wrote:I'm also of the opinion that letting them avoid planetary shields as they currently work is a bad idea
Which raises the question, what to do? The simplest solution certainly is to just not let fighters pierce planetary shields. Probably good enough for now, although that still doesn't solve the problem that with the introduction of fighters planetary defences will become horribly ineffective. Deploying lots of fighters when attacking planets (especially ones with high defence meters) is going to be a no brainer, as those fighters will effectively neutralize the powerful shots of the planets. This will practically defeat the point of trying to get your planetary defences up.

So, that issue needs to be addressed. The only way I see is we have to redesign how planetary defences work. Suggestion: the defence meter determines the number of shots a planet can deliver in one combat round (representing the number of orbital defence sats, or ground-to-space cannons on the planets surface, or whatever), not the strength of only one shot. The strength of each shot could be determined by either the highest direct weapon type you've currently researched, or by a separate line of techs for planetary weapon types (kind of the type of orbital defence sats/planet based ground-to-space cannons). Meaning, the planetary weapon strength will become an empire meter. A mechanic similar to how detection range/detection strength works.

Thoughts?

Morlic
AI Contributor
Posts: 296
Joined: Tue Feb 17, 2015 11:54 am

Re: Fighters & Carriers

#20 Post by Morlic »

Vezzra wrote:
MatGB wrote:I'm also of the opinion that letting them avoid planetary shields as they currently work is a bad idea
Which raises the question, what to do? The simplest solution certainly is to just not let fighters pierce planetary shields. Probably good enough for now, although that still doesn't solve the problem that with the introduction of fighters planetary defences will become horribly ineffective. Deploying lots of fighters when attacking planets (especially ones with high defence meters) is going to be a no brainer, as those fighters will effectively neutralize the powerful shots of the planets. This will practically defeat the point of trying to get your planetary defences up.

So, that issue needs to be addressed. The only way I see is we have to redesign how planetary defences work.
Some alternatives or additional aspects...
  • Let planets launch their own fighters
  • Let planets not attack fighters (or only after all ships have been destroyed) - code already exists so planets don't attack other planets, seems fairly easy to extend...
If we reduce damage per shot for planets and increase attack count, the total should probably be greater than at the moment considering ship shield mechanics...
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Fighters & Carriers

#21 Post by Vezzra »

Morlic wrote:Let planets launch their own fighters
Hm, are you thinking of additional meter(s) for planets to determine the amount/weapon strength of the planetary fighters, or of tying that somehow to the existing defence meter? Personally I'm wary to add additional meters for that purpose...
Let planets not attack fighters (or only after all ships have been destroyed) - code already exists so planets don't attack other planets, seems fairly easy to extend...
That could at least be a quick stop-gap solution, although it's not the prettiest and not optimal, as fighters would still be extremely effective against planets.
If we reduce damage per shot for planets and increase attack count, the total should probably be greater than at the moment considering ship shield mechanics...
Of course. With a change to the mechanic as major as this, all the numbers will have to be rebalanced.

mel_o
Space Floater
Posts: 26
Joined: Tue Mar 10, 2015 8:23 am

Re: Fighters & Carriers

#22 Post by mel_o »

Wow! This'll certainly add some depth to the combat system. Did a quick playtest and they seem to make battles last longer, which is nice.

Overall, I'm of the opinion that having fighter damage in a separate part doesn't really solve any UI problems: the one-per-ship restriction has the same issues as shields and cloaks and having a both a damage and capacity meter on a single part doesn't seem to be too difficult, it just requires some (useful, IMO) changes to the meter enum and the parser in C++. Having separate fighter bays and hangars is very cool, it adds use for internal slots while competing for external slots (so a ship can't have the best of both worlds with lots of direct-fire weapons and fighters).
Geoff the Medio wrote:
...more different designs to maintain...
I suspect the opposite.
The current setup with the fighter weapon as a ship part of the carrier is very counter-intuitive.
But easily explained and understood.
As a player, I won't have to keep track of from which hangar a fighter comes from.
The game does internally.
As the system is currently set up, players hardly keep track of meters on the ship part level.
They would need to if there are multiple types of fighter in one ship. With just one fighter behaviour for a ship, there can be just one "fighter count" UI indicator (like fuel), and one a "fighter weapon strength" indicator.
I would personally much rather design ships to have a close-to-optimal mix of fighter types, especially as I unlock the larger hulls and also since the game penalises empires for building more ships. A chokepoint might only need one ship full of fighters to achieve a good fleet composition and I'd rather not build more just to get a mix of fighter types.

From my first impressions, the separate part looks like a hack and I don't think there would be enough variation in weapon types to warrant taking another slot just to specify it. One would use cheap weapons for interceptors (to target other fighters) and more expensive weapons for bombers (to target cap ships and planets) which was also suggested by Morlic and happens to be analogous to aircraft fighter/bomber roles. It seems like it would be far more intuitive for the user to have two hangar parts: one with high capacity for low damage interceptors and one with low capacity for high damage bombers. If that requires adding two part meters to a part then so be it, the hardest part I can see would be changing the parser to let you add both a damage and capacity stat to the parts in FOCS (although it might just look hard because I don't understand the parser code ;p) plus finding a meter type to use.

As for UI, the ship/fleet info panels will need a StatisticIcon for fighter count anyway and fighter damage is already displayed in the damage StatisticIcon. The actual damage calculation would depend on how fighter launches are prioritised but I'm sure there's a good solution to that. One idea would be to have interceptors launched in the first round and bombers launched in the second, which would also limit the amount of damage a bomber could deal per combat. I've also seen discussion on making combat more interactive - perhaps the player could make those decisions on a per-combat basis at some point in the future.

With two types of hangar, the backend code would only need to know what type of fighter it is (interceptor vs. bomber) & the ship it was on in order to get everything back to its proper destinations & make sure each fighter gets its correct weapon strength (as I understand it, it would be possible to have carriers with different fighter weapon refinements in the same system, so one can't just cluster fighters from different ships together naively).
Geoff the Medio wrote:There's also already some ambiguity between "capacity" and "damage" in ship parts, and I wanted to avoid having both mean something distinct for a single part. Once I got into the implementation, it felt like the wrong approach.
I'd be for creating a separate METER_DAMAGE which could simply replace METER_DEFENSE (AFAIK that's only used for planets) and moving all ship & planet weapons to use the new meter.
Geoff the Medio wrote:
...the way these stats are presented to the player on ship and fleet level it makes absolutely no difference if those stats are provided by one or two parts "under the hood".
UI problems arise when you have multiple values of these stats that can't be summarized in a single number for a ship.
As far as I can tell, the UI can already handle arbitrary calculations to determine the values shown on the StatisticIcons in the ship and fleet summary windows, particularly for weapon damage and also special cases like deciding whether to show a troop count or damage value for each ship. There are also custom BrowseWnds e.g. ShipDamageBrowseWnd to display the breakdown of weapons on the ship. I think either a StatisticIcon for the number of each type of fighter (inteceptor/bomber) present with the total capacity displayed in a MeterBrowseWnd as is done for other paired meters e.g. shields or a combined StatisticIcon with a custom BrowseWnd to display the number of each type instead. The damage ratings for the fighters are already displayed in the ShipDamageBrowseWnd, the raw values would just come from the hangar parts instead of a separate "fighter weapon" part, and the calculated value would depend on how launches are prioritised.
Geoff the Medio wrote:I don't see how this a "realism" problem. To maintain fighters, a carrier would need suitable equipment for the fighter's weapons. The part represents that.
It takes up valuable space on small early hulls and I don't think it makes sense as a separate part since its only function is to act as a 'flag' to tell the game what kind of fighters the ship has. There's no explanation of why only one is needed per ship regardless of the number of fighters it contains and is capable of launching per combat.
Geoff the Medio wrote:
I expect all those fighter techs to have various refinments - improved fighter bays that can launch more fighters per combat turn, improved hangar capacity, improved fighter weapons.
Hangar capacity doesn't really affect ship/fighter performance in one battle. Upgrading fighter weapons or launch rate is pretty much the same as upgrading a ship weapon. I don't see why this is a problem for fighters but not other weapons... as with a bunch of other balance discussion that followed. But regardless, upgrades for fighter parts don't need to work the same as for direct fire weapons.
Hangar capacity would affect the endurance of carriers though - for the same number of hangar parts they could spend longer in enemy territory before running out of fighters and returning to supply, which would tie in nicely with the "retro-fitting when in supply" mechanic already in place.
Geoff the Medio wrote:Destroy the ship that carries them, as with "countering" other ship weapons...?
Currently fighters provide many targets and can draw fire away from capital ships, so that's not a very useful "counter" at all. Unless we add the ability for ships to preferentially target other ships then there is no counter to fighters except cheap, low-damage weapons (other fighters). An actual counter would be a low-damage multiple-shot ship weapon that is utterly useless against shielded ships but very effective on fighters i.e. point-defence weapons.
Geoff the Medio wrote:
What I mean is, more stats don't necessarily equal more complicated, or maybe better, avoiding additional stats at all costs doesn't necessarily mean things will be less complicated that way.
I am no objecting to "complicated" as a concept. I'm trying to avoid specific issues that having multiple meters on a part would cause for this application.
I don't think the UI is a compelling enough reason to create an entirely new part that takes up valuable space on early hulls. At the very least, I would prefer having the damage stat attached to the hangar parts even if there could only be one hangar type per ship design. I agree with Vezzra that the restriction has the same design UI issue as shields and cloaking devices and that issue already needs to be dealt with at some point so it's not like this would cause any more work later on.
Vezzra wrote:
And having multiple types of fighter on one ship has other problems, such as then needing to prioritize / order fighter launches by type given limited launches per combat round.
Of all the arguments you list to make your case in favor of allowing only one type of fighter on a carrier, this is the one where I've to admit you really got a point here, and a very strong one. I didn't think of that implication, and after giving it some thought I've to admit there is no satisfying solution.
I don't think it's an impossible problem, see my suggestion above.
Vezzra wrote:
There's also already some ambiguity between "capacity" and "damage" in ship parts, and I wanted to avoid having both mean something distinct for a single part.
That bothered you? In my eyes that's a minor annoyance at worst. But the ackwardness of a fighter weapon ship part, which is much worse IMO, doesn't bother you? We definitely perceive some things very differently... ;)
To be fair, the C++ side of things doesn't have separate meters for "capacity" and "damage" which does complicate things.

As for the mechanics of the fighters, if they're not split up into interceptor/bomber roles they would either have to ignore ship shields to remain effective in the late game or the shield mechanics would need to be reworked so the damage can stack up every combat round as Vezzra brought up earlier.

If fighers are split into roles then I would like to introduce some high-level discrimination with the targeting of weapons: interceptors and PD weapons will /preferentially/ target interceptors/bombers while bombers, cap ship weapons and planets would /preferentially/ target cap ships and planets. They're fundamentally different targets (why would a capital ship aim a Death Ray at a tiny interceptor if there were bigger, more dangerous ships around?) so I don't think it's worth lumping them together for the sake of randomness in a battle - the choices between targeting an interceptor vs. bomber or a gunship vs. carrier vs. planet vs. unarmed ship would still be random. It would make lone carriers more vulnerable but I'm not sure if that would be a bad thing.

I don't think it's worth changing planet defence to have multiple smaller attacks against an invading fleet because it would require changing their balance vs. ship shields. If ship shield mechanics remain the same then I'd instead suggest that planets and interceptors/bombers /cannot/ target each other, the lore could say that only cap ship weapons are powerful enough to do any real damage to a planet, and planetary defences are too cumbersome to aim at the small agile craft. Unfortunately, this would also ensure that direct-fire weapons would be required for planet bombardment and would mean that an empire must research direct-fire weapons at the expense of a possible strategic decision.
Unless stated otherwise, code and scripts provided by me are released under GNU GPL 2.0 (or later) and other content is released under CC BY-SA 3.0.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Fighters & Carriers

#23 Post by Geoff the Medio »

Vezzra wrote:...I naturally assumed that a shield piercing weapon would introduce a special case, hence additional code complexity.
There are already 9 "special cases", for each of fighters, ships, and planets attacking any of fighters, ships, or planets. Changing how one or more works doesn't change how many there are.
Hangar capacity doesn't really affect ship/fighter performance in one battle.
Huh? Hangar capacity -> total number of fighters you can field in a combat -> higher number of fighters will overwhelm enemy PD more easily? How does that translate into not really affecting ship/fighter performance in one battle...?
Number of fighters launched in a combat is (at least now) limited more so by launch bays than hangar capacity. You'd need a lot of bays to run out of fighters before combat rounds to launch them in, at least with current numbers.
...[mass driver(s)] has to be able to compete against the other alternative of countering fighters, which is fighters.
Are they? Various people in this thread keep declaring / assuming that there needs to be or will be an interceptors vs. bombers distinction, and that fighters are a suitable / good / potentially the only counter to other fighters. What is this based on, other than repeating the initial suggestion? At least how things work now, fighters are quite capable of attacking ships regardless of whether there are other fighters around. Launching huge numbers of fighters could provide more targets that will reduce the number of shots that target one's ships in the next combat round, but this would not (completely) prevent the ships from being targeted.
...we were talking about the idea how the MD could keep its value as a PD weapon and not becoming completely obsolete once better weapons are researched.
There are a couple meanings of "better weapons"; In particular, any higher-damage ship-based weapons are no more effective than damage=1 weapons against fighters, so the lower-damage option(s) are likely to be used by players that have no invested in alternatives if a specifically anti-fighter ship is needed.
No one will bother with cheap MD equipped PD ships if fighters are clearly the more effective way to defend against fighters.
A cheap hull with very cheap weapons would be relatively cheap to produce. Depending how expensive mass drivers are (and how much less so they can be made with refinements) and the availability of cheap hulls with lots of external slots to mount them in, a mass-driver based anti-fighter ship could be possible and efficient. The tradeoff would also depend on the cost of fighter-capable hulls, the fighter parts themselves, and whether the battles are taking place somewhere that the carriers can be resupplied with fresh fighters to compensate for losses, which does not affect mass driver-equipped ships.

Edit: For shield piercing when fighters attack ships:

Code: Select all

diff --git a/combat/CombatSystem.cpp b/combat/CombatSystem.cpp
index d4c7552..891c05f 100644
--- a/combat/CombatSystem.cpp
+++ b/combat/CombatSystem.cpp
@@ -488,16 +488,12 @@ namespace {
             return;
         }
 
-        Meter* target_shield = target->UniverseObject::GetMeter(METER_SHIELD);
-        float shield = (target_shield ? target_shield->Current() : 0.0f);
-
         if (verbose_logging) {
             DebugLogger() << "AttackFighterShip: Fighter of empire " << attacker->Owner() << " damage: " << damage
-                          << "  target: " << target->Name() << " shield: " << target_shield->Current()
-                          << " structure: " << target_structure->Current();
+                          << "  target: " << target->Name() << " structure: " << target_structure->Current();
         }
 
-        damage = std::max(0.0f, damage - shield);
+        damage = std::max(0.0f, damage);
 
         if (damage > 0.0f) {
             target_structure->AddToCurrent(-damage);

mel_o
Space Floater
Posts: 26
Joined: Tue Mar 10, 2015 8:23 am

Re: Fighters & Carriers

#24 Post by mel_o »

Geoff the Medio wrote:
...[mass driver(s)] has to be able to compete against the other alternative of countering fighters, which is fighters.
Are they? Various people in this thread keep declaring / assuming that there needs to be or will be an interceptors vs. bombers distinction, and that fighters are a suitable / good / potentially the only counter to other fighters. What is this based on, other than repeating the initial suggestion? At least how things work now, fighters are quite capable of attacking ships regardless of whether there are other fighters around.
The interceptors vs. bombers distinction is a logical conclusion for dealing with the fact that there are now two types of target: high structure and possibly shielded capital ships, and one-hit fighters. With current ship shield mechanics high damage bombers are required to get past shields (and should be proportionally more expensive) but low damage fighters (interceptors) are just as effective at taking out the bombers as any other weapon but would be far cheaper. Changing ship shield mechanics is of course the other route (either so the fighters bypass ship shields or that they reduce damage per turn rather than per shot or something else...) but then that's a significant rebalancing project.

For what it's worth, I think that making fighters bypass ship shields will be a nightmare if not impossible to balance because they increase in effectiveness as your opponent's shields get more advanced, to the point where they're the only option vs. shielded ships. At the start of a game vs. a foe with no shields, eight 2-damage fighters would be about as powerful as a couple of Mass Drivers. At the end of the game, those same fighters (with the same cost) would do more damage to a blackshielded ship than a fully refined death ray, which is clearly messed up IMO even considering that fighters don't attack in the first round and that fielding eight fighters takes more slots per ship.

As for "the only counter to fighters is other fighters", capital ships don't have an analogous cheap weapon to mop up fighters and reduce the chance that more powerful weapons target a tiny fighter. Currently the Mass Driver is the closest thing but it's costed based on doing 3-6 damage per shot which is still overkill for fighters but almost useless past the second shielding tech. A 1-damage weapon could be far cheaper, possibly multiple-shot-per-round if balance dictates it.
Geoff the Medio wrote:Launching huge numbers of fighters could provide more targets that will reduce the number of shots that target one's ships in the next combat round, but this would not (completely) prevent the ships from being targeted.
No, it wouldn't completely prevent the ships from being targeted, it would mostly prevent it which is almost as good. The starting carrier design can launch six fighters per ship in the first round of a combat. With one carrier per two direct-fire ships, that's twice as many fighters as ships for only sacrificing a third of your direct-fire weapons! Granted, enemy direct-fire weapons will target the capital ships in the first round but afterwards only about a third of those shots will reach your cap ships. It's not feasible to simply "take out the carrier" when targeting is random, one needs many cheap weapons to soak up fighters.
Unless stated otherwise, code and scripts provided by me are released under GNU GPL 2.0 (or later) and other content is released under CC BY-SA 3.0.

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Fighters & Carriers

#25 Post by Vezzra »

mel_o wrote:The actual damage calculation would depend on how fighter launches are prioritised but I'm sure there's a good solution to that. One idea would be to have interceptors launched in the first round and bombers launched in the second, which would also limit the amount of damage a bomber could deal per combat.
It's certainly no problem to hardcode whatever priorities we deem proper, the more fundamental problem when trying to implement automatic launch priorities is that there most likely is no optimal approach. In many cases it might make sense to launch interceptors first and bombers second, but very probably not in all - e.g. when attacking an enemy force which has almost no fighter cover (lets assume an ambush on a fleet of troop transports with only a small escort of light capships), it might be far more efficient to launch as much bombers as quickly as possible. We deliberately try to avoid implementing mechanics where the engine would have to make tactical decisions for the player, even the simplest/most basic ones.

Another problem with that approach is that it only works with strictly predefined, hardcoded set of fighter types. Morlics idea actually works with making the distinction between "interceptors" and "bombers" purely by FOCS scripting: "interceptors" would be cheap, low damage/high number fighters, while "bombers" would be expensive, high damage/low number fighters. To achieve that, the respective hangar parts need to be scripted accordingly: hangars for "interceptors" would be cheaper, have a high capacity, and define a low fighter weapon strength. Hangars for "bombers" would be more expensive, have a low capacity, and define a high fighter weapon strength. All that distincition would be done in the content scripts defining the hangar parts.

So to the backend code both would be just fighters, it wouldn't be able to distinguish between whatever "categories" of fighters a content scripter might have cooked up. And it will certainly be impossible to automatically deduct any launch priorities based on content script definitions.

One additional problem, at least with how the numbers are set now, is that hangar capacity actually doesn't really affect how much fighters you can field in one combat, that's actually primarily dependent on fighter bay launch rate, which would somewhat jeopardize Morlics approach anyway. As Geoff pointed out in a reply above, unless you put a very high number of fighter bays on a carrier, you can't launch all your fighters in one combat. Apparently, he intended hangar capacity more as a factor determining how many battles a carrier can sustain when out of supply range (which means hangar capacity is a purely offensive stat, if that's a good idea might be debatable). However, if the number of fighters you can deploy in a combat is mostly determined by the fighter launch rate, then fighter weapon strength and the numbers you can launch are not tied together (because determined by different parts). I think you can see where that creates a problem.

Of course, you can still retain the distinction by making bombers (bomber hangar parts) suffciently more expensive, that might work well enough.

Back to the problem on how to prioritize lauches: I can see only two solutions to the problem. The first (which I've already mentioned in an earlier post, see above) would be to discard the hangar/fighter bay mechanic, and have only one part which has two stats, capacity and fighter weapon strength. All fighter would be launched at once, no launch rate mechanic, no need to prioritize anything. Mixing different fighter types/strengths on one carrier would be no problem with that approach.

But as soon as you want to retain that hangar/fighter bay idea, and mix fighter types on a carrier, launching those fighters in combat becomes a tactical decision. Which means the only way to deal with that is what you referred to:
I've also seen discussion on making combat more interactive - perhaps the player could make those decisions on a per-combat basis at some point in the future.
We don't want the game make tactical decisions for the player, so the player will have to make them. Interactive combat will then be a must.
With two types of hangar, the backend code would only need to know what type of fighter it is (interceptor vs. bomber)
That means you think of hardcoding the interceptor/bomber distinction into the backend code? I wonder if that is really necessary and wouldn't be too limiting. The appeal of Morlics idea is that it actually doesn't require that distinction in the backend code, it could be done purely by scripting those parts accordingly (see above). Other than being able to determine launch priorities, are the other reasons why you think hardcoding those types is necessary?
Vezzra wrote:
And having multiple types of fighter on one ship has other problems, such as then needing to prioritize / order fighter launches by type given limited launches per combat round.
Of all the arguments you list to make your case in favor of allowing only one type of fighter on a carrier, this is the one where I've to admit you really got a point here, and a very strong one. I didn't think of that implication, and after giving it some thought I've to admit there is no satisfying solution.
I don't think it's an impossible problem, see my suggestion above.
I think you might have underestimated all the issues/implications that come with something like that, see above.
To be fair, the C++ side of things doesn't have separate meters for "capacity" and "damage" which does complicate things.
Well, I thought (and still do) that Geoff referred to an ambiguity of terms and keywords used in the content scripts, which might be confusing for players/content scripters. Which I consider a minor issue compared to the ackwardness and counter-intuitivity of the fighter weapon ship part. Of course on the C++ side things will get complicated, no question.
If fighers are split into roles then I would like to introduce some high-level discrimination with the targeting of weapons: interceptors and PD weapons will /preferentially/ target interceptors/bombers while bombers, cap ship weapons and planets would /preferentially/ target cap ships and planets.
Ok, that would require hardcoding the distinction between interceptors and bombers. Or provide means to define weapon and target types in the content scripts, and which weapon types prioritize which target types. Either way things will become considerably more complex if we do this.
They're fundamentally different targets (why would a capital ship aim a Death Ray at a tiny interceptor if there were bigger, more dangerous ships around?)
Well, because it might be the only target in reach for this particular death ray. The targetting randomness abstracts the fact that in a large scale space combat not every unit (be it fighter, ship or planet) is in range of every other unit. Space battles are supposed to be spread through a really vast area, where all sides try to outmanoeuvre each other. The simple FO battle resolution abstracts which units get to fire its weapons on which enemy units in the end by just selecting targets completely randomly.

So, if e.g. three capital ships are facing two carriers that can launch a total of 20 fighters, chances are high for each of the capships to have to deal with a number of fighters instead of getting to the carriers. But there is still a small chance for each capship to outmanoeuvre the enemy fighter wings and get close enough to the carriers to get one or more shots at them.

Of course, the completely random target selection simulates these complexities of a space battle extremly rudimentary, and certainly not very "realistically". But, at least for now, I think it works good enough, and should do so even with "bombers" and "interceptors".
I don't think it's worth changing planet defence to have multiple smaller attacks against an invading fleet because it would require changing their balance vs. ship shields.
Well, sure, but what's the problem with that? I don't expect the rebalancing to be that difficult. And it would make planetary defences much more efficient IMO. It's abit strange that something like a planetary defence network, which probably consists of thousands of orbital installations and ground based cannons/launchers/whatever can only fire one very powerful shot at one target. Besides feeling ackward/weird, it's also somewhat imbalanced in terms of game design. IMO a planet, especially a large, well developed one, should be able to withstand entire fleets, and it should require quite some firepower to take out it's defences. Right now a force of many cheap, small ships can probably do that comparatively easily. Or bring in a few big ships with lots of small ships to soak up the three big shots a planet gets in each combat, while clobbering its defences to oblivion with the few big guns.

If a planet gets 10, 20, 50 shots per round, things look vastly different. Shields would again matter against planets, and planets could hold their own against an entire fleet. IMO planets should be hard to take, especially large, well developed ones. I consider that an important element against "steamroller" invasions.
If ship shield mechanics remain the same then I'd instead suggest that planets and interceptors/bombers /cannot/ target each other, the lore could say that only cap ship weapons are powerful enough to do any real damage to a planet, and planetary defences are too cumbersome to aim at the small agile craft.
That's proabably also workable approach. Has the advanatge of being very easy to implement, so could be a quick and easy stop-gap solution anyway, even if we want to come up with something different in the long run.
Unfortunately, this would also ensure that direct-fire weapons would be required for planet bombardment and would mean that an empire must research direct-fire weapons at the expense of a possible strategic decision.
We could introduce some specialized bombardment weapons that are only effective against planets. Then you could have the choice between a fighter/bombardment weapon mix based approach, or a direct fire weapon based approach. Although, for that to work, a lot of related things will have to be carefully balanced (tech costs and inter-dependencies, hull types, parts, etcpepe).

Morlic
AI Contributor
Posts: 296
Joined: Tue Feb 17, 2015 11:54 am

Re: Fighters & Carriers

#26 Post by Morlic »

Vezzra wrote:
Morlic wrote: Let planets launch their own fighters
Hm, are you thinking of additional meter(s) for planets to determine the amount/weapon strength of the planetary fighters, or of tying that somehow to the existing defence meter? Personally I'm wary to add additional meters for that purpose...
Any particular reason for that? Seems to me your alternative would require to add additional meters as well... Where's the difference?
One additional problem, at least with how the numbers are set now, is that hangar capacity actually doesn't really affect how much fighters you can field in one combat, that's actually primarily dependent on fighter bay launch rate, which would somewhat jeopardize Morlics approach anyway.
I do not see how this jeopardizes my approach at all. Your statement seems rather incorrect. The bay capacity only then limits the fighter output in combat if and only if it is smaller than the hangar capacity. If bay capacity is 3 and hangar capacity is 1. Then of course the hangar capacity is the limiting factor unless you stack more than 3 of them (but in that case you could add another bay, too).
As Geoff pointed out in a reply above, unless you put a very high number of fighter bays on a carrier, you can't launch all your fighters in one combat. Apparently, he intended hangar capacity more as a factor determining how many battles a carrier can sustain when out of supply range (which means hangar capacity is a purely offensive stat, if that's a good idea might be debatable). However, if the number of fighters you can deploy in a combat is mostly determined by the fighter launch rate, then fighter weapon strength and the numbers you can launch are not tied together (because determined by different parts). I think you can see where that creates a problem.
See above. Additionally, just take a look at the current slot-type ratio. For most hulls, it would be not much of a problem to use more bays than hangars (though that ultimately will depend on cost of course).
Back to the problem on how to prioritize lauches: I can see only two solutions to the problem. The first (which I've already mentioned in an earlier post, see above) would be to discard the hangar/fighter bay mechanic, and have only one part which has two stats, capacity and fighter weapon strength. All fighter would be launched at once, no launch rate mechanic, no need to prioritize anything. Mixing different fighter types/strengths on one carrier would be no problem with that approach.
Could we base it on the order of parts in the design? That way, player has some control over it while the mechanic remains well defined.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Fighters & Carriers

#27 Post by Geoff the Medio »

Vezzra wrote:We could introduce some specialized bombardment weapons that are only effective against planets.
There already is a Bombard ship part class...

Regarding fighter launches, it still seems like having one type of fighter per ship is a lot simpler than the alternatives. It might turn out not to be very interesting, but I quite like the bays vs. hangars distinction, and would like to keep it if possible.

Do planets really need to be able to take on an opposing fleet on their own, without substantial allied fleets supporting them? That asked, making fighters and planets unable to target eachother seems like a good idea, to preserve the actual benefit of a planetary high-damage single-shot weapon at taking out ships in one shot, without risking it being wasted on a fighter.

User avatar
MatGB
Creative Contributor
Posts: 3310
Joined: Fri Jun 28, 2013 11:45 pm

Re: Fighters & Carriers

#28 Post by MatGB »

Geoff the Medio wrote: Do planets really need to be able to take on an opposing fleet on their own, without substantial allied fleets supporting them?
To answer that, consideration has to be given as to whether to introduce space station/battlestation style static hulls only able to be used in defence.

The part of me that likes my space opera likes the idea, the part that likes a dynamic strategic game worries it'd swing the balance too far in favour of defence (but I think if costed right in terms of both production and upkeep that needn't be a massive concern). We already have Acirema guard ships and comsat/decoys so it's not a major push (I'm envisaging them buildable by any CanBuildShip species without shipyards being needed, but never too powerful or big, possibly with a system based production or infrastructure penalty).
That asked, making fighters and planets unable to target eachother seems like a good idea, to preserve the actual benefit of a planetary high-damage single-shot weapon at taking out ships in one shot, without risking it being wasted on a fighter.
Hmm, if fighters can't target planets that'd make some things harder, the AI already has problems remembering to picket unconquered planets long enough for the troop ships to arrive, making some ships unable to engage with planetary defences at all might not be a good plan, perhaps they can't get past the planetary shield (a la Star Wars Battle Of Endor?) but can engage planets who've lost their shield?

A Single shot high powered weapon is still very powerful against the Carriers, and given their parts needs they're tending to be less shielded and more lightly armoured in my testing.
Mat Bowles

Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

mel_o
Space Floater
Posts: 26
Joined: Tue Mar 10, 2015 8:23 am

Re: Fighters & Carriers

#29 Post by mel_o »

Vezzra wrote:It's certainly no problem to hardcode whatever priorities we deem proper, the more fundamental problem when trying to implement automatic launch priorities is that there most likely is no optimal approach. In many cases it might make sense to launch interceptors first and bombers second, but very probably not in all - e.g. when attacking an enemy force which has almost no fighter cover (lets assume an ambush on a fleet of troop transports with only a small escort of light capships), it might be far more efficient to launch as much bombers as quickly as possible. We deliberately try to avoid implementing mechanics where the engine would have to make tactical decisions for the player, even the simplest/most basic ones.
This is very true, and I think the policy of never making decisions for the player is a sound one. I did come up with another idea for prioritisation but I also see issues with it: launch fighters based on the ratio of fighters stored in the hangars. That approach would run into issues with rounding (how to launch an even mix of 8 interceptors + 2 bombers when launching 6 fighters at a time?) and it doesn't really offer any advantages over just having separate ships to control the fighter composition.

If there is ever a framework to allow players to make these choices at the beginning of a combat then I don't think there would be any major problems with having multiple fighter types on a carrier. Until then, having only one type per carrier seems to be the best option...
Vezzra wrote:
With two types of hangar, the backend code would only need to know what type of fighter it is (interceptor vs. bomber)
That means you think of hardcoding the interceptor/bomber distinction into the backend code? I wonder if that is really necessary and wouldn't be too limiting. The appeal of Morlics idea is that it actually doesn't require that distinction in the backend code, it could be done purely by scripting those parts accordingly (see above). Other than being able to determine launch priorities, are the other reasons why you think hardcoding those types is necessary?
Apologies, I should have made this statement more general: to return fighters to their correct hangars when there is more than one type of hangar on a carrier, the backend code would only need to know what hangar part the fighter came from (e.g. "FT_HANGAR_2_8" or whatever the part was called in FOCS, no need for any hardcoded distinctions) in addition to which ship it came from (which is already done). So, determining launch priorities would be the only reason that hardcoding the distinction would be necessary.
Vezzra wrote:The simple FO battle resolution abstracts which units get to fire its weapons on which enemy units in the end by just selecting targets completely randomly. ... Of course, the completely random target selection simulates these complexities of a space battle extremly rudimentary, and certainly not very "realistically". But, at least for now, I think it works good enough, and should do so even with "bombers" and "interceptors".
True. I would push for a better algorithm for selecting targets, but that requires someone to implement it and until players can make tactical decisions it would be making those decisions for the player (one I've seen suggested is basing it on depreciation of firepower). I actually had a recent counter-example for that: I was contesting a system with an Ancient Ruins special with an AI. The AI had managed to keep a fleet in the system and was the first to get an outpost ship to it so I sent some of my ships on what was essentially a suicide mission, relying on the randomness to get one of my ships to destroy the outpost ship and buy me more time (it worked!). I definitely wouldn't have wanted the game to decide that those ships should attack the huge war fleet, which would have barely made a dent.
Vezzra wrote:
I don't think it's worth changing planet defence to have multiple smaller attacks against an invading fleet because it would require changing their balance vs. ship shields.
Well, sure, but what's the problem with that? I don't expect the rebalancing to be that difficult.
Well if someone's up to it, I don't see why not... I guess the only decision to be made in this thread is that if planetary defence is changed in this way, do we allow fighters and planets to target each other? I'm worried about cheap, low-damage fighters having a high potential damage output against planets while being relatively useless against ships, because planetary shields don't work the same way as ship shields. Of course, fighter bays would limit the number of those fighters that can participate in any given combat anyway...
Vezzra wrote:We could introduce some specialized bombardment weapons that are only effective against planets. Then you could have the choice between a fighter/bombardment weapon mix based approach, or a direct fire weapon based approach. Although, for that to work, a lot of related things will have to be carefully balanced (tech costs and inter-dependencies, hull types, parts, etcpepe).
If we prevent fighters from attacking planets then this would work IMO and would help separate fighters from direct-fire weapons: direct-fire is more versatile (can attack all targets) while fighters can provide cover for cap ships.
Morlic wrote:
Back to the problem on how to prioritize lauches ...
Could we base it on the order of parts in the design? That way, player has some control over it while the mechanic remains well defined.
That would still have no tactical value, i.e. given a carrier, a player can't decide whether to launch bombers or interceptors first anyway, that decision was made when it was queued for production. Having several carriers with a different part order would give that flexibility, but has little advantage over just separating the different types of fighter...
MatGB wrote:... perhaps they can't get past the planetary shield (a la Star Wars Battle Of Endor?) but can engage planets who've lost their shield?
That would be interesting (makes planet shields more valuable, at least) but I imagine the AI would have similar issues understanding when fighters can and cannot attack planets. The "planets and fighters cannot attack each other" option is simpler overall IMO.
MatGB wrote:To answer that, consideration has to be given as to whether to introduce space station/battlestation style static hulls only able to be used in defence.

The part of me that likes my space opera likes the idea, the part that likes a dynamic strategic game worries it'd swing the balance too far in favour of defence (but I think if costed right in terms of both production and upkeep that needn't be a massive concern).
Is that different enough from the Protection focus? I guess the focus does have a limit on how high it can raise the defence and it doesn't contribute to empire-wide ship upkeep, but it does have an ongoing cost (planet not focused on production/research).
Unless stated otherwise, code and scripts provided by me are released under GNU GPL 2.0 (or later) and other content is released under CC BY-SA 3.0.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Fighters & Carriers

#30 Post by Geoff the Medio »

The fighters branch has been modified to add a Flak Cannon weapon that is cheap and does 1 damage, to add a Flak Ship to the starting fleet, so that fighter attacks bypass ship shields, and so that fighters and planets can't attack eachother.

Post Reply