Fog of War#
Tag: v1.4.0
Identifier: v1.4.0-88817e7
Commit: 88817e7
Features#
Versatile fog of war implementation;
- Fully Replicated
Conditional Replication for clients: Enemy actors are only replicated if it is visible
Cheat prevention: clients do not know about enemy actors until visible
- Dynamic
Faction change
Obstacle
Unlimited Number of Teams
- Fast C++ Implementation
Multithreaded
Fully exposed to blueprints
Fully extendable in C++ and Blueprints
128 Height level
Configurable Fog Resolution
- Examples included
Minimap
Full Playable demo
Useful Links#
Getting Started#
- Installations
- Getting Started
- Frequently Asked Questions
- Destroyed obstacle persist on the navmesh
- Missing Fog of War Plugin on shipping builds
- After spawning a few 100 units my FPS drops
- Disable exploration
- Increase performance
- Create Pawn with an assigned Team without player start
- Can you create an actor that is visible on both teams ?
- I only want heroes to have vision, and not shared with their allies is that possible ?
- Can we also make allied units not replicating when invisible ?
- Are hp bars (widgets) visible in the fog or not ?
- Can you save out the explored region of the fog of war and load it back in later?
- What are the limits of the fog of war in terms of map size ?
- For a game where the map is gigantic
- Do you plan to put the plugin on sale in the future ?
- Packaging issue
- Where do we adjust the fog color ?
- Combining Plugins/Assets
- Characters_0/Controller_0 get assigned to different teams on clients
- Sometimes when coming out of the fog, the unit slides from the position it entered the fog to its actual position
- Only Yaw Rotation is handled
- The fog of war is not centered
- Linking Error
- LogLinker Warning
- Changelog
API#
- API
- AGKFogOfWarCharacter
- Inheritance Relationships
- Class Documentation
AGKFogOfWarCharacter
AGKFogOfWarCharacter::AGKFogOfWarCharacter()
AGKFogOfWarCharacter::Tick()
AGKFogOfWarCharacter::SetupPlayerInputComponent()
AGKFogOfWarCharacter::SetGenericTeamId()
AGKFogOfWarCharacter::GetGenericTeamId()
AGKFogOfWarCharacter::OnTeamChange()
AGKFogOfWarCharacter::OnWorldMatchStarting()
AGKFogOfWarCharacter::IsReplicationPausedForConnection()
AGKFogOfWarCharacter::OnReplicationPausedChanged()
AGKFogOfWarCharacter::GetLifetimeReplicatedProps()
AGKFogOfWarCharacter::OnVisilityChanged()
AGKFogOfWarCharacter::BeginPlay()
AGKFogOfWarCharacter::OnRep_TeamChange()
AGKFogOfWarCharacter::Team
- AGKFogOfWarGameMode
- Inheritance Relationships
- Class Documentation
AGKFogOfWarGameMode
AGKFogOfWarGameMode::AGKFogOfWarGameMode()
AGKFogOfWarGameMode::K2_FinalizePawn()
AGKFogOfWarGameMode::AssignTeamFor()
AGKFogOfWarGameMode::GetTeamFromStartSpot()
AGKFogOfWarGameMode::SpawnDefaultPawnFor_Implementation()
AGKFogOfWarGameMode::SpawnDefaultPawnAtTransform_Implementation()
AGKFogOfWarGameMode::FinalizePawn()
AGKFogOfWarGameMode::SetGenericTeamIdFromPlayerStart()
AGKFogOfWarGameMode::AssignTeamFor_Implementation()
AGKFogOfWarGameMode::StartPlay()
- AGKFogOfWarGameState
- Inheritance Relationships
- Class Documentation
AGKFogOfWarGameState
AGKFogOfWarGameState::GetFogOfWarTeams_Implementation()
AGKFogOfWarGameState::GetLifetimeReplicatedProps()
AGKFogOfWarGameState::GetTeamName_Implementation()
AGKFogOfWarGameState::GetTeamInfoHandle_Implementation()
AGKFogOfWarGameState::GetTeamInfo_Implementation()
AGKFogOfWarGameState::FogOfWarTeams
- AGKFogOfWarObstacle
- AGKFogOfWarPawn
- Inheritance Relationships
- Class Documentation
AGKFogOfWarPawn
AGKFogOfWarPawn::AGKFogOfWarPawn()
AGKFogOfWarPawn::Tick()
AGKFogOfWarPawn::SetupPlayerInputComponent()
AGKFogOfWarPawn::GetFogOfWarComponent_Implementation()
AGKFogOfWarPawn::GetLifetimeReplicatedProps()
AGKFogOfWarPawn::IsReplicationPausedForConnection()
AGKFogOfWarPawn::GetGenericTeamId()
AGKFogOfWarPawn::OnReplicationPausedChanged()
AGKFogOfWarPawn::Team
AGKFogOfWarPawn::BeginPlay()
AGKFogOfWarPawn::FoWComponent
- AGKFogOfWarPlayerController
- Inheritance Relationships
- Class Documentation
AGKFogOfWarPlayerController
AGKFogOfWarPlayerController::OnRep_TeamChange()
AGKFogOfWarPlayerController::SetGenericTeamId()
AGKFogOfWarPlayerController::GetGenericTeamId()
AGKFogOfWarPlayerController::OnTeamChange()
AGKFogOfWarPlayerController::GetLifetimeReplicatedProps()
AGKFogOfWarPlayerController::IsPossessing()
AGKFogOfWarPlayerController::TeamId
- AGKFogOfWarPlayerState
- AGKFogOfWarPrivatePlayerState
- AGKFogOfWarTeam
- Inheritance Relationships
- Class Documentation
AGKFogOfWarTeam
AGKFogOfWarTeam::AGKFogOfWarTeam()
AGKFogOfWarTeam::IsNetRelevantFor()
AGKFogOfWarTeam::GetLifetimeReplicatedProps()
AGKFogOfWarTeam::GetBuffer()
AGKFogOfWarTeam::GetExploration()
AGKFogOfWarTeam::GetVision()
AGKFogOfWarTeam::GetUpscaledVision()
AGKFogOfWarTeam::GetAllVisibleUnits()
AGKFogOfWarTeam::Buffer
AGKFogOfWarTeam::AllyTeamHash
AGKFogOfWarTeam::AllyFogOfWar
AGKFogOfWarTeam::Exploration
AGKFogOfWarTeam::Vision
AGKFogOfWarTeam::UpScaledVision
AGKFogOfWarTeam::bDiscrete
AGKFogOfWarTeam::Name
AGKFogOfWarTeam::TeamId
AGKFogOfWarTeam::Friendlies
AGKFogOfWarTeam::Units
AGKFogOfWarTeam::Blocking
AGKFogOfWarTeam::DrawLock
AGKFogOfWarTeam::Volume
- AGKFogOfWarVolume
- Inheritance Relationships
- Class Documentation
AGKFogOfWarVolume
AGKFogOfWarVolume::AGKFogOfWarVolume()
AGKFogOfWarVolume::InitializeAuthorityFromTeamInfoProvider()
AGKFogOfWarVolume::PreInitializeComponents()
AGKFogOfWarVolume::InitializeServer()
AGKFogOfWarVolume::InitializeClient()
AGKFogOfWarVolume::SetupActor()
AGKFogOfWarVolume::BeginPlay()
AGKFogOfWarVolume::Tick()
AGKFogOfWarVolume::EndPlay()
AGKFogOfWarVolume::GetLifetimeReplicatedProps()
AGKFogOfWarVolume::GetFactionTexture()
AGKFogOfWarVolume::GetFactionTexture()
AGKFogOfWarVolume::GetOriginalFactionTexture()
AGKFogOfWarVolume::GetOriginalFactionTexture()
AGKFogOfWarVolume::GetFactionExplorationTexture()
AGKFogOfWarVolume::GetFactionExplorationTexture()
AGKFogOfWarVolume::GetFogOfWarPostprocessMaterial()
AGKFogOfWarVolume::GetFogOfWarPostprocessMaterial()
AGKFogOfWarVolume::SetSpecatorFogOfWarMaterialParameters()
AGKFogOfWarVolume::SetCameraPostprocessMaterial()
AGKFogOfWarVolume::SetCameraPostprocessMaterial()
AGKFogOfWarVolume::GetFogOfWarMaterial()
AGKFogOfWarVolume::GetFogOfWarMaterial()
AGKFogOfWarVolume::GetBlocking()
AGKFogOfWarVolume::DebugTrace()
AGKFogOfWarVolume::FinishedDrawingComponent()
AGKFogOfWarVolume::GetMapSize()
AGKFogOfWarVolume::SetTextureSize()
AGKFogOfWarVolume::GetTextureSize()
AGKFogOfWarVolume::GetTextureCoordinate()
AGKFogOfWarVolume::ToGridTexture()
AGKFogOfWarVolume::FromTextureToGrid()
AGKFogOfWarVolume::GetTeamCount()
AGKFogOfWarVolume::IsVisible()
AGKFogOfWarVolume::IsVisible()
AGKFogOfWarVolume::IsVisible()
AGKFogOfWarVolume::GetVolumeOffset()
AGKFogOfWarVolume::GetWorldLocation()
AGKFogOfWarVolume::GetVolumeLocation()
AGKFogOfWarVolume::GetActorVolumeLocation()
AGKFogOfWarVolume::GetActorVolumeLocation()
AGKFogOfWarVolume::HasCanHandleCosmetic()
AGKFogOfWarVolume::GetTeamName()
AGKFogOfWarVolume::GetFogOfWarTeam()
AGKFogOfWarVolume::K2_GetTeamCount()
AGKFogOfWarVolume::SetShareVisibility()
AGKFogOfWarVolume::DoesShareVision()
AGKFogOfWarVolume::OnTeamVisibilitySharingChanged()
AGKFogOfWarVolume::OnTeamVisibilitySharingChanged()
AGKFogOfWarVolume::ClientLimitFramePerSeconds
AGKFogOfWarVolume::ServerLimitFramePerSeconds
AGKFogOfWarVolume::FramePerSeconds
AGKFogOfWarVolume::bAsyncDraw
AGKFogOfWarVolume::Strategy
AGKFogOfWarVolume::Grid
AGKFogOfWarVolume::Upscaler
AGKFogOfWarVolume::Exploration
AGKFogOfWarVolume::FogMaterialParameters
AGKFogOfWarVolume::BasePostProcessMaterial
AGKFogOfWarVolume::bFogOfWarEnabled
AGKFogOfWarVolume::Stats
AGKFogOfWarVolume::MapSize
AGKFogOfWarVolume::OnReady
AGKFogOfWarVolume::bDebug
AGKFogOfWarVolume::bCacheSimilarAllyVision
AGKFogOfWarVolume::bBroadcastSightingEvents
AGKFogOfWarVolume::VisionSharingSetting
AGKFogOfWarVolume::DrawFactionFog()
AGKFogOfWarVolume::DrawFactionFogParallel()
AGKFogOfWarVolume::DrawFactionFogSingleThread()
AGKFogOfWarVolume::DrawFactionFogParallel_AsyncTask()
AGKFogOfWarVolume::UpdateTextures()
AGKFogOfWarVolume::UpdateVisbility()
AGKFogOfWarVolume::GetBrushSizes()
AGKFogOfWarVolume::UpdateVolumeSizes()
AGKFogOfWarVolume::GetMaterialParameterCollection()
AGKFogOfWarVolume::UpdateMaterialParamCollection()
AGKFogOfWarVolume::InitializeStrategy()
AGKFogOfWarVolume::InitializeUpscaler()
AGKFogOfWarVolume::InitializeExploration()
AGKFogOfWarVolume::OnRep_TeamFogs()
AGKFogOfWarVolume::UpdateTrackedMaterials()
AGKFogOfWarVolume::UpdateFogOfWarMaterialParameters()
AGKFogOfWarVolume::ActorComponents
AGKFogOfWarVolume::TeamFogs
AGKFogOfWarVolume::Blocking
AGKFogOfWarVolume::NameToFogs
AGKFogOfWarVolume::bClientReady
AGKFogOfWarVolume::bReady
AGKFogOfWarVolume::PendingMaterials
AGKFogOfWarVolume::TrackedMaterials
- FGKFogOfWarModule
- FGKFogOfWarShaderModule
- IGKFogOfWarAgentInterface
- IGKFogOfWarGameStateInterface
- IGKFogOfWarTestModule
- UGKCanvasUpscaler
- UGKCPUUpscalerStrategy
- UGKExplorationTransform
- Inheritance Relationships
- Class Documentation
UGKExplorationTransform
UGKExplorationTransform::UGKExplorationTransform()
UGKExplorationTransform::Initialize()
UGKExplorationTransform::Transform()
UGKExplorationTransform::IsExplored()
UGKExplorationTransform::BlendMode
UGKExplorationTransform::bUseUpscaledVision
UGKExplorationTransform::bUseMaterial
UGKExplorationTransform::ExplorationMaterial
- UGKFogOfWarComponent
- Inheritance Relationships
- Class Documentation
UGKFogOfWarComponent
UGKFogOfWarComponent::UGKFogOfWarComponent()
UGKFogOfWarComponent::GetLifetimeReplicatedProps()
UGKFogOfWarComponent::GetVisionTexture()
UGKFogOfWarComponent::GetExplorationTexture()
UGKFogOfWarComponent::GetFogOfWarVolume()
UGKFogOfWarComponent::GetFaction()
UGKFogOfWarComponent::GetFogOfWarMaterial()
UGKFogOfWarComponent::GetFogOfWarPostprocessMaterial()
UGKFogOfWarComponent::SetCameraPostprocessMaterial()
UGKFogOfWarComponent::RegisterFogComponent()
UGKFogOfWarComponent::UnregisterFogComponent()
UGKFogOfWarComponent::GetGenericTeamId()
UGKFogOfWarComponent::IsVisible()
UGKFogOfWarComponent::IsVisible()
UGKFogOfWarComponent::IsVisibleBy()
UGKFogOfWarComponent::IsVisibleBy()
UGKFogOfWarComponent::GenerateTransientConeBlock()
UGKFogOfWarComponent::IsConeBlocked()
UGKFogOfWarComponent::OnSighted_Native()
UGKFogOfWarComponent::OnOutOfSight_Native()
UGKFogOfWarComponent::BecameOutOfSight()
UGKFogOfWarComponent::BecameSeen()
UGKFogOfWarComponent::InnerRadius
UGKFogOfWarComponent::UnobstructedVision
UGKFogOfWarComponent::LineTickness
UGKFogOfWarComponent::TraceCount
UGKFogOfWarComponent::FieldOfView
UGKFogOfWarComponent::Radius
UGKFogOfWarComponent::GivesVision
UGKFogOfWarComponent::BlocksVision
UGKFogOfWarComponent::bOverrideObstacleConfig
UGKFogOfWarComponent::ObstacleConfig
UGKFogOfWarComponent::DefaultTeam
UGKFogOfWarComponent::ConeConfig
UGKFogOfWarComponent::TransientConeBlock
UGKFogOfWarComponent::OnSighted
UGKFogOfWarComponent::OnOutOfSight
UGKFogOfWarComponent::BeginPlay()
UGKFogOfWarComponent::EndPlay()
UGKFogOfWarComponent::bWasRegistered
- UGKFogOfWarLibrary
- Inheritance Relationships
- Class Documentation
UGKFogOfWarLibrary
UGKFogOfWarLibrary::ConvertToObjectType()
UGKFogOfWarLibrary::IsVisible()
UGKFogOfWarLibrary::GetFogOfWarVolume()
UGKFogOfWarLibrary::SampleRenderTarget()
UGKFogOfWarLibrary::SamplePixelRenderTarget()
UGKFogOfWarLibrary::ToTextureCoordinate()
UGKFogOfWarLibrary::ToTextureCoordinate2D()
UGKFogOfWarLibrary::GetYaw()
UGKFogOfWarLibrary::GetVisibleBounds()
UGKFogOfWarLibrary::WorldToGrid()
UGKFogOfWarLibrary::SnapToGrid()
UGKFogOfWarLibrary::GridToWorld()
UGKFogOfWarLibrary::GetLocalController()
UGKFogOfWarLibrary::GetLocalTeam()
UGKFogOfWarLibrary::GetTeamInfo()
UGKFogOfWarLibrary::GetTeamCount()
UGKFogOfWarLibrary::GetFogOfWarTeamFromHandle()
UGKFogOfWarLibrary::GetMutableTeamInfo()
UGKFogOfWarLibrary::GetFogOfWarTeamInfo()
UGKFogOfWarLibrary::GetGKFogOfWarVersionInfo()
UGKFogOfWarLibrary::GetFogOfWarTeamName()
UGKFogOfWarLibrary::GetFogOfWarTeamDescription()
UGKFogOfWarLibrary::GetFogOfWarTeamLocalName()
UGKFogOfWarLibrary::GetFogOfWarTeamColor()
UGKFogOfWarLibrary::GetFogOfWarTeamInfoFromName()
- UGKFogOfWarStrategy
- Inheritance Relationships
- Class Documentation
UGKFogOfWarStrategy
UGKFogOfWarStrategy::UGKFogOfWarStrategy()
UGKFogOfWarStrategy::SupportVisbilityQuery()
UGKFogOfWarStrategy::IsVisible()
UGKFogOfWarStrategy::IsVisible()
UGKFogOfWarStrategy::Initialize()
UGKFogOfWarStrategy::SetupActor()
UGKFogOfWarStrategy::SupportsParallelExecution()
UGKFogOfWarStrategy::Stop()
UGKFogOfWarStrategy::PreFactionFogDraw()
UGKFogOfWarStrategy::DrawFactionFogDebug()
UGKFogOfWarStrategy::DrawFactionFog()
UGKFogOfWarStrategy::PostFactionFogDraw()
UGKFogOfWarStrategy::DrawLineOfSight()
UGKFogOfWarStrategy::DebugDrawComponent()
UGKFogOfWarStrategy::DebugDrawPoint()
UGKFogOfWarStrategy::GetFactionTextureCPU()
UGKFogOfWarStrategy::GetFactionTexture()
UGKFogOfWarStrategy::GetPreviousFrameFactionTexture()
UGKFogOfWarStrategy::OnNewFaction()
UGKFogOfWarStrategy::AddVisibleActor()
UGKFogOfWarStrategy::AddVisibleComponent()
UGKFogOfWarStrategy::RetrieveBlockingTexture()
UGKFogOfWarStrategy::IsInitialized()
UGKFogOfWarStrategy::FogOfWarVolume
UGKFogOfWarStrategy::bInitialized
- UGKGPUUpscalerStrategy
- UGKRayCasting_Less
- Inheritance Relationships
- Class Documentation
UGKRayCasting_Less
UGKRayCasting_Less::UGKRayCasting_Less()
UGKRayCasting_Less::Margin
UGKRayCasting_Less::DrawObstructedLineOfSight()
UGKRayCasting_Less::CastLinesFromAngles()
UGKRayCasting_Less::FillMissingAngles()
UGKRayCasting_Less::Generate3Triangles()
UGKRayCasting_Less::CastLineFromAngle()
UGKRayCasting_Less::GenerateTriangle()
UGKRayCasting_Less::Coverage
- UGKRayCasting_Line
- Inheritance Relationships
- Class Documentation
UGKRayCasting_Line
UGKRayCasting_Line::UGKRayCasting_Line()
UGKRayCasting_Line::Initialize()
UGKRayCasting_Line::SupportVisbilityQuery()
UGKRayCasting_Line::SetupActor()
UGKRayCasting_Line::SetCollisionFoWResponse()
UGKRayCasting_Line::IsVisible()
UGKRayCasting_Line::DrawFactionFog()
UGKRayCasting_Line::DrawLineOfSight()
UGKRayCasting_Line::GetFactionTexture()
UGKRayCasting_Line::GetFactionRenderTarget()
UGKRayCasting_Line::GetFactionRenderTarget()
UGKRayCasting_Line::FogOfWarCollisionChannel
UGKRayCasting_Line::UnobstructedVisionMaterial
UGKRayCasting_Line::DrawObstructedLineOfSight()
UGKRayCasting_Line::DrawUnobstructedLineOfSight()
UGKRayCasting_Line::DrawUnobstructedLineOfSight_Draw()
UGKRayCasting_Line::DrawLines()
UGKRayCasting_Line::CreateRenderTarget()
UGKRayCasting_Line::Lines
UGKRayCasting_Line::FogFactions
UGKRayCasting_Line::ActorsToIgnore
UGKRayCasting_Line::DrawingFog
- UGKRayCasting_Triangle
- UGKShadowCasting
- Inheritance Relationships
- Class Documentation
UGKShadowCasting
UGKShadowCasting::UGKShadowCasting()
UGKShadowCasting::SupportVisbilityQuery()
UGKShadowCasting::IsVisible()
UGKShadowCasting::IsVisible3x3Extended()
UGKShadowCasting::Initialize()
UGKShadowCasting::PreFactionFogDraw()
UGKShadowCasting::DrawFactionFogDebug()
UGKShadowCasting::DrawFactionFog()
UGKShadowCasting::DrawFactionFogSingleThread()
UGKShadowCasting::DrawFactionFogParallel()
UGKShadowCasting::DrawFactionFogParallel_AsyncTask()
UGKShadowCasting::PostFactionFogDraw()
UGKShadowCasting::SupportsParallelExecution()
UGKShadowCasting::Stop()
UGKShadowCasting::DrawLineOfSight()
UGKShadowCasting::UpdateBlocking()
UGKShadowCasting::UpdateTextures()
UGKShadowCasting::RetrieveBlockingTexture()
UGKShadowCasting::ExtractLandscapeHeightMap()
UGKShadowCasting::GetFactionTexture()
UGKShadowCasting::GetFactionTexture2D()
UGKShadowCasting::GetPreviousFrameFactionTexture2D()
UGKShadowCasting::CreateTexture2D()
UGKShadowCasting::GetPreviousFrameFactionTexture()
UGKShadowCasting::UpdatePreviousFrameTexturesTex()
UGKShadowCasting::UpdatePreviousFrameTextures()
UGKShadowCasting::SetVisible()
UGKShadowCasting::IsBlockingLight()
UGKShadowCasting::GetDistance()
UGKShadowCasting::GetDistanceSquared()
UGKShadowCasting::IsPositionValid()
UGKShadowCasting::Landscape
UGKShadowCasting::TextureQuery_IsVisible()
- UGKSharedBlueprint
- UGKTransformerStrategy
- Inheritance Relationships
- Class Documentation
UGKTransformerStrategy
UGKTransformerStrategy::UGKTransformerStrategy()
UGKTransformerStrategy::Initialize()
UGKTransformerStrategy::Stop()
UGKTransformerStrategy::Transform()
UGKTransformerStrategy::GetFactionTexture()
UGKTransformerStrategy::UpscaledTextureSize()
UGKTransformerStrategy::OnNewFaction()
UGKTransformerStrategy::bInitialized
UGKTransformerStrategy::FogOfWarVolume
UGKTransformerStrategy::UpdateRegion
UGKTransformerStrategy::TextureSize
- UGKTransformerStrategyCanvas
- Inheritance Relationships
- Class Documentation
UGKTransformerStrategyCanvas
UGKTransformerStrategyCanvas::UGKTransformerStrategyCanvas()
UGKTransformerStrategyCanvas::Initialize()
UGKTransformerStrategyCanvas::GetFactionTexture()
UGKTransformerStrategyCanvas::UpscaledTextureSize()
UGKTransformerStrategyCanvas::GetFactionTransformTarget()
UGKTransformerStrategyCanvas::CreateTransformTarget()
UGKTransformerStrategyCanvas::TransformedTarget
UGKTransformerStrategyCanvas::TextureSize
- UGKTransformerStrategyTexture2D
- AGKFogOfWarCharacter