Further Refinement of Stealth & Detection

This is for directed discussions on immediate questions of game design. Only moderators can create new threads.
Message
Author
User avatar
Dilvish
AI Lead and Programmer Emeritus
Posts: 4768
Joined: Sat Sep 22, 2012 6:25 pm

Re: Further Refinement of Stealth & Detection

#31 Post by Dilvish »

Following up on the combat visibility test, basic vs partial-- the current setup gives stealthed ships an initial free shot without retaliation, which the planets do not get because the planets can't avoid Basic Visibility. From past discussions the initial free shot is intended, but was not discussed as something that only ships would get. I think this test is a throwback to old code, since everything else has been updated to require Partial Visibility -- colonizing, invading, and even simply initiating combat requires that one party have Partial Visibility of the other. So I plan to update the combat section to also require Partial Visibility (or that the stealthed target has in this combat previously attacked the attacking empire).
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

wheals
Space Squid
Posts: 88
Joined: Sun Mar 24, 2013 3:56 pm

Re: Further Refinement of Stealth & Detection

#32 Post by wheals »

I feel like the real reason you'd want a stealthy planet isn't so much to hide the planet itself, as to hide the outpost or colony that has been built on that planet. How about making all planets have the same visibility/stealth (i.e., 0) as the system that contains them, but if you have insufficient Detection, hiding the PopCenter on it entirely? Trying to colonise/outpost the planet would take a turn as normal, but then fail and give you scanline visibility of the PopCenter.

This would have the advantage of making it possible to remove the stealth special mechanic, which always felt to me like a way of papering over the issue that stealthy planets, ironically, stick out like sore thumbs.
All my code and content provided herein or on GitHub is released under the GPL 2.0 and/or CC-BY-SA 3.0, as appropriate.

Magnate
Space Dragon
Posts: 425
Joined: Sat Nov 08, 2014 3:44 pm

Re: Further Refinement of Stealth & Detection

#33 Post by Magnate »

Hi all,

Just wanted to toss in a few thoughts on this. As always, apologies if my lack of familiarity with the project's history leads me to raise issues that have been done to death before.

1. While it will be challenging to write AI code either to utilise or defend against a good stealth mechanic, I don't think I agree that it's not possible to arrive at one. I do think it's an important part of this type of game, and it would be a game to abandon it as infeasible.

2. I feel strongly that detection strength and range should remain separate, but not for the original micromanagement reason. They are different concepts: essentially they are the "quality" and "quantity" dimensions of detection.

3. While I wholly support the project's goal of reducing micromanagement, I hope we can avoid excessive abstraction in pursuit of this goal. The idea that having to patrol your territory to catch stealthy intruders is some kind of micromanagement chore seems to me to be dangerous - catching stealthy intruders should be an exciting part of the game and patrolling my territory to do that should be a good thing, not a bad thing. If the problem is an excessive number of mouse-clicks and real time taken to do it (and advantage to those willing to invest that time), let's streamline the UI to address that problem rather than compromise on the stealth mechanic. I can think of two possible improvements: ctrl-click to set intermediate waypoints for a ship, and a 'permanent patrol' feature whereby the ship will continue indefinitely looping around a series of waypoints if I final-click on a previous one. (So I could do waypoints ABCD for a single journey, or ABCB for an endless patrol between B and C.)

4. I agree that planets should always be visible, period. The question surely is whether a stealthed colony/outpost is (i) visible at all from outside the system or (ii) visible as some kind of fuzzed thing where you know the planet is not empty but no more than that. I think either of these could work depending on the stealth mechanic, but I can't see any sense or advantage in planets appearing to be asteroid belts.

5. I disagree that stealthy ships should automatically be visible to anyone in the same system. Ships are much smaller than planets, and ships with good stealth should be able to hide from people with poor quality detection in the same system.

6. I think it's very important that stealth is probabilistic and I'm pleased to see some proposed formulae for detection. I don't like the simple "range minus stealth" mechanic because it doesn't solve the all-or-nothing problem. Leaving aside the formulae, my basic thinking for how stealth should work is this:

(a) If you have no stealth tech, your ships/colonies are visible to everyone's starting detection strength. They can build buildings/scouts to increase the range of that detection.

