How to display selectable unique zone/area/district in a game

Hi. I’m hoping to get direction on how to proceed with this desired goal (photoshopped image):

Requirements:

  • Define the zones (don’t need to change zone’s layout at runtime),
  • Ability to select/click on these zones (needs unique ids).
  • Should be customizable graphics, for examples show borders only, fill color, add stripes, and what not.

Where should I start? How can I define the areas in world space, what should I use to do that? Generate/procedural, meshes, landscape, decals, theories, keywords, keywords? I would appreciate any kind of hints or suggestions, I’m not looking for a full implementation, just how to go on about it. Preferably scalable method (+30 zones).

Some example game references that have similar systems that I’m looking for:

Thanks in advance.

1 Like

UE4 don’t have a pre-made zone system like that at least one that would draw something on map. You need to construct something out of things that UE4 has to offer, good start would look on avable primitive components to use as as body for the zone. Most basic solution would be use of shape components (or even extending ATriggerBox which as extra editor code helping modifying zone in editor), best part is it provides collision detection (actor entering and leaving the shape component) out of the box, the limitation is limited number of shapes you can use.

There also spline component you can try to do something, but with that you need to code extra stuff to it to work like zone. There might be some other components you might find useful for zoning. You can also use distance to actors to calculate zone locations to.

Bigger challenge is drawing those, but you might try to use decals or render targets. Even bigger challenge is to detect if you actor enters of leaves zone if thats what you need and you use something else then shape component

What about using freehand masked materials reporting back to the click trace, and identify which material was clicked to determine if it was within the outline of the border? I don’t know how to do that myself, but from what I have seen it seems like it should be doable.

have u managed to come up with anything? i wanna add the same system to my project.