invading through shields

For what's not in 'Top Priority Game Design'. Post your ideas, visions, suggestions for the game, rules, modifications, etc.

Moderator: Oberlus

Post Reply
Message
Author
User avatar
Dilvish
AI Lead and Programmer Emeritus
Posts: 4768
Joined: Sat Sep 22, 2012 6:25 pm

invading through shields

#1 Post by Dilvish »

EDIT by Vezzra: To provide the context of the proposal, here is the description of the feature provided by the corresponding PR on github:
Geoff the Medio wrote:Allows invasion of planets that have shields, but with reduce effective troop numbers as the level of shielding increases. Could possibly be used as a feature or ability of a species, government policy, or type of troop pod.
/EDIT

In a recently posted PR on this topic, Vezzra requested we move the discussion to the forums. I had already written (but not yet posted) some comments so I'm starting this thread to get them off my chest.

First let me note here the comment made before me:
MatGB wrote:This would need some serious balancing thought and probably significant AI work (they're having enough problems in this area until recently anyway): we deliberately added the 1 point shield amount to all colonies and outposts not that long ago and the basic "have shields = no invasion" is a nice simple mechanic.
I have the similar reaction as MatGB on this. It does seem like a potentially interesting feature, but I'm not sure that extra bit of "interesting" is worth the extra complications and just plain headaches that would come with it. Besides the AI challenges and rule complexity issues that Mat brought up, I think this would also introduce a substantial UI challenge that I don't see addressed yet.

The PR *does* have the sidepanel invasion troop autoselection mechanism taking into account the potential troop losses, but what is the feedback to the player? Suppose I am targeting a guardians planet that has 23 troops, and I send 24 troops there, and they arrive a turn or 2 early while there are still some shields. Right now my UI won't even prompt me to try invading at that point, but with this PR it would, and at least as it stands the presentation would look like I would expect it to when the planet was ready for invasion, with the invasion button showing 24.0/23.0, and it wouldn't give any indication of the problem or that if I invaded right away that some troops would be squandered and the invasion would (presumably) fail. Obviously the SidePanel display could be augmented to help show these things, but it would be a nontrivial extra complication to make that display clear about what is going on without getting very cluttered.

Circling back to the AI to be more specific-- If we really wanted this change to go in, it wouldn't at all have to *break* the AI. The AI could continue to play with its current invasion handling with (I think) actually no adjustments being absolutely required; it's just that the human player would then have more flexibility and get a bit of a competitive advantage, for now at least. Eventually the AI could probably take this kind of complication into account at least as well as a human player, perhaps better, at which point it might become a competitive advantage for the AI.

So, in considering this change, I don't think the AI needs to be a paramount consideration, it could be based mostly on the player issues.
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: invading through shields

#2 Post by Geoff the Medio »

Note that the posted PR is intended for test purposes, and perhaps to spur some discussion.

The current implementation quite heavily penalizes invading through shields, so it's not necessarily even beneficial to use this option in many / most cases, AI or human. How advantageous it should be is a balance issue.

This probably shouldn't be a universal rule change. Rather, I imagine it would be a perk of a species, or perhaps a later-game advanced troop pod feature. In many / most cases, the current mechanic could be left in place.

That said, having something like this be possible would make a ground-troop-focus strategy or species substantially more viable, makes having higher planet shields more important, rather than just having any amount of planet shields above zero.

Also, note that there is a very large penalty for invading through anything more than a few shield points. It may be possible, but it was intended to be very costly to do so, meaning wearing down the shield before sending in the troops would still be important to do in most cases.

Additionally, one thing that implementing this made me realize is that the current UI display for planets that are being invaded doesn't indicate how many troops have been ordered to invade. It probably should, much like the button does before it is clicked.

AndrewW
Juggernaut
Posts: 791
Joined: Mon Feb 04, 2013 10:15 pm

Re: invading through shields

#3 Post by AndrewW »

Geoff the Medio wrote:This probably shouldn't be a universal rule change. Rather, I imagine it would be a perk of a species, or perhaps a later-game advanced troop pod feature. In many / most cases, the current mechanic could be left in place.
Maybe a feature of a race that doesn't have the best ground troops? More options on which race to use to build your troop ships.

User avatar
L29Ah
Space Squid
Posts: 84
Joined: Thu Oct 06, 2016 3:19 pm

Re: invading through shields

#4 Post by L29Ah »

What about experimenters? This feature doesn't look sensible in the current design and will require lots of modifications to fit in. What about fixing bombing and bioterror instead? :]
Team S.M.A.C.: play multiplayer with us!

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

Re: invading through shields

#5 Post by Geoff the Medio »

L29Ah wrote:What about experimenters?
What about them?

User avatar
L29Ah
Space Squid
Posts: 84
Joined: Thu Oct 06, 2016 3:19 pm

Re: invading through shields

#6 Post by L29Ah »

Geoff the Medio wrote:
L29Ah wrote:What about experimenters?
What about them?
I don't need to destroy neither their ships nor to lower their astonishing shield to be able to invade them this way.
Team S.M.A.C.: play multiplayer with us!

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

Re: invading through shields

#7 Post by MatGB »

L29Ah wrote:
Geoff the Medio wrote:
L29Ah wrote:What about experimenters?
What about them?
I don't need to destroy neither their ships nor to lower their astonishing shield to be able to invade them this way.
Except the proposal seems to be that the effectiveness of troops (ie the total number) is reduced in some way if shield are present and I think it's reduced more if shields are higher, so if those nasty precursors still have full shields you'd need a massive fleet of Egassem troops to even dent the totals.

I'm not even going to look at it until after Release but it's not something I rule out entirely, but it'd have to be a limited creature trait, possibly only for natives or similar: Acirema would make some sense with this sort of thing, for example.
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
em3
Vacuum Dragon
Posts: 630
Joined: Sun Sep 25, 2011 2:51 pm

Re: invading through shields

#8 Post by em3 »

There could be a "shield penetrating" factor upgrade'able through technology. This would enable things like a core slot part that increases shield penetration of troop ships in system, for example.
https://github.com/mmoderau
[...] for Man has earned his right to hold this planet against all comers, by virtue of occasionally producing someone totally batshit insane. - Randall Munroe, title text to xkcd #556

Ophiuchus
Programmer
Posts: 3433
Joined: Tue Sep 30, 2014 10:01 am
Location: Wall IV

Re: invading through shields

#9 Post by Ophiuchus »

related, some extensions, from stealth discussion
Ophiuchus wrote: Wed Feb 03, 2021 8:33 am
Anvil wrote: Tue Feb 02, 2021 9:09 pm Stealthy planets...: Instead of seeing nothing, potential attackers could see a shield that is preventing them from landing their troops. They see nothing else, especially not where to fire their weapons to disable the shield. .... Without further information however it is risky: Landing troops on an empty planet, you'll lose the troops, while you'll lose an outpost landed on a populated planet.
I definitly like the option of landing troops without knowing how many opponents there are. This might also give rise to multi-turn troop landings (because you do not want to send in a huge amount of troops if it is not necessary. We were also thinking of allowing landing troops through shields (with e.g. four times the losses). So with low detection you might send your troops through shields without knowing. At a higher detection you might be able to sense the shields but not know how many troops are waiting for you. Probably you should be able to attack the shields though (or maybe the next gradual detection level). Defense could also be introduced gradually. So maybe you can take the shields out, but not the defense because you cant see it - and in order not to be shot at all the time you land your troops without exactly knowing how much resistence is there.
...
there is also the UI issue (already considered in the PR), that the automatic invasion button chooses an appropiate amount of ships necessary for invasion.

with stealthed/unknown shields value the calculated troop amount for successful invasion would be completely wrong. but i guess that is OK. One could have the UI option to overcommit (e.g. after pressing invasion, you can press another time to over-commit troops for an expected unknown shield value). Another idea would be to change the you-loose-all-invading-troops mechanic to overcommitted-troops-survive (so sending less than all of your troop ships would make only sense to set an upper bound for losses).
Also should the UI expect a certain default level of shields for an enemy empire based on tech (and what is known about the planet), even if it is not detectable.

with hidden defense troop strength calculated troop amount for successful invasion would be also completely wrong, so some UI mechanism for "overcommit" would be necessary. the same logics like for stealthed shields apply here; e.g. overcommitted-troops-survive might make some sense. Maybe some drop down next to the invasion button to choose the amount of troops you commit.

Note also that there are a lot of small decisions regarding info leakage here which significantly affect invasion work flow. E.g. does invasion through shields leak the shield level (e.g. could one invade with a single troop to figure it out shield strength?; i'd say lets not tell how many defenders were destroyed in order to prohibit leakage), does invasion leak the number of hidden defense troops (same as with shield level; probably not)

but those are extensions, and i would like to see the invasion through shields with higher losses more than those.

in the PR the most important part is the effectiveness calculation; i would like to discuss it

Code: Select all

float Ship::TroopCapacityAgainstShields(float against_shields) const
{ return TroopCapacity() / (1.0f + std::log(std::max(1.0f, against_shields + 1.0f))); }
Side note: not sure why the std::max is necessary, makes sense for negative shield strength, lets ignore it here

so Troops(shields) = Troops / ( 1 + log(shields + 1))

some data points: Troops(0) = Troops; Troops(9) = Troops/2; Troops(99) = Troops/3; Troops(999) = Troops/4

if taking absolute shields, i think a multiplicative factor makes sense, making shield effectiveness diminish makes also sense (logarithm is convenient). even power balance might work (i think the standard shields are 80 (-> 0.344 troops), 240 (-> 0.296),..) .


As alternative there could be the difference between the maximum shields and current shields. E.g. Troops(full shields) = Troops/4; Troops(50% shields) = Troops/2, Troops(0%) shields: Troops.

So a closed formula would be similar to Troops(max_shields, cur_shields) = Troops - (Troops * cur_shields / max_shields * 3.0 / 4.0)
but i would probably defining this in steps:
E.g. Troops(80%-100% shields) = Troops/5; Troops(40%-80% shields) = Troops / 4, Troops(20%-40% shields) = Troops / 3, Troops(10%-20% shields) = Troops/2, Troops(0%-10%) shields: Troops.
Or Troops(75%-100% shields) = Troops/4; Troops(50%-74% shields) = Troops / 3, Troops(25%-49% shields) = Troops / 2, Troops(0%-24% shields) = Troops.

This would of course ignore shield strength, rather be based on integrity. A higher shield strength would only make it harder to diminish the shields, bringing it down to a more acceptable level of losses.
With hidden shields, the effective strength would "always" be minimal (Troops/4). That is if your the shield is not currently upgrading.

So pros/cons for the integrity-based approach as I see it:
  • ++ worst case amount much easier to predict and reason about (it is the same multiplier for the whole game)
  • + in a step-wise formula one can choose simple troop multipliers (e.g. 1/4, 1/2) instead of some inbetween values (e.g. 0.296, 0.344)
  • o upgrading shield tech will for a while lower the defense against invasion-through-shields
  • - no good closed formula (yet); stepwise formula is arbitrary
  • - better shield tech might take longer to build defense against invasion-through-shields (this is maybe partly against the better-tech-never-means-worse-effects doctrine)
  • -- probably overblown effects at low level (maxShield=1, shield=1 has the full effect)
i am torn on the alternatives; maybe geoffs formula could also made to be better. maybe there is a better suggestion
Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

Look, ma... four combat bouts!

Post Reply