VaFogOfWar - clear and simple solution of Fog of War for Unreal Engine 4

**VaFogOfWar **implements fast and optimized fog of war solution for topdown games like Dota, StarCraft or League of Legends.

It’s fast enough even to work on mid-end mobile devices, so it works like a charm on desktop.

Main features

  • Three types of layers: current visibility, global visibility (permanent from black), terrain
  • Eight height levels supported (river, lowground, highground, etc.)
  • Dynamic and static obstacles (trees, rocks, etc)
  • Different types of radius strategy: circle, square and others
  • Freeform fog blocking volumes as tool for terrain level painting
  • Initial terrain levels can be set with heightmap

Release notes

Plugin itself is released for free without any limitations, you can use it and modify as you want. Check GitHub - ufna/VaFogOfWar: A clear and simple solution of Fog of War for Unreal Engine 4 and feel free to post your comments and feedback.

How to use

Demo content is available as separate paid project: VaFogOfWar Extended Goose Demo in Blueprints - UE Marketplace and contains set of useful stuff:

  • **400x400 meters **demo level setup
  • Obstacles and fog blocking volume usage examples
  • Set of debug tools and materials for easy fog testing
  • Kawase-based blur postprocess for smooth fog reveal
  • Full Great Goose War character and environment assets pack

That looks every interesting : ) I will try it out during the holidays :slight_smile:

*​​​​​​This looks great!!
Although I have some questions:
Is the asset made in BP?
The fog is raised for teams? Or do you only see the main player?
Thanks!! *

It’s code-based plugin.

Fog can be raised in many configurations, teams are surely supported :slight_smile: Just link fog agent and fog layer as it suitable for your game.

Okey! Thanks =)

It’s Wonderful FOW
Can i see previewvideo?

No official “preview video” for now, but few “in dev” shots:

Plugin HowTo added: Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

Very cool plugin!
Can you help me with the material?

Lol for being clear and simple, i dont find this clear and simple. Has anyone figured out how to get this bad boy to work?

2 Likes

I’ve prepared a complete project demo for case like this: VaFogOfWar Extended Goose Demo in Blueprints - UE Marketplace

First great work. I know how much effort goes into just getting this far in a plugin. I have been trying to figure out how to configure a basic project based on reading the code and how to to see if your implementation will work in our project. If you want more traction I would suggest a bit more instructions on how to get a starting project up in your wiki. I know you response has been the marketplace demo project. At a minimum I recommend you let the community know how to hook it up to a basic post processing material. Just saying use the upscale texture is not enough for most people exploring your solution. The guide doesn’t talk about the FogTerrainLayer or the FogController classes. Do I need to create a singleton class to extract all the layers and draw on a render texture? How did you intend the classes to interact? A bit more intel would be helpful.

3 Likes

I second rakgul this one (great work!) but having purchased the plugin demo I have found the documentation fairly lacking in detail. I would love to see an update to the documentation. I am currently trying to implement this but struggling with editing the of the fog layers, i.e adding in functions for each player to clear the fog around them or giving players the ability to erase the fog layers with a paint-like feature.

I wanted to buy this but seeing how poor the documentation is scared me away. How do I know if it works after purchasing the demo project? Also, does this Fog Of War supports to be saved (SaveGameObject) and be loaded in when the game starts (on the next start)?

Yes, we know. That doesn’t answer the question about how to make it work.
Are you going to update the documentation, upload a proper video tutorial or should people give up and look elsewhere?

1 Like

I need to increase the resolution HIGHER than is allowed in the plugin’s settings please !!!
How can I do that ?
If I can’t can you please enable us to set it to a higher resolution ?
I’ve bought the demo !

The documentation is missing something .

Crash

Unhandled Exception: 0xe06d7363

