Fog of tech

For topics that do not fit in another sub-forum.

Moderators: Oberlus, Oberlus

Post Reply
Message
Author
Magnate
Dyson Forest
Posts: 243
Joined: Sat Nov 08, 2014 3:44 pm

Fog of tech

#1 Post by Magnate » Sat Oct 26, 2019 3:31 pm

Hi all

In the last two multiplayer games, I've researched plasma cannons much later than my enemies. Both games have been played with the RULE_SHOW_DETAILED_EMPIRES_DATA set to off. I originally thought this rule was just to blank the Graphs section of the Pedia, so you couldn't count how many colonies your enemies had etc., but I've learned that it does more than that. When your enemy has a tech that you don't, say for industry or research or ground troops or planetary shields or defences, the tooltip shows you the real total and lists the breakdown of the numbers for the techs you do have, and then says "Unknown +X" about the difference. (As an aside, this results in weird behaviour on your own planets when you research a new tech - it's shown as unknown for one turn and then the tooltip is normal the following turn.)

But it doesn't work like that for ships. If your enemy has a tech that you don't, you still see the ship part you haven't researched - diamond armour, plasma cannons, active radar, whatever. For weapons, a really unfortunate misinformation arises: if your enemy has weapons you don't have, you see the numbers as level 1 of those weapons (e.g. "Plasma Cannon +9.00"). But if your enemy has researched level 2, 3 or 4 before you research level 1, you don't get shown that. As far as I've noticed, it's the only number in the game that is shown incorrectly because of this rule (though I have not checked whether fuel tank upgrades are shown, or reinforced hull).

I've reported this as https://github.com/freeorion/freeorion/issues/2572, and this thread is about how to fix it. Before this rule was created, everything within your scan range was trustworthy information. If you couldn't see it then fine, you only know what you last saw, but if you could see it you could trust the numbers. If we want to implement fog-of-tech then I think there are four options:

1. As we have now - you see the real numbers, with "Unknown +X" revealing that s/he has tech you don't have and showing the numerical difference that makes. A quick fix to the above problem is then to show "Unknown +15.00" instead of "Plasma Cannon +9.00". (If you wanted to be consistent you could then show "Unknown +X" for armour that you hadn't researched yet.)

2. You don't see any numbers at all unless you have the tech. So armour and weapons (and engines, fuel, stealth etc.) you don't have are just shown as "Unknown ??", and planetary numbers are shown as ?? which just tells you that they have at least one tech that you don't. This could work ok for planetary numbers, but for ship numbers it would lead to micromanagement writing stuff down from combat reports, or extra code to change "Unknown" to "Unknown +X" after a combat report tells you the number (or you see a ship move in your scan range and measure its speed etc.). But the advantage is that any number you can see is trustworthy.

