Developer Diary 14 – Fog of War

Playing a full game turn is now within our sights, save for the plus-sized hurdle that has to be dealt with first: enemy unit visibility. The game now features Fog of War, so all the game rules need to be re-checked for visibility. Moves and attacks will obviously change FoW, but there are also new mechanics like air reconnaissance, and HQ abilities play an important role as well.

But even before that, there’s the basic question of who actually sees what.

For example, in the screenshot below, I’m playing as the Allies, and any Axis units in FoW are hidden from me. Once the game ends though, I can watch the replay (history mode) and, in the replay, I do want to see what the opponent was doing behind FoW. So, the FoW overlay is still turned ON in replay, but the enemy units are not hidden any more.

Except, you can watch the replay even before the game has been completed. In this case, enemy units must stay hidden, otherwise it would be a glaring exploit. Um hm… In multiplayer, an observer can watch an ongoing game. But observer’s visibility is limited to what both players can see, so that’s yet another visibility mode. There are further visibility modes for scenario designers (see all units, plus both friendly and enemy FoW) and others.

To cut a long story short, we’ve decided that if this is to be done right™, it calls for a separate visibility layer that lives on top of game state and that’s we’re busying ourselves with currently.

Screenie Time

The screen below shows the game in something close to its final shape. We’ve added unit drop shadows, anti-aliasing (FXAA/SSAA), reflections and bloom effect. It’s not final final yet, as there is still a good amount of color-juggling left to be done – color coding has to work in all environments, in any weather and with all possible faction colors. It’s getting there, though.

You can see that FoW is an overlay that tints the map in enemy colors – similar to how we tinted all enemy hexes in UoC1. It’s important that the player can see the precise extent of FoW while playing. This makes it possible to distinguish between an empty hex and a hex in FoW, where an enemy unit may be hiding. The player should never be counting hexes to figure this out.

Fun FoW-related fact: a unit hidden in FoW can extend its Zone of Control into a visible hex. That means you can get caught up in a ZoC by surprise, while moving through visible territory. We may place some sort of a reminder/warning for this on the move arrow, though I’m still not sure.

(click image for full size)

Technical Developments

We’ve added a Level of Detail (LOD) system for terrain, and this improves the frame rate considerably on older graphics cards. Our reference toaster is a 2011 GTX 560 and we’re trying to get that to work at 60FPS with medium settings. The game still looks very decent while the performance is almost, but not quite, there.

If you have a more recent card, LOD enables totally epic zoom-out, up to a point where you can still kinda, maybe, see what’s going on, but hexes are definitely too small to play meaningfully. This will not be the default option, but it will be available either in the settings or via mods.

We’re about halfway through UI work at this time. It’s an intricate design, and it takes a while to sort out all the bevels and gradients and whatnot. The end result should look good – on par with the game world, as it should. This is not done yet so no screenies, but it looks like it will be a topic for the next post.

We’ve also upgraded tree-planting in the map editor, added labels for city names and improved hex grid rendering (this was a problem specifically for older cards which don’t handle GL_LINES well). There’s now a way to rotate turrets on tanks, but no squealing noise yet. Tweaks and fixes abound.

The work continues! 🙂

This entry was posted in News. Bookmark the permalink.

29 Responses to Developer Diary 14 – Fog of War