Thoughts on the Field of View

Daniele and I touched the issue of the Field of View (FoV) several times without actually taking a final decision. Just the other week the discussion arose again and I thought it was time to put my thoughts on paper by writing a post on the matter.

Different FoVs

Different FoVs (sort of) just by adjusting light intensity

In 3D games, FoV is a geometrical concept that defines how much of a scene is displayed on screen. In 2D games, FoV is linked to both Line of Sight (LoS) and, sometimes, the Fog of War (FoW).

The idea is that you character(s) may not able to see the whole game world at once, so the designer may want to obscure a part of said world to force certain kind of behavior.

FoV and FoW in Freeciv

Example of use of Field of View (black cells are “unknown” to the player) and Fog of War (grayed cells are known but the player does not know what is happening on them) in Freeciv

There are many uses of FoV, but I believe it is possible to summarize them in two categories:

  1. To define the game’s atmosphere, by creating a sense of fear of the unknown or pushing a player toward exploration.
  2. To implement a specific mechanic, like stealth or making visibility a “resource” to manage (as in Real-Time Strategy games, where knowing the forces of your enemy can become a big part of winning a match).

In RPG and roguelikes the second usage is usually prominent: not knowing what awaits you behind a turn may enhance the strategical depth of the game and enable the use of certain gimmicks like “divination” effect (magical or otherwise). As designers, however, we need to ask ourselves if it is actually an improvement, a necessity, or just a trope that we take for granted.

My empirical observation is that FoV created a sort of problem with the advent of the first 3D games. It wasn’t that easy to use FoV in 3D and some games decided to just forget about it altogether. Again from experience, it seems that in the following years even 2D tile-based games started to ignore the use of FoV in favor of more immediate dynamics or simply for its aesthetic value.

I love classical roguelikes and RPGs like ADOM and Baldur’s Gate, so I never considered to not use FoV, but when we talked about it Daniele just told me that it didn’t looked good and he didn’t find it useful. Of course we are very different kinds of gamers but, as is often the case, that unbiased way of thinking got me questioning the merit and flaws of this mechanic. We have not planned any feature linked to the FoV, except for a very specific hazard, and the observable area on screen is actually somewhat limited so it will not spoil the level layout if not for some edge cases, and even in those spotting a second route or a chamber full of monsters from afar may actually be a nice way to foster exploration and encourage creative use of your spells.

Today I am actually pretty much convinced that we do not need FoV in our game. I will implement Line of Sight for spell effects, of course, so adding FoV later on should not be too traumatic if the need ever arise.

What are your thoughts on the matter? Share them in the comments or on twitter. Also, if you are interested in the mechanics behind FoV algorithms, I would like to suggest reading this article written by Jice, famous for his awesome roguelike development library libtcod.


As a little aside, both Daniele and I are experiencing a very full time of the year, and we are also often abroad on business trips, so our posting schedule is/may be slower that normal. Unfortunately this also means less progress on the project. Hopefully we will return in full force by May, so stay tuned!


Thanks for reading.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s