3. You see only the numbers for the techs you know, and you have to play the game knowing that the information is not trustworthy. So the weapons would behave as now (although you ought not to know what a plasma cannon is if you haven't researched it, so it would just say "Unknown +9.00" even if it was Plasma 4), and the planetary numbers would show you what s/he would have if s/he had your tech.

4. You see the real numbers (#1) if you're in the same system but from afar #2 or #3 applies. This would let you learn that enemies have obtained new tech only by scouting their systems or fighting them. Has a nice realism about it.

I suspect #1 is far and away the simplest outcome, but has anyone thought about or discussed the others?

User avatar
alleryn
Space Dragon
Posts: 259
Joined: Sun Nov 19, 2017 6:32 pm

Re: Fog of tech

#2 Post by alleryn » Sat Oct 26, 2019 3:53 pm

Another approach would be to keep ship weapons as they are and try to hide some of the other information your empire "oughtn't" be privy too.

If the enemy has researched superior bunker tech that your empire is unaware of, perhaps you shouldn't be able to see the correct number of troops you have to fight if you attempt to invade, for example.

Just a thought.

I guess i don't really understand what the purpose of this game rule is or what it is meant to accomplish. Most of its current effects don't change anything, except hiding some of the bonuses in an "unknown" instead of revealing the name of the tech that provides them. Any astute observer with enough effort could figure out where these bonuses are coming from, so why is the rule there at all?

Magnate
Dyson Forest
Posts: 243
Joined: Sat Nov 08, 2014 3:44 pm

Re: Fog of tech

#3 Post by Magnate » Sat Oct 26, 2019 4:29 pm

That's kind of what I meant by #2 and #3. And yes I'm not sure what the rule is for at the moment either, since the numbers changed by tech upgrades are of known granularity, not random, so you can infer precise tech info from the numbers alone. (I can certainly see the point of not showing the graphs during the game though.)

User avatar
alleryn
Space Dragon
Posts: 259
Joined: Sun Nov 19, 2017 6:32 pm

Re: Fog of tech

#4 Post by alleryn » Sat Oct 26, 2019 7:53 pm

Agree entirely about graphs being hidden.

And, sorry, i think i skimmed your post a little too quickly. It does sound like you already listed my suggestion as an option.

I guess my preference would be for either:
1. Turn this option off in my multiplayer games.
2. Change is so it's like your suggestion #2. I would desire it to look something like, for troop count for example:

Basic Troops +4
Planetary Bunker Complex +10
Unknown Tech + ?
And the meter would display 14 + ?

Magnate
Dyson Forest
Posts: 243
Joined: Sat Nov 08, 2014 3:44 pm

Re: Fog of tech

#5 Post by Magnate » Sat Oct 26, 2019 8:18 pm

Yes I like that too. Great minds!

User avatar
Oberlus
Cosmic Dragon
Posts: 1796
Joined: Mon Apr 10, 2017 4:25 pm

Re: Fog of tech

#6 Post by Oberlus » Sat Oct 26, 2019 9:59 pm

My vote for Alleryn.

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

Re: Fog of tech

#7 Post by Geoff the Medio » Sun Oct 27, 2019 8:20 am

If a player doesn't know the cause of a meter discrepancy, then they also don't know if it is due to a tech or a building or something else.

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

Re: Fog of tech

#8 Post by Ophiuchus » Sun Oct 27, 2019 11:07 am

I think it is good to think about this. Note that under the hood this touches more than tech. The reason you see the base damage of a weapon but not the refinement bonus is that the base damage is coming from the ship part and not the effects of the weapon level 1 technology. The level 2,3,4 extra damage comes from effects trigger by the extra technologies.

If you want a consistent result the base weapon part should also not be identified if you did not research it.

So if you did not have researched plasma at all you would see something like Unknown weapon - damage ? for a plasma weapon part.

Important question is if the game should track and show values which have been exposed or not (e.g. if you were attacked it could show Unknown weapon - damage 11).
And if this gets tracked - is it shown for all weapons of this type if it was sampled?
Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

Furthermore, I propse... we should default to four combat rounds instead of three ...for the good of playerkind.

User avatar
Oberlus
Cosmic Dragon
Posts: 1796
Joined: Mon Apr 10, 2017 4:25 pm

Re: Fog of tech

#9 Post by Oberlus » Sun Oct 27, 2019 11:17 am

Geoff the Medio wrote:
Sun Oct 27, 2019 8:20 am
If a player doesn't know the cause of a meter discrepancy, then they also don't know if it is due to a tech or a building or something else.
But the player's client is aware of the REAL_VALUE (the one that the server and the enemy's client know) as well of the EXPECTED_VALUE (the one that the player's client think should be the value, sort of).
The thing is in some cases (planetary meters) client is showing current REAL_VALUE with "Unknown" add-on for correction from EXPECTED_VALUE, so that player knows the number of troops he actually needs now (although it won't make correct predictions of future values), while in other cases (weapons) it is showing only (NAIVE)_EXPECTED_VALUE.
The fact that the sources of a meter discrepancy are due to techs or buildings or anything else and that the player's client doesn't know it is irrelevant, IMO. The point is to show the same kind of information in both cases and, ideally, in a way that is interesting for gameplay and does not involve especial attention from the player to deduct stuff or to not get confused/missleaded.

So Alleryn's proposal (his point 2) is great:
- It shows the same kind of information in all cases (unknown plasma cannon 2 would show "9+?" or "9+"; unknown planetary troops would say "16.4 + ?" or "16.4+").
- It allows for uncertainty and espionage contest (I prefer this over the option of always being aware of the REAL_VALUES), which is good for gameplay IMO.
- It does not need the player to do arithmetic to deduce what are the actual values of meters or what techs has the enemy.
Ophiuchus" wrote:So if you did not have researched plasma at all you would see something like Unknown weapon - damage ? for a plasma weapon part.
I like this too. Yes, more than showing "plasma 9+" when the player doesn't have plasma yet.
if the game should track and show values which have been exposed or not (e.g. if you were attacked it could show Unknown weapon - damage 11).
And if this gets tracked - is it shown for all weapons of this type if it was sampled?
Ideally I'd like that. Yes to both questions. Otherwise, players would be "forced" to check out combat logs and remember that all those "unknown" weapons are shooting at him with X damage per shot.
But second point (track unknown weapons damage) seems to require non-negligible backend changes.

Post Reply