Urban Terror Blogs
Evolving the HUD
posted Wednesday, 07 September 2016 by FS hg`.Gost0r
CONCEPTAll good things start with a decent design phase. Our design thread contains dozens of posts which centralize around 4 design concepts. In the end we decided to stick with this basic concept done by Nounou:
attention: Keep in mind that this is just a concept and nothing is final.
I will explain each element, how it functions and what the icons represent. But before I go ahead, please take note of the following:
Custom settings are not yet available, but we're looking forward to having different settings such as displaying weapon icons instead of the name. You won't find me going into a discussion of Minimap vs Radar, neither will I reflect that element as it's currently not worked on and therefore we might have a seperate blog on it. Please note as well that up to this point I haven't been able to implement the Bigtext feature yet, but it is planned to be part of the HUD. Furthermore, we’ve got plans to have a decent and easy accessable stats sheet, but we haven't worked on it yet, so I'll cover all the stats HUD once we've got a basic ingame version working.
EXPLANATION: The weapon info box contains the following information: how many grenades do I currently own, the different types are divided by colour. Additionally we got a bullet and clip counter as well as a weapon mode display (..... = automatic, . . . = semi, .. .. = burst). Then we have the weapon display which contains three weapons at a time. When you scroll down and you currently possess more than 3 weapons, then the pointer will move to the middle and stay there until you have reached the pre-last weapon. And if you scroll down once again - you guessed it - the pointer reaches the bottom end.
DISCUSSION: The weapon info box is in my opinion the most complete component. I'm really happy with the behaviour of the weapon box as you cycle through different weapons - it adds a nice feeling to it. There are slight changes to make on how weaponmode is displayed, but that's just minor stuff.
EXPLANATION: The health and stamina bar behaves exactly like it always has, so there is not much to explain.
DISCUSSION: There has been discussion of actually merging the speedometer into the bar as a white outline, combined with some optional speed info, but in the end we put the discussion on hold as we came to no final decision whether we should implement it or not. But as it's not a super important feature, we might be able to delay it.
Timer and Info
EXPLANATION: On the top side of the screen we've got the current FPS, ping as well as the remaining gametime displayed. while in the bottom left corner the Hotpotato and Waverespawn box is located. Not much left to explain either as it's just displaying information to the user.
DISCUSSION: As none of the elements is final yet, I'm still trying to find ways on how to improve the information. Right now i find it very distracting to have the Wave- and the Hotpotato timer on the opposite corner of the screen than the other timer. Another aspect is the possible lack of a netgraph. The question is if the display of the ping and FPS is enough to notice if you're having problems with the connection. Of course a netgraph like nounou has illustrated in the concept is beautiful, but the netgraph is supposed to give you information on when you're having problems, so maybe just a text with your in/out packetloss would seal it, but then again it comes down to visual aspiration... duh, let's see what will be the best later on when we come to its implementation.
EXPLANATION: The scoreboard is very much connected to the team overlay. The teamoverlay contains in its default view the playername, the team score, the armband color as well as the players health. You're able to see the players health of your own teammates as 25% steps (for example if i have 46 health left, i have 2 bars on the scoreboard).
Now, once you pressed the scoreboard button (default: TAB), the teamoverlay lerps out to the middle and becomes the scoreboard. Here we've got the score, the Kills/Deaths/Assists ratio as well as the ping. The other players won't be able to see your real ping, but the indication of your ping range, symbolized with different colours (for example if your have a ping below 50: green). The rest is rather obvious: the list fills in the player names and sorts them by Score>Kills>Deaths>Assists, the spectator bar lists the current spectators.
DISCUSSION: The scoreboard is the most interesting part of the whole HUD in my opinion. And yet it contains some major conflicts in it. The general visual perception of it is horrible, it looks like a random terrible MSpaint made scoreboard. It simply doesn't fit into the Urban Terror theme and neither to my ambitions.
On the other hand I really love the unfolding mechanic that currently exists. It gives it a nice flow and a sort of unique behaviour.
Considering the items of the scoreboard, we're lacking some vital information. We need an indication of what half we are in as well as the score of the previous half. Status icons are planned to be placed behind the armband info (Subsitution, Flag/Bomb carrier), but yet to be implemented.
Feed & Chat
EXPLANATION: The feed contains all sorts of messages, may it be the hits, actual kills, killer's health as well as connection information. The chat is now on the bottom left and currently works very simple: type /all TEXT to send TEXT to everybody, /team to teammates or no command and it will automatically use the team chat. Both commands are being pre-entered with the corresponding key (t: allchat, y: teamchat).
DISCUSSION: Unreal Engine 4 makes it rather hard to implement the right flow for delivering messages from the game core to the UI surface. It doesn't contain features such as the CVAR-system which idtech based engines are famous for, as well as a decent console which can easily used by the public. Of course it comes with a developer console, but that one is not very handy if you want to weave it together with the game UI. We can later explore these aspects even deeper with either making the chat console more powerful (more commands to recognize than only two), or we have to use what's available and work our way around the developer console.
comments: Feel free to discuss this on our forums