MantisBT - Zandronum
View Issue Details
0004343Zandronum[All Projects] Suggestionpublic2024-07-11 18:302024-07-21 18:17
unknownna 
Kaminsky 
normalfeatureN/A
resolvedfixed 
3.2 
3.23.2 
0004343: sv_noallyicons and sv_noenemyicons to disable ally/enemy icons
Looking ahead I could see some players potentially complain about the enemy icon allowing them to be seen from more angles than before, and indeed the icon does change the gameplay flow since you can see players hiding behind crates or beneath ledges if your vantage point is higher. See the attached screenshot.

Some mods like AOW2 may wish to disable this, since they have sniper classes that have to be able to hide behind scenery and grass sprites.
And other mods like Zombie Horde change up survival mode, turning a single player into a zombie. This means that the zombie is technically an ally and will use the ally icon. If there were a way to change the ally status, the icon displayed could be changed into the enemy icon, and then the zombie would also not be displayed on the coop info as an ally.

The simplest way right now would be to add something like sv_disallowenemyicon, that simply enables or disables enemy icons altogether.
But for modders, maybe they would like to be able to alter the ally/enemy status for certain players.
No tags attached.
png Screenshot_Doom_20240607_065546.png (58,695) 2024-07-11 18:30
/tracker/file_download.php?file_id=3060&type=bug
png
Issue History
2024-07-11 18:30unknownnaNew Issue
2024-07-11 18:30unknownnaFile Added: Screenshot_Doom_20240607_065546.png
2024-07-14 21:54KaminskyNote Added: 0023789
2024-07-14 21:54KaminskyAssigned To => Kaminsky
2024-07-14 21:54KaminskyStatusnew => needs review
2024-07-14 21:54KaminskyProduct Version => 3.2
2024-07-14 21:54KaminskyTarget Version => 3.2
2024-07-14 22:40unknownnaNote Added: 0023791
2024-07-15 14:50KaminskyNote Added: 0023792
2024-07-15 22:04unknownnaNote Added: 0023795
2024-07-15 22:04unknownnaStatusneeds review => feedback
2024-07-17 19:29KaminskyNote Added: 0023798
2024-07-17 19:29KaminskyStatusfeedback => acknowledged
2024-07-17 19:56KaminskyNote Edited: 0023798bug_revision_view_page.php?bugnote_id=23798#r14303
2024-07-17 19:56KaminskyStatusacknowledged => needs review
2024-07-21 14:18KaminskyNote Added: 0023806
2024-07-21 14:18KaminskyStatusneeds review => needs testing
2024-07-21 14:18KaminskySummarysv_disallowenemyicon and a way to manipulate ally/enemy status for players => sv_noallyicon and sv_noenemyicon
2024-07-21 14:20KaminskySummarysv_noallyicon and sv_noenemyicon => sv_noallyicons and sv_noenemyicons to disable ally/enemy icons
2024-07-21 18:17unknownnaNote Added: 0023809
2024-07-21 18:17unknownnaStatusneeds testing => resolved
2024-07-21 18:17unknownnaFixed in Version => 3.2
2024-07-21 18:17unknownnaResolutionopen => fixed

Notes
(0023789)
Kaminsky   
2024-07-14 21:54   
Here's a merge request that adds a new dmflag, "sv_noallyorenemyicons":'https://foss.heptapod.net/zandronum/zandronum-stable/-/merge_requests/135 [^]'

It's certainly reasonable to have a server option that disables the enemy icons, but since ally icons can now appear in cooperative-based game modes, it's also necessary to handle the ally icon for the sake of mods like Who Dun It or Zombie Horde, where showing them can negatively affect the gameplay.

It seems good enough to have a single dmflag that can handle both icons, rather than two. I'd rather keep the implementation simple, especially since we're running out of bits in "zadmflags". We also couldn't think of any useful cases where showing one while hiding the other is necessary, and mods can replace icons with invisible sprites if needed.
(0023791)
unknownna   
2024-07-14 22:40   
Quote from Kaminsky
We also couldn't think of any useful cases where showing one while hiding the other is necessary

CTF and other team modes, where you absolutely want to be able to see teammates, but not necessarily allowed to see enemies. Maybe some leagues are more conservative than others and want the ally icons enabled without the enemy icons. This was also the standard former behavior.
It’s a bit sad if both icons have to be disabled at the same time. The ally icon doesn’t hurt WhoDunIt for instance, it could actually make it more intriguing and play in favor of the mod, since anyone could be the enemy and it’s a guess.

