Generally a good post, Gabba. I read and (I think) understood it all, but to be honest, you seemed to make a pretty simple explanation far too overcomplicated...
I'll start from the top...
I hadn't thought of features providing stealth or cloaking, but it could certainly be useful in some circumstances. In the system I am proposing, the features themselves are there for a purely aesthetic purpose: which areas provide cloaking/stealth bonuses is defined through a bitmap... ...Of course I would assign a slowing effect to the woods area, in addition to the stealth/cloak bonus. ...Notice that your system could be done using my bitmap, but doing all the little jamming zones (=color blotches on the bitmap) would be hard without a map editor to manage this.
I think that your bitmap system should be used for the "hiding" value. Whether a unit is able to hide is directly dependent on the terrain it is currently in. Say a map maker creates a forest, then they simply overlay the "forest" colour on the bitmap, and any units entering this terrain will immediately have a higher value entered on their "Terrain Conditions" value (From my formula), giving them a shorter time to cloak. However, I think that radar jamming shouldn't have anything to do with the terrain type (unless that particular terrain type has an attached extreme weather effect, such as a blizzard). Radar detects units the same weather they are over sand or grass. What affects the way radar detects are features that stick out and obscure the radar, such as trees, buildings, and spires. So basically, I think that map features should be allowed to have basic scripts attatched to them. That way, it is the features themselves that give out the radar jamming ability, not the terrain, as I explained in my above given picture.
1/ We should add two variables to every unit in the game: stealth and hiding. These will range from 0 to 100%. If we don't want to bother adding them manually they can be auto-calculated from the footprint and unit type, but eventually we'll want to set them by hand to have more credible/diversified units.
I agree with the two values, but I think that a range from 0 to 100% is uneccesary. I think a boolean value is all that is required. Either they are hidden, or they aren't. Either they are stealthed, or they aren't. Not only is the need to calculate such things difficult, but representing something in real time as being "half cloaked" or "half stealthed" is pretty difficult, and probably infeasible too...
2/ How these variables work is by directly affecting enemy radar range and sight range: if unit B is trying to see unit A, you substract A's stealth % from the radar range of unit B, and you substract A's hiding % from the sight range of unit B.
Example: Unit B is trying to see or detect on radar unit A. Unit B has 200 sight range and 400 radar range. Unit A has 40% hiding (it's very small) and 10% stealth (it doesn't have a big radar signature, but is not particularly stealthy). Therefore, in relation to unit A, unit B will only have 120 (200 minus 40%) effective sight range, and 360 radar range (400 minus 10%). If unit A is outside of unit B's effective sight/radar range, it will remain invisible.
Again, this is far too complicated than is necessary. Firstly, if whether a unit is hidden is boolean, none of the above calculations are necessary. Assuming it has remained motionless for a certain amount of time (necessary to counter out the factors against its hiding, as represented in my formula), and no enemy units are in its decloak radius, it is cloaked.
Stealth is even simpler. If a unit is within the jamming range of a feature, it is invisible on the enemy radar. If any unit can see it through LOS, it will be visible through the enemy radar (just like in OTA).
The other reason it is necessary to not approach whether a unit is hidden/stealthed according to a set of complex factors, is that players must know exactly when
their units are hidden or stealthed, so that they can act accordingly. With a basic boolean factor, if units are stealthed, they either appear as visible (entirely visible on player screen) or hidden (partially transparent, ala OTA's "cloak").
a) When a unit is in the appropriate terrain zone (defined though the zone bitmap) and or near an appropriate feature, it should receive a bonus to its hiding and stealth values. This would apply even if a unit is moving. Examples:
-near a single tree feature: +5% hiding, +5% stealth
-light woods zone: +15% hiding, +10% stealth (So, unit A we mentioned above, which has base values of 40% hiding and 10% stealth, would have 55% hiding and 20% stealth when in light woods.)
-dense woods zone: +30% hiding, +15% stealth
-zone with huge stone boulders/near a huge stone boulder feature: +10% hiding, +20% stealth
-zone with strong underground magnetic currents (natural jamming effect): +0% hiding, +50% stealth
Much of this is what I initially intended in my formula for hiding, under the value "terrain conditions". Note though, that my formula was intended
only for hiding, which I intended as a boolean value. So instead of having varying levels of "hiding", your unit is either hidden, or not hidden. All the terrain conditions mean is that the time between the unit being visible (remember the timer is only started once a unit is stationary) and hidden is adjusted according to how appropriate the terrain is for hiding in.
Again jamming, in my scheme, is a range determined by features, not terrain. So a unit is either
definitely stealthed or
not stealthed, based on whether it is in the jamming range of the feature it is near (ala the red circles in my attached picture).
c) It would seem logical that units hiding in woods have a penalty to their own sight and radar. Therefore I think they should receive the same penalty they apply to enemy units trying to detect them. For instance a 10% hiding bonus will decrease by 10% the sight range of enemies trying to see your unit, and will also decrease your unit's own sight range by 10%.
Yeah, this makes sense. It also balances out the advantages of the hidden units too. However, I wouldn't make this value equal to units trying to see in (given that your units are hidden amongst the trees, while the enemy is uncovered outside), particularly as it would make it difficult to launch succesful ambush attacks. Also, I don't think that any specific alterations are necessary here. As long as trees obscure line of sight (as in "LOS=True"), then this issue is covered for you in Spring anyhow!
d) Since this is a 3d game, the effect of terrain/features should be applied to a defined height, otherwise a plane flying high above the woods would get the same bonus as units hiding inside. This should be set in the feature definition (for features) or in the text file that will go together with the zones map (for zones). The height range doesn't have to start at ground level: let's say you want to have clouds around a rocky peak, which benefit only planes?
Yeah, planes should definitely not be given stealth or cloak given off by trees. The bitmap should only affect ground units, and the radar jamming should either be spherical, or cylindrical with limited height.
I'm tempted to agree with the clouds giving off jamming, but this sounds like it could be a bastard to implement, and would probably be overpowered too...
5/ Radar and LOS (line of sight) hindrance:... the progressive degrading of sight/radar detection as it goes through obstacles. Seeing a unit at the edge of the woods is easier than seeing one which is hidden much deeper inside... Some obstacles should give better bonuses than others...
I think that most of this should be covered in the "LOS=true" nature of Spring, which presumably would have moved on from TA's basic True Line of Sight, and allow features themselves to block unit LOS. Thus rocks and trees would obscure enemy LOS anyway.
To recap on this important point,
I think that features should block Line Of Sight in Spring when set to "LOS=true".
-----------------------
I hope I didn't offend you through dismissing some of your points too quickly. I thought that your post was a good one in general, but probably a bit too complicated then was necessary. Right now we just want to convince the SY chaps to include such added terrain/gameplay interactions. Any further advancement on that could come later, if it is at all necessary.