The following blog post, unless otherwise noted, was written by a member of Gamasutraís community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.
[Matt Downey is a programmer working on a surrealist science fiction first-person shooter in Unity3d. A hopeful indie, he strives to have a working version of his game by E3 2013.]
It has been said that true immersion is nonexistent. There are those who claim that the best way to show the player time-sensitive, game-changing information is in the form of non-diegetic user interfaces. Sure, it is convention, but too much information can be overwhelming or, at least, hard to keep track of.
Before reading any further in this article, I recommend that you skim this.
Minimalism--"Use of the fewest and barest essentials or elements, as in the arts, literature, or design."
Immersion--"State of being deeply engaged or involved; absorption."
My definition of minimalism: no HUD, no debris, no invisible barriers, no one inch walls, no unnecessary objects, and no misleading objects.
Since I first read this article, I have been annoyed about the association between first person shooters and looking down ironsights. Knowledge of an equipped gun only helps the player make tactical decisions, and once the player knows his/her weapon (s)he is unlikely to forget it.
That being said, textures can have alpha values. If a player's gun (and arms) were to suddenly fade away after switching weapons, would the player care? Probably not. Would the user still know which weapon is equipped? Probably. The player might even feel relieved that anywhere up to half of his/her screen was cleared up. While equipped, the gun might be rendered at full (100%) alpha, slowly changing to about 25% alpha after fully equipped. As the player aims down the ironsight of the gun, the alpha further reduces to an ever lower 5% alpha. Furthermore, the three levels of translucency can be made public, so players can modify them as they please. By camouflaging the player’s gun and arm, the designer frees up the majority of the screen; that way if something suspicious shows through the gun, the player will be alerted. Another advantage to this system is that, since guns recoil upwards, the enemy is never fully masked by the barrel of the gun. This means the player will always be able to see the enemy at which (s)he is aiming. An interesting byproduct of gun translucency is the visibility of the gun’s inner workings (all of which can be animated), making the gun look like a dynamic object as it ejects cartridges rather than black box. This opens up a new level of gun aesthetics unseen (as far as I know) to this day. The idea behind minimalism is to subtract the elements the player doesn't need to see. Changing gun alphas does exactly that.
A final note, the enemy should be able to see any gun at 100% alpha, so that (s)he can respond adequately to counter any weapon choice.
Throughout my years playing first-person shooters, I have loved every moment of looking at the minimap and the flickering red dots that appear on it. I do feel, however, that minimaps are becoming obsolete with games like Portal 2 and Brink adding through-wall object visibility. The next evolution of the minimap could very well be the silhouette, where players are revealed through walls when they fire their gun. One way to reveal objects through walls is shaders. I am currently using this silhouette shader in Unity3D. After creating a silhouette shader, the next step is to rig it up to switch with a default shader when an enemy is firing. The traditional color for an enemy silhouette is red (following after the red dot on minimaps), whereas teammates might be shown in blue. The two main advantages of silhouettes are 1) greater, more intuitive perception of depth and 2) perception of altitude. The combination of these advantages makes public matches more user-friendly against clans, who are very well coordinated, often with the help of voice chat. After all, supplying silhouettes is almost as good as voice communication, if not better, because the player knows exactly where the enemy is for a brief timestamp. Despite all of this work, the minimap still holds one major advantage over silhouettes: its 360 degree field of view. Players tend to turn when they hear gunfire behind them, though, so this problem is partially diminished. If absolutely necessary, arrows can be used to indicate the direction of silhouetted enemies. Regardless, the player is free of one major HUD utility, the minimap, without any major loss of efficiency in battle.
While I am not a fan of slippery slope (that is punishing the player for getting behind); in this one case I make an exception. Based on the player's health, all light source intensities in game are multiplied by somewhere between 0 and 1, where 0 is dead and 1 is full health. This means that when a player is nearly dead, his screen will appear to be black, and when he is alive and kicking, all lighting will appear as intended. While blacking out while dying might become frustrating, it does make lucky recoveries all the more adrenal. Furthermore, after dying, the player is generally shown a black screen for at least a few frames. Lower light intensities offer an effective transition between the gameworld lighting and black screens. Meanwhile, the player can always tell when (s)he is taking damage. Regardless, the player doesn't need to watch a healthbar to know that they are taking damage, the darkening screen effectively communicates a threat's urgency.
Enemy and Ally Health
My solution for enemy health will likely be the hardest to program out of the immersion methods I offer. The visual is relatively straightforward: as the enemy takes damage, his/her body fills with blood from toe to head (superimposed on player graphics). When blood gets to the enemy’s head, that enemy dies. I (aptly) call it blood thermometer aka human healthbar. I have talked before about three-dimensional health, where health has a position (the level of blood), velocity (velocities moving towards the toes are regeneration, velocities moving towards the head are degeneration), and acceleration, which seeks to normalize the velocity so it moves towards the toes. Both teams end up the same color after successive bullets: red. Furthermore, silhouettes (red and blue) can be shown with purple blood. Likely, my method for creating blood thermometer will involve a custom-made shader. Blood thermometer helps the player better prioritize kills without having healthbars following each player in-game. Damaged players will appear in red, and mouse cursors will rush towards them like bulls, since red tends to catch the eye. This display will most likely improve battle efficiency and give the game a trademark style.
(Try to imagine a human filling with blood, not a capsule.)
This article has provoked me to disagree with the notion that all shooter require reloading. Particularly because I have included silhouettes, I feel players are adequately punished for shooting. Rate of fire (or fire interval) aside, guns do not require reloading. While your average player isn't frustrated by reloading, I still believe players would be happier without it. I envision ammo as a chain of bullets that exits the sleeve of the player’s suit, lines the arm, and is directly fed into the gun, whereupon it doubles back along the arm into the suit. When the player fires, the chain moves like a tread along the arm. This eliminates the "ammo remaining in clip" part of the HUD, since there is no longer a clip, just a chain. This means the player can focus less on ammo and more on shooting, which I believe will exponentially help player immersion, as it minimalistically cuts both reloading and a HUD element with one fell swoop.
My plan for bullets, à la lore, is to have ammo in unlimited supply through nanobots constantly rebuilding the chain from scrap metal and gunpowder on the battlefield. Again, my hope is to focus more on gunplay rather than punishing players for running out of ammo. Punishing players for running out of ammo seems rather counter-intuitive, for players who use more ammo in a life tend to get more kills. By removing total ammo, I eliminate the "ammo remaining" segment of the HUD and again emphasize gunplay over smart use of ammo. After all, shooting is already punished by silhouettes.
Add all of this together and the only displays still seen on the HUD are grenades, miscellaneous, recharging meters, score, and stance (standing, crouching, prone). Some of these could be subtracted through creative solutions, others might be necessary. Regardless, if, at the end of the day, the player still wants this info on the HUD, give it to them. Just try to make sure its 100% redundant.
In case you are interested in what I do, you can watch my 1.5 minute video from a month earlier here, the 4 minute video showcasing these features (and a few more) here, or follow me on twitter @MattDWNY.
Feel free to comment below.