(b) As your stealth tech increases, your ships and colonies/outposts get better at hiding from others. This should require ship parts and buildings to achieve (there is a separate question about whether and how ships should be upgradeable, but I don't think it is excessive micromanagement to build new stuff to take advantage of new tech). Some techs/buildings could affect more than a single system (e.g. how about a "stealthy outpost" ship part that lets you build an outpost with an inherent stealth rating so it can remain undetected until you've build your new colony there), but IMO it would be good to have per-system stealth increases (e.g. expensive building that say needs a particular type of star or planet to build on, so we can't spam them at every system).

(c) As your detection tech increases, your ships and planetary scanners get better at detecting others. I'd query the existence of the Scanning Facility here - surely if you want to minimise micromanagement just have each tech increase the basic planetary scanning range - it seems odd to unlock an additional range via a building at one tech but not others. But I do see the benefit of allowing buildings to increase strength rather than range - again, expensive and limited in some way so you can't spam them, but being able to fortify key systems with increased detection strength seems like a good mechanic to have. Again, ships should need new parts to take advantage of higher detection strength and range - I see no problem with needing to refit or replace scouts. After all, we don't have any issue with combat ships becoming obsolete, so why would we care about scouts becoming so.

(d) The detectability of your ships is some mathematical function of their stealth rating, the observer's detection strength, and the observer's distance. Within observer's detection range the chance of detection should be nonzero but never 100% (barring dramatic differences in tech) - we need asymptotes at both ends. Ultimately the tech tree needs to provide higher numbers for stealth than for detection so that high-stealth ships always have a chance of remaining undetected. The racial bonuses enhance this chance further, but again never to 100%. Remember that a ship that is undetected on one turn could be detected the next turn, and that probability works according to markov chains, so the chances of detection can be quite low without making stealth an overwhelming advantage - you only need to detect it once to blow it to pieces, whereas it needs to remain undetected every turn to complete its mission.

(e) The detectability of colonies/outposts is a bit different. While it seems attractive to use the same formula for simplicity, planets can't move, so once you've detected it once you don't need any more information (except to see whether its defences have improved, I guess). I don't have any particular thoughts here: it should take a lot of investment to keep a colony totally invisible, and I'm not really sure there's that much advantage to doing so anyway: if it's an attractive planet someone will come calling and find you anyway.

Enough for now. Thanks again for such a great game,

CC

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

Re: Further Refinement of Stealth & Detection

#34 Post by Dilvish »

Magnate wrote: ctrl-click to set intermediate waypoints for a ship
Just to be sure you know, we already have *pretty much* that via shift-click. It may not be 100% what you think of as a waypoint, though, since it only forces travel through the point, not necessarily a stop there.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

Magnate
Space Dragon
Posts: 425
Joined: Sat Nov 08, 2014 3:44 pm

Re: Further Refinement of Stealth & Detection

#35 Post by Magnate »

Dilvish wrote:
Magnate wrote: ctrl-click to set intermediate waypoints for a ship
Just to be sure you know, we already have *pretty much* that via shift-click. It may not be 100% what you think of as a waypoint, though, since it only forces travel through the point, not necessarily a stop there.
Thank you - no I hadn't realised that. So all we need to remove the micromanagement of patrols is a way of ordering repeated movement (ABCBCBCBC... rather than ABCBstop).

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

Re: Further Refinement of Stealth & Detection

#36 Post by Geoff the Medio »

Magnate wrote:The idea that having to patrol your territory to catch stealthy intruders is some kind of micromanagement chore seems to me to be dangerous - catching stealthy intruders should be an exciting part of the game and patrolling my territory to do that should be a good thing, not a bad thing.
The main expressed concern was, I think, with having to re-scan fixed planets, not moving stealthy intruder ships. That said, I'd err on the side of having detection stuff be less mobile (eg. buildings, with limited number producible), so the one being stealthy is the one doing most of the stealth-related micromanagement.

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

Re: More feedback thoughts (8050)

#37 Post by Dilvish »

Geoff the Medio wrote:I'm very reluctant to have an enemy stealthy ship be always detectable (basic or otherwise) by another empire that has a ship in the same system. I'd like it to be possible to have a stealthy observation ship hiding in an enemy empire's territory, and for leader / hero carrying ships to be able to get them to target planets without detection if an empire has sufficient stealth equipment in place to support that.
Well, I'm about to put in the combat visibility change (from requiring basic vis to attack something to requiring partial vis like it is for everything else, so that stealthed planets do not unfairly lose their free first shot). Let's consider how this might play out after that.

Let's start by considering a previous idea you put out, that with basic visibility the observer would only know there is a ship there, but not know the design, or owner, or anything else (I think was the idea). That sounds like a very good idea to me, although a bit tricky to implement; I think it would require a little bit more major adjustments to the implementing code beyond simply changing what info gets copied by Ship::Copy under BASIC_VIS. If all we did was restrict the info there, then if you had previously observed the ship design and owner and whatnot then, then instead of handing you a mysterious ghost-ship, the current framework would match the object ID up to the previously known ship object ID, and so you would still have all that info for it, but it would simply be scanlined and you wouldn't know if it had set a travel destination. So I think we'd need a mechanism for the server to feed a 'dummy' object, akin to what I had proposed for stealthed planets in unexplored systems, for the ship and fleet. We'd also need to plan out what the client would do with the object on a following turn if it no longer had any visibility whatsoever for the ghost ship/fleet-- I think it would make sense that the ghost ship/fleet is only shown for one turn after all visibility is lost for it, and that would also be a bit more compatible with the server being able to recycle the ghost ship/fleet IDs so that the ObjectMaps don't get too swamped with ephemeral ghost ship/fleet objects.

One place that this basic visibility would come up is in combat -- if a stealthed ship attacked you, would would have only basic visibility of it and so wouldn't really know for sure who it was that had attacked you. (though of course if there were also unstealthed ships present you would have a good guess).

So, if we had the above mechanic in place, then there is much less reason to need stealthy ships to be 100% undetectable-- the observer would simply know that there was a ship present there on the start of that turn, but they wouldn't be able to attack it or anything else. If the stealthed ship wanted to try to become 100% undetected they could start some cat-and-mouse evasion. So all the things you indicated you wanted, "I'd like it to be possible to have a stealthy observation ship hiding in an enemy empire's territory, and for leader / hero carrying ships to be able to get them to target planets without detection if an empire has sufficient stealth equipment in place to support that," would still be possible.

I'm game to take on the back-end visibility coding for this, if it becomes a path we choose to follow.
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: More feedback thoughts (8050)

#38 Post by Geoff the Medio »

Dilvish wrote:We'd also need to plan out what the client would do with the object on a following turn if it no longer had any visibility whatsoever for the ghost ship/fleet-- I think it would make sense that the ghost ship/fleet is only shown for one turn after all visibility is lost for it, and that would also be a bit more compatible with the server being able to recycle the ghost ship/fleet IDs...
Presumably this would be handled internally as now... the client remembers the latest known state of all objects, and can hide or show them to the player as appropriate... currently they are hidden in the UI, though it could be set to show recently-viewed ships / fleets as well. (Even basic visibility of a ship gives knowledge of its fleet, and seeing an object gives basic visibility of its container(s), except for fleets which are partial vis if any ships are visible).
So, if we had the above mechanic in place, then there is much less reason to need stealthy ships to be 100% undetectable-- the observer would simply know that there was a ship present there on the start of that turn, but they wouldn't be able to attack it or anything else. If the stealthed ship wanted to try to become 100% undetected they could start some cat-and-mouse evasion.
You lost me in there... Not sure what you're point is or what you're proposing.

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

Re: More feedback thoughts (8050)

#39 Post by Dilvish »

Geoff the Medio wrote:Not sure what you're point is or what you're proposing.
I was just trying to say that with the additional changes to Basic Vis that you suggested (not getting owner, nor ship design, etc), that your goals for stealthy tactics could, it seems to me, still be quite viable even if Basic Visibility of stealthy ships was possible under the circumstances we've been discussing.
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
MatGB
Creative Contributor
Posts: 3310
Joined: Fri Jun 28, 2013 11:45 pm

Re: Further Refinement of Stealth & Detection

#40 Post by MatGB »

There's a lot here worth thinking through, Magnate's post in particular I like a lot of but want to pick apart a bit when my brain's working. But some of the discussion has reminded me of a mechanic from a space based tactical combat miniatures game I used to play a lot, called Full Thrust (it was also used as the base for the starship combat mechanics of the Babylon 5 roleplay game and was better than the official miniatures game). The designer had some weird ideas business wise, no idea if it's still going, but the game was good. Anyway…

At the start of the game (combat), you would only know roughly what size of ship was in each position (ie escort, frigate, capital), but had no idea of what weapons it had. You actually were supposed to put down spheres of one of the three sizes to denote this and replace them with the ship model when they became visible (most players I knew didn't bother with this). During the game, if a ship fired it revealed itself, and shipw with sensor suites could scan a number of ships up to their capacity as well as or instead of firing when it was their initiative. It was a complex system but worked well for the scale of game it was for.

What I'm thinking in FO is that we could have a system where a partially visible ship would simply reveal its hull type. You wouldn't know what guns, armour, etc it had but you'd know it was there and roughly how big it was. That could be revealed if, in the current system, you had detection within range that had detection within, say, 20 points (the current tech differential). The full ship would be revealed if you had better detection strength than its rating or if it fired/carried out aggressive acts. Maybe a random chance, within 20 detection you get a small chance that increases the closer you are until you're at over that detection wise when it's fully revealed?

I would definitely like to split up the current detection strength and range techs, and have a lot more detection strength techs if we're going to keep the current system which I'm closer to favouring at the moment.

I intensely dislike the current system where a ship with, say, multi spectral shields (which the AI uses) can destroy most of a fleet but the owner of the surviving ships can't even see something on a map. I'm happy that it can be hidden and be an "unknown vessel" but not that it's not marked on the map at all, if it's destroying stuff then you know something is there.
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
Dilvish
AI Lead and Programmer Emeritus
Posts: 4768
Joined: Sat Sep 22, 2012 6:25 pm

Re: Further Refinement of Stealth & Detection

#41 Post by Dilvish »

MatGB wrote:a partially visible ship would simply reveal its hull type.
Just a little reminder here about FO's counter-intuitive visibility terminology: FO Partial visibility is what you would normally think of as "essentially-Full" visibility, and what you here called "partial visibility" is in FO terms Basic Visibility. It is counter-intuitive enough it is tempting to think about changing all the code from the current [NO_VIS, BASIC_VIS, PARTIAL_VIS, FULL_VIS] to something like [NO_VIS, PARTIAL_VIS, FULL_VIS, OWNER_VIS] which has a much better correspondence between naive expectation and FO implementation. But then that would put lots of old discussions out of sync, so even if we did change it we should't re-use the Partial or Full terms. And we probably won't rename them anyway, so... *shrug*
You wouldn't know what guns, armour, etc it had but you'd know it was there and roughly how big it was.
Interesting; I suppose hull-type could be perhaps the only info provided under Basic Vis; that would quite a bit more complicated than simply not providing any ship details since a design would have to be made, but since a small set of generic designs (one per hull type) could be used for all such cases it wouldn't be bad.
That could be revealed if, in the current system, you had detection within range that had detection within, say, 20 points (the current tech differential).
Right now either you have enough detection and you get Partial Vis (effectively full), or else there are some rules about containers and things that might give you Basic Vis totally independent of detection strength. I do kind of like the idea that you got Basic Vis if you almost, but don't quite, have enough detection strength to get Partial Vis, and think the coding for it would not be too bad either. It seems worth talking about more.
I intensely dislike the current system where a ship with, say, multi spectral shields (which the AI uses) can destroy most of a fleet but the owner of the surviving ships can't even see something on a map. I'm happy that it can be hidden and be an "unknown vessel" but not that it's not marked on the map at all, if it's destroying stuff then you know something is there.
I share your displike and am pushing to get this fixed, either through some derivation from Mitten's patch in PR29 or from some other means to the same/similar ends. Geoff is in agreement (to my understanding) about the target empire winding up with Basic Vis of the attacking ship (though the PR currently has it as Partial); and Basic Vis will get you something on the map. There is a holdup regarding coding details, but I am hopeful it will get resolved fairly soon.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

Magnate
Space Dragon
Posts: 425
Joined: Sat Nov 08, 2014 3:44 pm

Re: Further Refinement of Stealth & Detection

#42 Post by Magnate »

I like the idea of being able to see the hull type of a ship but not being able to detect what weapons/shields/other stuff it has unless your detection is better. I guess keeping it simple requires just the two levels of detection, basic and full, and something like a 20-point difference, i.e. one tech advance, would be about right.

As an RPer I'd conceive this as a die roll: the probability of detection is calculated and worked out as a d100 die roll. If you exceed the target you get basic detection; if you exceed by >20 you get full detection. You can of course attack it without full detection but you don't know what you're attacking ...

User avatar
em3
Vacuum Dragon
Posts: 630
Joined: Sun Sep 25, 2011 2:51 pm

Re: Further Refinement of Stealth & Detection

#43 Post by em3 »

Magnate wrote:3. While I wholly support the project's goal of reducing micromanagement, I hope we can avoid excessive abstraction in pursuit of this goal. The idea that having to patrol your territory to catch stealthy intruders is some kind of micromanagement chore seems to me to be dangerous - catching stealthy intruders should be an exciting part of the game and patrolling my territory to do that should be a good thing, not a bad thing. If the problem is an excessive number of mouse-clicks and real time taken to do it (and advantage to those willing to invest that time), let's streamline the UI to address that problem rather than compromise on the stealth mechanic.
I remember playing the Final Frontier mod for Civilization IV. It was an otherwise fine experienve, but the scouting mechanic was, regrettably, inherited from the base game. This meant, that in order to double your effective detection range, you had to order each fighter squadron in many of your ships to perform a reconnaissance of areas otherwise covered in the fog of war - which involved at least three or four clicks per squadron. I eventually got used to that and it stopped bothering me for the most part - mostly because each such action provided interesting information for me. The real curse of this solution only appeared when I played a multiplayer game with a friend of mine, who would not use this method of scouting. This resulted in him waiting up to a minute for me to even start my turn while I was performing my rounds. He didn't want to play this mod again with me after that. ;)

The bottom line is - some micromanagement when you play alone is perhaps not always bad, but too much micromanagement in multiplayer is a fun-killer.
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

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

Re: Further Refinement of Stealth & Detection

#44 Post by Dilvish »

Just to point out here-- I have put into the master branch the change I mentioned above so that Partial Visibility is required to attack. The reason is to conform the treatment for stealthed ships and stealthed planets-- the current (until now) treatment robbed stealthed planets of their first free attack. I don't believe the modification alters results in any other way, even taking into account the pending proposals for post-combat-visibility changes being considered in a couple PRs, because the timing of combat causes that proposed additional Visibility to be timed as of the previous turn. (So you could see on the mapwnd a scanlined fleet representing the stealthed attacker, but it would still be stealthed to you for the current turn.)
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
Kassiopeija
Dyson Forest
Posts: 212
Joined: Wed Jul 16, 2014 6:14 pm
Location: Black Forest

Re: Further Refinement of Stealth & Detection

#45 Post by Kassiopeija »

A few things I like as an idea or dislike regarding stealth

- Currently planets that are stealthed but unguarded won't fight the fleet blockading them. Even if the planetary defense could take out the enemy ships, and/or esp. Troopships. At least make an option somewhere to trigger this manually.

- I agree that stealth for planets itself is unrealistic, although the realism-argument should never stand in the way for a game's balance, it will still add to the immersion of a game (or take that immersion away if the player thinks specific stuff is total fantasy). And, if I read through the descriptions of the various technologies I get the impression alot is based on actual physical theories. At that, today we measure the position of stars and can deduct from variances if planets are orbiting around it or not.

- One problem with stealth is that it is tight to the same tech which also grants detection range. This causes confusion for new players.

- The totalistic black-or-white (I either see something or not) function of stealth doesn't promote interesting gameplay.
Instead make it percentage based; eg. ships (and/or planets or buildings on that planet) that have a higher stealth than the enemy's detection will only receive a chance to be hidden in a current turn. The effect would be that superior stealth will function as a delay of what the enemy can do.
Alternatively, the stealth percentage could influence planetary invasion and/or shipcombat to grant additional strength. For example, planetary troops that have a ~30% chance to be invisible should be 30% arder to eliminate. Same could be applied to the attack volleys of ships (or planetary defenses) weapons fire, in that 30% of these volleys would simply miss the target.

Post Reply