I can understand the need to keep it simple.
(0023792)
Kaminsky   
2024-07-15 14:50   
Quote from "unknownna"
CTF and other team modes, where you absolutely want to be able to see teammates, but not necessarily allowed to see enemies. Maybe some leagues are more conservative than others and want the ally icons enabled without the enemy icons. This was also the standard former behavior.


I see. Then it's worth discussing if we really need a way for the server to disable ally icons for the few PvP cooperative mods, or if we should only concern ourselves with enemy icons.

Quote from "unknownna"
The ally icon doesn’t hurt WhoDunIt for instance, it could actually make it more intriguing and play in favor of the mod, since anyone could be the enemy and it’s a guess.


My concern with mods like WDI and ZH is that the ally icon can make players more conspicuous and easier to spot. For example, it could unintentionally reveal a zombie or human that's trying to hide in ZH. Likewise, the ally icons can make it easier to spot innocents that are trying to blend into the map in WDI (e.g. the marine statues in WDI03). I don't believe showing ally icons in these mods would make it more intriguing to play. At the very least, one will need to add invisible sprites to replace the ally icon for them.
(0023795)
unknownna   
2024-07-15 22:04   
Quote from Kaminsky
My concern with mods like WDI and ZH is that the ally icon can make players more conspicuous and easier to spot. For example, it could unintentionally reveal a zombie or human that's trying to hide in ZH. Likewise, the ally icons can make it easier to spot innocents that are trying to blend into the map in WDI (e.g. the marine statues in WDI03).


Good points, I forgot about that. I guess the ally icon is not so good for the intended gameplay in WDI then, since players have to be able to blend in with other player sprites that don't have the icon above them.

I believe that's why I wanted an option for modders to modify the ally/enemy statuses, and when and how the icons are to be displayed for players, but I understand this would be a lot more complex to implement, and out of scope for this request.
The idea was that regular players would be able to see other regular players as allies in Zombie Horde, but not zombie players. And zombie players in turn would see other zombie players as allies, but not regular players.

Does it have to be a DMflag however? Could it be made to be toggled by any other means?

For example:
sv_disallowicons 1 = Disables enemy icon only
sv_disallowicons 2 = Disables ally icon only
sv_disallowicons 3 = Disables both icons

Or simplified:
sv_disallowicons 1 = Disables enemy icon only
sv_disallowicons 2 = Disables both icons

Or you could make 2 new DMFlags and call it a day, one for the ally icon and one for the enemy icon. This would be OK for all purposes without any further modificatons and also not upset anyone. I'd recommend this to keep it simple. Up to you of course.
(0023798)
Kaminsky   
2024-07-17 19:29   
(edited on: 2024-07-17 19:56)
Quote from "unknownna"
I believe that's why I wanted an option for modders to modify the ally/enemy statuses, and when and how the icons are to be displayed for players, but I understand this would be a lot more complex to implement, and out of scope for this request.


It would be better if these mods worked in team-based game mode where's there proper alliances and enemies. For example, Zombie Horde 2, which Fused is working on, uses the "team game" mode so that humans and zombies are on separate teams, meaning that one or the other are no longer allies and won't be displayed in the co-op info.

Quote from "unknownna"
Does it have to be a DMflag however? Could it be made to be toggled by any other means?.


While it doesn't strictly need to be a dmflag, the implementation is a lot more simple if it is (e.g. there's no need to write extra code to sync the CVar's value between the server and clients, on an already long list of synced CVars). I also can't think of an appropriate name for a CVar that suggests it "only disables ally or enemy icons, or both". Keep in mind that ally/enemy icons aren't the only icons in Zandronum, as player statuses and game mode artifacts also count. A name like "sv_disallowicons" would suggest that all icons are disabled (similar to how "cl_icons" works), which sounds confusing if it actually only disables the ally/enemy icons.

Quote from "unknownna"
Or you could make 2 new DMFlags and call it a day, one for the ally icon and one for the enemy icon. This would be OK for all purposes without any further modificatons and also not upset anyone. I'd recommend this to keep it simple.


Separating "sv_noallyorenemyicons" into two separate dmflags: "sv_noallyicons" and "sv_noenemyicons" is perhaps the most ideal solution.

EDIT: I updated the merge request,'https://foss.heptapod.net/zandronum/zandronum-stable/-/merge_requests/135 [^]'

(0023806)
Kaminsky   
2024-07-21 14:18   
This commit just got pushed in:'https://foss.heptapod.net/zandronum/zandronum-stable/-/commit/92cf03ae33e73139da4602674431af66b76c6dd2 [^]'

I also updated the name of this ticket to specifically indicate the two new dmflags.
(0023809)
unknownna   
2024-07-21 18:17   
Yeah, tested online with 3 clients and it seems to work well. Thanks, great work!