KERNELBASE
VCRUNTIME140
msvcp140
UE4Editor_VaFogOfWar!AVaFogLayer::UpdateUpscaleBuffer() [D:\Build++Portal+Promotion\Sync\LocalBuilds\PluginTemp\HostProject\Plugins\VaFogOfWar\Source\VaFogOfWar\Private\VaFogLayer.cpp:546]
UE4Editor_VaFogOfWar!AVaFogLayer::UpdateBuffers() [D:\Build++Portal+Promotion\Sync\LocalBuilds\PluginTemp\HostProject\Plugins\VaFogOfWar\Source\VaFogOfWar\Private\VaFogLayer.cpp:372]
UE4Editor_Engine!AActor::TickActor() [D:\Build++UE4\Sync\Engine\Source\Runtime\Engine\Private\Actor.cpp:1093]
UE4Editor_Engine!FActorTickFunction::ExecuteTick() [D:\Build++UE4\Sync\Engine\Source\Runtime\Engine\Private\Actor.cpp:173]
UE4Editor_Engine!FTickFunctionTask::DoTask() [D:\Build++UE4\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:284]
UE4Editor_Engine!TGraphTask::ExecuteTask() [D:\Build++UE4\Sync\Engine\Source\Runtime\Core\Public\Async\TaskGraphInterfaces.h:886]
UE4Editor_Core!FNamedTaskThread::ProcessTasksNamedThread() [D:\Build++UE4\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:709]
UE4Editor_Core!FNamedTaskThread::ProcessTasksUntilIdle() [D:\Build++UE4\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:612]
UE4Editor_Core!FTaskGraphImplementation::ProcessThreadUntilIdle() [D:\Build++UE4\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:1464]
UE4Editor_Engine!FTickTaskSequencer::ReleaseTickGroup() [D:\Build++UE4\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:581]
UE4Editor_Engine!FTickTaskManager::RunTickGroup() [D:\Build++UE4\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:1578]
UE4Editor_Engine!UWorld::RunTickGroup() [D:\Build++UE4\Sync\Engine\Source\Runtime\Engine\Private\LevelTick.cpp:782]
UE4Editor_Engine!UWorld::Tick() [D:\Build++UE4\Sync\Engine\Source\Runtime\Engine\Private\LevelTick.cpp:1474]
UE4Editor_UnrealEd!UEditorEngine::Tick() [D:\Build++UE4\Sync\Engine\Source\Editor\UnrealEd\Private\EditorEngine.cpp:1720]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [D:\Build++UE4\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdEngine.cpp:426]
UE4Editor!FEngineLoop::Tick() [D:\Build++UE4\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:4836]
UE4Editor!GuardedMain() [D:\Build++UE4\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:169]
UE4Editor!GuardedMainWrapper() [D:\Build++UE4\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:137]
UE4Editor!WinMain() [D:\Build++UE4\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:268]
UE4Editor!__scrt_common_main_seh() [d:\agent_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll

1 Like

Some information for other people considering this plugin:

The part being offered for free is only the “calculations” end of things. In other words the free plugin doesn’t actual “draw” any fog of war, rather it just gives you the means to draw it however you want. (which is what the author indicates).

For a LOT of people including myself, they will not be able to hook up the resulting node to make the actual “fog of war”.

So I bought the full version, which is MORE than just a demo level. In fact it includes an additional actor blueprint that isn’t in the free download. This actor actually handles the connection to the post process volume that “draws” the visual effect. It’s not a trivial thing if you don’t understand how it all works, although the author likely views it as such (or maybe not and that’s why its behind the pay wall).

Besides that, overall the functionality of the plugin is good. It does work as advertised and is customizable to whatever your needs might be. For example I use the render target generated by the plugin to apply the fog of war to my minimap with relatively no effort.

I do have one inquiry for the author - I have a multiplayer game (up to 4 players), earlier in the thread you mention that there is surely support for teams. After checking I don’t think there is native support for teams built in? Unless I am missing something, I will need to add FOUR separate fog of war setups in each level, one assigned to each player (or team) as they connect. Then each fog agent (buildings and units) will be assigned to only affect “their” fog layer. Does it sound right?

So I emailed the author and he was kind enough to respond and let me know that I simply needed to have the main fog actor and the fog agent components all created by the clients so they exist only client side.

I spent so long making everything in the game REPLICATE and be the SAME I couldn’t get my brain around separating the fog of war so it’s separate for each client. It was actually so easy!

Once I did that, each player now has their own completely independent instance of the fog of war.

So for teams (or alliances between players for example) I will just make all the clients that belong to a team create a fog agent for each unit/building belonging to (or spawned by) any team member.

Thank you again to the author! Great plugin! Saved me lots of work/time.

I know this is old but I’ve run into the same problem and am wondering if you can shed some more light on how you had the client create the agents and fog actor. I believe I got the fog actor to work, but I still get a couple errors… but the agents I can’t get to work only on client. I’ve tried several methods and also spent several days researching before I revived this old thread.

Any help is appreciated. :]