Feature #536

Improve objective visual indicator display

Added by Spyhawk over 5 years ago. Updated 4 months ago.

Status:Fixed% Done:

100%

Priority:NormalSpent time:-
Assignee:-
Category:Mod generic
Target version:2.77
OS: Arch:

Description

This is an idea that was discussed on Silent’s forums, but has been on my mind for quite some time.

Currently, the "objective" icon shows up when you are the objective carrier. However, the only way to check if the objective has been taken by a teammate or the enemy team is to check the scoreboard or/and refers to the audio announcement. Showing a visual indicator at all time might improve objective gameplay.

Silent’s implementation is proposed as follow:
- show a green icon when you are carrying the objective (as currently done)
- show a blue icon when a teammate carry the objective
- show a red icon when an enemy carry the objective

I’m not sure about the best implementation, but this might be a good start. Showing a half-red/half-blue icon when both team carry the obj might be useful too (baserace, darji, ..).

shot0000.jpg - Silent (207 KB) Spyhawk, 25.03.2019 18:36

1072

Associated revisions

Revision 72fc9e39
Added by Spyhawk 4 months ago

mod: added objective indicator, refs #536

Revision d9aeef01
Added by Spyhawk 3 months ago

cgame: fixed objective indicator display with low picmip, refs #536 #1251

History

#1 Updated by IR4T4 over 5 years ago

How to deal with maps like baserace? Mabye some players don’t like additional stuff on the screeny. I’m not saying I don’t like this idea in general but isn’t ET about sounds which are given? I doubt this is an improvement of objective gameplay - beginners don’t know these icons anyway and advanced players know the sounds.

For implementation we just have to loop (or find an existing loop) over all clients and extract the info from clientInfo_t: ci→powerups & ((1 << PW_REDFLAG)) and ci→powerups & ((1 << PW_BLUEFLAG))

#2 Updated by Spyhawk over 5 years ago

For the records, and after an IRC discussion, we’ll add this feature with the following implementation:

- different colors according to the team (see above)
- a picked up objectives counter (on the icon)
- a new cvar to fit player preference (0 = disabled/only green icon displayed, x = displayed after x seconds)

#3 Updated by Radegast over 5 years ago

Spyhawk wrote:

- a new cvar to fit player preference (0 = disabled/only green icon displayed, x = displayed after x seconds)

I would rather reuse Jacker’s HUD configuration for this. I cannot test this at the moment, but from what I see in source:etmain/ui/huds.hud#L22 it’s already possible to toggle visibility of HUD elements, so we can just extend it to switch styles as well. UI configuration is something you do once to fit your taste and then you don’t touch it ever again.

#4 Updated by IR4T4 over 5 years ago

A cvar might be forced to disable possible icon flodding on maps like baserace. But this solution isn’t best practise. We have to find a way to deal with multi objective maps.

#5 Updated by Spyhawk 4 months ago

  • Category changed from Mod CGAME to Mod generic
  • Target version changed from 2.78 to 2.77

This is a small feature that can drastically improve the teamplay. Playing on TM on some maps (like frostbite) made me think we should have implemented it a long time ago.

The red/blue color are a bit ambiguous, since that ca refer to Red/Blue team for Axis and Allies. Let’s use:
- green: you got the obj
- yellow: a teammate has the obj
- red: the enemy has the obj

#6 Updated by Spyhawk 4 months ago

I’ve had a look at Silent implement, see screenshot to see how it looks: the flag is added on the icon. This is actually a great way to handle information.

However, I’ve seen the way it works is simpler than I’d like it to be:
  • it only displays the indicator when the enemy has the obj, not teammates;
  • it only displays it when the enemy is carrying the obj, but doesn’t indicate when the obj has been dropped and need to be recovered.

Knowing when the obj has been dropped but has not been recoevered is quite important, since it means the work to secure it is not yet finished.
With the way I’ve implemented the feature, we can handle these information quite easily. Here is a new proposal:

  • Display team flags if allies/enemy have the obj;
  • Use of colors to see its status: Green when you or your teammate have the obj, Red when the enemy has the obj, and yellow when the obj has been dropped but nobody has it.
    In case of multi obj maps (like goldrush), the red color takes priority over yellow, and yellow takes priority over green.
    In case of mulit obj that both team can have (like baserace)... I guess split icon with independent color on each side?

#7 Updated by Spyhawk 4 months ago

  • Status changed from New to Fixed
  • % Done changed from 0 to 100

Also available in: Atom PDF