Interactive 3D Map - Winds of War

Disclaimer: “Winds of War” is in active development, showcased features are not finalized.


This is the in-progress interactive world map I’ve made for Winds of War. This map is used to keep track of which faction controls each area of land, each land’s respective data, and to carry out player/AI actions like attacking. For AI players, each land also keeps track of their level, army, and strategem used when in combat.* When two lands are in combat, all relevant info is then passed onto the game instance which is read when the appropriate level is loaded.

*View “Lane Data System - Winds of War” post for more info

This first video shows how the map currently behaves. I’m utilizing Unreal’s mouse events for handling logic when specific primitive components are clicked. It also showcases how each land (“BP_Land” Actor) can be easily customized with which level is loaded when it’s attacked (currently only “Forest”), which faction is in control of them (visually updates), and the previously mentioned AI data. There is also the “Adjacent Lands” array which must be manually edited so each land knows which other land is connected to it - this makes map creation highly customizable; for example, you can isolate two lands from each other if a large body of water or mountain were to separate them.

This next video shows the process for adding a new land tile and setting all relevant variables. Ideally, the Adjacent Lands array would be set using an automatic process with traces or overlap events on construct - instead of being manually changed.*

*Update - this feature has been added and is showcased below.

Lastly, I show how the armies for AI are set and used when their land is attacked. In the combat level, you may have noticed before that the UI in the bottom right was not doing anything, this is because no army was set for that land. It’s planned to have AI factions be set upon the player starting a new campaign and their armies would be populated with their chosen units and added to each land.

BP_Land

In the event graph, on begin play, the game instance and player character are referenced. The land is passed to the player when selected and the player keeps track of current and new selections. Then, the land and arrow components are bound to their mouse events (OnClick, CursorBeginHover, CursorEndHover). The hover events are used to display the selection marker “Marker” when the player’s mouse hovers over a land as well as the dynamic scaling of components. These mouse events also handle displaying the arrows and the logic associated with them when the land/arrows are clicked.

On construct, all arrows are added to an array and dynamic materials are made/set and then added to their respective components. The dynamic materials are used to show the assigned faction and allow dynamic opacity updates for the selection marker.

During begin play, the Arrows array is looped through and each needed mouse event is created and bound to them. This is done so all arrows have the same functionality, but the data associated can be unique (the scaling that occurs when hovering over them and the land they correspond to when attacking).

Animeke

Creator of animeke.moe, an anime content hub.

https://animeke.moe
Previous
Previous

Dynamic UI - Winds of War

Next
Next

Replicated Interaction, Inventory, & Combat